Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Corso B Docente : Ing. Secondulfo Giovanni Anno Accademico 2010-2011 Lezione 15: Il Sistema Operativo : Principi Generali (3P) Lunedì 22 Novembre 2010
Concet t i base: Sot t osist emi e Chiamat e di Sist ema Sottosistemi/Componenti: Sottosistema Controllo di Processo File System Sottosistema di Input/Output Sottosistema di Gestione della Memoria Chiamate di Sistema: Gestione di Processi Segnali Gestione di Files Gestione di Direttori & del File System Protezione Gestione dei dispositivi di Tempo 2
Il Gestore dei Processi è responsabile dell esecuzione dei programmi da parte dell unità di elaborazione Il Gestore dei Processi deve garantire, nel caso dei sistemi multi-utente, l esecuzione quasi contemporanea di molti processi L esecuzione dei processi detta quasi contemporanea significa che è il Gestore dei Processi ad assegnare a turno ai processi l accesso e l uso dell unità di elaborazione (time sharing) Inoltre, il Gestore dei Processi è responsabile di reagire agli eventi esterni che provengono dalle periferiche Il Gestore dei Processi fornisce agli strati superiori una macchina virtuale in cui ciascun programma opera come se fosse l unico ad essere eseguito in quel momento sulla macchina (ASTRAZIONE) 3
Il Gestore di Memoria alloca (predispone) la memoria per memorizzare dati e programmi Il Gestore di Memoria si occupa anche di partizionare e di tenere separata la memoria per ogni processo attivo Il Gestore di Memoria offre agli strati superiori una macchina virtuale in cui ciascun programma opera come se avesse disponibile una memoria dedicata 4
Un Gestore di Periferica viene comunemente detto driver. Un driver gestisce una sola periferica I driver sono responsabili delle operazioni di I/O che coinvolgono una data periferica I driver offrono all utente una visione astratta della periferica in cui le caratteristiche hardware vengono mascherate L utente, grazie ai driver, ha a disposizione un insieme di procedure standard di alto livello che leggono dati in ingresso e scrivono dati in uscita (es. per leggere da disco - scanf e scrivere su video - printf) L utente anche in questo caso ha l impressione che la periferica sia dedicata 5
Il File System è responsabile della gestione dei file in memoria di massa Un file è un astrazione che rappresenta un insieme di byte logicamente collegati Il File System struttura i dati in file, li organizza in directory (o cartelle) ossia contenitori di file Il File System offre all utente un insieme di funzioni di alto livello per operare su file e cartelle. Tali funzioni mascherano la complessità elevata delle reali operazioni che vengono effettuate su memoria di massa (es. scrittura e lettura su HD) Il File System, nei sistemi multi-utente, consente ad ogni utente di organizzare la propria struttura di cartelle e di proteggere i propri file ma permette anche la condivisione di file tra più utenti 6
L Interprete dei Comandi consente, in generale, ad ogni utente di attivare i programmi Per attivare i programmi, l Interprete dei Comandi svolge in maniera trasparente le seguenti operazioni: Accedere al programma, residente in memoria di massa, tramite il File System Allocare memoria e caricare il programma, tramite il Gestore della Memoria Attivare un processo, tramite il Gestore dei Processi E possibile utilizzare lo stesso sistema operativo con shell differenti. Questo può rendere molto diverso il modo di impartire comandi. 7
Il termine Processo si riferisce all esecuzione di un programma, pertanto si tratta di un oggetto dinamico che evolve nel tempo e che si contrappone ad un Programma che è un oggetto statico invariante nel tempo. Un Processo P è una coppia di elementi (E,S) dove E è il codice eseguibile del programma ed S è lo stato del processo ovvero l insieme di tutti i valori contenuti nella memoria centrale (spazio destinato ai valori delle variabili) e nei registri della CPU. 8
Quando si richiede l esecuzione di un programma: Viene cercato il programma sul File System Viene allocata memoria per gestire i dati del programma in esecuzione (stato) Viene creato un Processo costituito dal codice del programma caricato in memoria e dallo stato Viene gestito il ciclo di vita del Processo 9
Ricordiamo che più processi vengono gestiti contemporaneamente dal S.O. Un solo processo può essere in esecuzione in un dato istante I processi che non sono in esecuzione possono essere: pronti cioè aspettano che il Gestore dei Processi dia l ordine di esecuzione in attesa cioè aspettano che si verifichi un evento come la fine di un inserimento di dati da tastiera per passare in stato di pronto 10
Interruzioni interne: Nel corso della sua esecuzione, un processo può richiedere lo svolgimento di un operazione di input/output che coinvolge una periferica. In questo caso l esecuzione del processo si interrompe ed il processo stesso passa nello stato di attesa. Quando lo svolgimento dell operazione di input/output termina, viene generato un evento che fa passare il processo dallo stato di attesa allo stato di pronto. Quando si sospende un processo (ovvero quando questi passa dallo stato di esecuzione allo stato pronto o di attesa) viene salvato il suo contesto (i valori dei vari registri compreso il PC) 11
Interruzioni esterne (o eventi esterni): Si verificano quando dall esterno (al processo) si riceve un evento L evento che si riceve può essere ad esempio, come già detto prima, la fine di un operazione di input Esiste una categoria di interruzioni esterne lanciate dal Gestore dei Processi che fa passare un processo dallo stato di esecuzione allo stato di pronto in modo tale da poter eseguire un altro processo 12
Sot t osist ema di Cont rollo dei Processi Transizioni di st at o Le t r ansizioni di un pr ocesso da uno st at o all alt r o sono gener alment e pilotate da un interrupt proveniente dal: Orologio di sist ema : spost a il pr ocesso cor r ent ement e at t ivo (r unning) dall act ive alla r eady queue ; pr eleva il pr imo pr ocesso pronto dalla r eady queue e lo sposta nell act ive queue, ponendolo nello stato di r unning. Disposit ivi di I / O : spost a un pr ocesso dalla pending I / O alla r eady queue; avvia un nuovo t r asf er iment o di dat i e spost a un processo dalla wait ing alla pending queue Chiamat e di Sist ema : alcune di esse possono spost ar e un processo nella wait ing queue (sleep, wait, ) 13
Il Context-Switching è l operazione che: Salva il contesto di un processo A che sta passando nello stato di pronto e carica il contesto di un processo B che dallo stato di pronto passa allo stato di esecuzione Un sistema operativo multi-tasking (Gestore dei Processi) dà l illusione di eseguire contemporaneamente i processi A e B - Time-sharing: Eseguendo per un periodo di tempo x il processo A Lanciando un interruzione esterna al processo A Facendo passare il processo A nello stato di pronto (effettuando il salvataggio del contesto di A) Scegliendo (esistono diversi algoritmi per la scelta) il prossimo processo da eseguire (supponiamo B) Caricando il contesto del processo B Spostando il processo B dallo stato di pronto allo stato di esecuzione Ripetendo ciclicamente queste operazioni 14
15