Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:



Documenti analoghi
Capitolo 3 -- Silberschatz

Sistemi Operativi (modulo di Informatica II) I processi

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

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

GESTIONE DEI PROCESSI

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

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Sistemi Operativi. Descrizione e controllo dei processi

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

Il Concetto di Processo

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

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

Sistemi Operativi. Des crizione e controllo dei proces s i

Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi

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

TECN.PROG.SIST.INF. Creazione di un processo in Windows. Roberta Gerboni

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

Il descrittore di processo (PCB)

Programmazione multiprocesso

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

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Sistemi Operativi SCHEDULING DELLA CPU

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

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

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

Scheduling della CPU:

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

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. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

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

Corso di Sistemi di Elaborazione delle informazioni

Scheduling della CPU Simulazione in linguaggio Java

Pronto Esecuzione Attesa Terminazione

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

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

Processi e Thread. Scheduling (Schedulazione)

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

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

Processi. Capitolo 3 -- Silberschatz

Elementi di Architettura e Sistemi Operativi

Processi. Laboratorio Software C. Brandolese

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

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

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

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

Il Sistema Operativo

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

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

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

Scheduling della CPU

Corso di Sistemi Operativi A.A CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi

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

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi

Processo - generalità

Sistemi Operativi Kernel

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

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

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

2. I THREAD. 2.1 Introduzione

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

SISTEMI OPERATIVI THREAD. Giorgio Giacinto Sistemi Opera=vi

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

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

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

Algoritmi di scheduling

Gestione della memoria centrale

Corso di Informatica

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

Introduzione ai sistemi operativi

Il Sistema Operativo (1)

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

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

Gli stati di un processo

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

Gestione dei processi

Definizione di processo 1

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

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

Java Virtual Machine

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

Capitolo 5: I thread

Sistemi Operativi. Scheduling dei processi

Processi in Linux. Stru/ura file eseguibili

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

La schedulazione. E.Mumolo

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

Approccio stratificato

Sistemi operativi e reti A.A Lezione 2

Corso di Sistemi di Elaborazione delle informazioni

Lo scheduler di UNIX (1)

L API socket ed i daemon

La Gestione delle risorse Renato Agati

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

Funzioni del Sistema Operativo

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

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Transcript:

Impossibile visualizzare l'immagine. Processi 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 Capitolo 3 -- Silberschatz 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 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 (es. fine di un operazione di I/O) ready: Il processo è in attesa di essere assegnato ad un processore terminated: Il processo ha terminato l esecuzione 1.3 1.4

Diagrammma di Stato dei Processi Process Control Block Contiene informazioni per la gestione del processo Stato del processo Identificatore Program counter Registri della CPU (accumulatori, registri indice, ) Informazioni per lo scheduling CPU (priorità del processo, puntatori alle code di sched., ) Informazioni per la gestione della memoria (tabelle delle pagine) Informazioni di contabilizzazione (tempo di utilizzo della CPU) 1.5 Informazioni sullo stato dell I/O (lista dei dispositivi di I/O, ) 1.6 La CPU commuta da Processo a Processo 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.7 1.8

Ready Queue e varie code di I/O Ciclo di vita di un processo 1.9 1.10 Schedulatori 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) 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 Schedulatore a breve termine (o CPU scheduler) seleziona il prossimo processo che la CPU dovrebbe eseguire In un sistema batch si sottopongono più processi di quanti se ne possano servire perciò parte di essi vengono trasferiti in memoria secondaria e poi prelevati dal job scheduler Sistemi time shering, come Unix e windows, sono privi di scheduler a lungo termine e si limitano a caricare in memoria tutti i nuovi processi ed a gestirli con lo scheduler a breve termine. E l utente che, se vede che le prestazioni della macchina diminuiscono decide di chiudere alcune applicazioni 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.11 1.12

Schedulatore a medio termine 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.13 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 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.15 1.16

Un albero di processi di Solaris Creazione di processi: implementazione 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.18 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.17 Crazione di processi: implementazione Terminazione di un processo Spazio di indirizzamento Lo spazio del figlio è un duplicato di quello del padre Il figlio può caricare in esso un nuovo programma 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 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 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.19 1.20

Creazione di un Processo con padre che aspetta il figlio 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.21 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) ); // Start the child process. if(!createprocess( NULL, // No module name (use command line). { printf( "CreateProcess failed (%d).\n", GetLastError() ; return -1; // Wait until child process exits. WaitForSingleObject( pi.hprocess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hprocess ); CloseHandle( pi.hthread ); "C:\\WINDOWS WINDOWS\\system32 system32\\mspaint.exe", 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. 1.23