SISTEMA OPERATIVO Quando si opera con un computer , per scrivere una relazione con un programma di word processing o utilizzare

un programma di grafica oppure con un video gioco , tutte queste relazione questo dialogo tra utente e hardware del computer avviene mediante un sistema software , il sistema operativo , che si interfaccia da un lato con il programma di word processing e dall’altro con l’hardware del PC . In sintesi il sistema operativo si può evidenziare in diversi aspetti e compiti : * un sistema per gestire l’interazione utente – computer ; * un’interfaccia tra le applicazioni e le risorse del computer ; * un sistema per gestire la condivisione delle risorse ; * un sistema per ottimizzare l’uso delle risorse ; * un fornitore di servizi allo sviluppo del software e all’amministrazione del sistema. INTERAZIONE UTENTE-COMPUTER I personal computer possono funzionare attraverso diversi sistemi operativo , in questi ambienti , facendo un click sull’icona di un’applicazione , viene avviata l’esecuzione senza che l’utente sappia quello che sta realmente accadendo , tutte le operazioni per gestire il sistema sono effettuate digitando comandi da tastiera o attraverso una modalità grafica. INTERFACCIA APPLICAZIONI E RISORSE DEL COMPUTER Ha lo stesso scopo di quello precedente cioè nascondere la complessità dell’hardware all’utente e alle applicazioni software , fornendo servizi per lo svolgimento di determinati compiti. CONDIVISIONE DELLE RISORSE Cioè la condivisione di CPU quando noi eseguiamo molti programmi contemporaneamente , senza che si ostacolino fra di loro occupando lo spazio che è già destinato ad un altro processo , ma anche per le diverse risorse del computer avviene questa condivisione , come la memoria centrare , unità a disco ecc. OTTIMIZZAZIONE NELL’UTILIZZO DELLE RISORSE Cioè la condivisione oltre a essere possibile deve anche essere efficiente. La necessità di condivisione avviene attraverso la MULTIUTENZA , cioè la capacità di interagire contemporaneamente con molto utenti ( multiprogrammazione ) . MULTITASKING per indicare l’esecuzione contemporanea di più programmi del medesimo utente.

il sistema operativo ha la funzione di interfaccia per l’esecuzione delle applicazioni . La multiprogrammazione introduce infatti alcune esigenze specifiche : * Protezione per memoria (evitare interferenze tra programmi). dal sistema operativo e dal software applicativo. * Implementare la tecnica di spooling nelle operazioni di input/output. con la multiprogrammazione la CPU esegue contemporaneamente più programmi . per la gestione contabile di un’azienda . spostarli. SISTEMI OPERATIVI MULTIPROGRAMMATI L’esigenza di aumentare il tempo di utilizzazione della CPU trova una soluzione con i sistemi multi programmati. * Il software di sistema composto dagli applicativi utilizzati dai programmatori per lo sviluppo di un’applicazione . * Multiprogrammazione con priorità cioè che hai programmi è assegnata una priorità che misura l’importanza dell’esecuzione e si eseguono in ordine di priorità. questo avviene grazie alla presenza dei dischi magnetici . 5. editor di sistema. . come compilatori . cioè dai dispositivi fisici che forniscono le risorse elaborative . SISTEMI TIME SHARING E SISTEMI BASATI SULLE PRIORITA’ Nei programmi in esecuzione possono avere due comportamenti diversi: IO BOUND = occupa poco la CPU e si interrompe spesso per fare operazioni di I/O terminali. Questi comandi sono inviati al sistema operativo tramite la shell dei comandi . * Multiprogrammazione in time sharing è tipica dei sistemi interattivi ed evita tempi di attesa lunghi per gli utenti . Per l’utente finale il computer è un esecutore di applicazioni . * Il software applicativo cioè i fogli elettronici . CPU BOUND = Esegue operazioni di I/O per pochi millisecondi e usa la CPU per molti minuti. programmi per la posta elettronica. grazie ai quali il lotto di lavori è caricato su disco e più lavori possono essere caricati in memoria. RISORSE HARDWARE E SOFTWARE DEL COMPUTER Un computer è formato dall’hardware . Il DMA è un dispositivo in grado di operare il trasferimento dei dati tra memoria e unità periferica senza coinvolgere il processore quando finisce il trasferimento il dma invia un segnale di completamento al processore. tutti i programmi sono eseguiti per un certo intervallo di tempo in modo ciclico. la visibilità del sistema operativo per gli utenti finali è limitata all’uso dei comandi di sistema : copiare file . giochi . visualizzare file . cioè quel programma che interagisce con l’utente per ricevere comandi per poi trasmetterli al sistema operativo.2. Il sistema operativo manda sempre in esecuzione il programma con la priorità più elevata. cancellarli . * Limitare l’azione della CPU nella lettura e scritti dei dati grazie alla DMA * Gestire le interruzioni. i programmi per la grafica . 4. * Controllare che l’esecuzione di un programma non impedisce l’esecuzione di un altro. lo SPOOLING è una tecnica che risolve il problema del parallelismo delle periferiche I/O.

Si tratta del modello a strati del sistema operativo : L’intero sistema è visto come una serie di livelli : il livello inferiore è rappresentato dall’hardware sopra il quale ci sono 5 livelli . l’idea alla base dei microkernel è quella di avere un nucleo di sistema operativo che esegue un minimo di funzioni essenziali . . * Informazioni : gli utenti archiviano nel sistema per potere elaborare. * Dispositivi i/o : i programmi richiedono al sistema operativo il trasferimento dei dati.6. Il sistema operativo è quindi un software di grande complessità : nel tempo si è affermato un modello concettuale dei sistemi operativi di notevole utilità per comprendere i principi operativi. tutte le altre funzione del sistema operativo che non sono incluse nel microkernel . che sono : * Gestione dei processi e processori * Gestione della memoria * Gestione dei dispositivi * Gestione delle informazioni * Shell per la gestione degli utenti e delle applicazioni Nei moderni sistemi operativi si parla spesso invece di architettura a microkernel . sono raggruppate in un unico livello esterno. * Memoria centrale : un programma in esecuzione deve risiedere in memoria.FUNZIONI E STRUTTURA DEL SISTEMA OPERATIVO Il sistema operativo ottimizza l’uso delle risorse e interfacciale software applicativo e risorse Le principali risorse che il sistema operativo deve gestire sono: * Il processore : il sistema operativo deve assegnare il processore ai programmi in attesa dell’esecuzione. dove è composto dall’hardware al centro poi attorno c’e il MICROKERNEL e la GESTIONE DEI PROCESSI E PROCESSORI e infine c’e un altro rettangolo con all’interno la GESTIONE DELLA MEMORIA LA GESTIONE DELLE INFORMAZIONI LA GESTIONE DELLE I/O E LA SHELL DEI COMANDI.

. Programmi e processi Il programma è un insieme di bit collocati in un file su disco. 4. INTERRUZIONE : è causata da un’interruzione del processo da un evento esterno al processo. 3. cioè il processo abbandona il sistema. * area dati . WAITING : il processo richiede un’operazione di Input / Output e ne deve attendere il completamento. le transizioni di stato di un processo sono : AMMISSIONE : è provocata da un utente che avvia un processo. ATTESA EVENTO : è causata dal processo stesso per eseguire operazioni di I/O. Il programma è un insieme di bit collocati in un file su disco : non cambia nel tempo . il programma in esecuzione è interrotto per cedere il controllo dalla CPU ad un altro programma. Queste gestione delle interruzioni vengono gestiste dal sistema operativo che modifica il valore di un flag memorizzato nella PSW. * trasferire il controllo al ciclo specializzato alla gestione del servizio richiesto. Un ciclo per la gestione delle interruzioni viene chiamato ISR . * codice.Il processo Un processo è un’entità dinamica : l’esecuzione di un processo modifica la stato della memoria e dei registri in sintesi potremmo dire che un processo è un programma in esecuzione. * Un evento esterno al sistema causa l’interruzione del programma in esecuzione . READY : è un processo che può essere eseguito e attende l’assegnazione di un processore. e si suddivide in : NEW : cioè il sistema operativo assegna al processo le risorse richieste e lo colloca in memoria. In un processo possono avvenire delle interruzione e questo avviene secondo diverse modalità e per differenti cause : * Il sistema operativo interrompe l’esecuzione di un programma a bassa priorità per assegnare il promesso a un programma con priorità maggiore. Stati di un processo e transizione di stato Il sistema operativo crea la struttura dati che rappresenta il processo . RUNNING : quando il sistema operativo decide di eseguire il processo assegna ad esso il processore. Ci possono essere delle interruzione e può eseguire quindi 3 strade diverse : TERMINATED : il processo completa la sua esecuzione e cede il controllo al sistema operativo . processi. READY : cioè ritorna di nuovo in ready perché il tempo assegnato al processo e terminato e quindi si aspetta l’avvio di un nuovo processo. Il processo è un programma in esecuzione con : * traccia di esecuzione. non modifica lo stato della memoria è quindi un’entità statica. * identificare l’origine dell’interruzione. allo scadere di una quantità prefissata di tempo . * risorse memoria . * Un programma in esecuzione che deve leggere dei dati da una periferica. * Nel caso dei sistemi a time sharing . AVVIENE EVENTO : è causata da un evento esterno al processo. Riassumendo . ASSEGNAZIONE : consiste nell’assegnare un processore a un processo. dove deve: * salvare lo stato del programma.

( MULTIREADING ) Hanno il vantaggio : * l’esecuzione viene eseguita più rapidamente. evento che fa bloccare il processo in waiting. nella PCB ci sono : * PUNTATORI : collegano i processi per costruire liste. Le strutture per gestire i processi PCB è una struttura dati con le informazioni necessarie alla gestione del processo. * Schedulazione e medio termine : Avviene nella transizione waiting sospeso e ready sospeso e decide quali processi scaricare sul disco. * SWAP IN : il sistema operativo porta in memoria processi presenti nel disco in grado di essere eseguiti. questo può succede per due ragioni : * SWAP OUT : il sistema operativo rimuove i processi dalla memoria e li colloca sul disco per eseguire un processo con priorità maggiore. * migliora la progettazione del software. 5. * STATO DEL PROCESSO : priorità ed informazioni necessarie per l’esecuzione.Processi dormienti cioè quei processi rimossi dalla memoria centrale . * Schedulazione a breve termine : avviene nelle transizioni tra ready e running e avviene quando il processo rilascia il processore. Schedulazione dei processi Il sistema operativo decide quali processi devono effettuare la transizione di stato e quali no . * PSW : contiene le informazioni necessarie per far ripartire un processo dopo un’interruzione. . * anche nei sistemi a singoli processori l’esecuzione avviene in modo più veloce. * IDENTIFICATORI : identifica un processo. tramite questi processi si attivano 3 nuove transizioni: * SOSPENSIONE : passaggio allo stato sospeso. I thread Il flusso di esecuzioni è dato dalla sequenza di valori assunti dal program counter durante l’esecuzione di un processo . 6. questa componente del sistema operativo si chiama SCHEDULATORE. 7. processo inviato al disco ( SWAP OUT ). * ATTIVAZIONE : processo riportato in memoria ( SWAP IN ). * AVVIENE EVENTO : da waiting sospeso a ready sospeso . * condividono lo spazio in memoria. specifica l’utente associato al processo. * i thread collaborano durante l’esecuzione. cioè l’esistenza di un solo thread vuol dire che al processo può essere assegnato un solo processore. Ci sono diversi tipi di schedulazione: * Schedulazione a lungo termine : decide quali di questi lavori possono essere caricati in memoria e avviene nella transizione NEW.

Algoritmi di schedulazione Le tecniche usate dai sistemi operativi per la scelta del processo si chiamano algoritmi di schedulazione. . Gli algoritmi di schedulazione sono : * Schedulazione senza prerilascio : cioè un processo running non può essere interrotto durante l’esecuzione.8. * Schedulazione con prerilascio : cioè un processo running puà essere interrotto e portato nello stato ready per lasciare il posto ad altri processi.

Sign up to vote on this title
UsefulNot useful