Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Processi

  • View
    230

  • Download
    0

Embed Size (px)

Text of Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Processi

  • Slide 1
  • Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Processi
  • Slide 2
  • 3.2 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Outline Concetto di processo Stato di un processo Scheduling dei processi Cambio di contesto Operazioni sui processi Comunicazioni tra processi Memoria condivisa Scambio di messaggi Comunicazione fra processi remoti
  • Slide 3
  • 3.3 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Outline Concetto di processo Stato di un processo Scheduling dei processi Cambio di contesto Operazioni sui processi Comunicazioni tra processi Memoria condivisa Scambio di messaggi Comunicazione fra processi remoti
  • Slide 4
  • 3.4 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Definizione di processo - 1 Un SO esegue programmi di varia natura: Sistemi batch: job Sistemi time-sharing: processi utente o task Normalmente si utilizzano i termini job o processo in maniera Intercambiabile Processo un programma in esecuzione Lesecuzione di un processo deve avvenire in modo sequenziale I programmi sono passivi, i processi attivi I programmi diventano processi quando il loro file eseguibile viene caricato in memoria
  • Slide 5
  • 3.5 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Definizione di processo - 2 Un processo include: Una sezione di testo (il codice del programma da eseguire) Una sezione dati (variabili globali) Uno heap (letteralmente mucchio, grande quantit - memoria dinamicamente allocata durante lesecuzione del task) Lo stack (dati temporanei -parametri per i sottoprogrammi, indirizzi di rientro - e variabili locali) Il program counter Il contenuto dei registri della CPU
  • Slide 6
  • 3.6 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Stato di un processo Mentre viene eseguito, un processo soggetto a transizioni di stato, definite in parte dallattivit corrente del processo ed in parte da eventi esterni, asincroni rispetto alla sua esecuzione: Nuovo (new): Il processo creato Esecuzione (running): Le istruzioni di un processo sono eseguite Attesa (waiting): Il processo attente che si verifichi qualche evento Pronto (ready): Il processo attende che sia assegnato ad un processore Terminato (terminated): Il processo ha terminato la sua esecuzione
  • Slide 7
  • 3.7 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Diagramma di transizione degli stati - 1 Transizione ammesso Lo scheduler a lungo/medio termine ammette il nuovo processo alla contesa per la CPU Transizione dispatch Il dispatcher in seguito al blocco del processo in esecuzione sceglie il processo fra tutti quelli, per essere eseguito Transizione interruzione (o revoca o pre rilascio) nello scheduling a priorit, avviene quando arriva un processo con priorit maggiore nei sistemi a partizione di tempo, avviene quando il quanto di tempo esaurito avviene al verificarsi di un interrupt esterno
  • Slide 8
  • 3.8 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Diagramma di transizione degli stati - 2 Transizione attesa di I/O Richiesta servizio di i/O o attesa di evento Transizione completamento di I/O Servizio completato Transizione uscita Terminazione normale Terminazione anomala quando uso scorretto risorse (limiti memoria)
  • Slide 9
  • 3.9 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Blocco di controllo dei processi (PCB) Informazione associata ad ogni processo che contiene: Stato del processo Nome (numero del processo) Contesto del processo Contatore di programma Registri di CPU Informazioni sulla gestione della memoria Informazioni di contabilizzazione delle risorse Tempo di utilizzo della CPU, limiti di tempo Informazioni sullo stato dellI/O File aperti, dispositivi I/O assegnati Memorizzata in unarea di memoria accessibile solo al SO
  • Slide 10
  • 3.10 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Commutazione della CPU fra processi
  • Slide 11
  • 3.11 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Outline Concetto di processo Stato di un processo Scheduling dei processi Cambio di contesto Operazioni sui processi Comunicazioni tra processi Memoria condivisa Scambio di messaggi Comunicazione fra processi remoti
  • Slide 12
  • 3.12 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Scheduling: code di processi In un sistema multi-programmato pi processi possono essere eseguiti contemporaneamente per massimizzare lutilizzo della CPU Lo scheduler dei processi ha il compito di selezionare il processo da mandare in esecuzione Code: Coda dei job: linsieme di tutti i processi presenti nel sistema Ready queue (coda dei processi pronti): linsieme di tutti i processi che si trovano in memoria e pronti per essere mandati in esecuzione Coda ai dispositivi: linsieme dei processi in attesa dellI/O da un dispositivo Durante la sua vita un processo migra nelle diverse code
  • Slide 13
  • 3.13 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Ready queue e code ai dispositivi di I/O
  • Slide 14
  • 3.14 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Diagramma di accodamento
  • Slide 15
  • 3.15 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Scheduler Gli scheduler si dividono generalmente in due tipi: Scheduler a lungo termine (job scheduler) Seleziona quale processo deve essere prelevato dalla memoria di massa ed inserito nella coda dei processi pronti Scheduler della CPU (CPU scheduler) Seleziona quale il prossimo processo da mandare in esecuzione sulla CPU Lo scheduler della CPU invocato molto pi frequentemente, ad esempio una volta ogni 100 millisecondi Deve essere molto veloce altrimenti si sprecano cicli di CPU Lo scheduler a lungo termine invocato meno frequentemente, ad esempio ogni secondo o minuto Controlla il grado di multiprogrammazione ovvero il numero di processi presenti in memoria I processi possono essere descritti come: Processi I/O bound Il tempo speso in prevalenza in attesa di I/O da un dispositivo Processi CPU bound Il tempo speso in prevalenza in computazione e quindi sulla CPU Uno scheduler a medio termine impiegato per eliminare momentaneamente processi dalla memoria per ridurre il grado di multiprogrammazione Il meccanismo chiamato avvicendamento dei processi in memoria (swapping) Il processo viene rimosso dalla memoria per poi essere ricaricato in memoria (scheduler a lungo termine)
  • Slide 16
  • 3.16 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Cambio di contesto: context switch Il cambio di contesto (context switch) il momento in cui la CPU passa allesecuzione di un altro processo Il sistema deve salvare lo stato del processo (rappresentato dal suo PCB) corrente e caricare lo stato del prossimo processo Salva e carica i PCB Il cambio di contesto deve avvenire velocemente perch pura fase di overhead Ovvero il sistema non fa nulla di utile in quel momento Il tempo di context switch (msec) dipende dal supporto hardware Velocit di accesso alla memoria, numero di registri da copiare, istruzioni speciali, gruppi di registri multipli
  • Slide 17
  • 3.17 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Outline Concetto di processo Stato di un processo Scheduling dei processi Cambio di contesto Operazioni sui processi Comunicazioni tra processi Memoria condivisa Scambio di messaggi Comunicazione fra processi remoti
  • Slide 18
  • 3.18 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Creazione di processi La creazione dei processi inizia da un processo padre che crea dei processi figli che a loro volta creano altri processi formando un albero di processi Risorse: Padre e figlio condividono tutte le risorse Il figlio condivide solo un sottoinsieme delle risorse Padre e figlio non condividono risorse Esecuzione: Padre e figlio sono eseguiti in maniera concorrente Il padre attende la fine del figlio Lo spazio di indirizzamento: Il figlio un duplicato esatto del padre Il figlio carica un programma nel suo spazio di memoria Generalmente un processo identificato e gestito attraverso un identificativo di processo (process identifier - pid)
  • Slide 19
  • 3.19 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Un albero di processi
  • Slide 20
  • 3.20 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Creazione di processi in UNIX/Linux La system call fork() crea un nuovo processo Il processo figlio una copia identica del padre Il figlio pu utilizzare la exec() per sostituire lo spazio di memoria del processo originale con un nuovo programma
  • Slide 21
  • 3.21 Silberschatz, Galvin and Gagne 2009 Operating System Concepts 8 th Edition Terminazione di processi Un processo termina quando termina lesecuzione della sua ultima istruzione ed il processo invoca la chiamata exit() che compie le azioni: Restituisce dati (output) al processo padre (attraverso la system call wait() ) Dealloca le risorse del processo Un processo padre pu terminare lesecuzione di un processo figlio nei seguenti modi ( abort() ): Il figlio ha ecceduto nelluso delle risorse allocate Il compito assegnato al figlio