Sistemi Operativi A Parte I - Introduzione Augusto Celentano Universit Ca Foscari Venezia Corso di Laurea in Informatica ' Augusto Celentano Sistemi Operativi A -2 La gestione di un calcolatore Un calcolatore L un sistema complesso (sistema di elaborazione) e la sua gestione non pu essere distribuita e replicata in tutti i programmi applicativi ! operazioni ripetitive complesse svolte da tutti i programmi ! relazioni e interferenze tra programmi diversi ! controllo del funzionamento del calcolatore come macchina Il software di un sistema di elaborazione si pu dividere in due classi: ! software applicativo, composto da programmi e servizi che risolvono problemi per gli utenti ! software di sistema, composto da programmi e servizi che gestiscono il funzionamento del calcolatore (del sistema di calcolo) ' Augusto Celentano Sistemi Operativi A -3 Classi e livelli di software (vista architetturale) Dispositivi fisici Microarchitettura Linguaggio macchina Sistema operativo Sistema bancario Prenotazioni aeree Browser Web Compilatore Editor Interprete comandi Software applicativo Software di sistema Hardware/Firmware (Tanenbaum, 2001) ' Augusto Celentano Sistemi Operativi A -4 Sistema operativo Il sistema operativo pu essere visto e studiato da diversi punti di vista: ! come interfaccia tra lutente e il sistema permette di utilizzare il calcolatore e le sue le risorse per risolvere problemi ! come macchina virtuale permette di programmare come se si avesse a disposizione una macchina funzionalmente estesa ! come gestore di risorse controlla e coordina il funzionamento contemporaneo dei componenti del sistema I diversi punti di vista non si escludono a vicenda ! in un sistema operativo coesistono servizi per lesecuzione dei programmi, funzionalit per la gestione interna e funzioni standard per la programmazione
11
Embed
Sistemi Operativi A Parte I - Introduzionesoa2001/docs/soa-introduzione1.pdf · gestiscono le caratteristiche specifiche dei dispositivi ... ' Augusto Celentano Sistemi Operativi
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Sistemi Operativi AParte I - Introduzione
Augusto CelentanoUniversità Ca� Foscari VeneziaCorso di Laurea in Informatica
� Un calcolatore è un sistema complesso (sistema di elaborazione) e la sua gestione non può essere distribuita e replicata in tutti i programmi applicativi! operazioni ripetitive complesse svolte da tutti i programmi! relazioni e interferenze tra programmi diversi! controllo del funzionamento del calcolatore come macchina
� Il software di un sistema di elaborazione si può dividere in due classi:! software applicativo, composto da programmi e servizi che
risolvono problemi per gli utenti! software di sistema, composto da programmi e servizi che
gestiscono il funzionamento del calcolatore (del sistema di calcolo)
� Il sistema operativo pone sopra lo hardware un insieme di funzionalità che ne gestiscono i componenti! fornisce agli utenti la visibilità di una macchina più completa e
più semplice da programmare
� Il sistema operativo racchiude funzioni che gestiscono in modo standard situazioni quali! operazioni di ingresso e uscita! presenza contemporanea di più programmi in memoria che si
alternano nell�esecuzione! risposta ad eventi esterni (tempo, segnalazioni dalla periferia,
malfunzionamenti)! adattamento alla varietà dei dispositivi di memoria e esterni
� In questo modo si consente la programmazione di applicazioni come se si disponesse di una macchina estesa! tanti programmi → tanti processori, tante memorie! tante periferiche → gestione unificata! strutture di archivio complesse → visione logica
� Il sistema operativo gestisce le risorse del sistema (componenti, sottosistemi, tempo di elaborazione, etc.) distribuendole alle attività in corso (processi)! utilizza l�unità centrale a turno per i diversi processi! conserva più programmi e dati in memoria evitando
interferenze! sincronizza le attività comuni e l�uso di informazioni condivise! stabilisce le priorità di intervento necessarie nei vari casi! protegge le informazioni private degli utenti da accessi non
autorizzati! simula per ogni utente un sistema di elaborazione dedicato e
� Controllo e esecuzione dei programmi, interpretazione delle richieste di servizi (processi, memoria, I/O)! esecuzione e terminazione dei programmi! ingresso e uscita dei dati! temporizzazione! gestione dei dispositivi hardware
� Organizzazione e strutturazione delle informazioni su memoria di massa (file system)! catalogazione di archivi (directory)! operazioni sui file! accesso alle singole informazioni
� Interpretazione e esecuzione di comandi dell�utente
� Il sistema operativo interviene su richiesta di un programma (processo) o in seguito ad un evento che modifica o richiede di modificare lo stato del sistema! la richiesta di intervento da parte di un processo avviene
attraverso una chiamata al supervisore (supervisor call, SVC)! la richiesta di intervento a seguito di un evento avviene
attraverso il meccanismo delle interruzioni
� In entrambi i casi vengono attivati gli stessi meccanismi di esecuzione! una interruzione software è una richiesta di intervento del
sistema operativo non causata da dispositivi esterni alla CPU
� Il meccanismo di interruzione (interrupt) è una combinazione di comportamenti hardware e software attivati da un segnale hardware (segnale di controllo sul bus) o software (istruzione) per cui! si interrompe l�esecuzione del programma in corso ! si trasferisce il controllo della unità centrale (e della
memoria) ad un programma di risposta all�interruzione la cui posizione in memoria è nota a priori
! si esegue il programma di risposta! al termine si riprende l�attività che era stata sospesa
� Al verificarsi di una interruzione l�unità centrale! termina l�esecuzione della istruzione in corso! copia il contenuto dei registri PC e PSW in locazioni apposite
in memoria centrale (salvataggio dei registri)! copia nei registri PC e PSW i valori contenuti in due celle di
memoria predefinite, dipendenti dall�interruzione ricevuta, corrispondenti al programma di risposta all�interruzione
! prosegue con la fase di fetch dell�istruzione successiva, che è la prima del programma di risposta all�interruzione
� Il programma di risposta: ! salva i registri generali che deve utilizzare! acquisisce le informazioni sull�interruzione segnalata! esegue le operazioni di gestione relative! ripristina i registri generali che ha utilizzato! esegue una istruzione di fine interruzione che ripristina i
registri PC e PSW! prosegue con la fase di fetch dell�istruzione successiva, che è
normalmente l�istruzione del programma interrotto successiva al punto di interruzione
� Il programma di risposta può modificare la prosecuzione dell�esecuzione
� Durante la gestione di una interruzione il meccanismo di interruzione può essere disabilitato per evitare interferenze! le interruzioni che si verificano durante questo tempo sono
poste in attesa, e segnalate quando il meccanismo di interruzione viene riabilitato
! l� esecuzione del programma di risposta deve essere veloce
� Se le interruzioni non sono disabilitate si adotta uno schema a priorità! le interruzioni più prioritarie possono interrompere le
� Le interruzioni possono verificarsi in seguito a! eventi causati da dispositivi periferici (esterne, asincrone) ! esecuzione di particolari istruzioni (interne, sincrone)
� Alcuni tipi di interruzione:! ingresso e uscita! clock! malfunzionamento hardware! errore software! chiamata al supervisore
� Errore software! alcune istruzioni possono dare luogo a situazioni di errore
che vengono segnalate per mezzo di una interruzione interna� divisione per zero� indirizzamento di memoria non esistente� esecuzione di istruzione non lecita (codice operativo non
significativo, o istruzione privilegiata)
� Chiamate al sistema operativo (supervisor call)! l�esecuzione di servizi del sistema operativo richiede una
gestione dello stato del sistema simile a quella necessaria nel caso di interruzione esterna.
� Trasferiscono dati da e verso la periferia attraverso circuiti di interfaccia che adattano i segnali e gestiscono le caratteristiche specifiche dei dispositivi
� La comunicazione si avvale di due registri:! registro dati: tramite per lo scambio di dati! registro di stato (o di controllo): contiene informazioni sullo
� I dispositivi di I/O richiedono una gestione del colloquio e del trasferimento dei dati più articolata di quella della memoria centrale:! il loro funzionamento è asincrono rispetto all'unità centrale! la loro velocità è molto inferiore a quelle dell'unità centrale e
della memoria
� Per tali motivi è necessario utilizzare dei meccanismi di sincronizzazione nelle operazioni di I/O che:! assicurino il corretto trasferimento dei dati, evitando
duplicazioni (stesso dato più volte) e perdite (salto di dati)! evitino un degrado generalizzato delle prestazioni dovute alla
� Si possono utilizzare tre tecniche di gestione:! software, a controllo di programma (polling)! hardware-software, a interruzione! hardware, DMA (Direct Memory Access)
� Il programma che deve effettuare le operazioni di ingresso e uscita controlla periodicamente lo stato del dispositivo (polling) per verificarne la disponibilità
� Ingresso:! legge lo stato del dispositivo! se è disponibile un dato, lo trasferisce! altrimenti non fa nulla fino alla prossima verifica
� Uscita:! legge lo stato del dispositivo! se il dispositivo è pronto, invia un dato! altrimenti non fa nulla fino alla prossima verifica
� Il trasferimento dei dati è gestito da una funzione dedicata.
� La scelta del tempo di campionamento dei controlli è critica, e condiziona le prestazioni generali: se troppo bassa, si possono perdere dati, se troppo alta la macchina è bloccata sulle operazioni di I/O
� La gestione a interruzione richiede un dispositivo hardware che possa segnalare all'unità centrale il verificarsi di un evento sull'interfaccia di I/O! presenza di un dato, o disponibilità dell'unità periferica a
riceverlo! il segnale provoca una modifica del comportamento dell'unità
� L'unità centrale inizia un'operazione di I/O comunicandone i parametri a una funzione dedicata
� Quindi, prosegue l'elaborazione con operazioni che non richiedono che l'operazione di I/O sia terminata
� Quando l'operazione di I/O si è compiuta (dato disponibile, o dispositivo pronto), il dispositivo di I/O invia alla unità centrale un segnale hardware (interruzione)
� L'unità centrale serve l�interruzione e completa l�operazione di I/O
� La gestione delle operazioni di I/O a interruzione richiede l'intervento della CPU per ogni dato trasferito. La gestione DMA (Direct Memory Access) fa intervenire la CPU solo una volta per un blocco di dati, ma richiede hardware aggiuntivo con capacità di elaborazione (controllore DMA).
� E' utilizzata per trasferire molti dati da un dispositivo periferico verso celle contigue di memoria e viceversa, in particolare da e verso memorie di massa veloci.
� L'unità centrale inizia un'operazione di I/O comunicandone i parametri al controllore DMA tramite una funzione dedicata: numero di dati da trasferire, indirizzo di partenza in memoria, indirizzo del blocco dati sul dispositivo periferico
� Quindi, prosegue l'elaborazione con operazioni che non richiedono che l'intera operazione di I/O sia terminata
� Quando il dispositivo periferico è pronto per il trasferimento di un singolo dato, il controllore DMA si riserva l'utilizzo del bus di sistema per il tempo necessario a scambiare il dato con la memoria centrale, indirizzandole direttamente e sospendendo per il tempo del trasferimento l'attività della CPU sul bus (cycle stealing)
� Al termine del trasferimento dell'intero blocco di dati invia un segnale di interruzione all'unità centrale, segnalando il completamento dell'operazione di I/O