Capitolo 3 -- Silberschatz



Похожие документы
Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

Sistemi Operativi (modulo di Informatica II) I processi

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

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

GESTIONE DEI PROCESSI

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Sistemi Operativi. Descrizione e controllo dei processi

Sistemi Operativi. 3 LEZIONE PROCESSI CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

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

Il Concetto di Processo

Sistemi Operativi. Des crizione e controllo dei proces s i

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

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

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

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

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

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

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

Programmazione multiprocesso

Il descrittore di processo (PCB)

Sistemi Operativi SCHEDULING DELLA CPU

Corso di Sistemi di Elaborazione delle informazioni

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

Scheduling della CPU:

Scheduling della CPU Simulazione in linguaggio Java

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra 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

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

Pronto Esecuzione Attesa Terminazione

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

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

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

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

Processi. Laboratorio Software C. Brandolese

Processi e Thread. Scheduling (Schedulazione)

Scheduling della CPU

Processo - generalità

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

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Elementi di Architettura e Sistemi Operativi

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI

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

2. I THREAD. 2.1 Introduzione

Sistemi Operativi Kernel

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

Definizione di processo 1

Gestione dei processi

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

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

Le system call: fork(), wait(), exit()

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

Capitolo 5: I thread

Il Sistema Operativo

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario

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

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

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

Gestione della memoria centrale

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

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

Gli stati di un processo

Approccio stratificato

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

Processi in Linux. Igino Corona 20 Ottobre 2009

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst!

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

La Gestione delle risorse Renato Agati

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

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

IL SISTEMA OPERATIVO

Algoritmi di scheduling

Sistemi operativi e reti A.A Lezione 2

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Funzioni del Sistema Operativo

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

La schedulazione. E.Mumolo

Il Sistema Operativo (1)

Java Virtual Machine

Sistemi operativi. Esempi di sistemi operativi

Транскрипт:

Processi Capitolo 3 -- Silberschatz

Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo sono usati in modo intercambiabile Processo un programma in esecuzione; l esecuzione di un processo avviene in modo sequenziale Un processo include: program counter contenuto registri CPU sezione testo sezione dati heap stack 1.2

Immagine in memoria di un processo 1.3

Stati di un processo Durante l esecuzione un processo cambia stato new: Il processo è stato creato running: Le sue istruzioni vengono eseguite waiting: Il processo è in attesa di qualche evento ready: Il processo è in attesa di essere assegnato ad un processore terminated: Il processo ha terminato l esecuzione 1.4

Diagrammma di Stato dei Processi 1.5

Process Control Block Contiene informazioni per la gestione del processo Stato del processo Identificatore Program counter Registri della CPU Informazioni per lo scheduling CPU Informazioni per la gestione della memoria Informazioni di contabilizzazione Informazioni sullo stato dell I/O 1.6

La CPU commuta da Processo a Processo 1.7

Code di scheduling per i processi Job queue insieme di tutti i processi nel sistema Ready queue insieme di tutti i processi in memoria centrale pronti per l esecuzione Code dei dispositivi insieme dei processi in attesa di qualche dispositivo di I/O I processi, durante la loro vita, migrano tra varie code 1.8

Ready Queue e varie code di I/O 1.9

Ciclo di vita di un processo 1.10

Schedulatori Il sistema si serve di uno schedulatore per selezionare un processo Schedulatore a lungo termine (o job scheduler) seleziona i processi che devono essere caricati in memoria centrale (ready queue) Schedulatore a breve termine (o CPU scheduler) seleziona il prossimo processo che la CPU dovrebbe eseguire 1.11

Schedulatori Lo schedulatore a breve termine viene invocato molto frequentemente (millisecondi) deve essere veloce Lo schedulatore a lungo termine viene invocato raramente (secondi, minuti) può essere più lento Lo schedulatore a lungo termine controlla il grado di multiprogrammazione ed interviene quando un processo termina I processi possono essere descritti come: Processi I/O-bound consumano più tempo facendo I/O che computazione, contengono molti e brevi CPU burst Processi CPU-bound consumano più tempo facendo computazione; contengono pochi e lunghi CPU burst 1.12

Schedulatore a medio termine 1.13

Cambio di contesto (Context switching) Quando la CPU viene allocata ad un altro processo, il SO deve salvare lo stato del processo in esecuzione e caricare lo stato del nuovo processo Il tempo per un context switch è tempo sprecato (overhead); il sistema non fa nulla di utile mentre commuta Il tempo dipende dal supporto hardware Il context switch viene realizzato dal dispatcher 1.14

Creazione di processi Il sistema operativo fornisce meccanismi per creare e terminare processi Un processo padre crea processi figli che, a loro volta, creano altri processi, formando un albero di processi Ogni processo ha un identificatore (process identifier) PID 1.15

Un albero di processi di Solaris Sched genera: -fsflush, pageout (che si occupano della gestione della memoria e del file system) e - init (che il progenitore di tutti i processi utente) 1.16

Un albero di processi di Solaris Init genera: -inetd (che gestisce i servizi di rete: telnet, ftp) -Il processo csh (pid=7778) si riferisce ad un utente che ha avuto acceso al sistema mediante telnet ed ha avviato Netscape ed emacs -dtlogin (che rappresenta la schermata di accesso al sistema). -dtlogin crea una sessione X-windows che a sua volta genera sdt_shel al di sotto del quale risiede la shell dell utente. 1.17

Creazione di processi: implementazione Condivisione di risorse Padre e figli condividono tutte le risorse figli condividono un sottoinsieme delle risorse del padre Padre e figlio non condividono niente Esecuzione Padre e figli vengono eseguiti in concorrenza Padre aspetta fino alla terminazione dei figli 1.18

Crazione di processi: implementazione Spazio di indirizzamento Lo spazio del figlio è un duplicato di quello del padre Il figlio carica in esso un nuovo programma Esempi UNIX La chiamata fork crea un nuovo processo La chiamata exec viene usata dopo una fork per sostituire l immagine in memoria del processo con un nuovo programma La chiamate wait permette al padre di aspettare che il figlio termini 1.19

Terminazione di un processo Un processo esegue l ultima istruzione e chiede al SO di eliminarlo (exit) Trasmette un valore di output al padre (via wait) Le risorse del processo sono recuperate dal SO Il processo padre può terminare l esecuzione dei processi figli (e.g., TerminateProcess() in Win32) Un figlio ha ecceduto nell uso delle risorse Il compito assegnato al figlio non è più richiesto Se il padre ha terminato Alcuni SO non permettono ai processi figli di continuare Tutti i figli vengono terminati terminazione a cascata 1.20

Creazione di un Processo con padre che aspetta il figlio 1.21

C Program Forking Separate Process int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); } } 1.22

C Program Forking Separate Process #include <windows.h> #include <stdio.h> int main( VOID ) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); { } printf( "CreateProcess failed (%d).\n", GetLastError() ; return -1; // Wait until child process exits. WaitForSingleObject( pi.hprocess, INFINITE ); // Start the child process. if(!createprocess( NULL, // No module name (use command line). "C:\\WINDOWS\\system32\\mspaint.exe", // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) // Pointer to PROCESS_INFORMATION structure. ) // Close process and thread handles. CloseHandle( pi.hprocess ); CloseHandle( pi.hthread ); } 1.23