Gestione Dei Processi PDF
Document Details
Uploaded by HardierRooster5292
Università Telematica San Raffaele Roma
Noemi Scarpato
Tags
Summary
This document is a set of notes from a course on computer science and digital representation, specifically focused on process management at the Università Telematica San Raffaele Roma. The document covers topics such as process definition, architectures and operating systems, and multiprogramming and time-sharing.
Full Transcript
Noemi Scarpato CORSO DI INFORMATICA E RAPPRESENTAZIONE DIGITALE Noemi Scarpato Università Telematica San Raffaele Roma Gestione dei Processi 1 di 19 ...
Noemi Scarpato CORSO DI INFORMATICA E RAPPRESENTAZIONE DIGITALE Noemi Scarpato Università Telematica San Raffaele Roma Gestione dei Processi 1 di 19 Noemi Scarpato Cosa Vedremo Nelle Lezioni 1. Fondamenti Dell´Informatica 2. Architetture e Sistemi Operativi 3. Introduzione alle Reti di Calcolatori - INTERNET, IL World Wide Web e i loro servizi. 4. Elaborazione di documenti elettronici 5. Fondamenti di elaborazione multimediale 6. Creazione di Pagine Web. Gestione dei Processi 2 di 19 Noemi Scarpato Architetture e Sistemi Operativi Introduzione al Computer e Rappresentazione dell'Informazione. Architettura della macchina di von Neumann. Dispositivi di memoria,dispositivi di input, dispositivi di output. Classificazioni e architetture. Sistemi Operativi. Introduzione e organizzazione dei sistemi operativi. Gestione dei processi. Gestione della memoria. Gestione dei dispositivi. File system. La sicurezza nei sistemi operativi. Casi di studio: Windows (VISTA,SEVEN) e Linux (Mandriva,Ubuntu). Gestione dei Processi 3 di 19 Noemi Scarpato Processi Definizione: L’esecuzione delle azioni atte ad eseguire un algoritmo in un determinato momento è detto processo. Si può anche definire un processo come un’attività controllata da un programma che si svolge su un processore in un determinato momento. Un processo non è un programma. E’ importante distinguere chiaramente tra programmi e processi. Un programma è un’entità statica che specifica un’insieme di istruzioni e la loro sequenza di esecuzione; non specifica la distribuzione nel tempo dell’esecuzione. Un processo rappresenta il modo in cui un programma viene eseguito nel tempo ed è quindi un’entità dinamica. Gestione dei Processi 4 di 19 Noemi Scarpato Processi Ad ogni istante, lo stato di un processo può essere totalmente descritto dalle seguenti informazioni : La sua immagine di memoria: rappresenta l’insieme di informazioni relative al processo che sono mantenute nella memoria principale del calcolatore. Fra queste, troviamo il codice del programma in esecuzione, e i dati su cui sta lavorando (per fare un esempio: il programma di un elaboratore di testi e il contenuto del testo attualmente in elaborazione). Inoltre tutte le strutture dati mantenute dal sistema operativo per la gestione del processo sono considerate parte della sua immagine di memoria. Gestione dei Processi 5 di 19 Noemi Scarpato Processi L’immagine del processo nel processore è rappresentata dal contenuto dei registri del processore, che vengono utilizzati come memoria temporanea durante l’esecuzione delle istruzioni; fra questi, il più importante in tal senso è il program counter, ovvero il registro che indica il punto del programma attualmente in esecuzione. Lo stato di avanzamento : descrive l’attuale attività del processo; ad esempio, se il processo è in attesa di qualche evento, oppure è in esecuzione, oppure attende di essere eseguito. Gestione dei Processi 6 di 19 Noemi Scarpato Multiprogrammazione e time-sharing I sistemi operativi moderni sono multi-programmati e time-sharing, ovvero permettono di eseguire più processi contemporaneamente e in modo interattivo. Lo scopo principale della multi- programmazione è quello di cercare di sfruttare al meglio le risorse del calcolatore. Definizione multi-programmazione : Durante i periodi di I/O di un processo vengono eseguiti altri processi Definizione time-sharing : L’esecuzione del processore viene suddivisa in un certo numero di quanti temporali. Allo scadere di un quanto, il processo corrente viene interrotto e l’esecuzione passa ad un altro processo Gestione dei Processi 7 di 19 Noemi Scarpato Multi-programmazione e time-sharing Vantaggi: Multi-programmazione e time-sharing sono particolarmente utili in sistemi multi-utente come ad esempio i server; ma anche nei sistemi mono-utente, esistono innumerevoli attività che possono essere eseguite in modo parallelo Durante la sua vita, un singolo processo alterna periodi di computazione (che vengono eseguite dal processore) a periodi di input/output (che vengono eseguiti dai dispositivi). Se vi fosse un solo processo in esecuzione, il processore e i dispositivi alternerebbero periodi di attività a periodi di inattività. Gestione dei Processi 8 di 19 Noemi Scarpato Multi-programmazione e time-sharing La tecnica della multi-programmazione consiste nel passare ad eseguire altri processi quando il processo attualmente in esecuzione inizia un periodo di I/O. In questo modo il processore è sempre occupato e anche i dispositivi vengono utilizzati al meglio. Il concetto di time-sharing è l’estensione logica della multi- programmazione: invece di alternare l’uso del processore ogni qual volta viene eseguita un’operazione di I/O, il sistema operativo passa da un processo all’altro periodicamente, dando a tutti i processi una possibilità di avanzare nel loro programma. Gestione dei Processi 9 di 19 Noemi Scarpato Multi-programmazione e time-sharing I passaggi avvengono così frequentemente (nell’ordine di centinaia di volte al secondo) che i programmi interattivi danno l’impressione di avanzare come se avessero un processore dedicato (sebbene meno potente del processore originale, in quanto condiviso da vari processi). La realizzazione dei meccanismi di time-sharing e multiprogrammazione avviene attraverso l’utilizzo di un componente del sistema operativo detto scheduler incaricato di alternare i processi nell’uso del processore. Il passaggio da un processo ad un altro prende il nome di context switch. Gestione dei Processi 10 di 19 Noemi Scarpato Multi-programmazione e time-sharing I context switch avvengono: Quando un processo richiede un’operazione di I/O (multiprogrammazione); periodicamente (time-sharing). Lo scheduler viene invocato tramite il meccanismo degli interrupt: una richiesta di I/O da parte di un processo prende la forma di un interrupt software, mentre il completamento di tale operazione corrisponde ad un interrupt hardware generato dal dispositivo associato; la suddivisione in quanti temporali avviene tramite il timer, che è in grado di generare un interrupt periodicamente. L’immagine nel processore del processo che viene sospeso viene salvata in memoria (per poter tornare ad eseguirlo esattamente nel punto in cui è stato interrotto), e l’immagine del nuovo processo in esecuzione viene caricata nel processore. Gestione dei Processi 11 di 19 Noemi Scarpato Ciclo di vita di un processo Durante la propria vita, ogni processo si può trovare in uno dei tre stati mostrati in figura. Stato In esecuzione (o "running"): è lo stato del processo attualmente eseguito dal processore. In una macchina dotata di un unico processore, in ogni istante al massimo un processo è in esecuzione. In una macchina multiprocessore diversi processi possono essere eseguiti simultaneamente, uno per processore. Gestione dei Processi 12 di 19 Noemi Scarpato Ciclo di vita di un processo Mentre un processo è in esecuzione, è possibile che si verifichino due eventi: un interrupt hardware proveniente dall’esterno, o un interrupt software originato dal processo per richiedere un’operazione di I/O. In entrambi i casi il processo corrente esce dallo stato di esecuzione, e il controllo passa al sistema operativo. Nel caso di interrupt hardware, il processo è in grado di continuare la propria esecuzione (è stato interrotto contro la sua volontà), e quindi passa allo stato di pronto. Gestione dei Processi 13 di 19 Noemi Scarpato Ciclo di vita di un processo Nel caso di richiesta di I/O, il processo viene sospeso fino a quando l’operazione di I/O non verrà conclusa. Pertanto, il processo passa nello stato di attesa. Stato Pronto (o "ready"): come appena detto, un processo pronto è in grado di continuare la propria esecuzione, in quanto non è in attesa di nessun evento particolare. Il processo resterà nello stato di pronto fino a quando non verrà selezionato dal sistema operativo come prossimo processo in esecuzione. Gestione dei Processi 14 di 19 Noemi Scarpato Ciclo di vita di un processo Stato In attesa (o "waiting"): un processo resta in attesa di un certo evento fino a quando questo evento non si verifica. A quel punto, passa allo stato pronto. Per esempio, un processo che ha richiesto un’operazione di lettura resterà in attesa fino a quando i dati richiesti non saranno stati letti e copiati nella memoria del processo. Gestione dei Processi 15 di 19 SCHEDULER Noemi Scarpato Lo scheduler è il componente del sistema operativo che decide, di volta in volta, quale processo deve essere eseguito. Per fare questo, mantiene al proprio interno un certo numero di code di processi, ovvero insiemi di processi ordinati secondo il tempo di inserimento nella coda stessa. In generale, la gestione di queste code è la stessa delle code nella vita reale: prima arrivi, prima vieni servito. In alcuni casi, tuttavia, è possibile che la scelta non avvenga in base a questo semplice principio, ma anche in base a principi più complessi, in generale dettati dalla ricerca dell’efficienza. Alcuni processi possono essere più importanti di altri: ad esempio, i processi che gestiscono flussi audio e video devono essere eseguiti con una certa periodicità, indipendentemente dalla presenza di altri processi arrivati prima di loro, pena la ridotta fluidità di suoni e immagini. Gestione dei Processi 16 di 19 Noemi Scarpato SCHEDULER Tutte le volte che lo scheduler viene invocato, un processo viene tolto dalla coda dei processi pronti e viene eseguito sul processore.Il processo resterà sul processore fino a quando non scadrà il suo quanto di tempo, nel qual caso verrà tolto dal processore e inserito nella coda dei processi pronti; oppure fino a quando non eseguirà una richiesta di I/O, nel qual caso verrà collocato nella coda del dispositivo di I/O corrispondente. I processi restano nelle code dei dispositivi fino a quando l’evento associato al completamento della richiesta non sarà eseguito. A quel punto, i processi ritornano nella coda dei processi pronti. Gestione dei Processi 17 di 19 Noemi Scarpato Interazione con i processi Un utente comune ha solo due possibilità per interagire con i processi: può lanciare un nuovo programma oppure può causare la terminazione di un processo esistente. In generale, queste attività vengono svolte attraverso l’interfaccia utente del sistema operativo. Ad esempio, è possibile lanciare un programma utilizzando l’icona corrispondente nell’interfaccia grafica o digitando il nome del programma in un’interfaccia testuale. Allo stesso modo, è possibile interrompere l’esecuzione di un programma utilizzando il menu dello stesso oppure utilizzando il bottone a forma di X in alto a destra. Gestione dei Processi 18 di 19 Noemi Scarpato Interazione con i processi E’ possibile "uccidere" un processo impazzito, che non risponde a nessuno di questi comandi. In Windows, questo è possibile tramite il cosiddetto "Task Manager", che si richiama tramite i tasti Ctrl-Alt-Canc. Nei sistemi UNIX/Linux, questa operazione può essere fatta utilizzando il comando kill. E’ possibile utilizzare una serie di funzioni in un programma per gestire i processi. Le più comuni sono: fork() : creare nuovi processi exec() : eseguire nuovi programmi exit() : concludere l’esecuzione di un programma signal(), kill() : sincronizzare le azioni di due o più processi send(), receive(): comunicare fra processi Gestione dei Processi 19 di 19