La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente.

Presentazioni simili


Presentazione sul tema: "Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente."— Transcript della presentazione:

1 Il sistema operativo

2 Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente per lesecuzione dei programmi. Un sistema operativo viene caricato nella memoria RAM allaccensione della macchina (programma di boot) e rimane attivo fino allo spegnimento.

3 Sistema operativo Il sistema operativo: è un insieme di moduli software; controlla le risorse hardware del sistema; mette a disposizione dellutente una macchina virtuale, in grado di eseguire comandi dati dallutente, utilizzando la macchina reale.

4 Sistema operativo Il sistema operativo:presenta allutente una macchina virtuale che nasconde tutti i dettagli hardware che sarebbero troppo complicati da gestire per la maggior parte degli utenti.

5 Sistema operativo Le richieste dell'utente al SO, fatte digitando dei comandi nelle interfacce a carattere o selezionando oggetti con il mouse nelle interfacce grafiche (Graphic User Interface), sono intercettate dall'interprete dei comandi (shell), il quale attiva i moduli programma che agiscono nei componenti del nucleo (kernel). Questi attivano i dispositivi hardware quali il processore, la memoria, i controller di I/O, ecc., che svolgono la richiesta dell'utente.

6 Sistema operativo E uno strato software che opera direttamente sullhardware Isola gli utenti dai dettagli dellhardware E organizzato a strati: Architettura a buccia di cipolla Ogni strato costituisce una macchina virtuale Programmi utente Interprete comandi attivazione programmi dutente o di sistema File system controllo e gestione degli accessi a file Gestione delle periferiche gestione di ingresso/uscita da periferica Gestione della memoria allocazione e gestione della memoria Gestione dei processi (nucleo) gestione dei processi e delle interruzioni Macchina fisica Kernel

7 Funzioni del sistema operativo Il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi Il gestore dei processi è responsabile dellesecuzione dei programmi da parte dellunità di elaborazione Il gestore dellinput/output (drivers) sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche Il file system è responsabile della gestione dei file in memoria di massa Linterprete dei comandi consente allutente di attivare i programmi da una interfaccia grafica o testuale (GUI o Shell)

8 Cosè un processo Un processo è unattività, controllata da un programma E un entità dinamica che rappresenta lesecuzione del programma In un sistema multitasking possono essere avviati molti processi contemporaneamente Per lavanzamento di un processo è necessaria lassegnazione di un processore Dato che i processi si alternano nellesecuzione,possiamo dire che generalmente lavanzamento di un processo avviene in maniera discontinua

9 Gestione dei processi Caratteristiche Interazione diretta con lHardware Esecuzione dei programmi come processi Lo strato del gestore dei processi offre agli strati superiori una macchina virtuale in cui ciascun programma opera come se avesse a disposizione ununità di elaborazione dedicata

10 Gestione dei processi I processi hanno in memoria sempre aree dati disgiunte (sebbene possano, a richiesta, condividere parte dei dati oppure scambiarsi dei messaggi tra di loro).

11 Massimizzare luso della CPU. Massimizzare il numero di processi eseguiti nellunità di tempo. Minimizzare il tempo di risposta. Obiettivi

12 Contesto allistante t : istruzione da eseguire (indirizzo in RAM: PC, IR) contenuto dei registri dati del processore il processo rappresenta lo stato di avanzamento del programma istante per istante. I Processi

13 Processi Concorrenti Processi Concorrenti Nei sistemi attuali sono in esecuzione più processi contemporaneamente. (multitasking) La CPU esegue comunque una sola istruzione per volta. Il S.O. gestisce lavvicendamento dei processi in esecuzione: assegna la CPU ai vari processi istante dopo istante. Scheduler: parte del S.O. che si occupa della gestione dei processi e dei processori

14 Si usa la tecnica dei quanti di tempo es: 3 programmi attivi Prog1, Prog2, Prog3 vengono mandati in esecuzione ciclicamente Quanto ms Eseguo Prog1 Eseguo Prog2 Eseguo Prog3 Clock orologio interno Eseguo Prog1 Interruzione : il SO riprende il controllo e decide chi eseguire nel quanto successivo Esempio di S.O. Multi-tasking : time-sharing

15 Gli stati di un processo I processi appena creati si mettono in stato di pronto Il S.O. decide quale processo pronto eseguire (pronto esecuzione) Il S.O. assegna il processore ad un processo per un intervallo (quanto) di tempo Lassegnazione di un processo al processore tiene conto della coda dei processi pronti e della priorita dei processi

16 Gli stati di un processo Nuovo: il processo viene creato In esecuzione: assegnato al processore ed eseguito da esso Pronto: può andare in esecuzione, se il gestore dei processi lo decide In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto Terminato: il processo ha terminato lesecuzione, ma non è stato ancora fisicamente cancellato dalla memoria centrale. Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto Termine processo: -Fine quanto di tempo -Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore Nuovo

17 Il ciclo di vita dei processi 1 Un processo può anche essere sospeso dal nucleo (running ready), dopo un dato intervallo temporale, per garantire a tutti i processi un uso paritario della CPU: lo scheduler sceglie quale fra i processi pronti mandare in esecuzione Ogni nuovo processo entra nel sistema accedendo alla ready queue (new ready), e va in esecuzione (ready running) quando viene selezionato dallo scheduler Un processo attivo può essere arrestato per un interrupt esterno (running ready)

18 Il ciclo di vita dei processi 2 Anche uninterruzione interna può causare larresto di un processo (running waiting) Viceversa, il verificarsi dellevento atteso da un processo fa sì che esso passi dallo stato di attesa allo stato di pronto (waiting ready) aborted Infine, un processo in esecuzione può terminare regolarmente, o essere interrotto e terminato forzatamente dal nucleo (aborted ) per il verificarsi di un errore Lo scheduler seleziona un nuovo processo dalla coda dei processi ready

19 Cambiamento di contesto Contesto: insieme delle informazioni che caratterizzano lo stato di un processo Se il processo è fisicamente in esecuzione parte del contesto si trova nei registri della CPU (Program Counter, registri utente) Se il processo non è in esecuzione il contesto è in memoria. Cambiamento di contesto (context switch): operazione che avviene quando il sistema operativo decide di mandare in esecuzione un altro processo Il sistema operativo deve salvare tutte le informazioni necessarie a ripristinare esattamente lo stato del processo in esecuzione nel futuro.

20 Context Switch della CPU da processo a processo

21 Dispatcher Divide il tempo in quanti (< 50 millisec.) Da un quanto ad ogni processo, uno alla volta Alla fine del quanto, segnale che passa la CPU ad un altro processo pronto Prima di passare al prossimo processo, la CPU esegue il programma di gestione delle interruzioni Aggiorna la tabella dei processi Salva lo stato (registri, celle di M,...) Sceglie un altro processo dalla tabella ……..

22 Transizioni tra stati di un processo In esecuzione pronti Coda ordinata in attesa della CPU In attesa Insieme in attesa di eventi schedulazione richiesta di I/O conclusione I/O fine tempo oppure evento esterno

23 Gestione informazione sui processi Il S.O. mantiene linformazione relativa a tutti i processi attivi (non terminati) nella tabella dei processi (PCB, Process Control Block). Per ogni processo la PCB contiene un certo numero di informazioni. La tabella dei processi è in ogni istante caricata interamente in RAM.

24 La tabella dei processi (PCB) Per ogni processo attivo: PID: Process Identifier Program Counter Stato corrente (Execute, Ready, Blocked) Contenuto dei registri Priorità …...

25 Scheduling della CPU 1 Oltre ad arrestarsi a causa delle interruzioni, il processo attivo può venire arrestato dautorità dallo scheduler Lo scheduler ha come obiettivo quello di far eseguire ciascun processo utente entro un tempo approssimativamente proporzionale alla sua complessità, effettuando una ripartizione equa della risorsa CPU Criteri di scheduling: Utilizzo di CPU Utilizzo di CPU la CPU deve essere più attiva possibile Throughput Throughput numero di processi completati nellunità di tempo Tempo di turnaround Tempo di turnaround tempo di esecuzione di un processo Tempo di attesa Tempo di attesa tempo di attesa del processo nella ready queue Tempo di risposta Tempo di risposta tempo che intercorre tra la sottomissione di una richiesta e la prima risposta prodotta { { min max

26 Scheduling dei processi È lattività mediante la quale il sistema operativo effettua delle scelte per ottimizzare lesecuzione dei processi, riguardo : al caricamento in memoria centrale allassegnazione del processore ai processi

27 Tre diversi livelli di scheduling: Scheduling a breve termine o Sceglie tra i processi pronti quello a cui assegnare il processore o Interviene quando il processo in esecuzione perde il controllo del processore. Scheduling a medio termine (Swapping) o trasferimento temporaneo in memoria secondaria di processi o Memoria principale inferiore alla somma delle richieste dei vari processi Scheduling a lungo termine o Sceglie nella memoria secondaria quali programmi caricare in memoria centrale o Controlla il grado di multiprogrammazione

28 Scheduling nei sistemi Batch Tre livelli di scheduling

29 Short-term Scheduling Lo Scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione Lalgoritmo di scheduling ha impatto su: efficienza nellutilizzo delle risorse della macchina prestazioni percepite dagli utenti Lo scheduling ha obiettivi diversi in diversi sistemi (batch, interattivi, time sharing, ….)

30 Obiettivi dello Scheduling Obiettivi principali degli algoritmi di scheduling: Fairness (Equità) - processi della stesso tipo devono avere trattamenti simili ==> In particolare: evitare lattesa indefinita Balance (Bilanciamento) - tutte le parti del sistema (CPU, dispositivi …) devono essere utilizate al massimo Throughput - massimizzare il numero di job completati in un intervallo di tempo Turnaround time - minimizzare il tempo di permanenza di un job nel sistema Tempo di risposta - minimizzare il tempo di riposta agli eventi Proporzionalità - assicurare un tempo di risposta proporzionale alla complessità dellazione

31 Short-term Scheduling Scheduling con prerilascio (preemptive) lo scheduler può intervenire ogni volta che è necessario per ottenere gli obiettivi perseguiti o quando diventa pronto un processo a più alta priorità rispetto a quello in esecuzione o quando il processo in esecuzione ha sfruttato la CPU tutto il quanto di tempo consentito Scheduling senza prerilascio (non preemptive) lo scheduler interviene solo quando un processo viene creato, oppure termina, oppure si blocca per effetto di un errore o di un evento esterno

32 Short-term Scheduling Due tipologie di processi : processi CPU-bound -- lunghi periodi di elaborazione fra due richieste successive di I/O processi I/O-bound -- brevi periodi di elaborazione fra due richieste successive di I/O A seconda degli obiettivi del Sistema Operativo, le politiche possono privilegiare i processi delluna o dellaltra tipologia.

33 Lungo burst di CPU Attesa completamento I/O Corto burst di CPU tempo P1 P2 Processi CPU bound (P1) e I/O bound (P2) In esecuzione In attesa

34 Round robin Round robin : la politica di scheduling più semplice, che consiste nel garantire la rotazione nellesecuzione dei processi quanto Lo scheduler assegna la CPU ad un processo per un quanto di tempo Quando il quanto di tempo termina, il processo in esecuzione viene interrotto e ritorna nella ready queue Per realizzare lalternanza fra processi, lo scheduler gestisce la ready queue in modo tale da assegnare il processore al primo processo in coda che, quando esaurisce il suo quanto, viene posto alla fine della coda Alla fine della coda si inseriscono anche i processi che passano dallo stato di attesa allo stato di pronto Politiche di Scheduling della CPU

35 Politica Round Robin A esaurisce il quanto di tempo In Esecuzione Coda Pronti Primo E C A B D In Esecuzione Coda Pronti Primo A D B C E A passa in esecuzione Propriet à : – Tempo di risposta massimo (limite superiore) = (Numero Proc Pronti)*(Quanto di Tempo) – Proporzionalit à tempo di Turnaround proporzionale a lunghezza del lavoro

36 Politica Round Robin Esaurimento del quanto di tempo segnalato dal timer del processore - Linterruzione del timer provoca lattivazione dello scheduler - Al termine del suo intervento, lo scheduler carica il timer con un nuovo quanto di tempo Lo scheduler interviene anche quando il processo in esecuzione si sospende prima della scadenza del quanto di tempo - lo scheduler riassegna il processore e carica il timer con un nuovo quanto di tempo Come fissare il quanto di tempo - deve essere abbastanza lungo da ammortizzare il costo di un context switch deve - essere abbastanza breve da permettere una risposta veloce agli utenti interattivi - in sistemi reali tipicamente ms RR non favorisce i processi I/O bound

37 Scheduling con politica FIFO I processi non hanno priorità La coda dei processi pronti è una coda FIFO La politica non prevede prerilascio ==> lo scheduler interviene solo quando il processo in esecuzione si blocca per effetto di un errore, di un evento esterno oppure termina Ad ogni intervento, lo scheduler assegna il processore al primo dei processi pronti Non esiste possibilit à di attesa indefinita (stallo o deadlock) Se sono presenti processi CPU-bound e processi I/O-bound, la politica FIFO penalizza i processi I/O-bound (aumentando il tempo di turnaround)

38 FIFO, senza prerilascio tempo P1 P2 Processi CPU bound (P1) e I/O bound (P2) In esecuzione In attesa pronto

39 P1 P2 Priorità a I/O bound tempo Processi CPU bound (P1) e I/O bound (P2) In esecuzione In attesa pronto

40 Scheduling con priorità Ogni processo ha una priorità Ogni volta va in esecuzione il processo a priorità più elevata Criteri di assegnazione della priorit à ?? >> Per esempio: politica Shortest Job First (SJF) Punti chiave Priorit à statica ==> Possibilit à di attesa indefinita per i processi a priorità più bassa Priorit à dinamica ==> strategia di assegnazione della priorit à ? per esempio: priorit à maggiore ai processi I/O bound, ma come individuare i processi I/O bound?

41 Scheduling con priorità Molte strategie per il calcolo dinamico della priorità: Priorit à crescente nel tempo per i processi che rimangono in stato di pronto. Obiettivo: impedire attesa indefinita Incremento di priorit à quando i processi vengono riattivati. Obiettivo: tempo di risposta Priorit à legata alla percentuale f del quanto di tempo che è stato consumato lultima volta che il processo è andato in esecuzione (es. proporzionale a 1/ f ). Obiettivo: favorire processi I/O bound

42 Politica SJF Scheduling con politica Shortest Job First (SJF) ==> privilegia il job più corto Ipotesi: linsieme dei job da schedulare è noto allinizio si conosce il tempo di esecuzione T di ogni job Politica: i job sono schedulati in ordine di T crescente non cè prerilascio Propriet à : SJF minimizza il tempo medio di turnaround

43 Sincronizzazione dei processi A volte, i processi devono sincronizzarsi, ovvero coordinare le loro attività Il coordinamento sequenziale: un processo termina invocando lattivazione di un altro processo La competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica)

44 Fine

45 Cambiamento di contesto (context switch) -Il processo A è in esecuzione - A viene sostituito dal processo B -tutti i dati del processo A, in particolare il Program Counter, vengono salvati Ripristino del contesto Quando il processo A torna in esecuzione riprende dai dati precedentemente salvati Commutazione del contesto

46 Sistema operativo Per descrivere gli stati del processo e per gestire le commutazioni di contesto subite dal processo, al processo va associata unopportuna struttura dati, chiamata area dati di nucleo (process control block- PCB). Larea dati di nucleo del processo è creata e gestita direttamente dal sistema operativo; non è direttamente visibile da parte del processo.

47

48 Classificazione dei SO In base alla modalita di gestione dei programmi: Monoprogrammazione (esegue un solo programma alla volta) Multiprogrammazione (esegue piu programmi apparentemente conteporaneamente, in realta in time- sharing, suddividendo il tempo di esecuzione in intervalli molto piccoli e assegnando a turno le risorse ai diversi programmi) In base al tipo di accesso fornito agli utenti: Monoutente (un solo utente puo usare la macchina) Multiutente (piu utenti possono contemporaneamente interagire con la stessa macchina)

49 Classificazione dei SO I concetti di mono e multi-programmazione sono indipendenti sa quelli di SO mono e multi-utente I SO attuali operano tutti in multiprogrammazione Windows nasce come sistema monoutente, anche se le versioni evolute (NT, 2000, XP) hanno alcune funzioni che possono essere utilizzate in modo concorrente da piu utenti contemporaneamente UNIX e un sistema multiutente che opera in multiprogrammazione

50 Classificazione dei SO In base al tipo di schell utilizzato: Shell alfanumerici (MS-DOS, UNIX, …) i comandi vengono inseriti come stringhe di caratteri e impartiti tramite la tastiera Shell grafici - Graphic User Interface (GUI) i comandi e gli oggetti vengono rappresentati in modo grafico e possono essere impartiti, eseguiti o manipolati attraverso luso congiunto di mouse e tastiera

51 Sistema operativo Quando si parla di multiprogrammazione si parla anche di time sharing: il sistema operativo che fa sì che le risorse del calcolatore siano assegnate per prefissati intervalli di tempo, in successione, ai diversi programmi: gli intervalli di tempo possono essere più o meno lunghi luno rispetto allaltro, a seconda della priorità di cui gode il programma che l'utente utilizza, ma comunque sono di brevissima durata.

52 Sistema operativo in time sharing Permette la condivisione della CPU tra più processi Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CPU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione.

53 Sistema operativo - scheduling

54 Sistema operativo e macchine reali

55 Sistema operativo Lo schedulatore (scheduler) è la componente del sistema operativo che si occupa di spostare i processi tra le varie code di attesa.

56 Gestione della memoria centrale Il sistema operativo permette lesecuzione contemporanea di più processi e tutti i processi pronti dovrebbero avere tutto il programma o almeno le prossime istruzioni caricate nella memoria. Se lo spazio totale occupato dai processi supera la dimensione della memoria centrale, non tutti i processi possono risiedere per intero nella memoria centrale Normalmente la quantità di memoria non è sufficiente a contenere tutti le istruzioni e tutti i dati di tutti i processi gestiti.

57 Gestione della memoria centrale La memoria deve essere gestita con molta attenzione ed efficienza caricando solo i dati e le istruzioni che devono essere modificate ed eseguite. Le altre parti devono essere spostate sul disco per poter essere caricate quando necessario. La memoria virtuale e un sistema per aumentare lo spazio di memoria disponibile

58 Gestione della memoria centrale Partizionamento della memoria e del suo spazio di indirizzi. Tecniche di partizionamento: Segmentazione: suddivide la memoria centrale in segmenti di lunghezza variabili contenenti parti di un programma logicamente correlati tra di loro Paginazione: suddivide memoria e programmi in pagine di lunghezza fissa; i programmi vengono caricati in memoria anche in pagine non contigue NON sono tecniche alternative. Spesso sono applicate contemporaneamente Sia nel caso della partizione, sia in quello della segmentazione, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale

59 Gestione della memoria centrale Ad ogni processo viene assegnata nella fase di partenza una tabella detta tabella delle pagine dove per ogni pagina usata dal processo viene scritto dove si trova la pagina fisica. La memoria virtuale è maggiore di quella fisica La gestione della memoria è coordinata con la gestione dei processi

60 File System – il gestore dei file Un file è un insieme di dati omogenei fra loro e raggruppati ai fini di archiviazione, di successiva elaborazione o di esecuzione. Possono contenere dati (file dati), programmi in linguaggio macchina (file eseguibili) o sequenze di comandi del sistema operativo (script o file batch). Un sistema operativo fornisce dei formati standard con cui organizzare i dati nella memoria di massa e i comandi per manipolare i file (file system). Ogni file è caratterizzato da un nome e da una estensione, che serve ad identificarne il tipo. Es. i file eseguibili sotto MSDOS/Windows hanno estensione.EXE, quindi il file prova.exe è un file che contiene codice direttamente eseguibile dalla CPU.

61 File System – il gestore dei file L'oggetto elementare su cui opera il file system è il FILE, ossia una raccolta di dati registrati su memoria di massa (il file è visto dal SO come una sequenza di byte) Tipi di file: testo (ASCII): una sequenza di caratteri, ad esempio un programma sorgente (es. in linguaggio C) o un editor di testo semplice binari: una sequenza di byte eseguibili (programmi) e non eseguibili (es. immagini, documenti creati con word processor)

62 File System – il gestore dei file Sul disco rigido i file sono organizzati in modo gerarchico e possono essere inseriti in opportuni contenitori (cartelle o directory: sono anchessi file! Una directory contiene una lista dei nomi e attributi dei file e directory al suo interno). Il disco può essere considerato come un archivio che contiene varie cartelle. Ogni cartella contiene documenti (file) o altre cartelle, che a loro volta contengono file o cartelle, realizzando una struttura ad albero. Ogni file è quindi identificato da un percorso, che rappresenta la sequenza delle cartelle che bisogna aprire per raggiungerlo.

63 File System – il gestore dei file Il percorso di un file individua le directory che devono essere percorse per raggiungere quella che contiene il file. Il percorso e il nome del file individuano loggetto e ne specificano la collocazione nella struttura gerarchica: c:/Didat/esami/iscrmar.doc

64 File System – il gestore dei file Funzioni principali: Creazione di file Copiatura di file Spostamento (da una cartella ad unaltra) di file Ridenominazione di file Cancellazione di file Strutturazione dei dischi (e dei nastri) come insiemi di file.... Per ognuna di queste operazioni esiste un opportuno comando (interfaccia utente alfanumerica) o una azione corrispondente con mouse e tastiera (GUI).

65 Gestione delle periferiche Funzioni principali: Indirizzamento dei segnali da e verso le periferiche Sincronizzazione delle periferiche Gestione del sistema di Ingresso/Uscita Sistema di tamponamento dei flussi di dati (buffer- caching). Interfaccia generale per i programmi di controllo (driver) delle periferiche (device). Collezione di programmi di controllo (driver) specifici per le varie periferiche (device) collegabili al calcolatore.

66 Driver - Gestione delle periferiche I driver sono meccanismi software cui è affidato il compito di comunicare dati da e verso le periferiche Garantiscono ai programmi che li usano una visione di alto livello E possibile leggere o scrivere tramite primitive indipendenti dalla struttura hardware delle periferiche Si distingue fra: Driver fisici (hardware). Vengono attivati direttamente dal gestore delle interruzioni Driver logici (software). Fanno parte del sistema operativo e forniscono una gerarchia di operazioni, con unorganizzazione a strati

67 Gli stati di un processo Un processo in esecuzione passa in stato di attesa se: Richiede operazioni di I/O (interruzione interna) e per non lasciare il sistema inattivo, il processo attivo viene interrotto e posto in stato di attesa Si verificano richieste di interruzioni esterne Se il tempo allocato al processo e scaduto; il processore cerca di garantire un uso equo della CPU a tutti i processi; il nucleo interrompe lesecuzione del processo attivo per non penalizzare gli altri processi esistenti; quando il processo torna in stato attivo prosegue con lelaborazione dellistruzione successiva a quella su cui era stato precedentemente interrotto al termine delle propria esecuzione ed è rimosso dallelenco dei processi esistenti


Scaricare ppt "Il sistema operativo. Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente."

Presentazioni simili


Annunci Google