• Non ci sono risultati.

Sistemi operativi

N/A
N/A
Protected

Academic year: 2021

Condividi "Sistemi operativi"

Copied!
23
0
0

Testo completo

(1)

Processi Processi

Capitolo 3 -- Silberschatz

(2)

Concetto di processo 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

Sistemi operativi

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

(3)

Immagine in memoria di un processo Immagine in memoria di un processo

1.3

Sistemi operativi

(4)

Stati 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

ready: Il processo è in attesa di essere assegnato ad un processore

Sistemi operativi

processore

terminated: Il processo ha terminato l’esecuzione

(5)

Diagrammma di Stato dei Processi Diagrammma di Stato dei Processi

1.5

Sistemi operativi

(6)

Process Control Block Process Control Block

Contiene informazioni per la gestione del processo

Stato del processo Identificatore

Program counter

Sistemi operativi

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

(7)

La CPU commuta da Processo a Processo La CPU commuta da Processo a Processo

1.7

Sistemi operativi

(8)

Code di scheduling per i processi 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

Sistemi operativi

I processi, durante la loro vita, migrano tra varie code

(9)

Ready Queue e varie code di I/O Ready Queue e varie code di I/O

1.9

Sistemi operativi

(10)

Ciclo di vita di un processo Ciclo di vita di un processo

Sistemi operativi

(11)

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)

1.11

Sistemi operativi

Schedulatore a breve termine (o CPU scheduler) –

seleziona il prossimo processo che la CPU dovrebbe

eseguire

(12)

Schedulatori 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

Sistemi operativi

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

(13)

Schedulatore a medio termine Schedulatore a medio termine

1.13

Sistemi operativi

(14)

Cambio di contesto (Context switching) 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

Sistemi operativi

Il tempo dipende dal supporto hardware

Il context switch viene realizzato dal dispatcher

(15)

Creazione di processi 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

Sistemi operativi

(16)

Un albero di processi di Solaris 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)

Sistemi operativi

tutti i processi utente)

(17)

Un albero di processi di Solaris 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

1.17

Sistemi operativi

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.

(18)

Creazione di processi: implementazione 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

Sistemi operativi

Esecuzione

Padre e figli vengono eseguiti in concorrenza

Padre aspetta fino alla terminazione dei figli

(19)

Crazione di processi: implementazione 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

1.19

Sistemi operativi

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

(20)

Terminazione di un processo 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)

Sistemi operativi

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

(21)

Creazione di un Processo con padre che Creazione di un Processo con padre che

aspetta il figlio aspetta il figlio

1.21

Sistemi operativi

(22)

C Program Forking Separate Process 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);

Sistemi operativi

}

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);

}

}

(23)

C Program Forking Separate Process 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 );

1.23

Sistemi operativi

// 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.

)

WaitForSingleObject( pi.hProcess, INFINITE );

// Close process and thread handles.

CloseHandle( pi.hProcess );

CloseHandle( pi.hThread );

}

Riferimenti

Documenti correlati

Ecco come sarà il nuovo processo civile: il disegno di legge delega punta agli obiettivi di maggiore efficienza e rapidità delle cause, anche evitandole quando non sono

Prima del termine dell’audit, il Lead Auditor provvede alla presentazione dei risultati della verifica al Cliente consegnando copia del Rapporto di Audit e degli eventuali

Tuttavia, osserva la Corte, “tale potere di accertamento volto a conformare, come nella specie, la successiva attività della PA al ‘dictum’ giurisdizionale, non può che

“[...] per ogni società è importante superare il sospetto sul diritto e i suoi ordinamenti, poiché solo così si può bandire l’arbitrio e vivere la libertà in quanto

L’indisponibilità della funzionalità del PTT per il deposito degli atti e dei documenti ovvero dei relativi servizi funzionali al diritto della difesa, quali, ad esempio, la

Dopo l'acquisizione dell'indipendenza, la Bielorussia è divenuta una Repubblica parlamentare e già nel 1992 si è data una legge sulla libertà religiosa e

Facendo riferimento alle concrete previsioni legislative che differenziano i due regimi, nel caso di sentenza affermativa la previsione di un giudizio preliminare

Senza potere qui entrare nel merito degli eterogenei fattori (anche culturali) che hanno più in generale contribuito, nella storia italiana dell’ultimo ventennio, ad