SISTEMI MULTIPROGRAMMATI Il loro sistema operativo manteneva in memoria contemporaneamente più lavori.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SISTEMI MULTIPROGRAMMATI Il loro sistema operativo manteneva in memoria contemporaneamente più lavori."

Transcript

1 SISTEMI OPERATIVI 1

2 CAP 1: INTRODUZIONE AI SISTEMI OPERATIVI Il sistema operativo è il software che gestisce le interazioni tra utente e calcolatore elettronico. Fornisce un ambiente in cui sviluppare ed eseguire codice in maniera comoda ed efficiente. HARDWARE Insieme delle risorse di calcolo(cpu, memoria) PROGRAMMI APPLICATIVI Definiscono i modi in cui le risorse del calcolatore vengano utilizzate per risolvere i problemi degli utenti. Un sistema operativo deve: - Assegnare le varie risorse disponibili ai vari programmi (tempo di CPU, memoria) - Controllare l esecuzione di programmi - Controllare che il calcolatore sia sempre usato in modo corretto - Avere a sua disposizione una serie di programmi sempre in funzione (essi rappresentano il KERNEL). 1.1 TIPOLOGIE DI SISTEMI SISTEMI BATCH (LOTTI) Erano dei sistemi controllati tramite consolle, con immissione di dati tramite nastri magnetici. Avevano dei sistemi operativi semplici che gestivano il passaggio da un lavoro all altro, ed i lavori simili erano raggruppati in lotti. Erano caratterizzati da una bassa efficienza dell uso della cpu. SISTEMI MULTIPROGRAMMATI Il loro sistema operativo manteneva in memoria contemporaneamente più lavori. SISTEMI MULTITASKING Con questi dispositivi vi era una comunicazione diretta fra sistema operativo e utente, ed il s.o. permetteva di condividere tra più utenti il calcolatore. In questo modo la CPU esegue più lavori ad una frequenta tale da gestire più condivisioni di utenti. SISTEMI DESKTOP Sono dei sistemi a singolo utente, con un sistema operativo orientato a facilitare l uso del calcolatore agli utenti. SISTEMI PARALLELI ( SIMMETRICI ) Sono dei sistemi che presentano più CPU connessi attraverso un unico bus alle memorie ed ai dispositivi di input/output. In questo modo tutte le CPU hanno lo stesso peso (NO master-slave), aumentando di fatto: - affidabilità - Aumento del throughput (quantità di dati in uscita) - Economia di scala 2

3 SISTEMI DISTRIBUITI Con questa tipologia di sistemi i calcoli vengono distribuiti fra diversi processori ( in questo caso però ogni processore ha una propria memoria e dei propri dispositivi di I/O) I vantaggi sono: - condivisione delle risorse - aumento velocità di calcolo - affidabilità Essi però richiedono una infrastruttura di comunicazione (rete). SISTEMI REAL-TIME Sono dei sistemi in cui l elaborazione deve avvenire entro limiti di tempo precisi ( esempio: processi industriali). Hard Real Time: sistemi con memoria secondaria (ossia dischi rigidi e lettori) assente o limitata. Soft Real Time: sistemi che richiedono sistemi operativi specifici con caratteristiche avanzate (esempio realtà virtuale). PDA Sono dei sistemi palmari basati su microprocessori lenti e con poca memoria, essi devono cercare di mediare tra le esigenze dell utente e le a disposizione. CAP 2: TRASFERIMENTO DATI TRA CPU E DISPOSITIVI DI I/O Esistono essenzialmente due tecniche fondamentali: Busy Weating: ossia le CPU verifica periodicamente lo stato del dispositivo, eseguendo quando esso è pronto la transazione dei dati. Interrupt: il dispositivo comunica alla CPU quando esso è pronto. Ciò avviene tramite un apposito segnale chiamato segnale di interruzione. Comunque per entrambi i casi ogni dispositivo di I/O dispone di un controllore ( controller ) il quale gestisce il funzionamento del dispositivo. Tali controllori hanno a disposizione un buffer locale dove memorizzare i dati temporaneamente in attesa che essi vengano inviati alla CPU. 2.1 MECCANISMO DI INTERRUZIONE Il segnale di interruzione trasferisce il controllo al programma dedicato alla gestione dell interruzione (driver di periferica), tale programma e generalmente indicato dal vettore delle interruzioni che contiene gli indirizzi di partenza di tutti i driver delle periferiche. Inoltre il meccanismo dell interruzione deve memorizzare l indirizzo di memoria della successiva istruzione da eseguire alla fine della gestione dell interruzione, in modo da riprendere il regolare svolgimento del programma. Si definisce eccezione l interruzione generate tramite software in caso di errore (eccezioni ed interruzioni vengono gestite allo stesso modo). Inoltre il sistema operativo memorizza il contenuto dei registri della CPU prima della gestione dell interruzione, e del program counter ( salvataggio del contesto). I/O SINCRONO: Per tali dispositivi si ha che il ritorno del processo chiamante avviene solamente alla fine dell operazione di I/O. 3

4 In questo modo però si può utilizzare un solo dispositivo per volta rendendo spesso la CPU inattiva. I/O ASINCRONO: Per tali dispositivi il ritorno del processo chiamante avviene appena inizia l operazione di I/O. In questo modo si possono avere più processi alla volta, utilizzando le TAVOLE DI STATO ed opzionalmente la tecnica del DMA. 2.2 TAVOLE DI STATO Le tavole di stato sono delle aree di memoria in cui il calcolatore elettronico memorizza per ogni periferica di I/O lo stato in cui essa si trova (occupata, inattiva) gestendo di fatto più dispositivi per volta e quindi dando un ordine di priorità tra periferiche. 2.3 DMA Tale meccanismo consente di trasferire i dati dal dispositivo alla memoria senza passare per il processore. In tale tecnica il processore deve però programmare la periferica definendogli: - L identità del dispositivo - L operazione da eseguire - L indirizzo di memoria di dove copiare i dati - Il numero di byte interessati. In questo modo vengono trasferiti blocchi di dati ad elevata velocità senza l intervento della CPU. Viene generata una sola interruzione per blocco di dati trasferiti. Esistono due tipi di DMA: DMA a BURST: viene trasferito il blocco di dati e alla fine del trasferimento viene generato il segnale di interruzione, in questo caso però durante il trasferimento la cpu non è utilizzata in quanto il bus è occupato. DMA bus STEALING: in questo caso il bus viene utilizzato solamente quando viene trasferito effettivamente il dato. 2.4 TIPI DI BUS Bus processore-memoria: alta banda passante (velocità del bus), distanze del bus corte, e su di esso non sono collegate periferiche di I/O. Bus I/O: sono bus per distanze lunghe con molte periferiche che comunicano a diversa velocità (vedi hard disc), e su di esso non sono collegate memorie e processori. Backplane Bus: vecchi tipi di bus in cui sono presenti dispositivi di I/O memorie e processore. 2.5 SISTEMI DI MEMORIZZAZIONE MEMORIA PRINCIPALE: unico mezzo con cui il processore memorizza dati direttamente (sono memorie ad accesso casuale), sono memorie velocissime. MEMORIA SECONDARIA: è un estensione della memoria principale ed essa è caratterizzata da un ampia capacità di memoria (vedi hard disc). 4

5 2.6 GERARCHIE DI MEMORIA All interno di un calcolatore elettronico si ha una organizzazione della memoria in maniera gerarchica in più livelli di diversa velocità, costo e dimensione: 1 memoria cache: memoria velocissima, molto costosa e generalmente di dimensioni limitate (viene chiamata memoria cassaforte). 2 Memoria principale 3 Memoria secondaria 2.7 PRINCIPI DI LOCALITA DEI PROGRAMMI LOCALITA SPAZIALE: dati ed istruzioni sono memorizzati ad indirizzi vicini e quindi data la struttura sequenziale dei programmi esse vengono eseguite in tempi ravvicinati. LOCALITA TEMPORALE: e il caso in cui un programma tende ad utilizzare in breve tempo sempre lo stesso gruppo di istruzioni, come ad esempio cicli while Se quindi per esempio tali istruzioni sono presenti all interno della cache (memoria velocissima) con la presenza di tali principi si ha un accorciamento notevole di accessi in memoria principale, dati che essi sono gia presenti all interno della cache. Unico intoppo è rappresentato dalle dimensioni delle memorie, in quanto passando da un livello inferiore ad un livello superiore la capacità di memorizzazione diminuisce e quindi mi dovrò inventare degli algoritmi adatti che mi ottimizzino il numero gli accessi ad memorie inferiori, che mi comportano un maggior tempo di accesso. Inoltre il sistema di controllo deve far si che il processore deve accedere ai dati nelle versioni più, in modo da non avere la cosiddetta incoerenza della cache. 2.8 MODO PROTETTO In ogni sistema operativo si ha la presenza di un duplice modo funzionamento della CPU: di modo utente : utilizzato dagli applicativi modo sistema: utilizzato dal sistema operativo in questo modo posso rendere delle istruzioni privilegiate (istruzioni che potrebbero arrecare danni al calcolatore elettronico) e far si che esse possano essere eseguite solamente in modalità sistema e quindi dal sistema operativo. Con tale tecnica viene dedicato un bit apposito in modo da determinare in ogni istante la modalità in cui si trova la cpu (per esempio bit = 1 modalità utente). Tutte le istruzioni di I/O sono delle istruzioni privilegiate. Quindi un programma dovrà passare attraverso il sistema operativo le cosiddette chiamate di sistema per eseguire operazioni privilegiate, in questo modo il s.o. controlla va validità della chiamata e passa in modalità sistema in caso di controllo positivo. 2.9 PROTEZIONE DELLA MEMORIA 5

6 Il sistema operativo deve controllare che sia protetta la parte di memoria in cui risiede il vettore delle interruzioni e le routine di servizio di quest ultime. Per tale motivo sono tanti introdotti ulteriori due registri per stabilire l intervallo di memoria che un programma può utilizzare: BASE REGISTER: contiene il primo indirizzo mi memoria accessibile da un determinato programma. LIMIT REGISTER: contiene le dimensioni dell intervallo. In modalità protetta tutte le zone di memoria sono accessibili PROTEZIONE DELLA CPU Si effettua la protezione della cpu per evitare che un applicativo non restituisca più il controllo di della cpu da parte del sistema operativo. A tale scopo vengono effettuate periodicamente ( con tempo programmabile dal sistema operativo ) delle interruzioni hardware in modo da restituire il controllo al sistema operativo. Nei moderni microprocessori attuali sono previsti modi di funzionamento per avere diversi livelli di protezione. Nei processori INTEL sono presenti quattro livelli di privilegio: livello 0: kernel del sistema operativo livello 1 e livello 2: servizi del sistema operativo livello 3: programmi CAP 3: COMPONENTI DEL SISTEMA OPERATIVO 3.1 GESTIONE DEI PROCESSI Per svolgere i propri compiti, un processo necessita di alcune risorse, tra cui la cpu, la memoria, dispositivi I/O. Queste risorse si possono attribuire al processo al momento della sua creazione, oppure si possono attribuire durante la sua esecuzione. Tutti i processi si possono potenzialmente eseguire in modo concorrente, avvicendandosi l uso della CPU. Il sistema operativo è responsabile delle seguenti attività connesse alla gestione dei processi: - creazione o cancellazione di processi - sospensione - ripristino - gestioni delle situazioni critiche (deadlock) - meccanismi di comunicazione 3.2 GESTIONE DELLA MEMORIA PRINCIPALE Per eseguire un processo, il calcolatore necessita di memoria principale dove allocare i dati che deve gestire il processo. Quando un processo termina si dichiara disponibile il suo spazio di memoria; a questo punto si può caricare ed eseguire il processo successivo. Il sistema operativo è responsabile delle seguenti attività : - tenere sotto controllo le aree di memoria utilizzate da ogni singolo processo - allocazione delle aree di memoria 6

7 - scelta dei processi da caricare in memoria 3.3 GESTIONE DEI FILE La gestione dei file è uno dei componenti più visibili del sistema operativo. Il compito chiave del s.o. è quello di fornire all utente un modo uniforme di gestione la registrazione dei dati su diversi dispositivi di memorizzazione (dischi, nastri ). Un file è una raccolta di informazioni correlate definite dal loro creatore (insieme di dati omogenei). Il sistema operativo deve occuparsi della: - creazione e cancellazione dei file - creazione e cancellazione delle directory - copiatura dei file su dispositivi di memoria secondari 3.4 GESTIONE DEL SISTEMA I/O Per quanto riguarda la gestione dei dispostivi di I/O il sistema operativo deve preoccuparsi di: - gestire il trasferimento dati tra memoria principale e i buffer dei dispositivi di I/O - fornire un interfaccia generale per i driver dei dispositivi - gestire i driver delle periferiche 3.5 GESTIONE DELLA MEMORIA SECONDARIA La memoria secondaria è generalmente da sostegno alla memoria primaria ed è di dimensioni nell ordine dei GB composta da dischi magnetici. Il compito principale del sistema operativo sono essenzialmente: - gestione dello spazio libero - assegnazione dello spazio libero - scheduling del disco 3.6 GESTIONE DELLA RETE Un sistema distribuito è un insieme di unità di elaborazione che non condividono la memoria, i dispositivi periferici o un clock. In tale sistema le unità sono collegate da una rete di comunicazione che può essere configurata in vari modi. I compiti del sistema operativo nei confronti della rete sono: - gestire sessioni di lavoro remote - accedere alle risorse della rete come se fossero locali - trasferire file remoti 3.7 SISTEMI DI PROTEZIONE Se un sistema di calcolo ha più processi che possono essere eseguiti in modo concorrente, se deve avere un sistema che protegga le attività di un determinato processo nei confronti di altri processi. I compiti del sistema operativo: - distinguere fra uso autorizzato e non autorizzato di un processo 7

8 - specificare i controlli da effettuare sui processi - provvedere alla gestione delle violazioni 3.8 INTERPRETE DEI COMANDI Uno dei programmi di sistema più importanti di un sistema operativo è l interprete dei comandi; si tratta dell interfaccia tra l utente ed il sistema operativo. Esso mette a disposizione dell utente una serie di comandi per: - cancellazione e creazione di un processo - gestione della memoria primaria e secondaria - uso della rete - accesso al file system Spesso i sistemi operativi si differenziano proprio dal punto di vista dell interprete dei comandi. Esistono interpreti amichevoli basati sull utilizzo del mouse per esempio Windows, ed interpreti basati su righe di comando per esempio MS-DOS. 3.9 SERVIZI DEL SISTEMA OPERATIVO Un sistema operativo offre un ambiente in cui eseguire i programmi e fornire servizi ai programmi e ai loro utenti. Per rendere più agevole la programmazione, si offrono i seguenti servizi: - esecuzione di un programma: il sistema deve poter caricare un programma eseguirlo - operazioni di I/O: un programma in esecuzione può richiedere un operazione di I/O che implica l uso di un file o di un dispositivo di I/O. - gestione del file system: ossia la possibilità da parte dei programmi di leggere, scrivere creare e cancellare file. - Comunicazioni: scambio di informazioni fra processi in esecuzione su uno stesso computer attraverso due principali: lo shared memory (copiare grandi quantità di dati) e lo messagge passing (scambio di messaggi tra sistemi operativi). - Rivelamento degli errori: assicurare la correttezza dei processi gestendo i possibili errori della CPU della memoria e dei dispositivi di I/O. Esiste anche un altra serie di funzioni del sistema operativo che non riguarda direttamente gli utenti, ma assicura il funzionamento corretto del sistema stesso: - contabilizzazione delle risorse: il s.o. memorizza quali utenti utilizzano il calcolatore e quali risorse hanno occupato. Tale informazioni possono essere utilizzate per calcolare il costo da addebitare ad ogni singolo utente (esempio degli internet point). - Protezione: viene assicurata alla macchina il corretto accesso alle risorse di sistema rispettando i vincoli imposti. 8

9 3.10 CHIAMATE DI SISTEMA Le chiamate di sistema costituiscono l interfaccia tra un processo e il sistema operativo. Sono generalmente disponibili sotto forma di istruzioni di linguaggio assemblativo e sono generalmente elencate. Le chiamate di sistema del sistema UNIX ad esempio si possono invocare da un programma scritto in C o in C++. Invece le chiamate di sistema per i moderni sistemi Windows sono disponibili tramite l API win32. Generalmente una chiamata di sistema viene identificata da un nome ma molto spesso devono anche essere specificati dei parametri. Tali parametri possono essere passati in tre modi differenti: - utilizzando i registri (quantità di dati limitati) - scritti in una tavola di memoria e poi passata al s.o. l indirizzo iniziale di tale dati - uso della memoria gestita a stack (tramite le PUSH e POP) TIPOLOGIE DI CHIAMATE DI SISTEMA Controllo dei processi - end, abort, load, execute, create process, terminate process 3.12 CONTROLLO DEI PROCESSI Un programma in esecuzione deve potersi arrestare sia normalmente(tramite end), sia anormalmente (tramite Abort). Se per terminare in modo anormale un programma incontra difficoltà, è possibile eseguire un backup della memoria (tramite il dump). Uno specifico programma di ricerca e correzione degli errori, può esaminare tali dati e determinare le cause del problema; sarà successivamente l interprete dei comandi a comunicare all utente l errore ed far effettuare ad esso un opportuna scelta. In un sistema a lotti, l interprete dei comandi generalmente termina il lavoro corrente e prosegue con il successivo. Un processo che esegue un programma può richiedere di caricare e di eseguire un altro programma. In questo caso l interprete dei comandi esegue un programma come se tale richiesta fosse stata impartita ad esempio, da un comando di tale utente. Il controllo dei processi presenta così tanti aspetti e varianti; per esempio il sistema operativo MS-DOS, è un sistema che dispone di un interprete di comandi caricati all avvio e che esegue un solo programma alla volta, nel seguente modo: il programma viene caricato in memoria, riscrivendo anche la maggior parte della memoria, quindi imposta il PC alla prima istruzione del programma da eseguire. Grande svantaggio di tale architettura è che mentre un programma era attivo, non si poteva interagire con l interprete dei comandi. Comunque è possibile eseguire processi concorrenti tramite l uso di programmi TSR, i quali si attivano intercettando segnali di interruzione. Esiste un altra tipologia per il controllo dei processi utilizzata dai sistemi operativi UNIX. In questo caso, tali sistemi operativi possono, a differenza dell MS-DOS, più programmi contemporaneamente. Il sistema esegue un interprete dei comandi(shell) scelto dall utente. Per avviare un nuovo processo dei comandi, esegue la chiamata di sistema FORK (che avvia un nuovo processo); si carica il programma selezionato nella memoria e infine si esegue quest ultimo. Alla fine dell esecuzione del processo, viene generato un codice di stato, che permette di capire se il programma è terminato normalmente o con errori. 9

10 3.13 GESTIONE DEI FILE Per la gestione dei file si possono identificare parecchie chiamate di sistema riguardante quest ultimo. Innanzi tutto è necessario poter creare e cancellare i file. Una volta creato il file è necessario aprirlo e leggerlo, scrivere o riposizionarlo. Si deve infine poter chiudere per indicare che non è più in uso. Le stesse operazioni possono essere necessarie per le stesse directory, nel caso in cui il file system è strutturato in directory GESTIONE DEI DISPOSITIVI Durante l esecuzione di un processo, è possibile utilizzare i dispositivi: occorre prima richiedere il dispositivo, per assicurare l esclusiva. Terminato l uso del dispositivo occorre rilasciarlo; una volta richiesto ed assegnato il dispositivo, è possibile leggervi, scrivervi ed eventualmente procedere ad un riposizionamento COMUNICAZIONE Esistono due modelli molto diffusi di comunicazione. Nel modello a scambio di messaggi, le informazioni si scambiano per mezzo di una funzione di comunicazione messa a disposizione del sistema operativo. Tutti i calcolatori che partecipano alla comunicazione hanno un nome di macchina, ad esempio un IP. Analogamente ogni processo ha un nome di processo, che si converte in un identificatore. Esistono inoltre chiamate di sistema per l apertura e la chiusura della connessione. Nella maggior parte dei casi i processi che gestiscono la comunicazione sono demoni specifici, cioè programmi di sistema realizzati esplicitamente per questo scopo. Nel modello a memoria condivisa invece per accedere alle aree di memoria possedute da altri processi, i processi usano chiamate del sistema Map Memory. La forma e la posizione dei dati sono determinate esclusivamente da questi processi e non sono sotto il controllo del sistema operativo. I processi sono dunque responsabili del rispetto della condizione di non scrivere contemporaneamente nella stessa posizione PROGRAMMI DI SISTEMA Un altra caratteristica importante dei sistemi operativi moderni, è quella che riguarda una serie di programmi del sistema. Tali programmi offrono un ambiente più conveniente per lo sviluppo dei programmi. Essi si classificano in: - gestione dei file: tali programmi cancellano, creano, rinominano i file - informazioni di stato: alcuni programmi richiedono data e ora, spazio libero di memoria, ecc. Le informazioni sono formattate e scritte su schermo, in un altro dispositivo o uno schermo. - modifica dei file - ambienti di ausilio alla programmazione(compilatori C,C++) - comunicazioni: tali programmi offrono la possibilità di far dialogare gli utenti attraverso il web, dispositivi remoti, 10

11 I sistemi operativi moderni includono programmi di applicazione che consentono di consultare il web, disegnare, fare calcoli, scrivere file di testo e anche giocare. Il programma più importante è l interprete dei comandi, che riceve i comandi impartitogli dagli utenti e li esegue, inoltre contiene i codici di esecuzione di alcuni programmi di sistema. L altro modo usato in LINUX è quello che l interprete non conosce il comando, ma utilizza il codice per identificare un file da caricare nella memoria e per eseguirlo STRUTTURA DEL SISTEMA Affiche un sistema operativo non sia monolitico, ma modificabile, esso deve essere composto da tante componenti ciascuna orientata in modo ben definito, in modo che tali componenti siano ben connesse tra loro STRUTTURA SEMPLICE Molti sistemi commerciali non hanno una struttura ben definita, un esempio è il DOS e UNIX dove occorreva garantire veloce accesso in poco spazio. Lo UNIX e formato da due parti: il nucleo e i programmi di sistema METODO STRATIFICATO Si suddivide il sistema operativo in un certo numero di strati, lo strato più in basso è quello fisico, lo strato più alto è l interfaccia d utente. Lo strato di ciascun s.o. è la realizzazione di un oggetto astratto che incapsula i dati e le operazioni che li trattano. Il vantaggio principale è la modularità che garantisce l uso di funzioni dai soli strati di livello superiore, ciò semplifica notevolmente la messa a punto e la realizzazione del sistema. Con tale gerarchia ogni strato nasconde a quelli inferiori l esistenza di strutture dati, operazioni ed elementi fisici. Tale sistema può però creare situazioni poco efficienti come ad esempio l esecuzione di I/O di un utente che invoca una chiamata che è intercettata dallo strato di I/O che a sua volta chiama lo strato di scheduling che passa il tutto al dispositivo di I/O. Tale catena di chiamate è in realtà spreco di tempo. I moderni s.o. per essere rapidi sono molto meno stratificati e ciascuno strato ha, molte più funzioni. Basta vedere l evoluzione di windows ed in particolare la versione NT con miglioramenti rispetto le precedenti MICRONUCLEO Man mano che UNIX si espandeva con esso lo faceva anche il nucleo fino al punto in cui divenne ingestibile. Verso la metà degli anni 80 alcuni ricercatori introdussero MATCH, un sistema operativo modulare con micronucleo in cui furono ridotte al minimo le operazioni del nucleo riservandogli solo i servizi minimi di gestire processi, della memoria e di comunicazione. Lo scopo principale del micronucleo è fornire funzioni di comunicazione tra i programmi client e i vari servizi, un grande vantaggio è che il s.o. è aggiornabile in quanto i suoi servizi si aggiungono allo spazio 11

12 utente, inoltre dato che è ridotto, se occorre effettuare modifiche al suo interno, le operazioni da fare sono ben circoscritte. Inoltre il micronucleo offre maggior sicurezza in quanto i servizi li si eseguono in gran parte in modo utente MACCHINE VIRTUALI Un sistema di calcolo è costituito da strati; l architettura fisica è lo strato più basso che fornisce le istruzioni macchina al nucleo sulla quale si trovano i programmi di sistema che usano i programmi di sistema e le istruzioni di macchina che sebbene accedute diversamente forniscono funzioni complesse, trattando le istruzioni macchina e le chiamate di sistema come se fossero allo stesso livello. I programmi d applicazione possono considerare quel che si trova al di sotto gerarchicamente come se fosse parte della macchina stessa sebbene i programmi di sistema si trovino a livello superiore. Tale stratificazione conduce al concetto di macchina virtuale. Esempio è il s.o. VM dell IBM che usa scheduling della CPU creando l illusione di disporre una propria CPU con una propria memoria (virtuale). La gestione asincrona dell I/O e l esecuzione di più processi, unita a un file system consente di creare lettori di schede e stampanti virtuali. L unica vera difficoltà è legata alla gestione dei dischi. REALIZZAZIONE: così come nelle macchine fisiche, le macchine virtuali devono avere due modalità: utente e sistema, sebbene sia davvero difficile ottenere la modalità sistema. Se un programma in esecuzione sulla macchina virtuale in modo utente esegue una chiamata del sistema si passa al modo sistema della macchina virtuale all interno della macchina reale. Quando il sistema della macchina virtuale acquisisce il controllo può modificare il contenuto dei registri e il contatore di programma della macchina virtuale in modo da simulare l effetto della chiamata di sistema, quindi può riavviare la macchina virtuale che si trova nel modo di sistema virtuale. La differenza consiste nel tempo, l I/O reale richiede circa 100 ms; quello virtuale richiede di più in quanto l I/O è simulato da file che si trova sull hard disc. VANTAGGI: il principale vantaggio della macchina virtuale è la sicurezza per l harware in quanto non si agisce su esso in modo reale, inoltre grazie a tale sviluppo si è consentito sempre più apportare modifiche ai sistemi operativi dei grandi mainframe JAVA linguaggio orientato agli oggetti che fa uso di una JAVA VIRTUAL MACHINE che fa si che la compilazione delle classi sia interpretata dall harware PROGETTAZIONE E REALIZZAZIONE DI UN SISTEMA Quando si progetta un s.o. ci si imbatte nel primo problema ossia il suo scopo che in realtà deve soddisfare due scopi: utente e sistema. Gli utenti lo desiderano veloce, efficace, comodo facile, i progettisti lo vogliono senza errori e longevo. 12

13 CAP 4: GESTIONE DEI PROCESSI Un processo è un programma in esecuzione, che richiede determinate risorse. Ci sono processi di sistema definiti dal s.o. e i processi utente, entrambi vengono eseguiti in contemporanea. Il processo costituisce l unità di lavoro dei moderni sistemi operativi a partizione del tempo. 4.1 CONCETTO DI PROCESSO Un utente esegue un operazione alla volta, ma il calcolatore nel gestire la memoria, gestire anche i molti processi che sono in esecuzione. PROCESSO E qualcosa di più del codice di un programma, noto come sezione di testo, comprende l attività corrente, rappresentata dal valore del program counter e dal contenuto dei registri della CPU. Di solito comprende anche un proprio stack e una sezione dati contenenti le variabili globali. Un programma non è un processo in quanto è un entità passiva, un processo è invece un entità attiva. STATO DEL PROCESSO mentre un processo è in esecuzione è soggetto a cambiamenti di stato definiti dalle attività corrente del processo stesso. Gli stati sono: - nuovo; si crea il processo - esecuzione - attesa; si attende qualche evento - pronto: si attende l esecuzione da parte della CPU - terminato DESCRITTORE DEL PROCESSO Ogni processo è rappresentato nel s.o. da un descrittore di processo detto anche blocco di controllo di un processo che contiene molte informazioni: - stato del processo - contatore di programma - registri di CPU, che comprendono accumulatori registri indice, stack pointer quando si verifica un interruzione della CPU, si salvano le informazioni (contenuti dei registri) in modo da permettere la corretta esecuzione del processo in seguito. THREAD Un processo è un programma che si esegue seguendo un unico percorso di esecuzione, secondo una singola sequenza di istruzioni, svolgendo un solo compito alla volta. 4.2 SCHEDULING DEI PROCESSI La multiprogrammazione consiste nel disporre contemporaneamente alcuni processi in modo da massimizzare l utilizzo della CPU. La partizione di tempo punta sulla velocità di commutazione della CPU tra i processi dando all utente la possibilità di interagire con ciascun programma mentre è in esecuzione. 13

14 CODE DI SCHEDULING Ogni processo è inserito in una coda di processi di tutti i processi di sistema. I processi presenti in memoria centrale che sono pronti e nell attesa di essere eseguiti si trovano in una coda di processi pronti, che è una lista concatenata in cui l intestazione contiene i puntatori del primo e dell ultimo PCB dell elenco e ciascun PCB è esteso con un campo puntatore che indica il successivo processo contenuto nella coda dei processi pronti. Il s.o. ha anche altre code, quando si assegna alla CPU un processo, quest ultimo rimane in esecuzione per un pò di tempo e potrebbe rimanere in attesa per esempio di I/O che è una richiesta diretta ad unità disco, potrebbe capitare che il disco è impegnato per un altro processo e per cui il processo chiamante deve attendere che il disco sia libero. L elenco dei processi che attendono la disponibilità di un dispositivo di I/O si chiama coda del dispositivo; ogni dispositivo ha la sua coda. SCHEDULER Nel corso della sua esistenza un processo si trova in varie code di scheduling e il s.o. compie la selezione attraverso un apposito scheduler. Accade spesso che ci siano più lavori di quanti se ne possano svolgere immediatamente, tali lavori vanno in dispositivi di memoria secondaria dove risiedono fino all esecuzione. Lo scheduler a lungo termine sceglie i lavori da questo insieme e li carica in memoria fisica finché non vengono eseguiti. Lo scheduler a breve termine fa la selezione tra i lavori pronti per essere eseguiti, e assegna la CPU ad uno di essi. CAMBIO DI CONTESTO Il passaggio alla CPU di un nuovo processo, implica la registrazione dello stato del vecchio processo e il caricamento dello stato precedentemente registrato del nuovo processi. Tale procedura è nota come cambio di contesto e quando avviene, il KERNEL registra il contesto del vecchio processo nel suo PCB e carica il contesto precedente per il nuovo processo OPERAZIONI SUI PROCESSI I processi di un S.O. si possono eseguire in modo concorrente e si devono creare e cancellare dinamicamente, a tal fine il S.O. deve offrire un meccanismo che permette di creare e terminare il processo CREAZIONE DI UN PROCESSO Durante la propria esecuzione, un processo può creare numerosi altri processi. Il processo creante si chiama Padre e quello creato Figlio. Il padre dispone di varie risorse ( Cpu,Ram ) e può limitare le risorse del figlio. Quando avviene la creazione vi sono due possibilità: - Il genitore continua l esecuzione in parallelo con i figli - Il genitore attende che i processi figli terminino Ci sono due possibilità anche per lo spazio di indirizzi del nuovo processo: - Il processo figlio è un duplicato del padre - Nel processo figlio si carica un programma TERMINAZIONE DI UN PROCESSO Un processo termina quando finisce l esecuzione della sua ultima istruzione e chiede al sistema operativo la cancellazione attraverso la chiamata Exit. 14

15 A questo punto il figlio riporta alcuni dati al genitore che li riceve attraverso la chiamata WAIT. Tutte le risorse di un processo sono liberate dal s.o. La terminazione può avvenire anche in altri casi: - Il genitore ha terminato e il s.o. non consente ai figli di proseguire - Non è richiesto più il compito assegnato al figlio - Il figlio ha ecceduto le risorse assegnategli 4.3 PROCESSI COOPERANTI Esistono processi indipendenti tra loro che non si influenzano a vicenda e che non condividono dati ed esistono processi dipendenti che interagiscono lavorando in parallelo e condividendo dati. I vantaggi della cooperazione sono: - condivisione di informazione - accelerazione del calcolo - modularità - convenienza: un solo utente può avere la necessità di compiere più attività insieme. Per i processi cooperanti occorrono meccanismi di comunicazione tra loro e di sincronizzazione. Ciò si può capire attraverso il processo produttore e il processo consumatore; essi devono essere sincronizzati in quanto il consumatore può eseguire solo dopo che il produttore esegue. 4.4 COMUNICAZIONE FRA PROCESSI Come la chat in rete, le funzioni di comunicazione tra processi sono fornite nel migliore dei modi da un sistema a scambio di messaggi. SISTEMI DI SCAMBI DI MESSAGGI Un sistema di IPC fornisce almeno le due operazioni SEND e RECEIVE, i messaggi spediti possono essere di due tipi: a dimensione fissa e a dimensione variabile, l unica differenza sta nella difficoltà di programmazione. Se i processi P e Q vogliono comunicare con messaggi, occorre un canale di comunicazione realizzabile in molti modi: - Comunicazione diretta o indiretta - Simmetrica o antisimmetrica - Invio per copiatura o per riferimento - Capacità zero limitata o illimitata - Messaggi di dimensione fissa o variabile COMUNICAZIONE DIRETTA Ogni processo che intende comunicare deve nominare il ricevente o il trasmittente: - Send (P, messaggio) - Receive (Q, messaggio) Caratteristiche del canale: - Si stabilisce automaticamente un canale e i processi devono conoscere solo la reciproca identità. - Un canale associato esattamente a due processi - Esiste esattamente un canale tra ciascuna coppia di processi Tale sistema è simmetrico nell indirizzamento in quanto il TX e il RX per comunicare devono nominarsi a vicenda. 15

16 Una variante asimmetrica si definisce: - Send (P, messaggio); invia messaggio al processo P - Receive (ID, messaggio); riceve un messaggio da qualsiasi processo in cui in ID si specifica il nome del processo. COMUNICAZIONE INDIRETTA I messaggi si inviano a delle porte (Mailbox), che le ricevono. In essi i processi possono introdurre e prelevare i messaggi e sono identificate in modo unico, infatti due processi possono comunicare solo se condividono una porta: - Send (A, messaggio); invia messaggio alla porta A - Receive (A, messaggio); riceve messaggio dalla porta A Caratteristiche del canale: - C è il canale solo se i processi condividono la stessa porta - Un canale può essere associato a uno o più processi - Tra ogni coppia di processi comunicanti possono esserci più canali diversi, ciascuno corrispondente ad una porta. Il s.o. consente ad un processo le seguenti operazioni: - creare una nuova porta - inviare e ricevere messaggi tramite la porta - rimuovere la porta SINCRONIZZAZIONE Lo scambio di messaggi può essere sincrono o asincrono: - Invio sincrono: il processo inviante si blocca nell attesa che il ricevente riceva - Invio asincrono: il ricevente si blocca nell attesa dell arrivo di un messaggio. - Ricezione sincrono: il ricevente si blocca nell attesa dell arrivo di un messaggio. - Ricezione asincrona: il ricevente riceve un messaggio valido oppure un valore nullo. CODE DI MESSAGGI I messaggi scambiati tra processi comunicanti risiedono in code temporali ed esistono 3 metodi per la realizzazione di tali code. - Capacità 0: la coda è lunga massimo 0, quindi il canale non può avere messaggi di attesa al suo interno - Capacità limitata - Capacità illimitata 4.5 COMUNICAZIONE NEI SISTEMI CLIENT-SERVER Si consideri un utente che deve accedere a dati presenti in un altro server A, tale richiesta è gestita da un server remoto nel sito A che calcola i dati richiesti e invia i risultati all utente. SOCKET E l estremità di un canale di comunicazione. Una coppia di processi che comunica attraverso una rete usa una coppia di Socket una per ogni processo, e ogni socket identificato con un IP concatenato ad un numero di porta, in generale le socket usano un architettura client-server. Il sever attende il client stando in ascolto ad una porta specificata, quando il server riceve una richiesta, se accetta la connessione 16

17 proveniente dalla socket del client, si stabilisce la comunicazione. Quando un processo client richiede una connessione, il calcolatore che lo esegue assegna una porta specifica, che consiste di un numero arbitrario maggiore di 1024, ogni connessione è identificata da una distinta coppia di socket. CHIAMATE DI PROCEDURE REMOTE Un classico esempio è l RPC in cui i messaggi scambiati per la comunicazione sono strutturati e non semplici come quelli dell IPC, si indirizzano ad un demone in ascolto sulla porta del sistema remoto e contengono un identificatore della funzione da eseguire e i parametri da inviare. Se un sistema remoto richiede un servizio (sapere quanti utenti attuali), deve possedere un demone in ascolto a una porta es del server che realizzi un RPC in modo che qualsiasi sistema remoto inviando un messaggio RPC alla porta 3027 può sapere tale informazione. La semantica dell RPC consente ad un client di invocare una procedura che si trova in un sistema remoto come se fosse locale, il sistema RPC nasconde i dettagli necessari che consentono che la comunicazione avvenga, tale sistema ottiene questo risultato assegnando un segmento di codice di riferimento (STUB) alle porte client. Quando il client invoca una procedura remota l RPC chiama l appropriato STUB, passando i parametri della procedura remota, lo stub individua la porta del server e struttura i parametri (marshalling) assemblandoli per trasmetterli in rete. Lo stub trasmette al server usando lo scambio di messaggi, un analogo stub nel server riceve tale messaggio e invoca la procedura nel server. Una questione importante è la differenza nella rappresentazione dei dati nel client e nel server che l RPC definisce indipendentemente dalla macchina ed è la rappresentazione esterna di dati (XDR). INVOCAZINE DI METODI REMOTI l RMI è una funzione JAVA simile all RPC, che permette ad un Head di invocare un metodo di un oggetto remoto, i due differiscono per due motivi fondamentali: l RPC sono procedurali secondo cui si possono chiamare solo procedure a funzione remota, RMI sono orientate agli oggetti ed invocano metodi di oggetti remoti, poi i parametri per le procedure remote sono normali strutture dati nelle RPC, mentre le RMI si possono passare oggetti come parametri a metodi remoti. Per rendere i metodi trasparenti sia al client sia al server l RMI realizzano un oggetto remoto usando lo stub nel client e lo scheletro nel server. CAP 5: THREAD 5.1 INTRODUZIONE Un thread, chiamato processo leggero, è l unità di base dell uso della c+ e comprende un identificatore, un contatore di programma, un insieme di registri e uno stack. Condivide con gli altri thread che appartengono allo stesso processo la sezione del codice, i dati e le risorse di sistema. Un processo tradizionale è composto da un solo thread. MOTIVAZIONI Molti programmi per i moderni PC sono predisposti per essere eseguiti da processi multithread. Di solito, un applicazione si codifica come un processo a se stante comprendente più thread di controllo: un programma 17

18 di consultazione del web potrebbe avere un thread per la rappresentazione sullo schermo, mentre un altro potrebbe occuparsi del reperimento dei dati nella rete. I thread hanno anche un ruolo primario nei sistemi che impiegano le RPC; si tratta di un sistema che permette la comunicazione tra processi. VANTAGGI I vantaggi della programmazione multithread si possono classificare in: - tempo di risposta: ossia del tempo morto, utilizzato per il cambio di contesto - Condivisione delle risorse: normalmente i thread condividono la memoria e le risorse del processo a cui appartengono - Economia: assegnare memoria e risorse per la creazione di nuovi processi è oneroso; poiché i thread condividono le risorse a cui appartengono, è molto più conveniente creare thread e gestirne i cambiamenti di contesto. - Uso ottimale delle piattaforme multi processore THREAD AL LIVELLO UTENTE E AL LIVELLO DEL NUCLEO LA gestione di thread può avvenire sia a livello d utente sia al livello del nucleo. I thread al livello d utente sono gestiti come uno strato separato sopra un nucleo del s.o. e sono realizzati tramite una libreria di funzioni, lo scheduling e la gestione senza alcun intervento diretto del nucleo. I thread al livello del nucleo sono gestiti direttamente al sistema operativo: Il nucleo si occupa della creazione, scheduling e gestione nello spazio d indirizzi del nucleo. 5.2 MODELLI DI PROGRAMMAZIONE MULTITHREAD La pluralità di sistemi che gestiscono i thread, sia a livello d utente sia al livello del nucleo, ha portato alla definizione di diversi modelli di programmazione multithread; di seguito analizziamo i più diffusi: MODELLO DA MOLTI A1: fa corrispondere molti thread a livello d utente a un singolo thread al livello del nucleo. In questo modo si aumenta l efficienza della gestione dei thread, diminuendo di fatto il tempo necessario per il cambio di contesto. Svantaggio principale di tale modello è che esso non supporta le piattaforme multiprocessore. MODELLO 1 A 1: il modello da 1 a 1, mette in corrispondenza ciascun thread del livello d utente con un thread del livello del nucleo. Questo modello offre un grado di concorrenza maggiore poiché anche se un thread invoca una chiamata del sistema bloccante (ossia aspetta per esempio un operazione di I/O), è possibile eseguire un alto thread. L unico svantaggio di questo modello è che la creazione di ogni thread al livello d utente comporta la creazione di un thread al livello del nucleo, e ciò può compromettere le prestazioni del calcolatore appesantendolo. MODELLO DA MOLTI A MOLTI: il modello da molti a molti mette in corrispondenza più thread del livello d utente con un numero minore o uguale di thread del livello del nucleo. Nel modello da molti a molti i programmatori possono creare liberamente i thread che ritengono necessari, e i corrispondenti thread del livello del nucleo si possono eseguire in parallelo nelle architetture dotate di più unità di elaborazione. 18

19 Inoltre, se un thread impiega una chiamata del sistema bloccante, il nucleo può fare in modo che si esegua un altro thread. 5.3 PROGRAMMAZIONE MULTITHREAD In un programma multithread la semantica delle chiamate di sistema fork e exec cambia: se un thread in un programma invoca la chiamata del sistema fork, il nuovo processo, potrebbe, in generale contenere un duplicato di tutti i thread oppure del solo thread invocante. La chiamata del sistema exec di solito restituisce l intero processo, inclusi tutti i thread. La cancellazione dei thread è l operazione che permette di terminare un thread prima che completi il suo compito. Ad esempio se più thread stanno facendo una ricerca in una base di dati e un thread riporta un risultato, gli altri possono essere annullati. Un thread da cancellare è spesso chiamato thread bersaglio. La cancellazione di un thread bersaglio può avvenire in due modi diversi: - cancellazione asincrona: un thread fa immediatamente terminare il thread bersaglio - cancellazione differita: il thread bersaglio può periodicamente controllare se deve terminare. Questo metodo permette di programmare la verifica in un punto dell esecuzione in cui il thread può essere cancellato senza problemi. Tali punti sono chiamati punti di cancellazione. GESTIONE DEI SEGNALI Nei sistemi UNIX si usano segnali per comunicare ai processi il verificarsi di determinati eventi. Un segnale si può ricevere in modo sincrono o in modo asincrono. Un accesso illegale alla memoria o una divisione per zero generano segnali sincroni. I segnali sincroni s inviano allo stesso processo che ha eseguito l operazione causa del segnale. Quando un segnale è causato da un evento esterno al processo in esecuzione, tale processo riceve il segnale in modo asincrono. Ogni segnale si può gestire in due modi: - tramite un gestore predefinito di segnali - tramite un gestore di segnali definito dall utente sia i segnali sincroni che quelli asincroni si possono gestire in diversi modi: alcuni si possono semplicemente ignorare (ad esempio il ridimensionamento di una finestra), alti si possono gestire terminando l esecuzione del programma (ad esempio un accesso illegale alla memoria). In generale esistono le seguenti possibilità: - inviare il segnale al thread cui il segnale si riferisce - inviare il segnale a ogni thread del processo - inviare thread a specifici thread del processo - definire un thread ricevente 5.4 PTHREAD Con il termine pthread ci si riferisce allo standard POSIX che definisce l API per la creazione e la sincronizzazione dei thread. Non si tratta di una realizzazione, ma di una definizione del comportamento dei thread; i progettisti di sistemi operativi possono realizzare le API così definite come meglio credono. 19

20 Tutti i programmi che impiegano la libreria pthread devono includere il file d intestazione pthread.h. Fra le chiamate più importanti di tale standard vi sono: - pthread_attr_init() utilizzata per passare gli attributi del thread - pthread_create() per la creazione dei thread 5.5 THREAD NEL SISTEMA WINDOWS 2000 Un applicazione per ambiente windows si esegue come un processo separato e ogni processo può contenere uno o più thread. Il sistema windows 2000 usa il modello uno a uno. Ogni thread che appartiene a un processo può accedere allo spazio d indirizzi virtuali di quel processo. I componenti generali di un thread includono: - un identificatore di thread - un insieme di registri - una pila d utente (stack) quando il thread è eseguito in modalità d utente - un area di memoria privata, usata dalle librerie DLL 5.6 THREAD NEL SISTEMA LINUX I thread sono stati introdotti nel LINUX nella versione 2.2 del nucleo. Tale sistema operativo offre la chiamata del sistema fork con la funzione di creare un nuovo processo con una copia di tutte le strutture dati del processo stesso è la chiamata di sistema clone per la creazione di un thread: la funzione anziché creare una copia del processo, crea un processo distinto che condivide la memoria del processo chiamante, tale condivisione di memoria può essere totale o parziale. CAP 6: SCHEDULING DELLA CPU 6.1 INTRODUZIONE Lo scheduling della cpu è alla base dei sistemi operativi multiprogrammati attraverso la commutazione del controllo della cpu dei vari processi, il s.o. può rendere più produttivo il calcolatore. L obbiettivo della multiprogrammazione è avere sempre processi in esecuzione al fine di massimizzare la cpu. ESEGUZIONE DI UN PROCESSO L esecuzione di un processo consiste in un ciclo di elaborazioni (svolte dalla cpu) e dall attesa del completamento delle operazioni di I/O. I processi si alternano tra questi due stadi. L esecuzione di un processo comincia con un sequenza di operazioni svolte dalla cpu ( cpu burst), seguita da un sequenza di I/O, e cosi via. SCHEDULER DELLA CPU Ogni qual volta che la cpu passa nello stato di inattività, il s.o. sceglie l esecuzione di un processo presente nella coda dei processi pronti. Generalmente gli elementi delle code sono i descrittori dei processi (pcb). Il s.o. interviene per sostituire un processo quando questo ultimo: - passa dallo stato di esecuzione a quello di attesa - passa dallo stato attesa a quello di pronto 20

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Capitolo 1. SCOPI: Fornire un ambiente nel quale un utente possa eseguire programmi in modo conveniente ed efficiente.

Capitolo 1. SCOPI: Fornire un ambiente nel quale un utente possa eseguire programmi in modo conveniente ed efficiente. Capitolo 1 SISTEMA OPERATIVO: Programma che agisce come intermediario tra l utente e gli elementi fisici del calcolatore. E un insieme di programmi (software) che gestisce gli elementi fisici del calcolatore

Dettagli

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Rappresentazione e gestione delle attività e della computazione:

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Tecniche Automatiche di Acquisizione Dati

Tecniche Automatiche di Acquisizione Dati Tecniche Automatiche di Acquisizione Dati Sistemi operativi Fabio Garufi - TAADF 2005-2006 1 Cosa sono i sistemi operativi I sistemi operativi sono dei programmi software che svolgono le funzioni di interfaccia

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

Dettagli

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo Il Sistema Operativo (SO) è una parte essenziale di un sistema di calcolo In generale un SO è un insieme di programmi che agisce come intermediario tra utenti e hardware di un computer. Esiste un insieme

Dettagli

CAPITOLO 5 - Sistemi Operativi Moderni

CAPITOLO 5 - Sistemi Operativi Moderni CAPITOLO 5 - Sistemi Operativi Moderni PRESENTAZIONE DI INSIEME Vedremo ora come si è evoluta nel tempo la struttura di un sistema operativo, per passare dalle vecchie strutture di tipo normalmente modulari,

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi Lezione 2: Compiti del S.O. La struttura e funzioni dei Sistemi Operativi Un S.O. ha il compito di rendere semplice (all utente), l utilizzo del calcolatore componenti di un sistema operativo servizi dei

Dettagli

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux 6.1 Sistemi multiprocessori simmetrici Fin qui si sono trattati i problemi di scheduling

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

1. I dispositivi periferici

1. I dispositivi periferici La gestione dell I/O 1. I dispositivi periferici Un ulteriore aspetto fondamentale del SO è la gestione dei dispositivi periferici (periferiche) Dal punto di vista del sistema operativo per periferiche

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi I processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi Il modello a processi Consideriamo un informatico appassionato di cucina che

Dettagli

Sistema Operativo e Applicativi

Sistema Operativo e Applicativi Sistema Operativo e Applicativi Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Software A.A. 2012-2013 1 / 36 Software Conosciamo due classi di software: Programmi

Dettagli

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 6 Sistemi operativi 31 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 6.1 Di cosa parliamo in questa lezione? La schedulazione 1 e caratteristiche

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Introduzione

Dettagli

Cos e` un Sistema Operativo? Cos è un sistema operativo?

Cos e` un Sistema Operativo? Cos è un sistema operativo? Cos e` un Sistema Operativo? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer: fornisce un ambiente di sviluppo e di esecuzione per i programmi

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

Dettagli

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst.

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst. Contenuti delle lezioni del 23 e del 26 Marzo 2009 Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algoritmi di scheduling della CPU Analisi dei criteri di valutazione nella

Dettagli

Come funziona un sistema di elaborazione

Come funziona un sistema di elaborazione Introduzione Cosa è un Sistema Sste aoperativo? Come funziona un sistema di elaborazione Proprietà dei Sistemi Operativi Storia dei Sistemi di Elaborazione Sistemi Mainframe Sistemi Desktop Sistemi i Multiprocessori

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa) Struttura astratta della memoria Memoria centrale il solo dispositivo di memoria al quale la CPU puo accedere direttamente Memoria secondaria (di massa) Estensione della memoria centrale che fornisce grande

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Concetto di processo

Dettagli

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher Schedulazione della CPU Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algorimi di scheduling della CPU Analisi dei criteri di valutazione nella scelta di un algoritmo

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 11 system Sistemi operativi 12 maggio 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 11.1 Di cosa parliamo in questa lezione? L interfaccia : system 1 Il

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

Processo - generalità

Processo - generalità I processi Processo - generalità Astrazione di un attività; Entità attiva che ha un suo percorso evolutivo; Attività = azione dedicata al raggiungimento di uno scopo Il processo esegue istruzioni per svolgere

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system Realizzazione del file system Struttura del file system Metodi di allocazione: Contigua Concatenata Indicizzata Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Definizione e storia dei sistemi operativi

Definizione e storia dei sistemi operativi Definizione e storia dei sistemi operativi Dipartimento di Informatica Università di Verona, Italy Che cos è un Sistema Operativo? E un insieme di programmi agisce come intermediario tra HW e uomo per

Dettagli

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007 2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma

Dettagli

Indice. settembre 2008 Il File System 2

Indice. settembre 2008 Il File System 2 Il File System Indice 4. Il File System 5. Vantaggi del FS 6. Protezione 7. Condivisione 8. I file - 1 9. I file - 2 10. Attributi dei file 11. Directory 12. Livelli di astrazione - 1 13. Livelli di astrazione

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi. Schedulazione della CPU

Sistemi Operativi. Schedulazione della CPU Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Concetti di base Come si realizza il multi-tasking Come si

Dettagli

Capitolo 1: Introduzione

Capitolo 1: Introduzione Capitolo 1: ntroduzione Che cos è un sistema operativo? Sistemi mainframe. Sistemi desktop. Sistemi multiprocessore. Sistemi distribuiti. Sistemi cluster. Sistemi in tempo reale. Sistemi palmari. Migrazione

Dettagli

Sommario della lezione

Sommario della lezione Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 2 LEZIONE STRUTTURE DEI SISTEMI OPERATIVI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

Dettagli

Sistemi Operativi (modulo di Informatica II) Architettura

Sistemi Operativi (modulo di Informatica II) Architettura Sistemi Operativi (modulo di Informatica II) Architettura Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Obiettivi di un sistema operativo Concetti di base sui sistemi operativi

Dettagli

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Realizzazione del file system Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Realizzazione

Dettagli

Sistemi operativi e reti A.A. 2015-16. Lezione 2

Sistemi operativi e reti A.A. 2015-16. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 2 Giovedì 8-10-2015 Sistemi batch multiprogrammati La causa principale

Dettagli

Introduzione all Informatica

Introduzione all Informatica Lezione 3 Davide Di Ruscio Alfonso Pierantonio Dipartimento di Informatica Università degli Studi dell Aquila Università degli Studi dell Aquila alfonso@di.univaq.it diruscio@di.univaq.it. Sommario 2 2»

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007

SISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007 2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?

Dettagli

Realizzazione del file system

Realizzazione del file system Realizzazione del file system Struttura del file system Metodi di allocazione: Contigua Concatenata Indicizzata Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi SCHEDULING DELLA CPU Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling

Dettagli

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

Dettagli

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

Software che sovrintende al funzionamento del computer eseguendo compiti diversi: Sistema Operativo dispensa a cura di Alessandro Bellini Software che sovrintende al funzionamento del computer eseguendo compiti diversi: 1. Gestire interazione utente macchina 2. Fornire un interfaccia

Dettagli

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Introduzione: 1. Principi di base dei sistemi operativi 2. Sistemi

Dettagli

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli

Strutture dei sistemi operativi

Strutture dei sistemi operativi Contenuti della lezione di oggi Strutture dei sistemi operativi Descrizione dei servizi messi a disposizione dell utente dal SO Utente generico Programmatore Esame delle possibili strutture di un SO Monolitica

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Il software Dipartimento di Ingegneria dell Informazione Universitàdegli Studi di Parma SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono

Dettagli

Capitolo 5: I thread

Capitolo 5: I thread Capitolo 5: I thread Generalità. Modelli multithread. Problematiche relative ai thread. Pthread. 5.1 I thread Il thread è un flusso di controllo relativo ad un dato processo. Molti sistemi operativi moderni

Dettagli

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate

Dettagli

Implementazione del File System

Implementazione del File System Implementazione del file system Implementazione del File System Struttura del file system. Realizzazione del file system. Implementazione delle directory. Metodi di allocazione. Gestione dello spazio libero.

Dettagli

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

Dettagli

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E Lezione 5: Software Firmware Sistema Operativo Architettura del Calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti: Hardware e Software Firmware: strato di (micro-)programmi

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO.

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO. Sistemi Operativi Il Sistema Operativo Corso di Informatica Generale (Roberto BASILI) Cos'è un sistema operativo? Un sistema operativo e': La astrazione logica del livello macchina hardware e microprogrammata

Dettagli

Sistemi Operativi Giovanni Conforti. Sistemi di I/O

Sistemi Operativi Giovanni Conforti. Sistemi di I/O Sistemi Operativi Giovanni Conforti Sistemi di I/O 1 Sistemi di I/O Un ruolo fondamentale in un sistema di calcolo è rivestito dai dispositivi di I/O I dispositivi di I/O che popolano un sistema di calcolo

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/

Dettagli

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore. I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono

Dettagli