Introduzione ai sistemi operativi
description
Transcript of Introduzione ai sistemi operativi
1
Introduzione aiIntroduzione aisistemi operativisistemi operativi
2
SommarioSommario
IntroduzioneIntroduzioneScopo del sistema operativoScopo del sistema operativo
Architettura del sistema operativoArchitettura del sistema operativo
Storia dei sistemi operativiStoria dei sistemi operativi
Struttura dei sistemi operativiStruttura dei sistemi operativiLa gestione dei processiLa gestione dei processi
La gestione della memoriaLa gestione della memoria
Il file systemIl file system
La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O
L’interfaccia utenteL’interfaccia utente
Esempi di sistemi operativiEsempi di sistemi operativi
3
IntroduzioneIntroduzione
4
Cos’è un sistema operativo Cos’è un sistema operativo 1 1
Il software può essere diviso in due grandi classi:i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del sistema di calcoloi programmi applicativiprogrammi applicativi, che risolvono i problemi degli utenti
L’insieme dei programmi di sistemaprogrammi di sistema viene comunemente identificato con il nome di Sistema OperativoSistema Operativo (SO)
DefinizioneDefinizioneUn sistema operativo è un programma che controlla controlla l’esecuzione di programmi applicativil’esecuzione di programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardwareinterfaccia fra le applicazioni e l’hardware del calcolatore
5
Tutte le piattaforme hardware/software richiedono un sistema operativoQuando si accende un elaboratore, occorre attendere alcuni istanti per poter iniziare a lavorare: durante questa pausa il computer carica il SO
Cos’è un sistema operativo Cos’è un sistema operativo 2 2
6
Scopo del sistema operativoScopo del sistema operativo
Gestione EFFICIENTE delle risorse del sistema di elaborazione
Rendere AGEVOLE l’interfaccia tra l’uomo e la macchina
7
Gestione dei processiGestione della memoria principaleGestione della memoria di massa (file system)Realizzazione dell’interfaccia utenteRilevamento e gestione degli erroriAccountingProtezione e sicurezza
Compiti del sistema operativoCompiti del sistema operativo
8
Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse – 1– 1
Si consideri un ristorante con un capo–cuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti:
I clienti scelgono un piatto dal menùUn cameriere prende l’ordine e lo consegna al capo–cuocoIl capo–cuoco riceve l’ordine e assegna uno o più aiutanti alla preparazione del piattoOgni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverseIl capo–cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili
9
Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse – 2– 2
Il capo–cuoco è il sistema operativo!Il capo–cuoco è il sistema operativo!
I clienti sono gli utentiLe ricette associate ai piatti sono i programmiIl menù ed il cameriere costituiscono l’interfaccia verso il sistema operativo (grafica e non)Gli aiutanti sono i processiLa cucina è il computer; pentole, fornelli, etc. sono le componenti hardware
10
Esempio: il SO come gestore risorse Esempio: il SO come gestore risorse – 3– 3
Problemi del capo–cuoco:Esecuzione fedele delle ricetteAllocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.) Coordinamento efficiente degli aiutantiLicenziamento degli aiutanti che non si comportano secondo le regole
Problemi del sistema operativo:Efficienza nell’uso delle risorse (processori, memoria, dischi, etc.)Protezione nell’uso delle risorseCoordinamento dei processi
11
Il SO come macchina estesa – 1Il SO come macchina estesa – 1
Visione a strati delle componenti hardware/software che compongo un elaboratore
12
Il SO come macchina estesa – 2Il SO come macchina estesa – 2
Il SO può essere inteso come uno strumento che virtualizzavirtualizza le caratteristiche dell’hardware sottostante, offrendo all’utente la visione di una macchina astrattamacchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibileIn questa visione, un SO…
…nasconde a programmatori/utenti i dettagli dell’hardware e fornisce un’interfaccia conveniente e facile da usare…agisce come intermediario tra programmatore/utente e hardware
Parole chiaveIndipendenza dall’hardwareComodità d’usoProgrammabilità
13
Il SO come macchina estesa – 3Il SO come macchina estesa – 3
L’utente è in grado di utilizzare la macchina fisica senza conoscere i dettagli della sua struttura interna e del suo funzionamento
1.1. HardwareHardware — fornisce le risorse fondamentali di calcolo (CPU, memoria, device di I/O)
2.2. Sistema OperativoSistema Operativo — controlla e coordina l’utilizzo delle risorse hardware da parte dei programmi applicativi dell’utente
3.3. Programmi ApplicativiProgrammi Applicativi — definiscono le modalità di utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti (compilatori, database, video game, programmi gestionali)
4.4. UtentiUtenti — persone, altri macchinari, altri elaboratori
Hardware
Sy
stems software
Applications software
Visione “a cipolla” del Visione “a cipolla” del sistema di calcolosistema di calcolo
14
I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzioneI vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalità di base della macchina
Architettura del sistema Architettura del sistema operativooperativo
KERNELKERNEL
Gestore dei ProcessiGestore dei ProcessiGestore della Gestore della
Memoria Memoria CentraleCentrale
Gestore dell’I/OGestore dell’I/O Gestore del Gestore del File SystemFile System
Interfaccia utenteInterfaccia utente L’insieme dei moduli per la gestione della CPU e della memoria centrale è il kernelkernel
15
Ancora sul sistema operativoAncora sul sistema operativo
Si ha a che fare con file, directory, etc., e non ci si deve preoccupare di come i dati sono memorizzati sul disco
EsempioEsempio: il filesystemfilesystem
Riassumendo: Il sistema operativo fornisce un ambiente per eseguire programmi in modo conveniente ed efficiente, funge infatti da…
Allocatore di risorseAllocatore di risorse — controlla, distribuisce ed alloca le risorse (in modo equo ed efficiente)Programma di controlloProgramma di controllo — controlla l’esecuzione dei programmi utente e le operazioni sui dispositivi di I/O
16
Storia dei sistemi operativiStoria dei sistemi operativi
17
Storia dei sistemi operativiStoria dei sistemi operativi
L’evoluzione dei sistemi operativi……è stata spintaè stata spinta dal progresso tecnologico dell’hardware…ha guidatoha guidato il progresso tecnologico dell’hardware
EsempioEsempio:Gestione degli interruptProtezione della memoriaMemoria virtuale...
Perché analizzare la storia dei sistemi operativi?Perché permette di capire l’origine di certe soluzioni presenti nei SO attualiPerché è l’approccio migliore per capire come certe idee si sono sviluppatePerché alcune delle soluzioni più antiche sono ancora utilizzate
18
Storia dei sistemi di Storia dei sistemi di elaborazioneelaborazione
Generazione 0: Babbage (1792–1871)Generazione 0: Babbage (1792–1871)Progetta la macchina analiticamacchina analitica (programmabile, meccanica)Non aveva sistema operativoLa prima programmatrice della storia è Lady Ada Lovelace
Generazione 1: 1945–1955Generazione 1: 1945–1955Valvole e tavole di commutazione
Generazione 2: 1955–1965Generazione 2: 1955–1965Transistor e sistemi batch
Generazione 3: 1965–1980Generazione 3: 1965–1980Circuiti integrati, multiprogrammazione e time–sharing
Generazione 4: 1980–oggiGenerazione 4: 1980–oggiPersonal computer
19
Generazione 1: 1945Generazione 1: 1945–1955–1955
Come venivano costruiti?Come venivano costruiti?Calcolatori a valvole e tavole di commutazione
Come venivano usati?Come venivano usati?Solo calcoli numerici (calcolatori non elaboratori)Un singolo gruppo di persone progettava, costruiva, programmava e manuteneva il proprio computer
Come venivano programmati?Come venivano programmati?In linguaggio macchina (stringhe di 0 e 1)Programmazione su tavole di commutazione
Nessun sistema operativo!Nessun sistema operativo!
20
Generazione 1: 1945Generazione 1: 1945–1955–1955
Principali problemi:Scarsa affidabilità (guasti frequenti)Rigidità nell’assegnazione dei ruoliNon esiste il concetto di programmatore come entità separata dal costruttore di computer e dall’utente
Utilizzazione lenta e complessa; l’operatore doveva…
1) …caricare il programma da eseguire2) …inserire i dati di input3) …eseguire il programma4) …attendere il risultato5) …in caso di errore, ricominciare dal punto 1)
Tutto ciò a causa dell’assenza del SO
21
Generazione 2: 1955Generazione 2: 1955–1965–1965
Come venivano costruiti?Come venivano costruiti?Introduzione dei transistorCostruzione di macchine più affidabili ed economiche
Come venivano usati?Come venivano usati?Gli elaboratori iniziano ad essere utilizzati per compiti diversiSi crea un mercato, grazie alle dimensioni ed al prezzo ridottiAvviene una separazione tra costruttori, operatori e programmatori
Come venivano programmati?Come venivano programmati?Linguaggi di “medio/alto livello”: AssemblyAssembly, FortranFortranTramite schede perforate
Sistemi operativi batchSistemi operativi batch
22
Generazione 2: 1955Generazione 2: 1955–1965–1965
DefinizioneDefinizione di jobdi job: Un programma o un insieme di programmi la cui esecuzione è richiesta da un utenteCiclo di esecuzione di un job
Il programmatore…1) scrive (su carta) un programma in un linguaggio di alto livello2) perfora una serie di schede con il programma e il suo input3) consegna le schede ad un operatore
L’operatore…1) inserisce le schede di controllo scritte in linguaggio apposito2) inserisce le schede del programma3) attende il risultato e lo consegna al programmatore
operatore operatore programmatore = utente programmatore = utente
23
Generazione 2: 1955Generazione 2: 1955–1965–1965
Il monitor residente è in grado di eseguire una sequenza di job, trasferendo il controllo dall’uno all’altro in successione
Primi rudimentali esempi di sistema operativo, detti anche monitor residenti monitor residenti o sistemi batchsistemi batch, “a infornata”:
Controllo iniziale al monitorIl controllo viene ceduto al job correnteUna volta terminato il job, il controllo ritorna al monitor
24
Generazione 2: 1955Generazione 2: 1955–1965–1965
Principale problema: molte risorse non utilizzatemolte risorse non utilizzateDurante le operazioni di lettura schede/stampa, durante il caricamento di un nuovo job, il processore resta inutilizzatoParte della memoria resta inutilizzata
Primo miglioramento… ma non una soluzioneCaricamento di numerosi job su nastro (off–line)Elaborazione (output su nastro)Stampa del nastro di output (off–line)
25
Generazione 3: 1965Generazione 3: 1965–1980–1980
Come venivano costruiti?Come venivano costruiti?Circuiti integrati
Come venivano usati?Come venivano usati?Progressivamente sparisce la figura dell’operatore come “interfaccia” degli utenti verso le macchine
utente = operatoreutente = operatore
Come venivano programmati?Come venivano programmati?Linguaggi di “alto livello”: CC, shell scriptingshell scriptingEditor testuali, editor grafici, compilatoriAccesso al sistema da terminali
Sistemi operativi interattivi, con multi–Sistemi operativi interattivi, con multi–programmazione e time–sharingprogrammazione e time–sharing
26
Generazione 3: Multi–Generazione 3: Multi–programmazioneprogrammazione
DefinizioneDefinizione di multi–programmazionedi multi–programmazione: Utilizzo del processore durante i periodi di I/O di un job per eseguire altri job
VantaggiVantaggi:Il processore non viene lasciato inattivo (idleidle) durante le operazioni di I/O (molto lunghe)La memoria viene utilizzata al meglio, caricando il maggior numero di job possibili
NotaNota: per gestire la multi–programmazione, il SO deve gestire un poolpool di job da eseguire, fra cui alternare il processore
27
Generazione 3: Multi–Generazione 3: Multi–programmazioneprogrammazione
Caratteristiche tecnicheCaratteristiche tecniche:Più job contemporaneamente in memoriaUna componente del SO, detta schedulerscheduler, si preoccupa di alternarli nell’uso della CPUQuando un job richiede un’operazione di I/O, la CPU viene assegnata ad un altro job
SO multi–programmatiSO multi–programmati: Routine di I/O fornite dal SOGestione della memoriaGestione della memoria: il sistema deve allocare la memoria per i job presenti contemporaneamenteCPU schedulingCPU scheduling: il sistema deve scegliere tra i diversi job pronti all’esecuzioneAllocazione delle risorse di I/OAllocazione delle risorse di I/O: il SO deve essere in grado di allocare le risorse di I/O fra diversi processi
28
Generazione 3: Time–sharingGenerazione 3: Time–sharing
DefinizioneDefinizione di time–sharingdi time–sharing:La risorsa CPU viene suddivisa in quanti temporali; allo scadere di un quanto, il job corrente viene interrotto e l’esecuzione passa ad un altro job, anche in assenza di richieste di I/OI context switchcontext switch avvengono così frequentemente che più utenti possono interagire con i programmi in esecuzione
SO time–sharingSO time–sharing: Gestione della memoriaGestione della memoria: il numero di processi utente può essere molto elevato; si rende necessario l’uso della memoria virtualememoria virtualeCPU schedulingCPU scheduling: deve essere di tipo time–slicedtime–sliced, ovvero sospendere periodicamente l’esecuzione di un programma a favore di un altroLa presenza di più utenti rende necessari meccanismi di meccanismi di protezioneprotezione (e.g. protezione del file system, della memoria, etc.)
29
Generazione 4: 1980Generazione 4: 1980–oggi–oggi
I personal computer sono dedicati ad utenti singoli:L’obiettivo primario per i SO diventa la facilità d’uso; diminuisce l’interesse per la gestione ottima delle risorseI SO per PC sono in generale più semplici; non implementano la protezione (almeno fino all’avvento di Internet)Creazione di interfacce grafiche user–friendlyuser–friendly Tuttavia, tecnologie sviluppate per SO più complessi possono comunque essere adottate
30
La struttura del La struttura del sistema operativosistema operativo
La gestione dei processiLa gestione dei processi
31
La gestione dei processi – 1La gestione dei processi – 1
Un processoprocesso è un programma in esecuzioneUn processo utilizza le risorse fornite dal sistema di elaborazione per assolvere ai propri compitiLa terminazione di un processo prevede il recupero di tutte le risorse riutilizzabili ad esso precedentemente allocate
Normalmente, in un sistema vi sono molti processi, di alcuni utenti, e alcuni sistemi operativi, che vengono eseguiti in concorrenza su una o più CPU
La concorrenza è ottenuta effettuando il multiplexingmultiplexing delle CPU fra i vari processi
32
La gestione dei processi – 2La gestione dei processi – 2
Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione dei processi:
creazione e terminazione dei processisospensione e riattivazione dei processigestione dei deadlockdeadlockcomunicazione tra processisincronizzazione tra processi
Il gestore dei processi “realizza” una macchina Il gestore dei processi “realizza” una macchina virtuale in cui ciascun programma opera come se virtuale in cui ciascun programma opera come se avesse a disposizione un’unità di elaborazione avesse a disposizione un’unità di elaborazione dedicatadedicata
33
Il gestore dei processigestore dei processi è il modulo che si occupa del controllo, della sincronizzazione, dell’interruzione e della riattivazione dei programmi in esecuzione cui viene assegnato un processoreLa gestione dei processi viene compiuta secondo modalità diverse, in funzione del tipo di utilizzo cui il sistema è rivoltoIl programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è chiamato schedulerschedulerNel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema
La gestione dei processi – 3La gestione dei processi – 3
34
runningrunning readyready
waitwait
nascita
attesa evento (es. I/O)
evento
tempo scaduto
top nella coda di scheduling
Ciclo di vita dei processiCiclo di vita dei processi
termine
35
Le politiche di scheduling sono raggruppabili in due grandi categorie:
PreemptivePreemptive: l’uso della CPU da parte di un processo può essere interrotto in un qualsiasi momento, e la risorsa concessa ad altro processo
Non preemptiveNon preemptive: una volta che un processo ha ottenuto l’uso della CPU, è unico proprietario della risorsa finché non ne decide il rilascio
Politiche di schedulingPolitiche di scheduling
36
I SO che gestiscono l’esecuzione di un solo programma per volta (un solo processo) sono detti mono–tasking mono–tasking Non è possibile sospendere un processo per assegnare la CPU ad un altroSono storicamente i primi SO (es. MS–DOS)
Sistemi monoSistemi mono––taskingtasking
tA
B
C
T
Tempo di utilizzo della CPUTempo di attesa di eventi esterni
37
Sistemi multiSistemi multi–tasking–tasking
I SO che permettono l’esecuzione contemporanea di più programmi sono detti multi–tasking multi–tasking o multi– multi–programmati programmati Un programma può essere interrotto e la CPU passata a un altro programma
Tmulti-tasking
tA
B
C
Tmono-tasking
Tempo di utilizzo della CPUTempo di attesa di eventi esterni
38
Un’evoluzione dei sistemi multi–tasking sono i sistemi time–sharingtime–sharingOgni processo viene eseguito ciclicamente per piccoli quanti di tempoquanti di tempoSe la velocità del processore è sufficientemente elevata si ha l’impressione di un’evoluzione parallela dei processi
EsempioEsempioIpotesi: 1 MIPS, 4 processi, 0.25 s/utenteConseguenze: 0.25 MIPS/utente,
TELA = 4 TCPU
Sistemi timeSistemi time–sharing–sharing
C B
AD
0.00”
0.25”0.75”
0.50”
39
tAA
BB
CC
DD
TimeTime–sharing: diagramma –sharing: diagramma temporaletemporale
ProcessoProcesso Tempo di Tempo di CPUCPU
AA 33
BB 22
CC 44
DD 33
40
La gestione della memoriaLa gestione della memoria
41
La gestione della memoria principale La gestione della memoria principale – 1– 1
La memoria principale……è un “array” di byte indirizzabili singolarmente…è un deposito di dati facilmente accessibile e condiviso tra la CPU ed i dispositivi di I/O
Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria principale:
Tenere traccia di quali parti della memoria sono usate e da chiDecidere quali processi caricare quando diventa disponibile spazio in memoriaAllocare e deallocare lo spazio di memoria quando necessario
Il gestore di memoria “realizza” una macchina virtuale in Il gestore di memoria “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a cui ciascun programma opera come se avesse a disposizione una memoria dedicatadisposizione una memoria dedicata
42
L’organizzazione e la gestione della memoria centrale è uno degli aspetti più critici nel disegno di un SOIl gestore della memoriagestore della memoria è quel modulo del SO incaricato di assegnare la memoria ai task (per eseguire un task è necessario che il suo codice sia caricato in memoria)La complessità del gestore della memoria dipende dal tipo di SONei SO multi–tasking, più programmi possono essere caricati contemporaneamente in memoria
ProblemaProblema: come allocare lo spazio in maniera ottimale
La gestione della memoria principale La gestione della memoria principale – 2– 2
43
Programma AProgramma A
Programma BProgramma B
Programma CProgramma C
Memoria0000x
Allocazione lineareAllocazione lineare
44
Programma AProgramma A
Programma CProgramma C
Memoria0000x
Programma DProgramma DPROBLEMA !!!!PROBLEMA !!!!
FRAMMENTAZIONEFRAMMENTAZIONE
Allocazione lineareAllocazione lineare
45
Programma DProgramma D
Memoria
0000x Programma AProgramma A
Programma AProgramma A
Programma AProgramma A
Programma BProgramma B
Programma BProgramma B
PaginazionePaginazione
46
PaginazionePaginazione
Memoria
0000x Programma AProgramma A
Programma AProgramma A
Programma AProgramma A
Programma DProgramma D
Programma EProgramma E
Programma FProgramma F
Programma FProgramma F
47
Spesso la memoria non è sufficiente per contenere completamente tutto il codice dei processiSi può simularesimulare una memoria più grande tenendo nella memoria di sistema (RAM) solo le parti di codice e dati che servono in quel momentoSi usa il concetto di memoria virtualememoria virtualeI dati e le parti di codice relativi a programmi non in esecuzione possono essere tolti dalla memoria centrale e “parcheggiati” su disco nella cosiddetta area di swaparea di swapI processori moderni sono dotati di meccanismi hardware per facilitare la gestione della memoria virtuale
La memoria virtuale – 1La memoria virtuale – 1
48
Programma DProgramma D
Memoria
0000x Programma A-1Programma A-1
Programma B-1Programma B-1
Programma A-2Programma A-2
Programma A-3Programma A-3
Programma B-2Programma B-2
Swap
La memoria virtuale – 2La memoria virtuale – 2
49
La memoria virtuale – 2La memoria virtuale – 2
Programma DProgramma D
Memoria
0000x Programma A-2Programma A-2
Programma B-1Programma B-1
Programma A-1Programma A-1
Programma A-3Programma A-3
Programma B-2Programma B-2
Swap
50
La gestione della memoria La gestione della memoria secondaria secondaria 1 1
Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, un computer è dotato di memoria secondariamemoria secondaria
In generale, la memoria secondaria è data da hard disk e dischi ottici
Il SO garantisce una visione logica uniforme del processo di memorizzazione:
Astrae dalle caratteristiche fisiche dei dispositivi per definire un’unità di memorizzazione logica il filefileCiascuna periferica viene controllata dal relativo device driver, che nasconde all’utente le caratteristiche fisiche variabili dell’hardware: modalità e velocità di accesso, capacità, velocità di trasferimento
51
La gestione della memoria La gestione della memoria secondaria secondaria 2 2
Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria:
Allocazione dello spazio Gestione dello spazio liberoOrdinamento efficiente delle richieste (disk schedulingdisk scheduling)
52
Il file systemIl file system
53
La gestione del file system – 1La gestione del file system – 1
Un file è l’astrazione informatica di un archivio di datiIl concetto di file è indipendente dal mezzo sul quale viene memorizzato (che ha caratteristiche proprie e propria organizzazione fisica)
Un file system è composto da un insieme di fileIl SO è responsabile delle seguenti attività riguardanti la gestione del file system:
Creazione e cancellazione di fileCreazione e cancellazione di directoryManipolazione di file e directoryCodifica del file system sulla memoria secondaria
54
Il gestore del file systemgestore del file system è il modulo del SO incaricato di gestire le informazioni memorizzate sui dispositivi di memoria di massaIl gestore del file system deve garantire la correttezza e la coerenza delle informazioniNei sistemi multi–utente, fornisce meccanismi di protezione per consentire agli utenti di proteggere i propri dati dall’accesso di altri utenti non autorizzatiLe funzioni tipiche del gestore del file system sono:
Fornire un meccanismo per l’identificazione dei fileFornire metodi opportuni di accesso ai datiRendere trasparente la struttura fisica del supporto di memorizzazioneImplementare meccanismi di protezione dei dati
La gestione del file system – 2La gestione del file system – 2
55
L’insieme gerarchico delle directory e dei file può essere rappresentato attraverso un grafo (un albero nei SO più datati) delle directory
Organizzazione del file systemOrganizzazione del file system
Quasi tutti i SO utilizzano un’organizzazione gerarchicagerarchica del file system
L’elemento utilizzato per raggruppare più file insieme è la directorydirectory
DirectoryDirectory
FileFile
Grafo delle Grafo delle directorydirectory
56
La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O
57
La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O
La gestione dell’I/O richiede:Un’interfaccia comune per la gestione dei device driverdevice driverUn insieme di driver per dispositivi hardware specificiUn sistema di gestione di buffer per il caching delle informazioni
Il gestore dei dispositivi di I/Ogestore dei dispositivi di I/O è il modulo del SO incaricato di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessiDa esso dipende la qualità e il tipo di periferiche riconosciute dal sistemaIl gestore delle periferiche offre all’utente una Il gestore delle periferiche offre all’utente una versione astratta delle periferiche hardware; l’utente versione astratta delle periferiche hardware; l’utente ha a disposizione un insieme di procedure standard di ha a disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una periferica alto livello per leggere/scrivere da/su una periferica che “percepisce” come dedicatache “percepisce” come dedicata
58
Device driverDevice driver
Il controllo dei dispositivi di I/O avviene attraverso speciali moduli software, detti device driverdevice driverI device driver sono spesso realizzati dai produttori dei dispositivi stessi che ne conoscono le caratteristiche fisiche in maniera approfonditaI device driver implementano le seguenti funzioni:
Rendono trasparenti le caratteristiche fisiche tipiche di ogni dispositivoGestiscono la comunicazione dei segnali verso i dispositiviGestiscono i conflitti, nel caso in cui due o più task vogliano accedere contemporaneamente allo stesso dispositivo
59
L’interfaccia utenteL’interfaccia utente
60
L’interfaccia utente – 1L’interfaccia utente – 1
Tutti i SO implementano meccanismi per facilitare l’utilizzo del sistema da parte degli utenti
L’insieme di tali meccanismi di accesso al computer prende il nome di interfaccia utenteinterfaccia utente
Serve per……attivare un programma, terminare un programma, etc.…interagire con le componenti del sistema operativo (gestore dei processi, file system, etc.)
61
L’interfaccia utente – 2L’interfaccia utente – 2
Interfaccia testualeInterfaccia testuale:Interprete dei comandi (shellshell)Esempio: MS–DOSMS–DOS/UNIXUNIX
Interfaccia graficaInterfaccia grafica (a finestre):L’output dei vari programmi viene visualizzato in maniera grafica all’interno di finestreL’utilizzo di grafica rende più intuitivo l’uso del calcolatore
Esempio: WINDOWSWINDOWS/LinuxLinux Differenze:
Cambia il “linguaggio” utilizzato, ma il concetto è lo stessoVi sono però differenze a livello di espressività
62
L’interfaccia graficaL’interfaccia grafica
Realizza la metafora della scrivania (desktopdesktop)Interazione semplice via mouseLe iconeicone rappresentano file, directory, programmi, azioni, etc. I diversi tasti del mouse, posizionato su oggetti differenti, provocano diversi tipi di azione: forniscono informazioni sull’oggetto in questione, eseguono funzioni tipiche dell’oggetto, aprono directory folderfolder, o cartellecartelle, nel gergo GUI (Graphical User InterfaceGraphical User Interface)
63
Protezione e sicurezzaProtezione e sicurezza
64
Protezione e sicurezzaProtezione e sicurezza
ProtezioneProtezione è il meccanismo usato per controllare l’accesso da parte di processi o utenti a risorse del sistema di calcoloSicurezzaSicurezza è il meccanismo di difesa implementato dal sistema per proteggersi da attacchi interni ed esterni
Denialofservice, worm, virus, hackerIn prima istanza, il sistema distingue gli utenti, per determinare chi può fare cosa
L’identità utente (user IDuser ID) include nome dell’utente e numero associato uno per ciascun utenteL’user ID garantisce l’associazione corretta di file e processi all’utente e ne regola la manipolazione L’identificativo di gruppo permette inoltre ad un insieme di utenti di accedere correttamente ad un gruppo di risorse comuni (file e processi)
65
Esempi di Esempi di sistemi operativisistemi operativi
66
Sistemi operativi commercialiSistemi operativi commerciali
In commercio sono presenti una grande quantità di sistemi operativi diversi
In passato, la tendenza delle case costruttrici di sistemi di elaborazione era di sviluppare sistemi operativi proprietari per le loro architetture
La tendenza attuale è quella dello sviluppo di sistemi operativi portabiliportabili su piattaforme diverse
67
DOSDOS: Disk Operating SystemDisk Operating SystemCPU Intel 80x86 (16 bit)MonotaskMonoutenteFile system gerarchicoMemoria gestibile limitata (1 MB/640 KB)Nessuna protezione
MSMS–DOS–DOS
68
CPU Intel (da 80386), ma anche per DEC–AXP, MIPS–R4000, etc.MultitaskMonoutente/MultiutenteNTFS (NT File System)Microkernel, threadSistema a 32/64 bit
Windows/VistaWindows/Vista
69
Nato alla fine degli anni ‘60 (AT&T Bell Labs)Rimasto all’avanguardia perchè sviluppato in ambito universitario (UCB, University of California at Berkeley)MultitaskMultiutenteOttima integrazione in retePortabilità dei programmi
UNIXUNIX
70
LinuxLinux
Nato nel ‘91, grazie a Linus Torvalds, uno studente finlandese dell’Università di HelsinkiSviluppato su piattaforma Intel 80386, fu distribuito da subito su Internet (freefree e openopen––sourcesource)MultitaskMultiutenteL'architettura del sistema è Unix–like: un kernel molto “piccolo” che contiene solo funzioni fondamentali per la gestione delle risorse del computer (memoria, dischi, rete e altre periferiche) ed una larga collezione di programmi applicativi che l’utente usa per operare sul sistema