Ud 1: INTRODUZIONE SISTEMI OPERATIVI 6 ore Prima Lezione: Definizione e compiti (vedi libro di testo pag 51-58) Esempio Word processor.... HW | SO | Programma Utente | Utente. Spiegazione: L’utente deve usare l’hw x risolvere un PB lo fa attraverso un programma che a sua volta non dialoga direttamente con l’hw ma si appoggia sulle funzionalità dategli dal SO . Brain Storming sul SO: Programma (insieme di programmi) Gestisce aiuta l’utente Il sistema di calcolo composto da: Hw, SO, Programmi applicativi, utenti Le applicazioni utilizzano hw x risolvere i problemi degli utenti SO organizza l’accesso dei software alle risorse fisiche SO ha un ruolo di arbitro; allocatore risorse, controllore dell’utilizzo delle stesse. Definizione di Sistema Operativo: “Insieme di programmi che consente alle varie componenti di un sistema di elaborazione di interagire tra di loro. Il suo compito è quello di coordinare le ris. Hw e sw. Di un PC permettendo all’utente di utilizzarlo in modo semplice ed efficiente” Insieme di programmi… Coordinare (efficientemente) → gestire l’utilizzo delle risorse (ris hw e sw) → più processi richiedono le risorse il SO media queste richieste avendo come obiettivi: • Correttezza ( un processo non deve condizionare/modificare i risultati degli altri... ogni processo deve essere convinto di essere l'unico) • Efficienza: la gestione non deve richiedere troppo tempo, tutti i processi che richiedono una risorsa devono ottenerla in un tempo ragionevole) Utilizzarlo in modo semplice • Interfaccia utente (CUI e GUI) • Nasconde i dettagli Hardware: permette ai processi e/o utenti di svolgere operazioni ad un “livello più alto” utilizzando delle System Calls (esempio chiedo di stampare allo stesso modo indipendentemente dal tipo/modello di stampante utilizzata dal dispositivo...sarà poi il driver del dispositivo a “tradurre” la richiesta di stampa in comandi da dare al dispositivo specifico. Obiettivi principali di un SO • Sistema per gestire l'interazione uomo macchina • Interfaccia tra applicazioni e risorse del computer (Nascondere i dettagli hardware) • Gestione delle risorse ottimizzandone l'uso • Fornitore di servizi allo sviluppo software e all'amministrazione del sistema Obiettivo secondario (ma non tanto) EFFICIENZA NELLA GESTIONE Seconda Lezione: Processo in esecuzione e interruzioni (vedi libro di testo pag 143-146) La CPU mentre esegue le istruzioni di un programma non è un mondo isolato ma inserito in un sistema…nel sistema “attorno al programma” può succedere qualcosa → Interruzioni Cosa sono? Si vuole segnalare all’unità centrale che sono accaduti alcuni eventi di cui non è a conoscenza Esempi Termine operazione di I/O Errori (divisione per 0) Chiamate a sistema Violazione d’accesso Due tipi Int HW (avvengono tramite fili elettrica) sono causate dalle periferiche. presenza di: (inter esterne) Linea in ingresso Flag di interruzione Flag di mascheramento Al termine di ogni ciclo la cpu controlla il flag di interruzione Int SW (avvengono tramite chiamata) causate dal programma (più simile alla chiamata a procedura ma si tratta di una procedura DI SISTEMA (system call) (int interne) Ad ogni interruzione è associata una risposta (sia HW che SW) Il sistema ha un VETTORE DELLE INTERRUZIONI dove mantiene memorizzato (per ogni tipo di interruzione) l’indirizzo di partenza della routine di risposta all’interruzione. Al termine della procedura di risposta viene ripreso il programma interrotto Quando avviene un interruzione il sistema deve dunque: Riconoscere l’interruzione Salvare lo stato dei vari registri… Accedere al vettore delle interruzioni, Forzare nel Program counter l’indirizzo di partenza della procedura di risposta, eseguire la procedura di risposta Ripristinare lo stato iniziale Restituire il controllo al processo interrotto È possibile interrompere un interruzione?? Si alcuni sistemi lo permettono. Vi è una priorità tra le interruzioni per fare in modo che interruzioni più urgenti e con una risposta breve possano interrompere interruzioni meno urgentiu e con una lunga procedura di risposta Esempio: Gestione I/O chiamata operazione di I/O è un interruzione SW. Ora il processore può: Aspettare che dispositivo termini I/O stando fermo Dopo aver dato il via al dispositivo riprendere il suo lavoro (uso DMA). Secondo caso il dispositivo genera un INT HW quando ha finito. Terza Lezione: Evoluzione dei Sistemi Operativi (2 Ore) (libro testo pagine 58-64) Vedremo come i sist operativi si sono evoluti aggiungendo via via funzionalità. Generazione Zero (non trattata dal libro) No sistema Operativo interruttori per inserire codice binario / led per vedere immagine memoria Introduzione di periferiche per l’input output da/su schede Prima Generazione (Sistemi dedicati) Introduzione linguaggi assembler e ad alto livello (Fortran Cobol) Prova di un programma su macchina richiede procedimento più complesso (carica il compilatore esegui il compilatore con input programma etc) Tempi morti per il programmatore --> Figura del operatore che svolge i lavori per tipo (evitando il ricaricamento dei compilatori). Seconda Generazione (Elaborazione a lotti) Monitor residente, sequenzializzatore automatico di job e e JCL, passaggio controllo da monitor a programma e viceversa o Interprete schede di controllo o Loader o Driver dispositivi Job composto da insieme di schede... Modalità “Operativa” cfr pag. 18 l.t. o Ogni utente prepara il suo job o Passaggio da schede a nastro dei vari job. o Caricamento nstro Problema di questi sistemi: NO INTERATTIVI, Perdita di tempo per l’I/O CPU inattiva ! Problemi risolti: LENTEZZA UMANA NEL PREDISPORRE LE VARIE FASI DEI JOB Esempio di quanto tempo si perde (Approfondimento di pag. 19) Altro problema nato dall'esempio.... Schhedulare i Job sarebbe bello !!!!!!! I Sistemi Multiprogrammati Sistemi Batch Multiprogrammati (G3) Hardware nuovo ed indispensabile: I DISCHI MAGNETICI (accesso non più sequenziale) Spiegazione del funzionamento del sistema Batch Multi programmato..... Nuovi compiti del SO 1. Gestione del processore e della MC 2. Rendere indipendenti dal processore le operazioni di input-output (necessità DMA) 3. Gestire tecniche di Spooling 4. DMA e Gestione delle interruzioni (fine di un IO) Sistemi Multiprogrammati time-sharing (g4)