Capitolo 6 Le infrastrutture SoftWare

Documenti analoghi
Capitolo 6 Le infrastrutture SoftWare

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Capitolo 6 Le infrastrutture SoftWare

Capitolo 6 Le infrastrutture SoftWare

Il Sistema Operativo. Informatica Sistema Operativo 1

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

- Dispensa V - IL SISTEMA OPERATIVO

Capitolo 6 Le infrastrutture SoftWare

Il sistema operativo

Il Sistema Operativo

Sistemi Operativi (prima parte) Appunti di TPI Elaborati dal prof. Ing. Mario Catalano Per la classe 3 Einf.

Informatica Generale 06 - Introduzione ai Sistemi Operativi

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

Sistemi Operativi. La gestione delle risorse

Sistemi Operativi: Concetti Introduttivi

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Cosa è un Sistema Operativo? Il Sistema Operativo. Alcune Funzioni fondamentali di un Sistema Operativo

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

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

Il sistema operativo. Sistema Operativo

LA GESTIONE DELLA I/O

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Capitolo 2: Strutture dei sistemi di calcolo

Struttura Logica del S.O:

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Lezione 5: Software. Firmware Sistema Operativo. Laboratorio di Informatica

Livelli del sottosistema di I/O

Il supporto al sistema operativo

Sistema Operativo. 06 novembre Sistema Operativo (SO): punto di vista funzionale

Sistemi Operativi. Lezione 3 Processi e Thread

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

Elementi di Informatica e Programmazione

Funzioni di un Calcolatore

Sistema operativo & file system 1

Il software di sistema

Organizzazione di un SO monolitico

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Input/Output. Livelli del sottosistema di I/O

Università degli Studi di Cassino

Il Software programmabili programma algoritmo

Macchina astratta. Il Sistema Operativo. Alcune Funzioni fondamentali di un Sistema Operativo. Cosa è un Sistema Operativo?

Il Sistema Operativo Ing. Agnese Pinto. Fondamenti di Informatica CDL in Ingegneria Meccanica- A.A

Modi di esecuzione user / kernel

Parte II. Introduzione ai sistemi operativi e WindowsX. Parte II 1

Il Sistema Operativo

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano

I Processi. Il Concetto di Processo

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistema Operativo. (hardware e software) della della macchina

Infrastrutture Software

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

Sistema operativo: Gestione dei processi

Componenti di un sistema operativo

MODULO 1: INTRODUZIONE

I THREAD O PROCESSI LEGGERI

Sistemi Di Elaborazione Dell informazione

Architettura dei calcolatori e Software di sistema

2. Nucleo del sistema operativo (la gestione dei processi)

I Sistemi Operativi. Prof.ssa Antonella Serra

IL SOFTWARE DI SISTEMA

I sistemi operativi. Prof. Daniele Contarino

Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Componenti principali

Capitolo 1: Introduzione

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

il Nucleo e la gestione dei processi

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Lezione 16. Il Software di base

Sistema operativo. Interazione con il SO

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Gestione dei processi

Sistemi Operativi ed interazione con HW e CAD

Corso di Informatica

Sistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15

Modulo 3. Software. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè

Input/Output (Cap. 7, Stallings)

Corso di Informatica

Modelli di interazione tra processi

Il software: cenni sul sistema operativo

Il software: Istruzioni per il computer

Introduzione ai sistemi operativi

Informatica Generale Andrea Corradini Gestione della memoria, File System e periferiche

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

Componenti e connessioni. Capitolo 3

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

ARCHITETTURA DEI CALCOLATORI

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il computer P R O F. L O R E N Z O P A R I S I

Il Sistema Operativo

Architettura del calcolatore: gerarchia delle memorie, coprocessori, bus (cenni)

Cos è un Sistema Operativo?

Elena Baralis 2007 Politecnico di Torino 1

Prof. Rossella Cancelliere

Transcript:

Capitolo 6 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: garantire la correttezza e la precisione nell elaborazione e nella trasmissione dell informazione; consentire all utente di superare il problema della localizzazione delle risorse sfruttando opportunamente la presenza di una rete che permetta di accedere alle applicazioni da ogni luogo e in ogni momento (anywhere, anytime); garantire il massimo livello di affidabilità, disponibilità e sicurezza dei sistemi; assicurare la privatezza dei dati; consentire la realizzazione di soluzioni aperte, che permettano l interoperabilità fra dispositivi forniti da diversi produttori di hardware e di software; superare i problemi legati alla limitazione del numero di risorse, e al tempo stesso regolamentarne l impiego evitando conflitti di accesso. Il sistema operativo può essere inteso come uno strumento che virtualizza le caratteristiche dell hardware sottostante, offrendo di esso la visione di una macchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile. Introduzione ai sistemi informatici 1

SO: funzionalità SO come GSTOR DLL RISORS controlla tutte le risorse del calcolatore e le gestisce in modo efficiente: tiene traccia di chi utilizza la risorse accetta e soddisfa le richieste di utilizzo di una risorsa fa da mediatore fra le risorse che risultano in conflitto SO come MACCHINA STSA costituisce la base su cui è possibile scrivere i programmi applicativi. presenta all utente una macchina estesa più facile da programmare dell HW sottostante. Funzioni di servizio del SO secuzione di applicazioni caricamento del programma (istruzioni e dati) nella memoria centrale, inizializzazione dei dispositivi di ingresso/uscita, preparazione e gestione di altre risorse come la rete di comunicazione, ; Accesso ai dispositivi di ingresso/uscita Accesso ai dispositivi di ingresso/uscita gestione dei segnali necessari per il trasferimento dei dati, consente all utente di ragionare in termini di operazioni astratte di lettura e scrittura Archiviazione di dati e programmi Archiviazione di dati e programmi fornire un organizzazione logica dei dati sotto forma di cartelle (directory) e file, gestire le operazioni di basso livello per il relativo ingresso/uscita; Controllo di accesso Controllo di accesso condivisione di risorse da parte di più utenti o applicazioni, meccanismi di protezione e politiche di risoluzione degli eventuali conflitti d uso; Contabilizzazione Contabilizzazione ottimizzare il tempo di risposta dei programmi interattivi, fatturare agli utenti i costi dell impiego del sistema; Gestione dei malfunzionamenti Gestione dei malfunzionamenti rilevare e, se possibile, di risolvere eventuali malfunzionamenti provocati da guasti hardware, o da operazioni scorrette compiute dal software applicativo. Introduzione ai sistemi informatici 2

Vantaggi di un SO Sono legati alla possibilità di definire modalità standard di interfaccia con i dispositivi fisici, cosicché sia possibile: sviluppare programmi in modo semplice, modulare ed indipendente dallo specifico calcolatore su cui viene fatto funzionare il sistema operativo; aggiornare il software di base e l'hardware in modo trasparente ai programmi applicativi e all'utente, ossia senza che vengano influenzati dall'operazione. Visioni fornite da un SO Dall'alto: il sistema operativo fornisce all'utente un'interfaccia conveniente. Dal basso: gestisce tutti le parti di un sistema complesso, allocando in modo ordinato le diverse risorse della macchina: processori, memorie, dischi, interfacce di rete, stampanti e altre periferiche. Introduzione ai sistemi informatici 3

Il software SW Applicativo SW HW Sistema Operativo HW SW= Sistema Operativo + SW applicativo Il S.O. come necessario intermediario lementi di un SO Sistema di gestione del processore, controlla l unità centrale di elaborazione (CU); definisce quali programmi sono da eseguire e quali compiti sono da assegnare alla CU; Sistema di gestione della memoria, controlla l allocazione della memoria di lavoro ai diversi programmi che possono essere contemporaneamente in esecuzione; Sistema di gestione delle periferiche, garantisce l accesso ai dispositivi di ingresso/uscita, maschera i dettagli di basso livello e gli eventuali conflitti che possono insorgere nel caso che diverse richieste arrivino contemporaneamente a uno stesso dispositivo; Sistema di gestione dei file (file system) consente l archiviazione e il reperimento dei dati sfruttando le periferiche che costituiscono la memoria di massa; Sistema di gestione degli utenti e dei relativi comandi (interprete comandi),interfaccia interfaccia diretta con gli utenti, permette agli utenti di accedere in maniera semplice e intuitiva alle funzionalità disponibili. Sistema di gestione della rete. Introduzione ai sistemi informatici 4

lementi di un SO Utente Interprete comandi Gestione memoria Sistema Operativo Gestione periferiche Software applicativo File system Nucleo (o kernel) [gestione processore] Hardware Interfaccia con la rete SO vs applicazioni rogrammi applicativi hanno accesso a un insieme ridotto di risorse; possono utilizzare solo un sottoinsieme delle istruzioni del processore (esecuzione in modalità utente); non possono decidere autonomamente quando e come avere accesso alle risorse del sistema (richiedono al sistema operativo l esecuzione di alcuni servizi); Sistema operativo Sistema operativo ha accesso a tutte le risorse; può utilizzare tutte le istruzioni del processore (esecuzione in modalità supervisore); stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte; Introduzione ai sistemi informatici 5

voluzione dei sistemi operativi Seconda metà degli anni 40 non c era un sistema operativo: il programmatore interagiva direttamente con i dispositivi fisici, introdurre nel software applicativo anche le funzionalità di gestione dell hardware. esecuzione di un solo programma alla volta problemi da risolvere: evoluzione dell interfaccia utente (per problemi bisognava guardare direttamente nei registri) miglioramento dell efficienza di gestione delle risorse disponibili (necessità di prenotare la macchina ) Sistemi a lotti (batch( batch), impiego di un componente software, detto monitor, in grado di automatizzare l avviamento e l esecuzione di programma; apposito linguaggio, detto Job Control Language (JCL); le operazioni di ingresso/uscita vengono eseguite tramite file (per ridurre la necessità dell'utente); ottimizzano lo sfruttamento delle risorse di elaborazione del sistema con un accurata distribuzione del tempo di calcolo tra i vari programmi da eseguire svantaggio principale: tempo di latenza che intercorre fra il momento in cui un job è sottoposto al sistema e il momento in cui vengono presentati i risultati dell elaborazione di quel job. Aggiunta di altre caratteristiche (sistemi multiprogrammati in cui, c in ogni istante, la memoria centrale può contenere più di un programma applicativo): Interattività con un utente umano con tempi di risposta accettabili; Accurata protezione della memoria; Temporizzazione dell esecuzione (evitare che un programma monopolizzi il sistema); gestione delle attività di ingresso/ uscita; maggiore sfruttamento (anche in parallelo da parte di diversi programmi), delle risorse disponibili nel sistema. Multiprogrammazione elaborazione attesa per operazioni di I/O Tempo rogr. 1 rogr. 2 rogr. 3 Tempo elaborazione attesa per operazioni di I/O Introduzione ai sistemi informatici 6

Multiprogrammazione Nel sistema sono presenti diversi programmi, ognuno con un proprio tempo di elaborazione e propri tempi di attesa per le operazioni di ingresso/uscita. er evitare che la CU venga utilizzata in modo esclusivo (o per troppo tempo) da parte di un solo programma, il tempo viene idealmente suddiviso in unità elementari, dette quanti,, da assegnare secondo opportune politiche a tutti i programmi. Round robin assegnare a rotazione la disponibilità di un quanto di tempo della CU ai vari programmi presenti contemporaneamente in memoria. La durata del quanto di tempo incide significativamente sia sulle prestazioni del sistema che sull efficacia del quasi parallelismo, che tende a scomparire se la durata diviene eccessiva e degrada nella sequenzializzazione dei programmi. D altra parte, pur migliorando in generale le proprietà di parallelismo la scelta di un valore molto piccolo può comportare un degrado delle prestazioni complessive del sistema, qualora il tempo di commutazione fra programmi sia dello stesso ordine della durata del quanto di tempo (un valore tipico per il sistema a operativo Unix è 100 ms). rocesso vs programma rogramma: entità statica composta dal codice eseguibile dal processore. rocesso: entità dinamica che corrisponde al programma in esecuzione, composto da: codice (il programma); dati (quelli che servono per l esecuzione del programma); stato (a che punto dell esecuzione ci si trova, cosa c è nei registri, ). Introduzione ai sistemi informatici 7

Organizzazione di un SO Gerarchia di macchine virtuali La visione della macchina virtuale a livello n è quella fornita dall HW e dagli strati del SO fino all ennesimo (incluso) Organizzazione a strati Ogni macchina virtuale è un insieme di programmi che realizza delle funzionalità che utilizzano i servizi forniti a livello inferiore. Ogni macchina virtuale ha il compito di gestire risorse specifiche di sistema regolandone l uso e mascherandone i limiti. I meccanismi che garantiscono la correttezza logica sono separati dalle politiche di gestione (maggiore flessibilità). ogni strato risolve un problema specifico Introduzione ai sistemi informatici 8

Nucleo Interagisce direttamente con l hardware Si occupa dell esecuzione dei programmi e della risposta agli eventi esterni generati dalle unità periferiche. Scopo principale: gestire i processi corrispondenti ai programmi che sono contemporaneamente attivi. Fornisce alle macchine virtuali di livello superiore la visione di un insieme di unità di elaborazione virtuali ciascuna dedicata a un processo presente in memoria Gestisce il contesto di esecuzione dei vari processi Attua una politica di alternanza (scheduling( scheduling) ) nell accesso alla CU da parte dei processi in esecuzione. Gestore della memoria Controlla la memoria centrale, al fine di risolvere le relative esigenze dei vari processi in modo trasparente ed efficiente. Consente ai programmi di lavorare in un proprio spazio di indirizzamento virtuale e di ignorare quindi le effettive zone di memoria fisica occupata. Si occupa di: proteggere programmi e relativi dati caricati nella memoria di lavoro; mascherare la collocazione fisica dei dati; permettere, in modo controllato, la parziale sovrapposizione degli spazi di memoria associati ai vari programmi. Fornisce alle macchine di livello superiore la possibilità di lavorare come se esse avessero a disposizione una memoria dedicata, di capacità anche maggiore di quella fisicamente disponibile. Introduzione ai sistemi informatici 9

Gestore delle periferiche Fornisce una visione del sistema in cui i processi possono operare mediante periferiche astratte. Maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscita Ogni processo ha a disposizione delle periferiche virtuali File System (gestore dei file) Gestisce la memoria di massa Gestisce i file Introduzione ai sistemi informatici 10

Interprete dei comandi Modulo del SO direttamente accessibile dall utente Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o point&click) ) e di attivare i programmi corrispondenti. Le operazioni che svolge sono: lettura dalla memoria di massa del programma da eseguire; allocazione della memoria centrale; caricamento del programma e dei relativi dati nella memoria allocata; creazione e attivazione del processo corrispondente. La gestione dei processi Introduzione ai sistemi informatici 11

laborazione parallela Il concetto di elaborazione parallela si riferisce specificamente: ai dati; alle istruzioni; ai programmi. Il parallelismo a livello di dati e di istruzioni è possibile solo con l impiego di architetture di elaborazione parallela, basate sulla presenza di più unità di elaborazione in grado di eseguire istruzioni in modo concorrente ma anche, per esempio, di adeguati linguaggi di programmazione. Il parallelismo a livello di programma ricade nell ambito dei sistemi stemi operativi. Le condizioni che un sistema operativo deve soddisfare sono: efficienza; interattività; sincronizzazione/cooperazione. SO in time sharing ermette la condivisione della CU tra più processi interattivi Il tempo di esecuzione del processore è condiviso tra più utenti Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione Introduzione ai sistemi informatici 12

secuzione di un processo Tempo elaborazione attesa per operazioni di I/O Un processo utente può effettivamente essere in esecuzione sulla CU Ogni operazione di I/O consiste in una chiamata al sistema operativo e quindi in una sospensione del processo utente per l esecuzione dell operazione di I/O da parte del kernel Stati di un processo Completamento operazione di I/O (si verifica l evento l atteso) rocesso attivo rocesso in attesa Richiesta operazione di I/O Introduzione ai sistemi informatici 13

rocessi non in esecuzione Si possono distinguere due casi rocessi in attesa di un evento esterno (ad esempio I/O) rocessi pronti ad essere eseguiti in attesa della CU Si tratta di due stati diversi: RONTO e ATTSA realizzati con due code diverse Diagramma a tre stati Inizio esecuzione (accodamento ai processi pronti) rocessi pronti Selezione primo processo pronto e sua esecuzione Termine quanto di tempo rocesso in esecuzione Termine elaborazione Completamento operazione di I/O (evento esterno atteso) rocessi in attesa Richiesta operazione di I/O Introduzione ai sistemi informatici 14

Transizioni di stato ronto secuzione Il SO stabilisce quale dei processi pronti debba essere mandato in esecuzione. La scelta è fatta dall algoritmo di scheduling che deve bilanciare efficienza e fairness. A secuzione Attesa il processo chiede delle risorse che non sono disponibili o attende un evento il SO salva tutte le informazioni necessarie a riprendere l esecuzione e l informazione relativa all evento atteso nella tabella dei processi A Transizioni di stato Attesa ronto Si verifica l evento atteso dal processo e il SO sposta quel processo nella coda dei processi pronti. A secuzione ronto Termina il quanto di tempo e il processo in esecuzione lascia spazio a un altro processo pronto. Il SO salva (nella tabella dei processi) tutte le informazioni per riprendere l esecuzione del processo dal punto in cui viene interrotta. Contemporaneamente un altro processo passa da pronto a esecuzione. A Introduzione ai sistemi informatici 15

riassumendo... Il processo viene creato e viene posto nella coda dei processi pronti; p 2. il primo processo tra i processi pronti viene posto in esecuzione; 3. il processo in esecuzione dispone delle risorse del sistema fino f a a. il termine del quanto di tempo il nucleo interrompe il processo e lo mette in coda ai processi pronti; quando arriva in cima alla coda dei processi pronti, il processo torna in stato in esecuzione, proseguendo con l elaborazione dell istruzione successiva a quella su cui era stato interrotto; b. la richiesta di un operazione di ingresso/ uscita il nucleo sposta sta il processo attivo nello stato di attesa; quando l operazione di ingresso/ uscita si completa il processo può proseguire l elaborazione e viene messo in fondo alla coda dei processi in pronti e prosegue come nel punto precedente; c. il termine delle propria esecuzione (istruzione finale) il processo viene eliminato e rimosso dall elenco dei processi esistenti; in ogni caso il nucleo provvede a sostituirlo con il primo dei processip pronti. Context swapping Il processo non si rende conto delle interruzioni: il nucleo maschera al processo come effettivamente la sua elaborazione evolve nel tempo; il nucleo rende trasparente la presenza delle operazioni di interruzione e di riassegnamento del processore a un processo. Contesto di un processo insieme dei dati che rappresentano lo stato del processo: situazione della memoria, contenuto dei registri, livello di priorità, quando un processo viene interrotto (esce dallo stato di esecuzione) il nucleo provvede a salvare del suo contesto (in una struttura dati chiamata descrittore del processo); quando un processo torna nello stato di esecuzione il nucleo provvede a ripristinare il suo contesto (recuperando i dati precedentemente salvati nel descrittore). Cambio di contesto (context( swapping) si verifica quando un processo (e.g. 1) in esecuzione viene sostituito da un altro processo 2 (il primo del processi pronti); il nucleo provvede a 1.salvare il contesto di 1 e gestirne l evoluzione (pronto vs attesa); 2.ripristinare il contesto di 2 per consentirgli una corretta evoluzione. Introduzione ai sistemi informatici 16

Modalità user e modalità kernel I processi possono essere eseguiti in modalità kernel (riservata ai servizi forniti dal sistema operativo) o user (programmi applicativi) non basta più un solo stato di esecuzione, è necessario distinguere le due situazioni; due nuovi stati: esecuzione user e esecuzione kernel. Ci sono due nuove transizione di stato: esecuzione user esecuzione kernel richiesta di servizi al sistema operativo da parte del processo utente, detta chiamata di sistema (SuperVisor Call SVC) evento esterno segnalato da una periferica (Interrupt) esecuzione kernel esecuzione user termine gestione interrupt (return from interrupt RTI) Transizioni di stato Inizio esecuzione (accodamento ai processi pronti) rocessi attivi Selezione primo processo pronto e sua esecuzione RTI rocesso in esecuzione (user) rocessi pronti Termine quanto di tempo rocesso in esecuzione (kernel) Interrupt o SVC Termine elaborazione Completamento operazione di I/O (evento esterno atteso) rocessi in attesa Richiesta operazione di I/O Introduzione ai sistemi informatici 17

sempio:esecuzione di 1 e 2 1. 1 in esecuzione (user( user): esegue una serie di istruzioni; richiede un servizio di I/O, e.g.lettura di un carattere da tastiera [SVC]. 2. SO in esecuzione (kernel( kernel): decide di sospendere 1 finché non termina l operazione di I/O richiesta; r salva il contesto di 1 nel descrittore di 1 e sposta 1 in attesa di carattere da tastiera. sceglie 2 tra i processi pronti per mandarlo in esecuzione; ripristina il contesto di 2 leggendo i dati dal descrittore di 2; manda in esecuzione 2 restituendogli il controllo [RTI]. 3. 2 in esecuzione (user( user): esegue una serie di istruzioni; arriva un interrupt da tastiera (evento esterno) e il controllo passa al SO [interrupt]. 4. SO in esecuzione (kernel( kernel): legge il carattere in arrivo dalla tastiera e lo scrive in un buffer di sistema; sposta 1 nella coda dei processi pronti; restituisce il controllo lo a 2 [RTI]. 5. 2 in esecuzione (user( user): esegue una serie di istruzioni; arriva un interrupt da orologio (evento esterno) e il controllo passa al SO [interrupt]. 6. SO in esecuzione (kernel( kernel): decide di sospendere 2 perché è scaduto il suo quanto; salva il contesto di 2 nel descrittore di 2 e sposta 2 tra i processi pronti; sceglie 1 tra i processi pronti per mandarlo in esecuzione (ipotesi: ci sono solo 1 e 2); ripristina il contesto di 1 leggendo i dati dal descrittore di 1; manda in esecuzione 1 restituendogli il controllo [RTI]. 7. 1 in esecuzione (user( user) Round Robin I/O Fine I/O rocesso 1 A A A rocesso 2 rocesso 3 3 2 1 A Cambio di contesto Introduzione ai sistemi informatici 18

concorrenza fra processi Vantaggi dell esecuzione concorrente di più processi: impiegare in maniera trasparente una o più CU (sia inserite in un solo calcolatore che in più calcolatori, collegati in rete); aumentare l utilizzo della CU nei sistemi a partizione di tempo, ove si eseguono più lavori in quasi parallelismo; condividere la stessa risorsa fisica fra diversi utenti in modo del tutto trasparente ma controllato; accedere contemporaneamente, da parte di diversi utenti, a una base di dati comune e centralizzata; roblemi starvation: un processo non riesce ad accedere ad una risorsa perché la trova sempre occupata da altri processi (che per esempio possono avere un livello di priorità maggiore); blocco critico: un insieme di processi rimane bloccato perché ciascuno di essi aspetta delle risorse che sono occupate da un altro processo compreso in questo stesso insieme (vincolo circolare). vitare (prevenzione) o risolvere (eliminazione) situazioni di blocco critico o di starvation riduce le prestazioni complessive del sistema. Interazioni tra processi Le interazioni fra processi sono classificabili in: indesiderate e (spesso) impreviste desiderate e previste. La gestione delle interazioni fra i processi implica la sincronizzazione fra le varie attività che ogni singolo processo deve svolgere in modo parallelo rispetto agli altri la comunicazione, ovvero una modalità per lo scambio dei dati fra i processi Modalità di funzionamento dei processi: in foreground, quando il processo è abilitato all interazione con l utente; in background, quando il processo non è in grado, almeno temporaneamente, di interagire direttamente con l utente; questo è lo stato in cui si trovano parecchi dei processi relativi alle funzioni interne del sistema operativo Introduzione ai sistemi informatici 19

Nucleo: macchina astratta CU Memoria di lavoro Memoria di massa Video/tastiera (terminale) Interfaccia I/O Interfaccia I/O BUS dati indirizzi controllo CU virtuale CU virtuale CU virtuale CU virtuale CU virtuale processo processo processo processo processo La gestione della memoria Introduzione ai sistemi informatici 20

Gestore della memoria Un programma per essere eseguito deve risiedere in memoria centrale rogrammi che gestiscono l allocazione in memoria centrale del programma p da eseguire ermettere ai programmi e agli utenti di vedere una memoria virtuale di dimensioni maggiori della memoria fisica aginazione: memoria centrale e programmi suddivisi in pagine o segmenti. in tal modo possibile: eseguire un programma di dimensioni maggiori della memoria centrale, partizionando il programma e caricandone in memoria una parte alla volta (quella correntemente in esecuzione) con lo stesso meccanismo, eseguire contemporaneamente più programmi, la somma delle cui dimensioni supera la dimensione della memoria centrale Corrispondenza tra pagine logiche contigue e pagine fisiche non contigue Memoria fisica del calcolatore suddivisa in 8 pagine Spazio fisico F0 Spazio logico L0 Spazio logico F1 F2 L1 L2 Memoria logica del processo 2 (4 pagine logiche) Memoria logica del processo 1 (2 pagine logiche) L0 L1 F3 F4 L3 F5 F6 F7 Introduzione ai sistemi informatici 21

aginazione RAM al tempo T1 RAM al tempo T2 0 1 2 3 4 5 6 agina 1 processo 1 agina 2 processo 1 Al processo 1 servono nuove pagine. Alcune vecchie non servono più 0 1 2 3 4 5 6 agina 6 processo 1 agina 7 processo 1 agina 5 processo 1 7 8 agina 3 processo 1 agina 4 processo 1 7 8 agina 3 processo 1 agina 4 processo 1 aginazione La paginazione risolve contemporaneamente tre problemi: 1. Dove mettere il processo in memoria 2. Superare il numero di processi che posso gestire contemporaneamente 3. Superare la dimensione fisica della memoria di lavoro Introduzione ai sistemi informatici 22

Gestore memoria: macchina astratta Memoria di lavoro (fisica) Memoria di massa Interfaccia I/O Video/tastiera (terminale) Interfaccia I/O BUS dati indirizzi controllo CU virtuale CU virtuale CU virtuale CU virtuale CU virtuale processo processo processo processo processo Memoria logica Memoria logica Memoria logica Memoria logica Memoria logica Gestione periferiche I/O Introduzione ai sistemi informatici 23

Gestore delle periferiche Comunicazione tra l ambiente CU-RAM ed i dispositivi esterni. Mascherare ai processi l esistenza di un numero limitato di risorse. Mascherare ai processi la differenza tra risorse dello stesso tipo (o di tipo simile) Gestione periferiche I/O Comandi ad alto livello per accedere alle periferiche che usano meccanismi quali: i controller, i driver. I sistemi operativi comprendono i driver per la gestione delle periferiche più comuni. Ogni aggiunta o modifica alla configurazione standard comporta l installazione di software addizionale (driver aggiuntivi). Introduzione ai sistemi informatici 24

Installazione driver lug&lay lay I sistemi operativi più recenti sono dotati di funzioni di lug&lay lay (n)) che permettono la configurazione automatica dei driver. Un sistema n consente di aggiungere (plug( plug) ) nuove periferiche al sistema che possono essere utilizzate (play( play), senza necessità di intervento da parte dell utente per la selezione e l installazione dei driver. Introduzione ai sistemi informatici 25