Upload
dohanh
View
218
Download
0
Embed Size (px)
Citation preview
1
2.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Servizi offerti dal sistema operativo Lʼinterfaccia di un sistema operativo Chiamate di sistema (System Calls) Tipi di System Call Programmi di sistema Progetto ed implementazione di un sistema operativo Struttura di un sistema operativo Macchine virtuali
2.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Descriveremo i servizi che un sistema operativo offre ad utenti, processi e altri sistemi
Discuteremo diverse possibili strutture di un sistema operativo
2.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Servizi agli utenti: User interface (UI)
Command-Line (CLI), Graphics User Interface (GUI), Batch Esecuzione dei Programmi – caricamento in memoria ed esecuzione
dei programmi e gestione della terminazione, normale o a causa di errori (es. abort)
Operazioni di I/O - I programmi in esecuzione possono richiedere I/O: accesso a file e dispositivi di I/O.
Operazioni sul File-system Lʼaccesso agevole al File System eʼ cruciale: I programmi usano file
e directory per la memorizzazione Gestione dei permessi di accesso al file system
2
2.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Servizi agli utenti (Cont): Comunicazione – I Processi possono scambiarsi dati, anche tra
computer diversi, es. Collegati mediante una rete Comunicazione: usa memoria condivisa o scambio di messaggi
Riconoscimento degli errori – SO deve essere sempre al corrente di possibili errori verificatisi Errori nella CPU e/o memoria, nei dispositivi di I/O devices, in
programmi utente Per ogni errore, SO deve prevedere le opportune contromisure che
garantiscano elaborazione corretta e coerente Servizi di Debugging permettono di migliorare lʼuso del sistema da
parte degli utenti e dei programmatori
2.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Servizi del SO per garantire efficienza del sistema stesso Allocazione di Risorse – per multi-utenza e multi-programmazione Contabilitaʼ – Quali utenti usano quali risorse ein che quantitaʼ Protezione e sicurezza – In un ambiente multiutente o in rete i processi
concorrenti non dovrebbero intralciarsi o influenzarsi Protezione assicurare accesso alle risorse controllato Sicurezza del sistema dagli estranei, mediante autenticazione degli
utenti; esteso a regolare lʼaccesso ai dispositivi di I/O
2.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
CLI (command line interface) permette inserimento diretto dei comandi Solitamente implementata in kernel, o da programmi di
sistema A volte piuʼ di unʼinterfaccia CLI eʼ presente – shells Principalmente riceve comandi dallʼutente e li esegue
– I commandi sono implementati nella shell, – I comandi sono nomi di programmi invocati dalla shell
» Nuovi comandi non implicano modifiche alla shell
Noi usereme BASH shell
2.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
User-friendly, metafora del desktop mouse, keyboard, and monitor Icone rappresentano file, programmi, azioni, etc. Diversi usi del mouse per ottenere varie azioni (fornire dati,
opzioni, eseguire funzioni, aprire directory (aka folder) Inventata alla Xerox PARC (anni ʻ70)
Molti sistemi forniscono sia CLI che GUI
3
2.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Interfaccia di programmazione ai servizi del SO Scritte in un linguaggio di alto livello (C o C++) Tipicamente lʼaccesso avviene mediante Application Program
Interface (API) e non mediante uso diretto delle system call Win32 API per Windows, POSIX API per sistemi POSIX-based (es. UNIX, Linux, e Mac
OS X), Java API (JVM)
Percheʼ usare API e non system call?
2.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Sequenza di System call per copiare un file in un altro
2.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
La funzione ReadFile() in Win32 API per leggere da un file
2.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Tipicamente, un numero associato ad ogni system call Lʻinterfaccia alle System-call mantiene una tavola indicizzata
secondo tale numerazione Lʼinterfaccia invoca la system call necessaria nel kernel e ritorna il
valore di stato della syscall e ogni valore ritornato dalla stessa La funzione chiamante puoʼ ignorare lʼimplementazione della
system call Deve rispettare le specifiche dellʼAPI e sapere cosa fa il SO in
seguito alla sua chiamata Molti dettagli vengono nascosti dalla API
Gestita mediante la run-time support library (funzioni fornite come librerie standard)
4
2.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Un programma C invoca printf(), che usa la system call write()
2.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Spesso, eʼ necessario fornire dati al kernel associati alla system call Il tipo e il numero di parametri dipende da SO e tipo di call
In generale, 3 metodi per passare parametri al SO Parametri passati tramite registri
potrebbero esserci piuʼ parametri che registri Parametri memorizzati in un blocco, o tavola, in memoria, il cui
indirizzo eʼ passato come parametro in un registro Es. Linux e Solaris
Parametri via stack: push dal programma e pop dal SO Gli ultimi due metodi non limitano il numero di parametri
2.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
5
2.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Controllo dei Processi Gestione dei File Gestione dei Dispositivi Gestione delle Informazioni Comunicazione
2.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
(a) At system startup (b) running a program
2.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
I programmi di Sistema forniscono ambienti specializzati per lo sviluppo e lʼesecuzione dei programmi: Manipolazione di file Informazioni di Stato Modifica dei File Funzioni di supporto alla programmazione Caricamento ed esecuzione dei Programmi Comunicazione Programmi applicativi
Per molti utenti lʼattivitaʼ del SO eʼ definita dai programmi di sistema piuʼ che dalle system call
6
2.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Supporto per lo sviluppo e lʼesecuzione di programmi da semplice interfaccia per system call; a funzioni molto piuʼ complesse
File management - Create, delete, copy, rename, print, dump, list, e manipolare file e directory
Informazioni di Stato Inform. di sistema come: date, time, disponibilitaʼ di memoria, spazio
su disco, numero di utenti Informazioni dettagliate su performance, informazioni di logging, e
debugging In genere tali informazioni sono formattate dai prog. di sistema e
mandate in output
2.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Operazioni su file Editor di testi per creare e modificare file Comandi speciali per ricercare nei file od operarvi
trasformazioni testuali Supporto alla programmazione: compilatori, linker, debugger, ed
interpreti Caricamento ed esecuzione dei programmi- Absolute loaders,
relocatable loaders, linkage editors, and overlay-loaders, sistemi di debugging per linguaggio macchinae linguaggi di alto livello
Comunicazioni – Fornisce meccanismi per creare connessioni virtuali tra processi, utenti e diversi calcolatori Permette lʼinvio di messaggi tra utenti, browsing di pagine web,
trasferimento di file tra una macchina e lʼaltra, etc.
2.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Non esistono metodi infallibili; diversi approcci +/- efficaci La struttura interna di sistemi operativi diversi puoʼ essere
estremamente differente Punto di partenza: scopi e specifiche Scelta dipendente dallʼhardware e dal tipo di sistema User goal e System goal tipici:
User goal – il sistema operativo dovrebbe essere conveniente, affidabile, facile da apprendere, sicuro e veloce
System goal – il sistema operativo dovrebbe essere facile da progettare, implementare e manutenere, ed allo stesso tempo versatile, affidabile, efficiente e robusto
2.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
MS-DOS – scritto per ottenere la massima funzionalita in poco spazio Progettato in maniera monolitica (poco modulare)
Esiste una qualche strutturazione, ma i diversi livelli di funzionalitaʼ non sono ben separati
7
2.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.27 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Il sistema operativo eʼ diviso in un numero di livelli, ciascuno costruito sul livello direttamente piuʼ basso. Il livello 0 eʼ costituito dallʼhardware della macchina, il livello piuʼ alto eʼ lʼinterfaccia utente
Modularitaʼ, i livelli sono scelti in modo tale che ciascun livello usi le funzioni (operazioni) ed i servizi definiti dal/i livello/i inferiore/i
2.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.29 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
UNIX – il modello originario di UNIX era poco strutturato. Essenzialmente costituito da due parti separate Programmi di sistema Kernel
Consiste di tutto cioʼ che eʼ al di sotto delʼinterfaccia delle system call ed al di sopra dellʼhardware
Fornisce: file system, CPU scheduling, gestione della memoria, ed altre funzionalitaʼ.Decisamente molto per un solo livello
8
2.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.31 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Tutto quanto non eʼ necessariamente parte del kernel, va nello spazio utente
Comunicazione tra I moduli utente e di sistema mediante scambio di messaggi
Benefici: Eʼ piuʼ semplice estendere un microkernel Piuʼ semplice da “portare” su nuove architetture Maggiore affidabilitaʼ (meno codice gira in modalitaʼ kernel) Piuʼ sicuro
Difetti: Perdita di performance per lʼeccesso di comunicazione tra
kernel e spazio utente
2.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.33 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Il concetto di macchina virtuale estremizza il modello a livelli. Considera lʼhardware ed il sistema operativo come se definissero insieme un sistema hardware
Una macchina virtuale fornisce unʼinterfaccia identica a quella dellʼhardware sottostante
Il sistema operativo crea lʼillusione della presenza di piuʼ processi ognuno eseguito sul proprio processore (virtuale) con la propria memoria.
9
2.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
(a) Nonvirtual machine (b) virtual machine
Non-virtual Machine Virtual Machine
2.35 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Protezione completa delle risorse del sistema: ogni macchina virtuale eʼ isolata dalle altre. In generale nessuna possibilitaʼ di condivisione
Utile per studiare e sviluppare i sistemi operativi. Lo sviluppo e il testing viene fatto sulla macchina virtuale senza
intaccare il normale ambiente di lavoro. Di non semplice implementazione: bisogna fornire unʼesatta copia
della macchina ospite
2.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition