IL SISTEMA OPERATIVO



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

Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Pronto Esecuzione Attesa Terminazione

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il Sistema Operativo (1)

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

Sistemi Operativi (modulo di Informatica II) I processi

La Gestione delle risorse Renato Agati

Corso di Sistemi di Elaborazione delle informazioni

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Sistema operativo: Gestione della memoria

Scheduling della CPU Simulazione in linguaggio Java

Varie tipologie di memoria

Architettura di un sistema di calcolo

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

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Sistema di protezione (1)

Sistema di protezione (2) Protezione (1)

Dispensa di Informatica I.1

Organizzazione Monolitica

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

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

GESTIONE DEI PROCESSI

STRUTTURE DEI SISTEMI DI CALCOLO

Gestione della memoria centrale

Sistemi Operativi Kernel

Infrastrutture Software

Scheduling della CPU:

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

Sistemi Operativi. 5 Gestione della memoria

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

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

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Sistemi operativi. Esempi di sistemi operativi

Java Virtual Machine

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

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

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Il memory manager. Gestione della memoria centrale

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Mul&programmazione. Ges&one dei processi. Esecuzione parallela. MAC OSX Monitoraggio a9vità. Linux System monitor. Windows Task Manager. A.

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Informatica: il sistema operativo

Introduzione ai Sistemi Operativi

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

Algoritmi di scheduling

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Il software. la parte contro cui si può solo imprecare. Il software

Sistema operativo: Gestione dei processi

Il Sistema Operativo

FONDAMENTI di INFORMATICA L. Mezzalira

Approccio stratificato

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

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

Il Software. Il software del PC. Il BIOS

Scheduling della CPU

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Il descrittore di processo (PCB)

Sistemi Operativi SCHEDULING DELLA CPU

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Funzioni del Sistema Operativo

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

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Sistema Operativo Compilatore

Processi e Thread. Scheduling (Schedulazione)

Il Concetto di Processo

Lo schedulatore del kernel

Corso di Informatica

Lo scheduler di UNIX (1)

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Esempio: aggiungere j

Architettura di un sistema operativo

Deadlock (stallo) Parte III. Deadlock

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

TRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso.

Coordinazione Distribuita

Cosa è un Sistema Operativo (S.O.)

Programmazione modulare

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Le Infrastrutture Software ed il Sistema Operativo

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

PARTE 4 La Macchina Software

I THREAD O PROCESSI LEGGERI Generalità

CAPITOLO 1 I SISTEMI OPERATIVI

Corso di Informatica

Il problema del produttore e del consumatore. Cooperazione tra processi

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

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

Introduzione ai sistemi operativi

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Transcript:

IL SISTEMA OPERATIVO... è l insieme dei programmi che rende agevole l uso dell hardware, mascherando le caratteristiche delle risorse fisiche (interfaccia) gestisce le risorse fisiche ottimizzandone l uso con opportune politiche (nucleo o kernel) INTERFACE KERNEL Hardware Si assume di riferirsi ad un sistema operativo che preveda l utilizzo di un sistema ad un unico processore da parte di più programmi-utente «contemporaneamente». In tal caso si assume che più programmi siano presenti in memoria. G. Piscitelli Politecnico di Bari pag. 1 di 14

L ESECUZIONE DI UN PROGRAMMA gestisce le varie fasi dell esecuzione di più programmi-utente. process manager job scheduler device manager memory manager file manager run complete submit hold ready wait ciclo di esecuzione process scheduler submit fase in cui viene richiesta l esecuzione del programma hold fase di incodamento delle richieste di esecuzione in attesa delle risorse necessarie (livello di multitasking, memoria, dispositivi, file) ready fase di attesa della risorsa CPU da parte dei processi run fase di utilizzo della CPU (un solo processo alla volta) wait fase di attesa di eventi (I/O, disponibilità di risorse condivise, completamento processi cooperanti, ecc.) complete fase di rilascio delle risorse G. Piscitelli Politecnico di Bari pag. 2 di 14

LA FUNZIONE DEL SISTEMA OPERATIVO produce l avanzamento delle richieste di esecuzione dei programmi. Dapprima le richieste sottoposte vengono raggruppate, costituendo la coda relativa allo stato di submit. Dopo l analisi delle risorse necessarie a soddisfare le richieste, esse vengono ordinate in relazione ai criteri di priorità (macroscheduling) del Job Scheduler, costituendo la coda relativa allo stato di hold. A partire dalla prima richiesta di esecuzione presente nella coda di hold, il Job Scheduler, chiamando i gestori delle varie risorse, verifica la disponibilità delle risorse necessarie e, dopo averne avuto conferma, attiva il Process Scheduler. Questo trasforma la richiesta di esecuzione in processo e costruisce un blocco di informazioni (Process o Task Control Block), che, progressivamente aggiornate, gli permetteranno di gestire il programma nel ciclo di esecuzione. Inizialmente il task viene immesso nella coda relativa allo stato di ready. La coda in questione è organizzata in relazione ai criteri di priorità (microscheduling) con cui il Process Scheduler ordina i vari task che abbisognano della sola CPU per essere eseguiti. Non appena la CPU si libera (o il rispetto delle priorità lo richiede), viene operato il cambio del contesto operativo (context switching) della CPU e un processo passa nello stato di run (ed uno passa in ready). L attesa di specifici eventi può costringere il S.O. a far transitare il processo nella coda corrispondente allo stato di wait. Dopo aver ciclato tra gli stati del ciclo di esecuzione, il processo arriva a conclusione e transita nella coda dello stato di complete. G. Piscitelli Politecnico di Bari pag. 3 di 14

JOB, JOB-STEP E TASK Un job è costituito da uno o più job-step (programmi) da eseguire in sequenza. Un job-step (o programma) è costituito da uno o più task (processi cooperanti) che operano «contemporaneamente» contendendo fra loro nell utilizzo dell unico processore, oltre che con gli altri processi costituenti gli altri programmi (processi concorrenti). stesso è costituito da processi che cooperano per rendere possibile l'esecuzione dei programmi. Un task è una attività elementare ed indipendente, con associate le risorse (memoria, file, dispositivi) richieste per la sua esecuzione. Ad ogni task è associato un Task Control Block (TCB) o Process Control Block (PCB). Quando un processo passa dallo stato di run allo stato di ready (o a quello di wait), il contenuto dei registri di CPU (contesto computazionale del task) viene copiato nel TCB: si dice che viene salvato il contesto del task. Quando successivamente il task ritornerà nello stato di run, il suo contesto sarà ripristinato nella CPU. Il TCB, oltre al contesto computazionale del task, contiene: la priorità del task; le risorse utilizzate dal task. G. Piscitelli Politecnico di Bari pag. 4 di 14

GESTIONE DEI PROCESSI Interruzioni interne (o trap): hanno carattere sincrono, in quanto il processo che lancia la trap va nello stato di wait provocando l'avvio di un processo del nucleo del sistema operativo (Supervisor Call o SVC). Interruzioni esterne (o interrupt): hanno carattere asincrono, in quanto al verificarsi di un evento, la sua occorrenza è segnalata alla CPU tramite un interrupt. Entra quindi in azione il nucleo del sistema operativo, che attiva il Gestore delle interruzioni (interrupt handler). Quest'ultimo esegue le operazioni richieste. Non sempre le interruzioni vengono servite immediatamente: interrupt masking o disabilitazione temporanea del servizio delle interruzioni. G. Piscitelli Politecnico di Bari pag. 5 di 14

POLITICHE DI ALLOCAZIONE DELLA CPU round robin la coda di READY è di tipo FIFO; il process scheduler assegna lo stesso time slice al processo correntemente primo in coda; round robin modificato ad ogni processo viene attribuita una priorità nella coda di READY inversamente proporzionale al tempo di RUN utilizzato in precedenza; priorità statica ad ogni processo viene attribuita una priorità, che il processo conserva per tutta la durata del ciclo di esecuzione; priorità dinamica la priorità del processo viene stabilita in base al suo merito, calcolato, al termine di un intervallo statistico T, in base al numero di volte che il processo ha completamente utilizzato il time slice assegnatogli. Processi orientati all esecuzione di operazioni logico-aritmetiche (CPU-bound) e processi orientati all esecuzioni di operazioni di input-output (I/O-bound). G. Piscitelli Politecnico di Bari pag. 6 di 14

STRUTTURA DEI SISTEMI OPERATIVI La struttura del S.O. può essere monolitica, quando esso è composto da un unico modulo che serve le richieste dei programmi-utente una alla volta; a livelli, se esso è articolato in diversi moduli, ciascuno dei quali svolge specifiche funzioni, ed ogni modulo può servire le richieste di più programmi-utente a macchina virtuale, se esso offre a ciascun programma-utente visibilità di un particolare hardware G. Piscitelli Politecnico di Bari pag. 7 di 14

I SISTEMI OPERATIVI A LIVELLI Programmi utente INTERFACCIA (Interprete di comandi o Shell) FILE SYSTEM DEVICE MANAGER CPU AND PROCESSES MANAGER (parte alta) MEMORY MANAGER CPU AND PROCESSES MANAGER (parte bassa) Hardware L Interfaccia comprende il Job Scheduler. I livelli tra l Interfaccia e l Hardware costituiscono il Nucleo. Ogni livello garantisce la gestione di una risorsa e comprende tutti i moduli che contribuiscono a svolgere tale compito. I moduli di un livello possono utilizzare moduli dei livelli sottostanti, ma non quelli dei livelli sovrastanti, mediante chiamate al Supervisore o primitive sincrone (trap o interrupt interni). Il Manager della CPU e dei processi (o Process Scheduler) è suddiviso in due parti: la parte alta comprende i moduli per la creazione/distruzione di processi e per la comunicazione tra processi; la parte bassa comprende i moduli per la sincronizzazione di processi. G. Piscitelli Politecnico di Bari pag. 8 di 14

SINCRONIZZAZIONE DEI PROCESSI Processi cooperanti e processi concorrenti condividono risorse. La condivisione, se non disciplinata, può comportare l insorgere di race-condition, cioè di situazioni in cui i risultati delle elaborazioni condotte dai processi dipendono dalla velocità relativa dei processi stessi. Esempi dell osservatore e del reporter, del produttore e del consumatore, del magazziniere e del commesso. La disciplina di accesso ad una risorsa condivisa si basa sull accesso mutuamente esclusivo alla risorsa da parte dei processi. La sezione critica di un processo. Il semaforo. Operatore di impegno della risorsa Sezione critica Operatore di rilascio della risorsa Risorsa condivisa risorsa già impegnata da P S A B C coda dei processi in attesa Gli operatori indivisibili wait ( o lock o P) e signal (o unlock o V). wait(s): if ( S <= 0) aggiungi il processo alla coda else S = S - 1; signal (S): if (coda su S non vuota) rendi ready il primo processo else S = S + 1; G. Piscitelli Politecnico di Bari pag. 9 di 14

STALLO (DEADLOCK) DEI PROCESSI Pur in presenza di un accesso disciplinato alle risorse, la concorrenza e cooperazione dei processi può determinare un altra condizione indesiderabile: lo stallo o deadlock. Esso si manifesta allorché due o più processi circolarmente detengono una risorsa (che non rilasciano o che non è requisibile dal sistema operativo) e ne richiedono un altra detenuta da un altro processo secondo le medesime modalità. R1 P3 P1 R3 R2 P2 Le tecniche per trattare lo stallo sono: di tipo preventivo, quando evitano che lo stallo si determini; di tipo curativo, quando individuano e rimuovono situazioni di stallo già determinatesi. G. Piscitelli Politecnico di Bari pag. 10 di 14

GESTIONE DELLA MEMORIA CENTRALE La condivisione della memoria tra più programmi. La rilocazione dei programmi: indirizzamento basato sul registro base ed il displacement. registro 3 1024000 (3, 3250) indirizzo rilocabile (numero registro,displacement) MMU o traduttore dinamico indirizzi 1027250 indirizzo assoluto Il compilatore e la creazione di indirizzi rilocabili. Il linker e la fusione di moduli separatamente compilati, con trasformazione in indirizzi rilocabili degli indirizzi simbolici delle variabili esterne. Il programma in formato eseguibile: il formato rilocabile, la dimensione, l entry point. Il caricatore (loader) e la rilocazione statica o dinamica. G. Piscitelli Politecnico di Bari pag. 11 di 14

POLITICHE DI GESTIONE DELLA MEMORIA Partizionamento statico: la memoria è suddivisa a-priori in parti di ampiezza predefinita, ciascuna delle quali ospita un programma. Partizionamento dinamico: la memoria è suddivisa in parti di dimensioni pari a quelle richieste dai programmi. Paginazione: il programma è suddiviso in pagine di ampiezza fissa e predefinita (2kbyte o multipli) e la memoria centrale è suddivisa in blocchi della stessa ampiezza, ciascuno dei quali ospita una pagina di un programma. Segmentazione: il programma è suddiviso in parti legate alla sua struttura (moduli, aree di dati) e la memoria centrale viene assegnata sì da ospitare i vari segmenti. Memoria virtuale paginata: alla normale paginazione si aggiunge un meccanismo che tende a caricare in memoria solo le pagine effettivamente richieste dall esecuzione del programma. Memoria virtuale segmentata: alla normale segmentazione si aggiunge un meccanismo che tende a caricare in memoria solo i segmenti effettivamente richiesti dall esecuzione del programma. G. Piscitelli Politecnico di Bari pag. 12 di 14

MMU NEL CASO DELLA PAGINAZIONE Mappa delle pagine del programma #P 0 1 2 3 4.. #B 12 22 16 35 22... (2, 1200) indirizzo rilocabile (numero pagina, displacement) MMU o DAT #B*4096+displacement 66736 indirizzo assoluto G. Piscitelli Politecnico di Bari pag. 13 di 14

MMU NELLA PAGINAZIONE VIRTUALE Mappa delle pagine del programma IB=1 #B #P 0 1 2 3 4.. IB 1 0 0 1 0... #B 12 -- -- 35 --... #E 1 2 4 9 6... Mappa delle pagine non in memoria #E #C #T #S............ 4 20 120 23............ numero blocco #B in cui caricare la pagina consultazione mappa memoria numero cilindro numero traccia numero settore da cui caricare in memoria la pagina (2, 1200) MMU o DAT #B*4096+displacement indirizzo rilocabile (numero pagina, displacement) indirizzo assoluto G. Piscitelli Politecnico di Bari pag. 14 di 14