Processo - generalità



Похожие документы
Scheduling della CPU:

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

Scheduling della CPU

Corso di Informatica

Sistemi Operativi SCHEDULING DELLA CPU

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

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

Lo scheduling. Tipici schedulatori

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

Processi e Thread. Scheduling (Schedulazione)

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

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

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Lo schedulatore del kernel

Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Gestione della memoria centrale

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

Scheduling della CPU Simulazione in linguaggio Java

Scheduling. Lo scheduler è la parte del SO che si occupa di

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

Sistemi Operativi (modulo di Informatica II) I processi

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

SCHEDULATORI DI PROCESSO

Sistemi Operativi Kernel

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

Il Sistema Operativo (1)

Corso di Sistemi di Elaborazione delle informazioni

La Gestione delle risorse Renato Agati

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

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Architettura degli Elaboratori 2. tipi di scheduling. scheduling. scheduling della CPU (1) Esercitazione 1. politiche di ordinamento dei processi

Gestione del processore e dei processi

Scheduling. Scheduling 14/12/2003 1/7

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Algoritmi di scheduling

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

Architettura degli Elaboratori 2

GESTIONE DEI PROCESSI

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

Pronto Esecuzione Attesa Terminazione

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Sistema operativo: Gestione della memoria

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

La schedulazione. E.Mumolo

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

Sistemi operativi. Esempi di sistemi operativi

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

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

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

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

J. Assfalg Appunti di Sistemi Operativi

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

Sistemi Operativi. 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

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

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

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

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

Sistemi Operativi. Scheduling dei processi

Il Software. Il software del PC. Il BIOS

CPU. Maurizio Palesi

Il descrittore di processo (PCB)

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

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

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

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

J. Assfalg Appunti di Sistemi Operativi

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Architettura di un calcolatore

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

Approccio stratificato

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Automazione Industriale (scheduling+mms) scheduling+mms.

Architettura hardware

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

DMA Accesso Diretto alla Memoria

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi. 5 Gestione della memoria

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Il Concetto di Processo

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

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

Lo scheduler di UNIX (1)

Транскрипт:

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 la propria attività

Processo - generalità Programma sequenza d istruzioni + dati oggetto statico! Processo sequenza di azioni per l esecuzione di un programma entità dinamica attività di esecuzione di un programma. Contesto all interno del quale un programma viene eseguito; Codice + dati +stack + attributi utili per l esecuzione

Creazione di processi Esempi di eventi che generano la creazione di un processo Inizializzazione del sistema Quando il SO viene lanciato, vengono generalmente creati diversi processi eseguiti in foreground interagiscono con utenti ed eseguono lavoro per loro. Altri in background (demoni) Non interagiscono con l utente. Sono posti in esecuzione periodicamente per assolvere un lavoro. es può essere progettato per ricevere la mail in arrivo, accettare richieste in arrivo di pag. Web. Spooler della stampante (premendo CTR-ALT-CANC in Window si vede cosa c è in esecuzione).

Creazione di processi 2. Chiamata di sistema da parte di un processo Un processo in esecuzione può effettuare chiamate di sistema per creare uno o più nuovi processi ad esempio per aiutarlo a compiere il suo lavoro. La creazione di nuovi processi è particolarmente utile quando il lavoro da fare può essere facilmente espresso in termini di processi diversi e collegati, ma comunque indipendenti. ES: scopo prelevare quantità di dati dalla rete per poi elaborarli Sol: creare un processo che prende i dati e li mette in un buffer condiviso creare un secondo processo che li elabora parallelamente quando ci sono dati nel buffer

Creazione di processi 3 Richiesta utente Nei sistemi interattivi gli utenti possono creare un processo lanciando un comando o... cliccando su un icona. Queste azioni provocano la creazione di un nuovo processo che esegue il programma selezionato

Terminazione dei processi: esempi Terminazione con errore (volontaria) Il processo scopre un errore fatale: ad esempio se viene passato ad un processo un parametro sbagliato cc foo.c // il compilatore non trova il file foo.c e semplicemente termina Terminazione normale (volontaria) Il processo ha finito il proprio lavoro

Terminazione dei processi: esempi Kill da parte di un altro processo Un processo esegue una chiamata di sistema dicendo al SO di uccidere qualche altro processo (il processo killer deve avere l autorità necessaria!) Terminazione con errore fatale (involontaria) Causato dal processo, spesso dovuto ad un errore di programmazione (bug); esecuzione di istruzioni illegali; riferimenti a parte di memoria che non esistono; divisione per 0

Stati di un processo... Lo stato di un processo caratterizza una particolare fase dell attività del processo stesso. Esempio un modello a 3 stati: Un processo può essere in attesa di un qualche evento (impossibilitato di essere messo in esecuzione, stato di waiting) Un processo può essere posto in esecuzione dalla cpu (stato di running) Un processo può essere pronto per andare in esecuzione

Stati di un processo e transizioni di stato: es un modello a 3 stati Sta utilizzando il processore scheduling esecuzione Richiesta I/O terminazione Attesa di un qualche evento: Es. completamento di un operazione di I/O creazione pronto I/O terminato attesa Potenzialmente in condizione di poter usare il processore che è occupato da un altro processo

...e transazioni di stato Tra questi stati sono possibili delle transazioni che si attuano in seguito a certi eventi Blocked ready (I/O completato) Es dati di inpu disponibili Running ready Lo scheduler scegli un altro processo Running blocked (attesa I/O) Es: un processo si blocca in attesa di input Ready running : lo scheduler seleziuona un processo da mandare in esecuzione Politiche di scheduling.

Es : un modello a 5 stati Running Ready Blocked New Exit

In genere le cose sono più complicate: UNIX Process States

UNIX Process States

Implementazione dei processi - generalità - Come viene realizzato questo modello? Per implementare il modello a processi il SO mantiene una tabella (tabella de processi) con un elemento (entry) dedicato ad ogni processo

Esempio: tipiche informazioni che possono risiedere in un record della tabella

Come appare fisicamente un processo? Nella sua forma minima un processo contiene : programmi, dati, stack, attributi Attributi : Generalmente le informazioni relative al controllo del processo sono mantenuta in una tabella Process control block Un sistema sofisticato di multiprogrammazione richiede una gran quantità di informazioni riguardo a ciascun processo. In generale queste informazioni risiedono in una tabella process control block, e sitemi diversi la organizzano in modi diversi, noi consideriamo il tipo senza considerare ora l organizzazione Per Immagine del processo si intende l insieme di programmi, dati, stack e attributi

Immagine del processo: elementi tipici Process control block informazioni relative agli attibuti per il controllo del processo. Un sistema sofisticato di multiprogrammazione richiede una gran quantità di informazioni riguardo a ciascun processo Stack di sistema Ciascun processo può avere uno o più stack di sistema (LIFO). Uno stack è utilizzato per memorizzare parametri e indirizzi per le chiamate di procedura di sistema Programma utente Programma che deve essere eseguito Dati utente Parte modificabile dello spazio utente: può includere dati programma, stack utente

Process Control Block Table (elementi tipici) Informazioni che il so deve disporre per controllare e gestire un processo La PCB è probabilmente la struttura dati più importante del SO Strutturazione dei dati Un processo può essere collegato ad altri in una coda o in qualche altra struttura Ad esempio tutti i processi in uno stato di attesa possono essere collegati in una coda Informazioni sullo stato del processore Valore del program counter, PSW Contenuto di tutti i registri Informazioni di controllo del processo Schedulazioni ed informazioni di stato Informazioni sui file e sulle risorse hardware attualmente in uso Informazioni sull utilizzo della memoria centrale e secondaria Identificativo dell utente proprietario (importante in multiutenza!!)

Process Control Block Table (elementi tipici) Identificazione del processo Identificativo del processo (nome o numero progressivo univoco) Identificativo utente

Code dei processi non in esecuzione

nota La locazione dell immagine del processo dipenderà dallo schema di gestione della memoria in uso: nel caso più semplice, l immagine del processo è mantenuta come blocco contiguo in memoria secondaria usualmente su disco. Affinché il sistema possa gestire il processo almeno una porzione della sua immagine deve essere caricata in memoria centrale. Il so deve conoscere la posizione di ciascun processo su disco e nella memoria principale La maggior parte dei SO moderni utilizza uno schema della gestione della memoria in cui l immagne del processo si compone di un insieme di blocchi non necessariamente contigui

Nota: tabella dei processi e immagine del processo Per ogni processo vi è una entry nella tabella dei processi; tale entry dovrà contenere almeno un riferimento all immagine del processo; Nel caso, come generalmente accade nei sist. moderni, l immagine del processo sia caratterizzata da blocchi (segmenti) non contigui, tale informazione (riferimenti) saranno presenti nella tabella dei processi oppure con riferimenti incrociati nelle tabelle di memoria. NB questa è una descrizione generale: ogni so organizza questa informazioni in modo diverso

Come si può mantenere l illusione di una molteplicità di processi sequenziali in una macchina con una sola cpu e molti dispositivi di ingresso e uscita? La funzione principale di un processore consiste nell eseguire istruzioni macchina, che risiedono nella memoria principale come programmi. Dal punto di vista del processore, le istruzioni sono eseguite in una sequenza determinata dal cambiamento dei valori nel registro contatore di programma; nel tempo il contatore di programma può riferirsi al codice di diversi programmi appartenenti a diverse applicazioni Dal punto di vista del programma l esecuzione comporta una sequenza di istruzioni entro il programma stesso e viene definita come processo

Un sistema con 3 processi caricati in memoria

Def: La Traccia di esecuzione dei processi È possibile caratterizzare il comportamento di un singolo processo elencando la relativa sequenza di istruzioni eseguite: tale elenco è definito traccia del processo

Def: La Traccia di esecuzione dei processi

nota Il comportamento del processore si può invece caratterizzare mostrando come siano interallacciate le tracce dei diversi processi

100 Indirizzo di inizio del programma dispatcher Le aree scure indicano L esecuzione del processo dispatcher

Cambio di contesto: P1 P2 1 Si salva il contenuto di tutti i registri del processore nel descrittore della tabella dei processi del processo p1 che è stato sospeso; 2 Si seleziona un processo p2 pronto per l esecuzione 3 Si copiano all interno dei registri del processore i valori dei registri salvati nel descrittore del processo p2, in modo da ripristinare lo stato in cui p2 si trovava al momento della sospensione; se p2 non era mai stato eseguito in precedenza si copierà in PC l indirizzo della sua prima istruzione

algoritmi si schedulazione Il modulo del SO che si occupa di questo è lo scheduler: Il suo compito è quello di selezionare un processo (da una coda) e assegnare il processore Ci sono diversi algoritmi di scheduling e ciascuno viene scelto in particolari contesti in modo da privilegiare un criterio o un altro

Tasso di utilizzo della CPU Throughput misura di numeri di processi completati per unità di tempo Turnaround time intervallo di tempo tra la sottomissione di un processo e il suo completamneto Waiting time tempo in attesa nella coda dei processi pronti

N.B. Obbiettivo della multiprogrammazione consiste nel disporre dell esecuzione contemporanea di alcuni processi in modo da massimizzare l utilizzo della CPU Commutare l uso della cpu così frequentemente che gli utenti possano interagire con ciascun programma mentre esso è in esecuzione.

Una classificazione dei criteri di scheduling (a breve termine: in base all uso della cpu) : Preemptive scheduling (prelazionale) la cpu in uso di un processo può essere tolta e passata a un altro processo in qualsiasi istante. il SO ne blocca l uso e concede l uso a un altro processo. Non Preemptive scheduling (cooperativo) una volta che un processo ha ottenuto l uso della CPU non è interrotto se non quando lo prevede esso stesso.

nota Diversi ambienti richiedono diversi algoritmi di schedulazione : 3 ambienti che vale la pena distinguere Batch Non ci sono utenti impazienti in attesa ai loro terminali di una risposta veloce. Sono spesso accetabili algoritmi senza prelascio, sia algoritmi con prelascio con un periodo lungo per ogni processo Interattivo Il prelascio è essenziale per evitare che un processo si impossessi della cpu impedendo agl altri di ottenre servizi real time Generalmente il prelascio è poco necessario i processi sanno che non vengono eseguiti per lungo termine fanno normalmente il loro lavoro e si bloccano in fretta

Schedulazione in ambienti batch First Come First Served (FCFS): Shortest Job First (SJF): Shortest Remaining Time First (SRTF)

First Come First Served (FCFS): non preemtive i processi sono eseguiti nell ordine in cui sono sottomessi al sistema. Nuovi processi Coda pronti CPU Fine esecuzione I/O terminato In attesa

Shortest Job First (SJF): Non preemtive. Simile a FCFS ma si seleziona quello che richiede meno tempo per terminare o per fermarsi sulla prossima operazione di attesa.

Shortest Remaining Time First (SRTF) non Preemtive. Si manda in esecuzione il processo più breve ma in ogni istante può essere interrotto se nel frattempo è diventato pronto un processo che richiede meno tempo per terminare.

Scheduling a lungo termine Nuovi processi Coda anticamera Coda pronti Scheduling a breve termine CPU Fine esecuzione I/O terminato In attesa In molti casi non è opportuno avere una coda di processi pronti (grado di multiprogrammazione troppo elevato) si rischia di allungare il tempo di turneround: Si può attuare una coda di anticamera

Schedulazione in ambienti interattivi Selezione con priorità Round Robin (RR)

Selezione con priorità Si associa una priorità ad ogni processo e ogni volta Si seleziona dalla coda il processo con priorità maggiore: preemtive se durante l esecuzione di un processo P1 diventa pronto un processo p2 con priorità maggiore viene Effettuato il cambio di contesto Non-preemtive il processo rimane in esecuzione fino a Quando non va in attesa La priorità: Tipo di programma i programmi interattivi hanno in genere Priorità maggiore di quelli batch Utente proprietario Lunghezza del programma Tempo già trascorso in esecuzione

Round Robin (RR) Preemtive Ogni processo che viene mandato in esecuzione viene assegnato lo stesso quanto di tempo (time slice) prefissato Nuovi processi Coda pronti CPU Fine esecuzione I/O terminato In attesa Quanto di tempo scaduto