Sei sulla pagina 1di 21
CHE COS’E UN SISTEMA OPERATIVO UI sistema operativo (SO) un insieme di programmi che governa e controlla I'uso delle componenti del sistema di elaborazione permettendo allutente un uso trasparente ed efficace delle risorse disponit ORGA AZIO Con il termine risorsa si intende un elemento che pud essere hardware (CPU, me- moria centrale) 0 software (dati, programmi). ey ‘Molt studentiavranno gia fruito dei servizi messi a disposizione dai sistemi opera- tivi atcualmente pit diffusi su PC (Windows, Linux). Tramie questi sistemi opera- tivi hanno potuto utilizzare le varie componenti hardware del sistema senza averne una conoscenza approfondita.Infatti é stato possibile caricare in memoria centrale il programma da eseguite, attivare la CPU, rchiedere la letcura di un dato memoriz- zato su memoria di massa, effertuare delle stampe. € il sistema operativo che si preoccupa di effettuare queste operazioni,frapponendosi tra larichiesta dell'ucente hardware della machina (figura 1). 7 Urente 1 Urente2 —Utente3_—Urenteé Non sempre l'utente conosce I'hardware della stampante, ma conosce i comandi specifici per farlalavorare: pud non sapere se tratta di una stampante ad aghi oppure 5 a laser, se lavorain rete 0 in locale, ma sa che per stampare il contenuto di un file basta dare un comando al sistema. bY Cee ea Rows npogunm spt ainademecontanoce’” — GESTIONE DELLE RISORSE ems ope Un’altra funzione del sistema operativo é quella di ripartire una risorsa che é fisica- mente limitata (una sola CPU, la memoria centrale che ha una dimensione ben de- finita) fra le tante richieste possibili. Queste funzioni sono espletate tramite le po- litiche di gestione che definiscono le norme per la gestione razionale delle risorse. Linsegnante possiede un libro che vuole regalare a uno studente della classe. Deve decidere quale sara la regola da seguire avendo una risorsa limitata (un solo libro) ma tante richieste (gl studenti della classe). ‘Una regola per ripartte la risorsa potrebbe essere: © regalare il libro allo studente pid bravo; © regalare il libro allo studente pid bravo i ‘ regalare il libro allo studente pia bisognoso. Scegliendo, fra quelle possibili, la regola che pud risolvere meglio il problema (politica di gestione), tutte le volte che ci si trovera in quella situazione, seguendo la regola si risolvera il problema. SEZIONE F + SISTEM! OPERATIVE Il precedente esempio aiuta a comprendere meglio il problema, LE FUNZIONI Sistema operativo Gestione Ricapitolando possiamo affermare che un sistema operativo: Programmi appliativi + funziona come interfaccia tra utente e hardware della machina in modo che l'utente non debba interagire as direttamente con lelaboratore; aan + gestisce le risorse del sistema (CPU, memoria centrale, centrale Informazioni periferiche, informazioni) rispettando le politiche di ge stione (figura 2), VINTERFACCIA O SHELL Un moderno sistema operativo é in grado di gestre migliaia di tipi diversi di hardware, presentando sempre la stessa interfaccia agli applicativi Linterfaccia @ quella parte del SO che permette all utente di utilizzare il computer, cio’ di richiederne i servizi Le interfacce dei sistemi operativi possono avere caratteristiche molto diverse, an che se il loro compito rimane sempre quello di identificare la richiesta effertuaca dallutente e gli eventuali parametri a essa associat. Si possono distinguere tre ap procci possibili basatisull'uso di menu, comandi e icone. Le interface inizialmente pitt usate sono state quelle a linea di comando, che presentano una linea evidenziata da un prompt, in cui si dovevano digitare i comandi del linguaggio di controllo dello specifico linguaggio, come per il DOS. | comandi hanno una loro sintassi ben definita che viene usata da un modulo del sistema operativo, chiamato interprete dei comandi; tale modulo analizza ogni comando ed esegue le azioni richieste (figura 3). toasters eet cart a ii een Nelle interface basate sull'uso di menu, utente non deve ricordare i nomi dei di versi programmi che intende eseguire poiché ogni menu che appare sullo schermo include un elenco di funzioni (0 classi di funzioni) eseguibilie per ognuna si fornisce una breve descrizione e il nome del tasto da premere per richiederne lesecuzione. 503 Figura 2 Il sistema operatvo come gestore di risorse Figura 3 Sistema operative DOS Figura 4 sistema operative Windows ‘Artualmente le interfacce pid diffuse sono quelle grafiche, le GUI (Graphical User Interface) semplici eadatte per utenti inespert.Sfruttano la metafora del desktop, cio’ della scrivania, su cui compaiono applicativi e programmi di uso frequente. Grazie al mouse si possono utilizzare: icone, che rappresentano gli oggett pili co- muni come le applicazionie il cestino; barre degli strumenti, contenenti una serie di pulsanti per eseguire in modo rapido alcune operazioni; finestre, che conten- gono applicazioni o document; finestre di dialogo, per consentire all’utente di seguire percorsi guidatie interagire con una determinata procedura. I primo sistema operativo commerciale con interfaccia graica é stato messoa punto per i personal computer Macintosh della Apple negli anni Ottanta, Oggi le interfacce grafiche sono diventate uno standard peri sstemi operativi dei personal computer e sono molto usate, oltre che nei sistemi operativi MacOS della ‘Apple, anche in quell di tipo Unix e in quel della famiglia Microsoft Windows. I moderni sister operativi usano interface sempre pit amichevoli (user friendly), ma se ci si ova in difficolta si pud consultare la guida inea, che da indicazioni sulle principali procedure e sui comandi (figura 4 e figura 5). ra 5 Sena operat Linx * FISSA LE TUE CONOSCENZE 41 Che cosé un sistema operativo? 3. Spiega la differenza tra umvinterfacciaa linea 2 Che cosa significa che un sistema operativo dicomando ea menu. agestisce le risorse? 4 Descrivi gli elementi caratteristici di una GUL Su quale metafora si basano? SEZIONE F + SISTEM! OPERATIVI SUS UAL TTI DI UN SISTEMA ee Figura 1 Machina virtuale HARDWARE LE MACCHINE VIRTUALI La presenza del sistema operativo rende pid semplice lavorare con il calcolatore in quanto fornisce un‘immagine astratta di tutte le risorse disponibili, indipendente- mente da come queste funzionino. Lutente lavora con una machina virtuale pitt semplice da gestire, formata da hardware e un sistema operativo (figura 1). | programmi che compongono il sistema operativo sono suddivisi in livelli di tipo gerarchico. | moduli del lvello pit basso si appoggiano direttamente sull hardware dell’elaboratore e costituiscono la pili semplice macchina virtuale. | moduli di livello pitt alto possono richiamare solo moduli definiti nei lveli inferior: cosi i moduli dei livelli superiori non colloquiano con |'hardware bensi con la macchina virtuale definita nel livello pit basso. Questo significa che macchine costruite su unita central diverse non possono ave- re gli stessi moduli del livello pitt basso. Con riferimento a una situazione come quella illustrata nella figura 2 si pud notare che la sostituzione dei moduli M1 e M2 sufficiente per far si che il sistema possa essere portato su altre machine. Infatti M3, M4 e MS non vedono direttamente hardware e non risentono quindi del fatto che é cambiato. Essi faranno riferimento ai nuovi moduli M1 e M2 e non devono percid essere modifica. LA PORTABILITA Il grado di portabilta di un sistema operativo indica la possibi- lita di utilizzare il sistema operativo su macchine con hardware diverso. Esso é tanto maggiore quanto minore @ il costo delle modifiche necessarie, Per esempio, se il sistema operativo @ modulare, i costi che si devono sostenere per spostarlo da una machina allaltra sono contenuti, perché @ sufficiente modificare solo i moduli che interagiscono con I'hardware. In questo caso quindi il grado di portabilia@ tanto maggiore quanto minore é il costo delle modifiche da apportare. LA STRUTTURA E LE MODALITA DI FUNZIONAMENTO # % La scruttura del sistema operativo @ basata sulle machine vir- he f% Figura 2 Modul et SO tual che sono generate a partire dallhardware e che soddisfa- noi seguenti requisti: + risolvere il problema deliutilizzo delle varie risorse da par- Ms te dei moduli dei ivelisuperiori; ‘+ moltiplicare il numero dei dispositivi disponibili in modo da soddisfare pits richieste di quelle che il sistema potreb- be soddisfare Il sistema operative pud quindi essere suddiviso in livell in modo che ogni livello possa usare per la sua esecuzione solo le risorse disponibili nei livelli pid intern. UNITA 13 « 1 sisTeM! OPERATIV! sas Figura 3 Modelo a bucia pala Questo modelio, detto modello a buccia di cipolla (figura 3), rappre- senta il sistema operativo come una serie di strati costruiti sopra "hardwa- re, costituenticiascuno un modulo. Parcendo dalfinterno e andando verso Festerno, possiamo individuare, per il sistema operativo, i seguenti livelli 1. il nucleo; 2. il gestore della memoria; 3. il gestore delle periferiche; 4. il gestore delle informazioni II nucleo contiene le procedure di gestione della CPU e i programmi di risposta alle interruzioni. € il livello pitt vicino alla macchina e dipende dall’hardware. Il gestore della memoria contiene tutte le routine per gestire Forganizzazione della memoria centrale e operare sui singoli indirizzi delle celle di memoria. Il gestore delle periferiche contiene tutt! i programmi per gestire le singole peri- feriche e assegnare i vari dispositivi ai singoli processi che lirichiedono. Ul gestore delle informazioni contiene i programmi di gestione dei file (il fle system), che permettono all'ucente di non preoccuparsi delle problematiche della reale allocazione dei file su supporto magnetico. CARICAMENTO Esistono molt tipi di sistemi operativi con differenti caratteristiche e funzioni: le routine che li costituiscono perd sono sempre programmi eseguibili dalla CPU e come tali devono essere allocatiin memoria centrale (zona dati e zona istruzioni) Non tutti i programmi che costituiscono il sistema operativo possono risiedere contemporaneamente in memoria centrale, perché ne occuperebbero troppa, a danno dei programmi applicativi solo il nucleo o kernel del sistema operativo (cio8 quei programmi che sono indispensabili peril funzionamento della mac china) @ sempre residente in memoria centrale; gli altri moduli risiedono normal- mente in memoria di massa e sono portati in memoria centrale al momento del loro utilizzo. Ogni volta che si accende il computer il nucleo del SO viene caricato, mediante il bootstrap, in memoria RAM. Il bootstrap serve per la partenza iniziale del sisterna: quando si awvia il sistema, la CPU esegue il programma di bootstrap che ha i! compito di controllare il funzionamento delle varie component e di caricare dalla memoria di massa alla memoria centrale un altro programma detto IPL (Initial Program Loading). LIPL carica in memoria centrale il nucleo del sistema operativo, cio? quella parte che deve sempre risiedere nella memoria centrale, e provvede inoltre a inizializzare tutte le structure dati necessarie ai moduli del sistema operativo. Terminate queste operazioni, il sistema attende i comandi da parte degli utenti. SEZIONE F + SISTEM! OPERATIVI ‘506 RSS a ec Figura 2Struttra della memoria ‘centrale in un sistema in mult programmazione LE VARIE TIPOLOGIE | sistemi operativi possono essere classificati in due modi, in base alla gestione della memoria centrale: + isisemiin monoprogrammazione, + sistem in multiprogrammazione. | SISTEM IN MONOPROGRAMMAZIONE Un sistema si dice in monoprogrammazione quando la memoria centrale contiene un unico programma utente (figura 1). ‘Figura 1 Sirutura della memoria centrale in un sistema in mono- ‘rogrammazione | programmi che richiedono fesecuzione vengono accettati uno alla volta; durante Fesecuzione di un programma utente, la CPU svolge una delle seguenti ativita + esecuzione di icruzione del programma utente (tempo utente); + esecuzione di istruzioni del SO (tempo di sistema); + inattivita (attesa di 1/0). Ul empo di inactivita della CPU pud essere molto grande, perché la differenza di velo- itd di lavoro della CPU & maggiore di quella delle unita di /O. | SISTEMI IN MULTIPROGRAMMAZIONE | sistemi operativi operano generalmente in multiprogrammazione, cio’ permettono di allocare in memoria centrale pi programmi utente e di ripartire fra questi uso delle risorse (figura 2). Quando un programma che impiega la CPU richiede unioperazione di I/O, cio® uso di una periferica (disco, stampante, ecc),lelaborazione viene sospesa in attesa che termini t1/O. Il processore,invece di attendere inattivo la fine delloperazione, viene assegnato a un altro lavoro. Lesecuzione del programma sospeso (quando sara terminata toperazione di /O) potra riprendere in un secondo momento quandb il lavoro successivo & terminato O tichiede anchresso un‘operazione di /O. Dallesterno si ha Fimpressione che pitt programmi vengano eseguiti contempora- rneamente in real, essendoci una sola CPU, un solo programma utente risulta in esecuzione in un certo momento. UNITA 13 6 1 SisTeMI OPERATIVI “S87 0 Fine 1/0 Figura 3 Grafco det utliz0 della (CPU in monoprogrammazione Ses eg 3 gee OS = as z Figura 4 Grafco de uiizo della (CPU in mutiprogrammarione Nella figura 3 viene illustrato il grafico del uilizzo della CPU rispetto al tempo in un sistema monoprogrammato e nella figura 4 in un sistema multipro- Tempo grammato. Per rendere indipendente la CPU dalfacivta di ingresso e uscita dei dat, € quindi per poter realizzare la multi- programmazione, sono stati introdotti glielaboratori di canale, piccolielabo- rator in grado di eseguire le operazioni di trasferimento dei dati fra la memo- ria centrale e le periferiche, e viceversa. uo ae ee & Tempo sees s Quando il programma in esecuzione ri- “eg chiede unoperazione di I/O, la CPU av- verte lelaboratore di canale che occorre la sua collaborazione e, mentreilcanale esegue loperazione richiesta, la CPU é lbera di essere assegnataa un altro programma che gi sitrova in memoria centrale. Un particolare caso di multiprogrammazione & multitasking attualmente diffuso in cutiisistemi operativ, esso permette al sistema di elaborare pit: applicazioni (chiamate appunto task) contemporaneamente. 1 SISTEMI IN TIME-SHARING La soluzione di un sistema operativo in multiprogrammazione presenta ancora un inconveniente: infatti se un programma non ha richieste di /O monopolizza la PU a danno degli altri che restano in attesa, Per ovviare a questo e per migliorare lefficienza del sistema é stato introdotto il concetto di quanto temporale (0 time slice), cio’ un periodo di tempo durante il quale la CPU lavora per un programma Scaduto tale periodo, anche se lesecuzione del programma non é terminata 0 se il programma non ha richiesto operazioni di /O, la sua esecuzione viene sospesa a vantaggio di un altro programma in attesa di esecuzione. Sela CPU é gestita in time-sharing, rimane assegnata a un programma finchi + illprogramma termina; + illprogramma richiede urvoperazione di /O; + scade il time slice. Appena si verfica uno di questi event il control passa al sistema operativo che decide a quale, trai programmi che sitrovano in memoria centrale, spetta il prossimo time slice. | SISTEMI DISTRIBUITI Sono quei istemiin cui pits CPU sono connesse tra loro (nodi del sistema) e coopera- no nel raggiungimento di obiectivi comuni: ogni nodo aumenta le capacita di calcolo globale del sistema e cid li contraddistingue dai SO multiprogrammati Il SO non deve soltanto coordinare !azione delle CPU ma deve anche integrame le capacica di calcolo, per esempio un processo potrebbe essere in esecuzione su piti CPU. Un SO di questo tipo deve fare in modo che ogni utente possa connettersia una parte quel- siasi del sistema nello stesso modo, come se tutto fosse immediatamente disponibile. SEZIONE F + SISTEMI OPERATIVI 580. | sistem operativ distribuiti presentano i seguenti vantaggi: + condivisione delle risorse: come per esempio la stampante di un laboratorio; + velocita di calcolo: pud essere distribuita tra le varie postazioni di un sistema; + _affidabilid: se una postazione si guasta lealtre postazioni possono farsi carico del suo lavoro; + comunicazione: pitt postazioni collegate tra di loro possono facilmente scambiarsi informazioni LE PRESTAZIONI DI UN SISTEMA OPERATIVO ISO @ costituito da moduli (software di base), che devono essere eseguiti dalla CPU, come i programmi degli utenti (sofeware applicativo). Poiché ogni sofsticazione del SO comporta un maggior lavoro da parte della CPU, un SO é efficiente se, a parica di configurazione hardware, serve il maggior numero di programmi nel minor tempo. Analizziamo alcuni parametri per una valutazione sulleffcienza di un SO. Attivité della CPU (%CPU) indica, in percentuale, il eempo di utilizzo della CPU in rapporto al tempo di lavoro di tutto il sistema. # Tey Tempo di lavoro della CPU Ty © %CPU = —%.. 100 Tete = TEMPO 9 + Tory Throughput: indica la produttivita del sistema, in quanto misura il lavoro che il sistema svolge. + N= numero di programmi utente N + throughput = wle = TEMPO. + Tony Per garantire Vefficienza del sistema operativo & necessario massimizzare i due pa- rametre, invece, minimizzare il rapporto tra il tempo speso dalla CPU per eseguire programmi i sistema operativo rispetto al tempo di lavoro totale della CPU, quindi: Toy di SO. Toy totale Ii siscema non deve cadere in system overhead, situazione in cui la percentuale di utilizzo della CPU per eseguire programmi di sistema @ troppo alta rispetto a quella dedicata allelaborazione dei programmi utente. *& FISSA LE TUE CONOSCENZE 41 Che parte del SO risiede in memoria centrale? 3 _—Perché é stato introdotto il time-sharing? 2 Che differenza c8 tra monoprogramma- 4 Quali sono i parametri per valutare leffi- ione e multiprogrammazione? ienza di un sistema operativo? UNITA 13 6 1 SISTEM! OPERATIVI 509 za 4 LA GESTIONE alee yeaa Je 1S OXY = La nozione di process, 0 task, @emersaal'nizio deg anni Sessanta insieme allo siluppo det primi sistem ‘multitasking @ un’enti at tiva che rappresenta secu lone delle azionispecicate al programma. LA CPU La componente principale delfetaboratore, e anche la pit costosa, la CPU (Central Processing Unit). Tui programmi hanno bisogno della CPU per essere eseguiti, ma {questa @ unica e quindi viene contesa dai vari process in esecuzione. Rivesteallora particolare importanza quella parte del sistema operativo che si occupa delfasse- gnazione della CPU ai singoli lavori che ne richiedono Iuso. Le funzioni che questi moduli devono svolgere sono: © mantenere aggiornato lo stato del processore (libero/occupato); + decidere a quale processo occorre assegnare il processore; + assegnare il processore al processo scelto; + riprendere il controll del processore quando il processo & terminato 0 sospeso. Prendiamo un esempio tratto dalla vita quotidiana: una ricetta di cucina descritta nel ricettario @ un programma, che diverra processo quando, assegnate tutte le risorse (sono a disposizione tutti gli ingredient), sara effectivamence eseguita dal processore (i cuoco). GESTIRE | PROCESS] La gestione dei processi é affidata a quei moduli del sistema operativo che formano il nucleo (kernel) e che sono sempre residenti in memoria centrale. Fanno parte del nucleo: * schedulatore dei lavori; + schedulatore dei processi + controllore del taffico; + gestore delle interruzioni; + procedure di sincronizzazione e comunicazione tra pit processi necessarie per lo scambio di dati e informazioni. Un lavoro che deve essere eseguito pud trovarsi in ogni istante, in uno stato, cio’ in una condizione particolare determinata dalle esigenze del lavoro stesso e dallo stato globale del sistema (cio@ le altre componenti hardware e software). Proviamo a considerare come esempio di lavoro che deve essere svolto quello di effetcuare un viaggio in aereo. Lo stato indica la situazione in cui si trova il passeggero ed & determinato non solo dalle esigenze del passeggero, ma anche dalle condizioni esterne: per esempio si trova allaeroporto in attesa dellimbarco € Taereo pud essere pronto oppure deve ancora arivare ed @ in ritardo, oppure @ in volo, oppure ancora si trova in un aeroporto di transito per uno scalo 0 & arrivato a destinazione. Ogni stato corrisponde alla situazione in cui si trova il programma da eseguire (in esecuzione, in attesa della stampante, ecc.): il passaggio da uno stato alfaltro & deciso dal SO sulla base delle politiche di schedulazione. A ogni passaggio corrisponde una transazione che é effettuata tramite lesecuzione di uno specifico programma del SO (controllore del traffico). SEZIONE F + SISTEM! OPERATIVI “590. GLI STATI DI UN PROCESSO Un lavoro pud trovarsi in uno dei seguenti stat: + hold: il lavoro é stato proposto al sistema. Ess0 @ in attesa di esecuzione e si trova in memoria di massa; + ready: il programma é diventato processo e si trova in memoria centrale, pronto per essere eseguito; + run: il processo @ in esecuzione (ricordiamo che in ogni istante un solo pro- ess0 si trova in questo stato); + wait il processo @ in attesa (per esempio, deve attendere la fine di un’opera- zione di I/O); + end: il processo & terminato. un insiome statco oi ist oni, lod neni passive, che descrive le aion! da compiere, A ogni stato & associata una lista che contiene lelenco di tutti processi che si tro- vano in quel particolare stato in quel momento. La figura 1 illustra il diagramma di stato di un programma, Figura 1 Diagramma di stato dt un programma Per capire meglio gl statin cui pud trovarsi un processo, seguiamone la storia, dal mo- ‘mento in cul lavoro proposto al sistema a quello in cui termina la sua esecuzione, Quando un lavoro é stato proposto al sistema si trova nello stato di hold: al mo- mento opportune un programma del sistema operativo (schedulatore dei lavori) dovra scegliere, tra tut’ i programmi che si trovano in questo stato, quale portare in memoria centrale (stato di ready, transizione 1: hold-ready) Per poter compiere queste operazioni lo schedulatore accede alla lista di hold che ccontiene un JCB (Job Control Block) per ogni programma in questo stato. General- mente un JCB contiene. + Hidentificativo del programma; + loccupazione espressain kB; + Hindirizz0 di caricamento su memoria di massa; + gliidentificatori delle periferiche, + il puntatore al JCB successivo. Una volta individuato il programma da caricare, un altro modulo del sistema ope- rativo (controllore del traffico) elimina il suo JCB dalla lista di hold e inserisce un nuovo PCB (Process Control Block) nella lista di ready. UNITA 13 © 1 SISTEM! OPERATIVE “591 Nella figura 2 si ha la lista di hold e di ready con alcuni process Se lo schedulatore sceglie il processo A dalla coda di hold per farlo passare in quella di ready il controllore del traffico provvederd a creare una situazione come quella della figura 3. EEE EES {> [m let [a Tsta READY lista READY Figura 2 Lista di HOLD e READY ‘Figura 3 Passaggo dl un proceso dalla stad HOLD a quela di READY Generalmente un PCB contiene: + lo stato in cui si trova il processo (run, ready, wait) + lidentficatore del proceso; «il registro di salvataggio; + linditizzo di caricamento in memoria centrale, + gliidentificatori delle perferiche; + file aperti; + il puntatore al PCB successivo. Quando la CPU 8 libera, lo schedulatore dei process sceglie quale, ra i processi che si trovano nello stato di ready, mandare in esecuzione assegnandogli la CPU (transi- zione 2:ready-run), Questa volta il controllore del traffico deve modificare lo stato contenuto nel PCB del processo portandolo in run. Quando il processo @ in esecuzione si possono verificare alcuni eventi che portano a liberate il processore. Questi eventi sono: 1. terminazione del proceso in esecuzione; 2. scadenza time slice; 3. richiesta di operazione di I/O. Quando viene eseguita listruzione di fing il processo passa nello stato di end (tran- sizione 6: run-end).Peril SO questo processo non esiste pit e quindi deve eliminare il suo PCB e dichiarare libera la memoria centrale che occupava. Se durante lesecuzione viene esaurito il quanto temporal il processo che era in esecuzione deve liberare il processore, Lo stato contenuto nel PCB viene portato in ready (cransizione 4 run-ready). Se durante lesecuzione il processo richiede un‘operazione di I/O, esso viene porta- to nello stato di wait perché per proseguire deve aspettare la fine delloperazione (transizione 3: run-wait). Solo quando questa operazione é terminata il processo potrebbe tornare nello stato di run, ma poiché la CPU potrebbe essere occupata con un altro processo, ess0 dovra prima ritornare nello stato di ready (transizione 5: wait-ready), SEZIONE F + SISTEM! OPERATIV! “92 LE POLITICHE DI SCHEDULAZIONE Abbiamo visto che uno dei compiti principali del SO & assegnare una risorsa aun processo e sappiamo che questo awviene seguendo lopportuna politica di schedu- lazione definica dallo schedulatore dei lavori e dallo schedulatore dei process. Lo schedulatore dei lavori deve individuare quale lavoro pud avanzare nello stato di ready tra tutti quelli presenti nella lista dei lavori in stato di hold. Prima di tutto bisogna verificare che siano disponibili cutte le risorse che devono essere assegnate al lavoro e in particolare, attraverso il gestore della memoria, deve essere controllata la disponibilita di spazio in memoria centrale, Tra tutti lavori che hanno queste caratteristiche bisogna effetcuare una scelta e a questo scopo sono state definite diverse politiche: + FIFO (First In First Out): i lavori sono ordinati nella lista in ordine di arrvo. I primo lavoro inserito nella lista sara il primo a passare dallo stato di hold allo stato di ready. & una politica molto semplice da geste, ma non permette una reale ottimizzazione delle risorse; + priorita statica: a ogni lavoro @ assegnato un valore (priorita) che indica il livello di importanza del lavoro. La priorita @ memorizzata nel JCB di ciascun la- voro e pus essere assegnata dal responsabile del centro che conosce le esigen- ze delle varie applicazioni. Lo schedulatore dei lavori sceglie il lavoro che ha la priorita maggiore: tra quelli con pari priorita potra essere usatala politica FIFO; + priorita dinamica: affinché non ci siano lavori che permangono troppo tem- po in coda perché ce ne sono altri con priorita maggiore, il sistema operati- vo aumenta il valore della priorita in funzione del tempo di permanenza del lavoro in coda, Per poter attuare questa politica é necessario inserire nel JCB uniinformazione che indichi il momento di inserimento del descrittore nella lista, cio@ il tempo in cui é stata richiesta lesecuzione del programma Lo schedulatore dei processi si occupa di assegnare la CPU a un processo, cio’ deve decidere a quale processo in stato di ready assegnare il processore; esso @ in ‘grado di compiere questa funzione secondo politiche differenti. La pit usata & il round robin, dove il processore é assegnato a turno, per un intervallo di tempo stabilito, ai processi nelfordine in cui ne hanno fatto richiesta. La coda é gestita con il metodo FIFO: tutti gli inserimenti provenienti dalla coda di hold, dalla coda di wait o quelli causati dalfesaurimento di un time slice avvengono al fondo (figura 4). lavoriche necessitano alt time slice |_____, -— ——— ee Ses , ———— U | —Powait igure 4 Round robin ari dallo stato d wait lisa dei proces %* FISSA LE TUE CONOSCENZE 1. Chedifferenza cé ta programmae processo?’ _Un processo pud passare da wait a run? 2 Quali sono gli stati in cui pud trovarsiun 4 Che cosassiintende per politica di schedu- proceso? lazione? UNITA 13 » 1 SISTEM! OPERATIVI ‘593 ada 5) Gels EMCO ets Figura 1 Spaio deg indriza ‘un programma LA MEMORIZZAZIONE DI UN PROCESSO Un programma, prima di essere eseguito, deve essere caricato nella memoria cen- trale gli deve cio’ essere assegnata una certa quantita di byte di memoria centrale in grado di contenere la sua zona dati (le varabil ela sua zona istruzioni (scritce in linguaggio macchina). Per zona dati si intende quella parte del programma dove sono state definite le variabili e che dovra contenere i valori che queste assumeranno durante Vesecuzione. Per zona istruzioni si intende la parte del programma che contiene le istruzioni operative. Non sempre & possibile avere una distinzione cos! netta tra le diverse parti perché alcuni linguaggi non obbligano a tenere separate le due parti. Definiamo spazio degli indirizzi di un programma la zona di memoria centrale formata da zona dati pili zona istruzioni (figura 1). GESTIONE DELLA MEMORIA CENTRALE SPAZIO EGU INoIRIZZ PROGRAMMA Il gestore della memoria (memory management) é formato dai moduli del sistema operativo che si occupano di ‘+ tenere aggiornato lo stato di ogni locazione di memoria (libera 0 occupata); + assegnare la memoria centrale ai processi che ne fanno richiesta; + geste il recupero della memoria centrale quando un processo termina. LA MEMORIA VIRTUALE Poiché la memoria centrale @ una risorsa limitata, processi molto onerosi potreb- bero non essere eseguibil si ricorre allora aluso della memoria virtuale, cio® si usa la memoria di massa per allocare i processi e si portano in memoria centrale solo quelle porzioni che devono essere eseguite. E come avere a disposizione una memoria di capacita di gran lunga superiore a quella effettiva (per questo si dice virtuale). Esistono due tecniche per la gestione della memoria vircuale: + richiesta di pagine; + segmentazione, Vediamo ora nel dettaglio le due tecniche appena enunciate. SEZIONE F + SISTEM! OPERATIVE “394. LA RICHIESTA DI PAGINE iI meccanismo della paginazione prevede che la memoria centrale sia suddivisa in blocchi, aventi tutti la stessa dimensione, e lo spazio degli indirizzi di un program- ‘ma sia suddiviso logicamente in parti, chiamate pagine I blocchi hanno la stessa dimensione delle pagine (in genere multipi di 2k) e lal- locazione del programma avviene quando in memoria centrale esiste almeno un blocco libero, ‘Mentre le pagine sono logicamente contigue, i blocchi di memoria centrale in cui verranno caricate possono non essero. Il sistema operativo deve gestire alcune ta- belle di abbinamento: la tabelle delle pagine ela tabella dei blocchi. La figura 2 illustra tun esempio di memoria centrale organizzata a blocchi con le relative tabelle. Per poter assegnare i blocchi alle pagine é necessario trasformare gli indirizzirelativi delle variabil e delle istruzioni contenuti nelle pagine in indirizzi assoluti, in funzio- ne dellindirizzo di caricamento del blocco. Memoria centrale Tabella dei blocchi ae 30 1 | 100 | ibeo i | 2 1.002 occupato | 2 rei 3 | 00% | tee 3 [ea oo |e ‘ rar 5 | 008 | occu 5 Pet [eT ee ew] i 6 |? | to ‘occupato, 7 ea} [oe soe | ee 3 9 | 16 | feo 9 [0 oie cecupars | ‘0 v2 | 10 | ecapato W Par [i 102 libero | ne ° A I Pai 1 4 Pci 2 s [ Pca ° 0 | Paz 1 u l Pca ° La gestione della memoria virtuale arichiesta ai pagine prevede che in ogni istante rnon tutte le pagine abbiano associato un reale blocco fisico in memoria, cioé non tutte le pagine sono fisicamente caricate in memoria centrale. Opportuni algoritmi del sistema operativo scelgono quali pagine caricare in memoria fin dalnizio. Se durante fesecuzione listruzione da eseguire si trova in una pagina non presente in UNITA 13 © 1 SISTEM! OPERATIVI “595° ‘Figura 2. Memoria centrale org nizztaablocchi PROGRAMMA. ZONA aT ZONA ISTRUZIONI Figura 3 Suddivisone a un programma in segment memoria centrale, si genera un‘interruzione per mancanza di pagina (page fault) e si ichiede al SO di provvedere al suo caricamento dalla memoria di massa. Quando il sistema operativo deve caricare una pagina nella memoria centrale si ossono verificare due casi Caso 1 Nella memoria centrale ci sono blocchi liberi (e questo & facilmente desumibile dalla tabella dei blocchi). In tal caso il sistema operativo pud caricare effettiva- mente la pagina dalla memoria di massa alla memoria centrale (Yoperazione si chiama swap in). Caso 2 Nella memoria centrale non ci sono blocchi liber. In questo caso, prima di caricare la pagina, e quindi poter effertuare tutte le operazioni del punto precedente, il si- stema operativo deve scegliee, fra tutte le pagine presenti nella memoria centrale quale crasfrire nella memoria di massa per liberare un blocco (questa operazione si chiama swap out) Per scegliere quale sara la pagina vittima, il sistema operativo deve seguire una politica di gestione definica attraverso gli algoritmi di rimpiazza- ‘mento che hanno notevole importanza per leffcienza del sisterna, aco che le operazioni di swap comportano trasferiment di pagine da memoria di ‘massa'a memoria centrale e viceversa, sono molto costose in termini di tempo per- ché inceressano le periferche che operano in tempi ben pil: lunghi rspetto alfunica centrale. € quindi opportuno scegliere come pagina vittima una che, presumibil- mente, non servira per lungo tempo. Le strategie adottate pitt di frequente dagli algoritmi di rimpiazzamento sono due: + FIFO: é rimpiazzata la pagina che da pitt tempo risiede in memoria centrale, Cio’ la pitt vecchia, La prima pagina a entrare sar’ la prima a uscire in caso di necesita, + algoritmo LRU (Last Recently Used): & rimpiazzata la pagina non usava da pitt tempo, poiché presumibilmente non sara rchiesta entro breve tempo, La copia della pagina dalla memoria centrale alla memoria di massa andra facta solamente se la pagina ha subito modifiche (per esempio, se & cambiato il valore di tna variabile). In caso contrario non sara necessario effetcuare la copia, poiché sia la pagina in memoria centrale sia quella in memoria di massa sono identiche. Cié petmette di risparmiare tempo ed é un ulteriore crterio per sceglere la vittima LA SEGMENTAZIONE In un sistema a memoria virtuale basato sulla segmentazione il programma viene diviso in porziori, dette segmenti, che corrispondono a unita logiche definite dal programmatore come per esempio un array, una tabella, una routine. Lo spazio degli indirizzi di un programma pud essere pensato come se fosse com- posto da diversi segmenti che sono caricati nella memoria centrale solo quando se ne presenti la necessit Per esempio, nella figura 3 possono essere individuati cinque segment (Tabt, Tab2, ‘Main, Proct e Proc2) che saranno caricati in memoria centrale solo se saranno ti- chiestidalfesecuzione. La corrispondenza fra indirizzo relativo e locazioni fisiche di memoria centrale (in- dirizzo assoluto) @stabilta attraverso Findicazione del segmento. SEZIONE F + SISTEM! OPERATIVI “396. Ogni indirizo relativo & formato da due parti: numero del segmento numero di byte alfinterno del segmento (displacement, figura 4). Quando @ richiesta lesecuzione di un programma inzialmente viene cati- ur nga mato «ato nella memoria centrale solo il segmento che contiene il programma principale (main). Ogni volta che durante fesecuzione viene fatto riferi- mento a un sottoprogramma o a una struttura dati contenuti in un altro. segmento, questo viene caricato dalla memoria di massa alla memoria cen- trale (dynamic loading) e in questo momento avviene il collegamento con il segmento che lo ha richiamato (dynamic linking). Se un processo fa riferimento a un segmento che non @ presente nella ‘memoria centrale viene generato un interrupt (segment fault) e il sistema operativo deve provvedere al suo caricamento. Si pud anche usare una tecnica combinata fra pagine e segmenti che per- mette di ridurre alcuni degli inconvenienti presenti nelle due tecniche considerate separatamente (figura 5). Le tecniche della richiesta di pagina e della segmentazione si possono combinare considerando i segmenti composti da pid pagine e,invece di pensare a un segmento come a un singolo blocco di memoria, o si suddi- vide logicamente in pagine di dimensioni prefissate. La memoria @ divisa in blocchi aventi la stessa dimensione delle pagine. ‘SPAZIO DEGLI INDIRIZZI MEMORIA CONTBALG {gien Si Cesta commana PROGRAMMA PRG1 seamento seomento2 * FISSA LE TUE CONOSCENZE 4 Checost la memoria virtuale? 3 Quali sono gli algoritmi di rimpiazzamento? 2 _Inche cosa differscono la segmentazionee 4 Segmentazione e paginazione possono la paginazione? coesistere? UNITA 13 +1 SISTEM! OPERATIVI 597 i) LA GESTIONE Vals als Figura 1 Collegamento tra CPU e peiferica con uso del registro dat paras Interrupt El meccanismo mediante Hquale vengono comunicat alla CPU aleui event ben preci. Figura 2 Collegamentotramite Interacia COLLEGARE LA CPU CON LE PERIFERICHE Le periferiche sono normalmente collegate con la CPU tramite interfacce. I sste- ma mette a disposizione unlarea (buffer o registro dati) destinata a parcheggiare i dati provenienti dallelaboratore e diretti verso la periferica e viceversa; tale area serve per garantire indipendenza tra i tempi di lavoro delle varie componenti che hanno caratteristiche ben diverse. Poiché i tempi di elaborazione della CPU sono notevolmente superior rispetto a quell di una petiferca, & necessario realizare un meccanismo di sincronizzazione per evitare situazioni di errore. Lo scopo del registro dati é rendere asincrono il modo di operare delle periferiche risperto al modo di operare delelaboratore (Figura 1). Per realizzare loperazione di scrctura la CPU pone i dati da stampare o da visual zare nel buffer, da dove la periferica & in grado di prelevarli secondo i suoi tempi di lavoro. & necessario che queste operazioni siano sincronizzate: la CPU non pud inse- Tire dati nel buffer se questo & gia pieno e dialtro canto la periferica potra prelevarli soltanto se il buffer non é vuoto. Per controllare queste ativita, al'interfaccia & associata un‘unita di controllo il cui compito & quello di + generare i segnali di controllo che servono a far funzionare la periferica (una stampante, per esempio, per far avanzare la carta o spostare il carrello); * memorizzare lo stato della periferica (libero/occupato); + generare i segnali di interruzione per avvertire la CPU che la periferica ha con- cluso la sua operazione; + controllare che il trasferimento delle informazioni dalla periferica all'unita cen- trale e viceversa avvenga senza error I registro dati comunica con Iunit& centrale attraverso il bus dei dati, mentre 'u 12 di controllo comunica attraverso il bus dei segnali di controll. Nel momento di una richiesta di operazione di I/O la CPU invia al unita di control- lo associata allinterfaccia il segnale di avvio. A questo punto lunita di controllo delincerfaccia gestisce il trasferimento attivando la periferica che preleva le infor- ‘mazioni dal registro dati. Al termine delloperazione I'unita di controllo dellinterfac- cia invia alla CPU interrupt di fine I/O (figura 2). BUSDATI BUS DAT! BUS SEGNALI BUS SEGNAU aes AAA SEZIONE F + SISTEM! OPERATIVI LE PERIFERICHE VIRTUALI Le periferiche sono generalmente dedicate, di volta in volta, a un singolo processo in esecuzione, costituendo di fatto un collo di bottiglia per leffcienza del sistema. Se, per esempio, la stampante é assegnata a un processo, tutti gli altri che la richiedono dovranno attendere la conclusione del processo in esecuzione per poter avanzare. Per owviare a questo problema, alle periferiche reali vengono associate le aree su disco che costituiscono periferiche vircuali operazione di scritcura sulla stampante corrisponde a un‘operazione di scritcura sul disco che, essendo una periferica condivisa, pud essere ripartita fra i vari processi. Quando termina il processo che ha utilizato la periferica virtuale, tutte le informazio- 1ni present sul disco possono essere trasferte, senza interruzione, sulla periferica reale. Un esempio di tale applicazione & mostrato nella figura 3 delfesempio. La tecnica di associazione fra periferiche vircual e periferiche reali viene chiamata tecnica di spool (Simultaneous Peripheral Operation On Line) 0 spooling: la periferica virtuale @ deca disco di spool. Se durante I'esecuzione il processo PR1 deve stampare una riga, lo faré nella propria stampante virtuale SP1. Quando il processo PR2 dovra stampare, potra farlo sulla stampante virtuale SP2 anche se PRI non hha ancora terminato la stampa. Quando PRI avra terminato ed effettuer® un'operazione di chiusura, allo: rail contenuto di SPI verra inviato, riga per riga, ala stampante reale. ‘Aveadispoo! = _Es 7 — ~ =a Figura 3 Esemplo dl wo del spooling % FISSA LE TUE CONOSCENZE 4 Ache cosa serve il registro dati? 4 Perché una periferica dedicata & un collo 2 Comesicollega una periferica alla CPU? di bortiglia? 3 Checosé lo spooling? UNITA 13 61 SISTEM! OPERATIVE ‘599 itz i SSIS Mata s DI MASSA GESTIRE LA MEMORIA Vinsieme dei programmi del sistema operativo preposto alla gestione delle informazioni memorizzate sulle memorie di massa costituisce il file system. Il filesystem consente al'utente di utilizzare gli archivi memorizzati sulla memoria di massa senza preoccuparsi delleffettiva modalita di memorizzazione e di cutt i problemi connessi con tale utilizzo, facendo riferimento ai file solo con nomi sim- bolici il file system che regola Vallocazione, il reperimento e la protezione dei fle sulle memorie di massa In particolare il file system deve: catalogare tutti file presenti sulla memoria di massa ut tabelle memorizzate sulla memoria di massa stessa; + assegnare I'uso di un file fornendo agli utenti specifici meccanismi di protezio- ne sullaccesso; + gestire in modo ottimale lo spazio disponibile sulla memoria di massa per determinare in quale punto memorizzare nuove informazioni; + liberare la risorsa quando non & pit necessaria zando opportune LA DIRECTORY Per catalogare file presenti sulla memoria di massa, i file system utiizza un file (file directory) memorizzato anchiesso sulla memoria di massa in una posizione fissa e nota al sistema operativo (normalmente sulla traccia 0), che contiene le informa- Zion’ riguardanti tutti file presenti sul supporto. Per ogni fle viene inserita una riga nella directory che contiene queste informazioni: eM eS dove: nome Bil nome del file; tipo @ il cipo (lestensione) del file lunghezea la lunghezza; indirizzo 2 linditizzo primo blocco; accesso @ accesso permesso (solo lettura, lettura e scrittura); creazione la data creazione; ‘modifica @ la data ultima modifica. La directory viene aggiornata dal file system ogni volta che si crea, si cancella o si modifica un file per svelte queste operaziori, la directory & portata nella memoria centrale sotto forma di tabella I moderni filesystem usano un sistema gerarchico di directory strutturato ad albero nel quale si possono definire sottodirectory per raggruppare i file. Per esempio nei sistemi operativi Windows e Unix é possibile raggruppare i file per argomento inse- rendoli nelle varie sottodirectory come illustrato nella figura 1. SEZIONE F + SISTEM! OPERATIVI “600. SOTTODIRECTORY 1 Setar LA FAT accesso al disco @ regolato dalla File Allocation Table, detta an- che FAT, che e stata sviluppata per MS-DOS e suecessivamente utilizzata nei sistemi operativi Microsoft Windows. € un sistema abbastanza semplice ed @ supportato da quasi tutti i sistemi operativi moderni, La superficie di un disco, in seguito alla for- mattazione, viene divisa in tracce e settori. Le tracce sono delle corone circolari concentriche e i settori sono spicchi nei quali sono suddivise le tracce. I sectore @la pid piccola quantita che il sistema @ in grado di leggere. | setcori sono poi cluster (figura 2), che sono la minima quantita che i fle system ppud assegnare a un file. La dimensione dei cluster & determinata /ODIRECTORY N raggruppati in quando il disco viene partizionato. Ogni file deve essere allocato in un numero in- tero di cluster (non pud usare parzialmente un cluster) e deve occupare almeno un Cluster. La FAT mantiene traccia dello stato di tutti cluster del disco: di fatto @ una tabella che ha tante voci quanti sono i cluster su disco e per ognuno di essi descrive se si tratta di un cluster libero, utlizzato o difetto- 0. Per ogni cluster impiegato nella relativa voce di FAT & memorizzato il numero del clu- ster successivo relativo allo stesso fie. Poiché i luster sono collegati ognuno al successivo in questo modo, si dice che sono concatenati: cgni file che fa uso di pitt di un cluster @ con- catenato in questo modo (figura 3). II record relativo alultimo cluster del fle contiene un codice speciale che indica appunto che é ul timo. Generalmente lo zero indica che il clu- ster & libero (inutilizzaco), mentre un altro co- dice & usato per indicare i bad cluster. Questi sono cluster in cui un‘utilty per la gestione del disco ha trovato uno o pitt settor inaffidabil, a causa per esempio dei difeti del disco. Que- sti cluster sono marcati come danneggiati, cosi non sara pitt possibile utilizar UNITA 13 a fuse To Te | ISTEMI OPERATIVI 601 Figura 1 Strutura aa albero della directory ‘Figura 2 Cluster esetorl Far. lime cluster 7 bro 2 Tero ‘Figura 3 Esempio ai FAT yeaa Per quanto riguard i le contenente spend det Aigendent di u'zienda solo un responsable pot vere Paces in seritura per moiare lo sipendio el pendent, ut gal ‘etl aranno solo accesso Inketra oaditura acces soviet, Teontolo det acess viene llr gsto con meta pl compless che utlizzano strutture dat pit date allo scope. ~, —> =| AT gig vata ae “Tg! tempo di spostamento is esti sala trccsa Ty? tempo spotamento cis iestina su setore Tenmmen tmpo pe ett co stir del taceo LA PROTEZIONE Un semplice meccanismo di protezione dei file consiste nellnserire nella directory Finformazione relativa al tipo di operazioni permesse sui dati contenuti nel file (R = lectura, W = scrttura, RW = lettura e scrittura).In questo modo a tutti gli utenti & ppermesso lo stesso tipo di accesso: in genere pud invece capitare che lo stesso file debba godere di provezioni diverse a seconda del utente che lo usa. Per esempio, si pud utilizzare una matrice di controllo: ogni casella della matrice Contiene urvinformazione relativa ala possibilitadi accesso (N = accesso vietato, R = solo lettura, W/R = lettura e scrittura) da parte dellutente che equivalea una colonna per il file che corrisponde allariga. Come esempio, proponiamo la tabella seguente. FUE R R R R FE wir wir N R FES wir R wir R Un simile metodo, anche se molto sofisticato e sicuro, richiede molto spazio. Una notevole riduzione nello spazio di memoria occupato si ottiene introducendo uso di una parola chiave che viene associata a ogni file. Pud accedere al file solo chi co- rnosce la parola chiave. In alcuni sistemi come Unix sono definite solo cre classi di accessi (User, Group, Others), cioé utente proprietario del file, un utente apparte- nente a un certo gruppo, un utente qualsias. In presenza di un DBMS il controllo degli utenti che accedono ai file che costituiscono la base di dati ela protezione dei dati dagli accessi non autorizzati sono affidati allo stesso DBMS, che rappresenta quindi unestensione del file system. GESTIRE OPERAZIONI Le richieste di accesso al disco provenienti dalle varie elaborazioni vengono gestite secondo le seguenti politiche: + FIFO: |e richieste sono evase in ordine di arrivo; + SSTF (Shortest Seek Time Fist) si da precedenza alla richiesta che impiega il minor tempo di seek; con questa tecnica si ottimizzano i tempi di accesso, ma si privilegiano le richieste che fanno riferimento alle tracce pit esterne; + SCAN: sida precedenza allarichiesca che impiega il minor tempo di seek nella ditezione corrente; la ditezione viene cambiata quando non ci sono pit richie- stein quella direzione o quando si raggiunge la traccia pili esterna; + GSCAN: |e tichieste vengono evase solo mente la testina sta procedendo in una direzione; questa politica é pit: equa della SCAN, perché ogni zona del disco é scandita con la stessa periodicita, ma & meno efficiente FISSA LE TUE CONOSCENZE 1. Ache cosa serve la directory? 3 Checosé un cluster? 2 Quali sono le funzioni del file system? 4 Quali informazioni contiene la FAT? SEZIONE F + SISTEM! OPERATIVI “902:

Potrebbero piacerti anche