Swappa : Uni / Sistemi Operativi
Creative Commons License

Torna alla pagina di Sistemi Operativi


 :: Appunti caotici ::

Lezione 1 Processi

Pag 1

Sommario

...

Pag 2

Multi-tasking (1)

Il multi-tasking ha come obiettivo quello di cercare di sfruttare il più possibile il processore, tentando di evitare per quanto possibile i tempi morti di attesa.

Multi-tasking (2)

Il multi-tasking ha come condizione necessaria la multiprogrammazione. In particolare, tra tutti i programmi caricati in memoria bisognerebbe che ce ne sia sempre almeno uno che abbia qualcosa da far fare al processore (se stesserò tutti là ad aspettare chissà cosa dalle periferiche allora il multi processo non servirebbe un po' a una fava). Ovviamente ciò non avviene sempre, ma bisognerebbe fare in modo che accada il più spesso possibile.

Pag 3

Processo

L'evoluzione della computazione è la successione degli stati del processo che vanno da quello iniziale a quello finale. Gli stati fotografano istante per istante il codice ed il contenuto delle variabili utilizzate, ovvero quell'insieme di valori che ci permette di sapere come evolverà il programma conoscendo l'istruzione successiva cui sta puntando il program counter.

Programma <> Processo

E' importante non confondere il concetto di programma con quello di processo, o altrimenti all'esame prendi 0. Quindi non seguire l'esempio del professore in classe (quando non minaccia di dare 0 se confondi i termini, li confonde lui).

Il programma è un'entità passiva, non è legato a un insieme di dati specifico. E' sostanzialmente la sequenza di istruzioni generate dal sorgente tradotto dal codice scritto in un certo linguaggio di programmazione.

Il processo è invece un'entità attiva, e rappresenta il programma mandato in esecuzione su un'istanza specifica del problema (quindi variabili e dati inclusi).

Pag 4

Evoluzione della computazione di un processo

Durante l'evoluzione i processi possono operare sui dati di un programma e di conseguenza producono dei risultati (amessi attraverso le periferiche).

Stato di evoluzione della computazione di un processo

Lo stato di evoluzione della computazione di un processo è l'insieme dei valori di tutte le informazioni da cui dipende l'evoluzione della computazione del processo.

Importante: non deve essere alterato dall'esecuzione di un altro processo, o otterrei una soluzione (evoluzione) diversa da quella corretta. Applicando stesse operazioni su dati diversi non è scritto da nessuna parte che il risultato debba essere lo stesso, anzi. Unica eccezione è il caso in cui l'ultima operazione compiuta su una certa variabile sia l'assegnamento di una costante (ma in quel caso saresti stato scemo tu ad aver compiuto operazioni precedenti per poi perdere tutto con l'assegnamento).

Pag 5

Cambiamento del processo in esecuzione

Nella fase di cambiamento del processo in esecuzione bisogna garantire al 100% che il processo si evolva come se fosse l'unico eseguito dal processore, quindi che nessun altro processo si permetta di toccare le informazioni che definiscono lo stato di evoluzione della computazione.

Ciò si ottiene salvando lo stato di evoluzione della computazione. In particolare:

Per alcuni processi questo sistema può essere critico, a causa dei tempi di gestione delle turnazioni. I processi in questione sono proprio quelli che non sono performanti per il multi-tasking, ovvero quelli che gestiscono i sistemi in tempo reale o che comunque non gradiscono il time sharing.

Uso del processore da parte di un processo

...

Pag 6

Stato del processo

Lo stato Ready-to-run è quello in cui il processo ha tutte le risorse pronte tranne il processore.

Diagramma degli stati del processo (1)

...

Pag 7

Diagramma degli stati del processo (2)

...

Supporti per la gestione dei processi (1)

Il Process Control Block (PCB) è il blocco di controllo del processo, in cui raccolgo tutte le informazioni sul processo a supporto della gestione del processore, tra cui:

Altre informazioni non strettamente legate alla gestione del processore, ma comunque inglobate per mantenerle tutte in un'unica tabella omogenea a livello di contenuto sono:

Pag 8

Supporti per la gestione dei processi (2)

...

Supporto per la gestione dei processi (3)

...


Torna alla pagina di Sistemi Operativi

(Printable View of http://www.swappa.it/wiki/Uni/SO-Mod3-Lez1)