UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica...

40
UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti Introduzione ai sistemi operativi Prof. Michele Amoretti Fondamenti di Informatica a.a. 2007/2008

Transcript of UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica...

Page 1: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Introduzione ai sistemi operativi

Prof. Michele Amoretti

Fondamenti di Informaticaa.a. 2007/2008

Page 2: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Sommario

• Caratteristiche generali• Struttura dei sistemi operativi• Evoluzione dei sistemi operativi

• Gestione batch • Monoprogrammazione• Monitor• Multiprogrammazione• Schedulazione• Spooling• Time sharing

• Processi• Sistema di protezione• System call

Page 3: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Caratteristiche generali

Un sistema di elaborazione può essere visto come un insieme di risorse hardware e software utilizzate per lo sviluppo e l’esecuzione dei programmi utente.

Tali risorse devono essere:o utilizzate secondo un determinato ordineo eventualmente rese disponibili a più utenti anche

simultaneamente o protette contro accessi non autorizzatio organizzate in modo da garantire la sopravvivenza del

sistema in caso di guastio gestite in modo che risulti semplificato ed efficiente il loro

uso, ecc.

Page 4: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Caratteristiche generali

Con il termine sistema operativo si intende quell'insieme di programmi che provvedono alla gestione delle risorse di un sistema di calcolo.

Una definizione alternativa (Tanenbaum): un sistema operativo è un programma che controlla le risorse di un calcolatore e fornisce ai suoi utenti un'interfaccia o macchina virtuale più agevole da utilizzare della macchina "nuda".

Il sistema operativo è un meccanismo di controllo inusuale perché è un programma come gli altri spesso rinuncia al controllo e deve dipendere dal processore

per tornarne in possesso

Page 5: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Caratteristiche generali

Il sistema operativo può essere visto come:

- allocatore di risorse: tempo di CPU, spazio di memoria, dispositivi di I/O, compilatori, ecc. Le risorse devono essere assegnate a programmi specifici secondo determinate politiche.

- programma di controllo:controlla l'esecuzione dei programmi per prevenire errori ed usi impropri del calcolatore (in particolare per il controllo dei dispositivi di I/O).

Obiettivi del sistema operativo:- rendere più semplice l'uso di un sistema di calcolo- rendere più efficiente l'uso delle risorse del sistema di calcolo

Page 6: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Caratteristiche generali

Gestione delle risorse significa:

- tenere traccia delle risorse- adottare strategie di assegnazione- allocare le risorse- recuperare le risorse inutilizzate- rilevare eventuali usi impropri

Funzioni specifiche:

- gestione della memoria principale e di quella secondaria, in base a regole gerarchiche, realizzando il meccanismo della memoria virtuale- gestione del/i processore/i - gestione dei dispositivi periferici di I/O

Page 7: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Caratteristiche generali

Gestione della memoria centrale- caricare in memoria programmi e dati- evitare interferenze fra programmi diversi- assegnare la memoria in base a criteri di efficienza- minimizzare i trasferimenti tra memoria centrale e memoria

secondaria.

Gestione della memoria secondaria - consentire l'accesso all'informazione in base alla sua

organizzazione logica (File System) anzichè fisica (ad es. dischi, tracce, settori)

- controllare i diritti di accesso ai file da parte degli utenti- consentire creazione, modifica e cancellazione dei file, ...

Page 8: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Caratteristiche generali

Gestione dei processori - decidere quale programma userà il processore (scheduling) in

base a criteri di corretto funzionamento e di efficienza- verificare che i programmi rilascino il processore entro il

tempo stabilito.

Gestione dei dispositivi periferici di I/O- mascherare al programmatore la complessità delle operazioni

di I/O- effettuare controlli sul corretto funzionamento delle operazioni- risolvere conflitti nell'utilizzo di una stessa periferica da parte

di più programmi- consentire il massimo sfruttamento delle periferiche.

Page 9: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Caratteristiche generali

Utenti del sistema operativo:

utenti finali del sistemaper essi il sistema operativo è trasparente

programmatori applicativiutilizzano i servizi del s.o. per la realizzazione e l'esecuzione dei loro programmi

programmatori di sistemaaggiornano e modificano i programmi del s.o. per adeguarli a nuove necessità del sistema o degli utenti applicativi

operatoricontrollano il funzionamento e rispondono alle richieste di intervento da parte del sistema

amministratore del sistemastabilisce le politiche di gestione del sistema e ne cura l'osservanza

Page 10: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Caratteristiche generali

Tipi di sistemi operativi:

Sistemi proprietari progettati dai costruttori al fine di sfruttare in modo ottimale le

risorse di ciascun tipo di macchina l'interfaccia con l'utente varia tra le diverse famiglie di sistemi esempi:

- IBM: OS/360 - 370, VM, MVS- DEC: RT-11, VMS

Sistemi standard progettati da case di software o da comunità di sviluppatori,

sono portabili su macchine di tipo diverso l'interfaccia con l'utente rimane costante nelle diverse versioni esempi:

- UNIX, MS-DOS, Windows

Page 11: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Struttura dei sistemi operativi

Necessità di modularizzazione, date le dimensioni.

Sistema a livelli.

Affinché il livello Li possa richiedere i servizi offerti dal livello Li-1 deve conoscerlo precisamente, tuttavia l'implementazione di tali servizi deve risultare totalmente nascosta.

La stratificazione più opportuna può risultare non evidente; è dipendente dall'evoluzione tecnologica dell’hardware.

Page 12: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Struttura dei sistemi operativi

Modello “a cipolla”:

Programmi utente

Interprete comandi

Programmi di utilità

Periferiche virtuali

File System

Gestore memoria virtuale

Nucleo del sistema operativo

Macchina hardware

Page 13: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Struttura dei sistemi operativi

Nucleo o kernel: parte di s.o. sempre residente nella memoria principale, mette a disposizione le system call ai programmi di sistema ed applicativi.

Fornisce un meccanismo per la creazione e la distruzione dei processi

Provvede allo scheduling della CPU, alla gestione della memoria e dei dispositivi di I/O

Fornisce strumenti per la sincronizzazione dei processi

Fornisce strumenti per la comunicazione tra processi

Page 14: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Evoluzione dei sistemi operativi

I primi calcolatori:

- Erano privi di s.o. e monoprogrammati

- Il programmatore era anche operatore interattivo ed aveva visione diretta della macchina e disponibilità di tutte le sue risorse

- L'accesso da parte di più utenti era ottenuto mediante meccanismi di prenotazione

- problemi: complessità operazioni, inefficienza e rigidità della prenotazione

Page 15: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Evoluzione dei sistemi operativi

Prima generazione ('50-'60):

- virtualizzazione dell'I/O, librerie di controllo dei device- separazione del programmatore dalla macchina tramite l'operatore- problemi: debug, set-up dei job

- riduzione dei tempi di set-up tramite s.o. batch dotati di:- monitor- multiprogrammazione- gestione periferiche con tecniche di spooling

nasce il s.o. come stratificazione successiva di funzioni volte adaumentare l'efficienza e la semplicità d'uso della macchina

Page 16: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Evoluzione dei sistemi operativi

Seconda generazione (‘60-'65):

- indipendenza tra programmi e dispositivi usati (logical I/O)- parallelizzazione degli utenti tramite multiprogrammazione a condivisione di tempo (time-sharing).

Terza generazione ('65-'75):

- s.o. unico per una famiglia di elaboratori- gestione della memoria virtuale- sistemi multifunzione (scientifico, gestionale)- linguaggi di comando complessi

Page 17: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Evoluzione dei sistemi operativi

Quarta generazione (’75 - …):

- sistemi a macchine virtuali- sistemi multiprocessore e distribuiti- interfacce amichevoli per l'utente

Page 18: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Gestione batch

Significa raggruppare i lavori o i programmi in lotti per conseguire una maggiore utilizzazione delle risorse, cioè un throughput (= numero di programmi eseguiti per unità di tempo) più elevato.

Un concetto che si è evoluto nel tempo:- l'operatore raggruppa i programmi in lotti e li immette in tale

forma nel sistema per un più razionale utilizzo delle risorse- i programmi sono inseriti nella memoria di massa e poi

elaborati

La gestione batch può essere locale (unità centrale direttamente collegata ai dispositivi di I/O) o remota (è presente una trasmissione dei job e dei risultati ed eventualmente una memorizzazione intermedia).

Page 19: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Gestione batch

Operazioni di I/O fuori-linea: il calcolatore principale non è più rallentato da periferiche lente trasparente ai programmi applicativi

Calcolatori satellite: con il compito di scrivere e leggere nastri di potenza ridotta rispetto a quello centrale primo esempio di sistema multi-computer

Page 20: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Gestione batch

Vantaggio ulteriore delle operazioni fuori-linea è la possibilità di utilizzare più lettori di scheda collegati con una stessa unità nastro in ingresso e più stampanti collegate con una stessa unità nastro in uscita.

Non ci può essere accesso contemporaneo da parte della CPU e del lettore di schede o della stampante allo stesso nastro.

I primi sistemi batch erano monoprogrammati. Successivamente vennero sviluppati sistemi batch in grado di supportare la multiprogrammazione (multitasking).

Page 21: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Monoprogrammazione

- Gestione in modo sequenziale nel tempo dei diversi programmi: l’inizio dell’esecuzione di un programma avviene solamente dopo il completamento del programma precedente.

- Tutte le risorse sistema sono dedicate all’esecuzione di un solo programma.

- Bassa utilizzazione delle risorse:

Tputilizzazione CPU = ------- Tt

Tp = tempo dedicato dalla CPU all’esecuzione del programmaTt = tempo totale di permanenza nel sistema del programma

Page 22: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Monitor

Il monitor controlla la sequenza degli eventi. La maggior parte del monitor, detta monitor residente, deve sempre essere nella memoria principale e disponibile per l’esecuzione.

Nei primi sistemi batch i programmatori sottoponevano i job su schede o su nastri, e l’operatore organizzava una sequenza di job e poneva l’intero “lotto” su un dispositivo di input per l’uso tramite monitor.

Il monitor legge un job alla volta e lo pone nell’area dei programmi utente, e gli cede il controllo. Quando viene completato, il job restituisce il controllo al monitor, che immediatamente legge il job successivo.

Page 23: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Multiprogrammazione (multitasking)

- Gestione simultanea di più programmi indipendenti. Ciascuno di essi può iniziare o proseguire l'elaborazione prima che un altro sia terminato.

- Le risorse risultano meglio utilizzate in quanto si riducono i tempi morti.

- Cresce la complessità del sistema operativo: occorrono algoritmi per la gestione delle risorse (CPU, memoria, I/O), nascono problemi di protezione, etc.

Page 24: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Multiprogrammazione (multitasking)

Più programmi sono presenti contemporaneamente in memoria principale. Quando uno di essi attende per il completamento di una operazione di I/O, il controllo della CPU viene assegnato ad un altro:

Page 25: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Schedulazione

Lo schedulatore a lungo termine (scheduler) determina quali programmi siano disponibili per l’elaborazione.

Ogni programma pronto per l’elaborazione diventa un processo e viene immesso in una coda dallo schedulatore a breve termine (dispatcher), che viene eseguito di frequente e determina quale sia il successivo job da eseguire.

La schedulazione a medio termine riguarda le funzioni di gestione della memoria virtuale (swapping = quando la memoria RAM libera non è più sufficiente per contenere tutte le informazioni che servono ai programmi, il sistema operativo si fa carico di spostare una certa quantità di dati - quelli meno recentemente utilizzati - dalla memoria volatile a quella di massa).

Page 26: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Spooling

SPOOL: acronimo da Simultaneous Peripheral Operation On Line.

L'applicazione più comune dello spool è con lo spool di stampa. Con questo sistema, i documenti da stampare vengono caricati in un buffer (generalmente un'area del disco), da dove vengono inviati alla stampante ed eliminati via via che questa riesce a gestirli, di solito con tempi relativamente lunghi.

Dal momento che la versione in stampa dei documenti è stata allocata inun buffer dove rimane a disposizione della stampante e dei relativiprocessi di controllo, l'utilizzatore è libero di svolgere altre operazioni con il computer mentre la stampa procede in background.

Lo spooling permette inoltre di avere una coda di stampa con molti lavori,invece di dover attendere che il dispositivo sia libero prima di lanciare la stampa successiva.

Page 27: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Time Sharing

L'elaboratore serve "simultaneamente" una pluralità di utenti, dotati di terminali, dedicando a ciascuno di essi tutte le risorse del sistema per quanti fissati di tempo.

Migliora i tempi di risposta (turn-around time) ma peggiora l'utilizzazione delle risorse.

Può essere presente sia in sistemi monoprogrammati che multiprogrammati.

Normalmente una modalità di gestione time-sharing è adottata nei sistemi conversazionali, in cui più utenti contemporaneamente "colloquiano" con il sistema.

Page 28: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Processi

L'evoluzione dei s.o., guidata da esigenze di efficienza, ha portato alla presenza in memoria centrale di più programmi in esecuzione.

Emergono nuove funzionalità richieste al s.o., quali la gestione dei programmi stessi e la protezione dalla mutua interferenza.

Un nuovo punto di vista concettuale :- I programmi di controllo, analogamente ai dispositivi hardware, sono

largamente indipendenti l'uno dall'altro, ed interagiscono con altre attività di rado ed in punti ben definiti;

- La CPU viene "trasferita" da un job all'altro (anzichè "ricevere" programmi in ingresso);

- La specifica sequenza di stati della CPU è scarsamente significativa ed impredicibile a causa degli interrupt.

Page 29: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Processi

Processo = attività controllata da un programma che si svolge su un processore.

(es. job batch, programma utente time-shared, task di sistema, etc.)

Alcuni processi dispongono di un processore privato e pertanto sono permanentemente in esecuzione (ad esempio i controllori delle periferiche).

Altri processi condividono un processore comune (la CPU).

Distinguiamo: o processi del s.o. che eseguono il codice del sistema o processi utenti che eseguono il codice utente.

Page 30: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Processi

Funzioni del s.o. (riferite ai processi):- creazione e cancellazione di processi- sospensione e ripresa di processi- strumenti per la sincronizzazione e comunicazione- strumenti per il trattamento di condizioni di deadlock

Stato di un processo:- in esecuzione (running)- bloccato (idle, waiting)- pronto (ready)

esecuzione

bloccato pronto

Richiesta I/O

Completamento I/O

Interrupt/Timer

Scheduling

Page 31: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Processi

Nei sistemi multiprogrammati più processi possono essere in esecuzione concorrentemente.

esecuzione

esecuzione

esecuzione esecuzioneblocco blocco

blocco blocco

pronto

pronto

CPU libera

P1

P2

t1t0

t2 t3 t4

pronto

Page 32: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Processi

Algoritmo: Procedimento logico che deve essere seguito per risolvere il problema in esame

Programma: Descrizione dell'algoritmo tramite un opportuno formalismo (linguaggio di programmazione) che rende possibile l'esecuzione dell'algoritmo da parte di un particolare elaboratore

Processo (sequenziale): La sequenza di eventi che genera un elaboratore quando opera sotto il controllo di un particolare programma (evento = esecuzione di una operazione)

Page 33: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Sistema di protezione

Un processo potrebbe tentare di modificare il programma o i dati di un altro processo o di parte del s.o. stesso.

Protezione: politiche (cosa) e meccanismi (come) per controllare l'accesso di processi alle risorse del sistema di elaborazione.

All'hardware è affidato il compito di rilevazione di errori, come opcode illegali o riferimenti in memoria illegali, possibili effetti di errori di programmazione o di comportamenti deliberatamente intrusivi.

Questi errori vengono segnalati e affidati alla gestione del s.o. tramite il meccanismo delle trap. In presenza di errore o di violazione della protezione il s.o. provvede a:

o terminare il processo, o segnalare la terminazione anomala ed o effettuare un dump della memoria.

Page 34: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Sistema di protezione

Ciascun processo opera in un dominio di protezione che specifica le risorse a cui il processo può accedere e le operazioni consentite.

Diritto di accesso (coppia ordinata <risorsa, diritti>): abilitazione all’esecuzione di un’operazione sulla risorsa; un dominio di protezione è una collezione di diritti di accesso.

Il sistema di protezione richiede l'esistenza di più modi di funzionamento della CPU:

o supervisor mode (system mode, monitor mode)o user mode

Il passaggio dal modo user al modo supervisor avviene tramite interruzione :o esterna (asincrona)o interna (sincrona, trap), generata da una SVC (SuperVisor Call o System Call).

Page 35: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Sistema di protezione

Esistono delle istruzioni privilegiate che possono essere eseguite solo in supervisor mode.

Istruzioni privilegiate:

o I/Oo modifica dei registri che delimitano le partizioni di memoria o manipolazione del sistema di interruzioneo cambiamento di modo o halt

Page 36: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Sistema di protezione

Prima di mettere un processo in esecuzione il s.o. ne confina lo spazio logico di memoria mediante registri limite.

Page 37: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Sistema di protezione

Page 38: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

Sistema di protezione

Le istruzioni di I/O sono privilegiate. Il programma utente richiede al s.o., tramite una system call, di eseguire l'operazione di I/O.

Page 39: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

System call

Tipicamente l'operando dell’istruzione di system call ne specifica il tipo (INT n), mentre il passaggio degli eventuali parametri avviene tramite registri o per indirizzo.

Passaggio dei parametri mediante tabella:

Page 40: UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Introduzione ai sistemi operativi Prof. M. Amoretti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Introduzione ai sistemi operativi Prof. M. Amoretti

System call

Costituiscono l'interfaccia tra un programma in esecuzione ed il s.o.

Istruzioni assembly, procedure chiamabili da linguaggi high-level. Nei linguaggi di alto livello sono tipicamente mascherate (“wrappate”) da procedure dette di supporto a tempo di esecuzione.

Categorie principali di system call:

a) controllo dei processi e dei jobb) manipolazione dei file e dei dispositivic) gestione delle informazionid) comunicazione