INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione di bootstrap. 2)Una volta avviato, il sistema operativo attende le richieste dellutente. Il sistema operativo gestisce le risorse hardware e software del computer in modo che ogni programma possa utilizzare le risorse di cui ha bisogno.
SERVIZI LA GESTIONE DEI FILE E IL FILE SYSTEM I servizi principali che vengono utilizzati sono i servizi relativi alla gestione dei file su disco e allesecuzione dei programmi. Un file può contenere informazioni di vario tipo. Il modulo del sistema operativo che si occupa della gestione dei file è il file system. IDENTIFICAZIONE DEI FILE I file sono identificati da un nome simbolico. In alcuni casi i nomi sono costruiti secondo regole che inducono una classificazione per contenuto; la tecnica più comune è quella delle estensioni. LE DIRECTORY I file sono organizzati in directory. IL PATHNAME Un file può essere specificato con due modalità diverse: attraverso il nome globale attraverso il nome locale
COMANDI PER LAVORARE SU FILE E DIRECTORY Il file system deve fornire comandi per lavorare sui file e le directory. I comandi principali permettono di: creare e cancellare directory e file; esaminare il contenuto directory e file; spostare o copiare directory e file. IL SISTEMA OPERATIVO COME AMBIENTE DI ESECUZIONE Lesecuzione di un programma viene chiamata processo; il programma costituisce la descrizione delle istruzioni da eseguire mentre il processo è la sequenza di azioni compiute durante lesecuzione. Ogni processo richiede alcune risorse del computer; è compito del sistema operativo controllare che ogni processo possa utilizzare le risorse necessarie e non disturbi lesecuzione di altri processi. Il sistema operativo quindi si preoccupa di assegnare la memoria, le periferiche e il processore stesso ai vari processi e di proteggere le risorse usate da un processo dallaccesso più o meno intenzionale di altri processi.
SHELL Linterfaccia utente o shell è la parte del sistema che permette, allutente, di utilizzare il computer. Attraverso la shell è possibile gestire dischi, directory, file e richiedere lesecuzione di programmi di utilità del sistema o di programmi utente, che vengono eseguiti sotto il controllo del sistema operativo. Il tipo di shell definisce la modalità di interazione dellutente col sistema: a linea di comando grafica Questi due tipi possono essere disponibili contemporaneamente in modo da poter sfruttare i vantaggi di entrambe. Linterfaccia grafica (GUI) è molto semplice da usare anche per utenti non esperti.
MODELLO CONCORRENTE Il modello concorrente, è linsieme dei meccanismi per gestire contemporaneamente più processi, e per scambiare informazioni tra essi; la loro coesistenza è detta esecuzione concorrente. Per esecuzione concorrente si intende lesecuzione di due azioni parallele: Parallelismo reale= Sistema multiprocessore, ogni processore si occupa di unazione Quasi parallelismo= Unico processore, le azioni possono avanzare solo in modo alternato nel tempo. Nellutilizzo delle risorse i processi interferiscono o cooperano tra di loro. I sistemi operativi sono programmi concorrenti.
Il sistema operativo deve gestire le risorse che vanno condivise tra i processi, attraverso la creazione di: Processi cooperanti sono richiesti meccanismi di interazione tra i processi, che costituiscono il modello concorrente. Paradigmi di interazione disponibili sono la condivisione di dati, la sincronizzazione e la comunicazione. La condivisione dei dati permette ai processi di scambiarsi informazioni attraverso dati comuni; laccesso ai dati comuni deve essere disciplinato mediante la mutua esclusione, cioè un solo processo per volta può accedere ai dati comuni. La sincronizzazione consiste nello scambio di informazioni puramente temporali, in modo da stabilire delle relazioni di precedenza tra le azioni svolte da processi diversi. La sincronizzazione avviene attraverso istruzioni che impongono al processo di restare in attesa finché non si è verificata una condizione. La comunicazione permette ai processi di scambiarsi informazioni senza condividere dati, mandandosi dei messaggi.
PROTEZIONE DEL SISTEMA Il processore in genere può operare in almeno due stati: stato supervisore o kernel e stato utente. In stato supervisore è possibile eseguire qualsiasi istruzione e accedere a qualsiasi area di memoria. In stato utente il processo può accedere solo alla propria area di memoria e non può eseguire certe operazioni se non chiedendo lintervento del sistema operativo con una interruzione di tipo supervisor call. Quando il computer è usato da più utenti, per garantire la sicurezza è fondamentale che il sistema operativo offra un sistema di protezione per identificare gli utenti che accedono al sistema e per definire le operazioni che ciascuno può effettuare. Un utente, chiamato di solito amministratore di sistema, definisce le attività che possono eseguire e le risorse sfruttabili.
PROTEZIONE DEI FILE La protezione dei file si realizza indicando quali sono le modalità di accesso consentite per ciascun utente. Il Controllo sullaccesso viene effettuato dal sistema, dal file system, quando viene richiesta unoperazione sul file. Il modo più semplice di gestire la sicurezza consiste nellassociare ad ogni file una modalità di accesso, valida per qualunque utente. Il proprietario, in genere, è il creatore del file e colui che assegna i permessi di accesso agli altri utenti. I permessi di accesso vengono assegnati anche alle directory e indicano le operazioni permesse sulla directory.
ARCHITETTURA DEI FILE Il nucleo realizza almeno i meccanismi del modello concorrente e le funzioni di gestione del processore; Per la funzioni di gestione delle risorse diverse dal processore sono possibili diverse soluzioni da cui dipende lorganizzazione del sistema operativo: modello monolitico: le funzioni di gestione delle risorse sono realizzate nel nucleo e lintero sistema operativo tende a identificarsi col nucleo; modello a microkernel: le funzioni di gestione delle risorse sono svolte da processi separati e il nucleo si limita a realizzare le funzioni essenziali riguardanti i processi.
MODELLO MONOLITICO Nel modello monolitico il nucleo comprende i dati che descrivono i processi, le procedure che realizzano i meccanismi per la concorrenza, ma anche i dati e le procedure per la gestione delle risorse. Le procedure per la gestione delle risorse costituiscono un insieme di operazioni primitive e sono invocate dai processi. MODELLO A MICROKERNEL Le primitive sono dette anche system call o chiamate di sistema. Mediante una system call il processo richiede al sistema operativo lesecuzione di un servizio (in modo kernel).
Nel nucleo viene realizzata una struttura gerarchica. Il livello più basso della gerarchia, quello che realizza i meccanismi del modello concorrente, è il solo che interagisce con la macchina fisica e non è visibile ai processi. I processi possono interagire col nucleo solo attraverso le chiamate di sistema del livello superiore. Il principale vantaggio dei sistemi monolitici è il basso costo di interazione tra le componenti; il sistema risulta però molto complesso. Risulta più conveniente avere un organizzazione modulare, per esempio a livelli.