IL SISTEMA OPERATIVO seconda parte PROGRAMMI UTENTE INTERPRETE

  • Slides: 17
Download presentation
IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE

IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE 1

● ● ● IL SISTEMA OPERATIVO Il sistema operativo gestisce le risorse della macchina

● ● ● IL SISTEMA OPERATIVO Il sistema operativo gestisce le risorse della macchina fisica sottostante e fornisce all’utente l’astrazione di macchina virtuale lo strato di Gestione dei processi gestisce l’unità di elaborazione, ossia la CPU lo strato di Gestione della memoria gestisce la memoria centrale lo strato di Gestione delle periferiche gestisce i dispositivi periferici e le loro connessioni con la CPU Il file system è l’organizzazione logica dei file sulla memoria di massa l’interprete comandi permette di interpretare i comandi di alto livello 2

La gestione delle periferiche § § Funzioni principali: • Indirizzamento dei segnali da e

La gestione delle periferiche § § Funzioni principali: • Indirizzamento dei segnali da e verso le periferiche • Sincronizzazione delle periferiche Gestione del sistema di Ingresso/Uscita • Gestione dei flussi di dati (buffer). • Interfaccia generale per i programmi di controllo (driver) delle periferiche (device). • Collezione di programmi di controllo (driver) specifici per le varie periferiche (device) collegabili al calcolatore. 3

La gestione delle periferiche: i driver § § I driver sono meccanismi software cui

La gestione delle periferiche: i driver § § I driver sono meccanismi software cui è affidato il compito di comunicare dati da e verso le periferiche Garantiscono ai programmi che li usano una visione di alto livello • E’ possibile leggere o scrivere tramite primitive indipendenti dalla struttura hardware delle periferiche § Distinguiamo: • Driver fisici (hardware): vengono attivati direttamente dal gestore delle interruzioni • Driver logici (software): fanno parte del sistema operativo e forniscono una gerarchia di operazioni, con un’ organizzazione a strati 4

Gestione della memoria centrale • Tutti i programmi che compongono il SO e i

Gestione della memoria centrale • Tutti i programmi che compongono il SO e i programmi applicativi attivi usano contemporaneamente la RAM • Il gestore della memoria si preoccupa di fare condividere la RAM ai vari processi in esecuzione in modo che: § ogni processo abbia il suo spazio privato distinto dagli altri (e inaccessibile agli altri) § ogni processo abbia abbastanza memoria per eseguire il proprio algoritmo e raccogliere i suoi dati 5

Gestione della memoria centrale • La strategia più semplice (NON VA BENE!) – ricopiare

Gestione della memoria centrale • La strategia più semplice (NON VA BENE!) – ricopiare interamente lo spazio di indirizzamento di un processo P dalla memoria secondaria alla RAM quando P va in esecuzione Ampiezza. RAM - 1 RAM vuota Spazio Indirizzamento processo 2 Spazio Indirizzamento processo 1 Sistema Operativo Area riservata, non accessibile in modalità utente 0 6

La memoria virtuale § § La memoria però deve essere gestita con molta attenzione

La memoria virtuale § § La memoria però deve essere gestita con molta attenzione ed efficienza caricando solo i dati e le istruzioni che devono essere modificate ed eseguite. Le altre parti devono essere spostate sul disco per poter essere caricate quando necessario. La memoria virtuale è un sistema per aumentare lo spazio di memoria disponibile. La memoria virtuale è maggiore di quella fisica. La gestione della memoria è coordinata con la gestione dei processi. 7

Partizione della memoria § § La strategia adottata: partizionamento della memoria e del suo

Partizione della memoria § § La strategia adottata: partizionamento della memoria e del suo spazio di indirizzi mediante paginazione e/o segmentazione (implementate anche contemporaneamente). Tecniche di partizionamento: • • § Segmentazione: suddivide la memoria centrale in segmenti di lunghezza variabili contenenti parti di un programma logicamente correlati tra di loro Paginazione: suddivide memoria e programmi in pagine di lunghezza fissa Sia nel caso della partizione, sia in quello della segmentazione, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale 8

Tabella delle pagine § § A ogni processo viene assegnata nella fase di partenza

Tabella delle pagine § § A ogni processo viene assegnata nella fase di partenza una tabella detta tabella delle pagine dove per ogni pagina usata dal processo viene scritto dove si trova la pagina fisica. Se viene richiesto un indirizzo NON in memoria, si genera un fault di pagina che provoca il caricamento di una nuova pagina TABELLA DELLE PAGINA VIRTUALE PAGINA FISICA TIPO PAGINA Pagina 0 Pagina 3 RAM Pagina 1 Pagina 20 DISCO Pagina 2 Pagina 1 DISCO Pagina 3 Pagina 2 RAM 9

Gestione dei processi: richiami sulla classificazione dei S. O. § In base alla modalità

Gestione dei processi: richiami sulla classificazione dei S. O. § In base alla modalità di gestione dei programmi: § § § Monoprogrammazione: esegue un solo programma alla volta) Multiprogrammazione: esegue più programmi apparentemente conteporaneamente, in time-sharing, suddividendo il tempo di esecuzione in intervalli molto piccoli e assegnando a turno le risorse ai diversi programmi) In base al tipo di accesso fornito agli utenti: § § Monoutente: un solo utente può usare la macchina Multiutente: più utenti possono contemporaneamente interagire con la stessa macchina 10

Multiprogrammazione: time‑sharing § § § I concetti di mono e multi-programmazione sono indipendenti da

Multiprogrammazione: time‑sharing § § § I concetti di mono e multi-programmazione sono indipendenti da quelli di SO mono e multi-utente I SO attuali operano tutti in multiprogrammazione Quando si parla di multiprogrammazione si parla anche di time‑sharing: il sistema operativo che fa sì che le risorse del calcolatore siano assegnate per prefissati intervalli di tempo, in successione, ai diversi programmi: gli intervalli di tempo possono essere più o meno lunghi l’uno rispetto all’altro, a seconda della priorità di cui gode il programma che l'utente utilizza. 11

Sistema operativo in time sharing § § Permette la condivisione della CPU tra più

Sistema operativo in time sharing § § Permette la condivisione della CPU tra più processi Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CPU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione. Processo 1 Processo 2 Processo 3 tempo Fase di elaborazione Attesa per quanto di tempo scaduto o per operazioni di I/O 12

Coda di scheduling • In un sistema con un singolo processore e più processi

Coda di scheduling • In un sistema con un singolo processore e più processi non è possibile avere più di un processo attivo in ogni istante di tempo. • È necessario eseguire i processi a per quanti di tempo e prevedere un sistema di riordinamento (scheduling) delle loro esecuzioni, che assegni loro tempo di esecuzione in modo equo. • I processi vengono fatti avanzare a turno, assegnando loro un quanto di tempo per portarsi avanti nell’esecuzione. • Si ottiene lo scheduling dei processi mediante una (o anche più di una) coda di scheduling, in cui vengono inseriti i processi che devono essere fatti aspettare. 13

Sistema operativo e macchine virtuali § In una macchina multiprogrammata il sistema operativo gestisce

Sistema operativo e macchine virtuali § In una macchina multiprogrammata il sistema operativo gestisce più processi contemporaneamente, rendendo visibile ad ogni processo una macchina “virtuale” ad esso interamente dedicata e quindi con risorse proprie. 14

Sistema operativo e macchine reali § In una macchina multiprogrammata il sistema operativo condivide

Sistema operativo e macchine reali § In una macchina multiprogrammata il sistema operativo condivide le risorse tra processi. 15

Lo scheduler § Lo schedulatore (scheduler) è la componente del sistema operativo che si

Lo scheduler § Lo schedulatore (scheduler) è la componente del sistema operativo che si occupa di spostare i processi tra le varie code di attesa. 16

Sincronizzazione dei processi § § § A volte, i processi devono sincronizzarsi, ovvero coordinare

Sincronizzazione dei processi § § § A volte, i processi devono sincronizzarsi, ovvero coordinare le loro attività Il coordinamento sequenziale: un processo termina invocando l’attivazione di un altro processo La competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica) 17