Estratto del documento

Argomenti più comuni esame di :

Sistemi Operativi (Ingegneria informatica ed elettronica)

Fork ed exec – 4

 Algoritmi di scheduling dei processi (FCFS, SJF, RR, con priorità, garantito, real

 time..) – 5

Semafori – 6

4. Chiamate di sistema fork ed exec

In Unix, la chiamata di sistema fork() duplica il processo padre,

creando un processo figlio identico (il cui spazio degli indirizzi sarà

una copia di quello del processo padre).

La fork restituisce il valore del pid del figlio al padre, e 0 al figlio

(così che si renda conto di esser tale).

Generalmente, dopo una chiamata di sistema fork(), uno dei due

processi impiega una chiamata di sistema exec() per sostituire lo

spazio di memoria del processo con un nuovo programma. La

chiamata di sistema exec() carica in memoria un file (passato come

parametro), cancellando l’immagine di memoria del programma

contenente la stessa chiamata di sistema exec(), quindi avvia la sua

esecuzione. Viene inoltre azzerato lo stack.

Il processo genitore può anche generare più processi figli, oppure,

se durante l’esecuzione del processo figlio non ha nient’altro da

fare, può invocare la chiamata di sistema wait() per rimuovere se

stesso dalla coda dei processi pronti fino alla terminazione del figlio.

Exec è in realtà una famiglia di primitive, con numerose varianti

(execl, execle, execlp, execve…) che differiscono nel numero e nella

tipologia di parametri richiesti. In ogni caso, l’ ultimo parametro

passato a queste funz. (execl…) deve esser necessariamente un

puntatore NULL per far capire al programma che son finiti i

parametri (ciò vale anche con i vettori). Nel caso della

programmazione multithread, la fork() può avere due esiti differenti:

se è seguita immediatamente da una exec(), essa si limita a

duplicare unicamente il thread che ha invocato la fork(), altrimenti

duplica tutti i thread del processo padre.

5. Descrivere gli algoritmi di scheduling dei

processi

Gli algoritmi di scheduling offrono allo scheduler del SO delle modalità per

selezionare la sequenza con cui i processi vengono assegnati alla CPU. La

decisione di scheduling della CPU può avvenire quando un processo:

1)termina, passa da 2)Esecuz.-> Attesa 3)Esecuz.-> Pronto 4)Attesa ->

Pronto

nota che 1 e 4 non-preemptive, mentre 2 e 3 lo sono

Il dispacher è il modulo che da il controllo della CPU al processo selezionato

dallo scheduler.

FCFS (First Come, First Served): Implementa il concetto di coda

tradizionale. La CPU viene assegnata al processo che la richiede per primo.

Quando un processo entra nella ready queue, si collega il suo PCB (Process

Control Block) all’ultimo elemento della coda.

Quando la CPU è libera, essa viene assegnata al processo che si trova alla testa<

Anteprima
Vedrai una selezione di 3 pagine su 6
Sistemi Operativi: Fork() ed Exec(), Algoritmi di scheduling dei processi, Semafori Pag. 1 Sistemi Operativi: Fork() ed Exec(), Algoritmi di scheduling dei processi, Semafori Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Sistemi Operativi: Fork() ed Exec(), Algoritmi di scheduling dei processi, Semafori Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Dododoro48 di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Lombardi Luca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community