- Sistemi operativi - SISTEMI OPERATIVI 1 - Sistemi operativi - L’architettura dei calcolatori attuali è la stessa dei primi calcolatori (fine anni ‘40) (MACCHINA DI VON NEUMANN) CPU unità di controllo unità di input unità logico aritmetica MEMORIA 2 unità di output - Sistemi operativi - anni 50 Passi per il calcolo della soluzione di un problema: 1.preparare il programma in linguaggio macchina e trascriverlo su schede perforate 2.memorizzare istruzioni e dati mediante un programma caricatore (loader) 3.far eseguire il programma 4.estrarre il risultato dalla memoria, facendo trascrivere il risultato su schede o su nastri perforati 3 - Sistemi operativi - Ogni singolo utente, per poter caricare il proprio programma in memoria, deveva prima memorizzare il programma caricatore dati programma utente programma caricatore il programma caricatore è una utility comune a tutti i programmi utente 4 - Sistemi operativi - La presenza di un programma caricatore disponibile a tutti gli utenti costituì il primo embrione di sistema operativo o software di base SISTEMA OPERATIVO programma caricatore HARDWARE 5 - Sistemi operativi - Fine anni ‘50 introduzione dei linguaggi ad alto livello necessità di programmi traduttori programma utente programma traduttore 6 - Sistemi operativi - SISTEMA OPERATIVO programma traduttore programma caricatore HARDWARE 7 - Sistemi operativi - Le istruzioni di I/O comportano l’esecuzione di operazioni anche manuali e meccaniche, che sono molto più lente rispetto alla velocità con cui opera la CPU . durante lo svolgimento di tali operazioni la CPU resta inattiva e l’intero processo di esecuzione risulta rallentato. 8 - Sistemi operativi - CPU istruzione di stampa attivazione stampante programma utente MEMORIA Mentre viene eseguita l’istruzione di stampa, la CPU resta inattiva. CPU I/O tempo 9 - Sistemi operativi - PROBLEMA: E` possibile utilizzare nel frattempo la CPU per eseguire le istruzioni successive? SOLUZIONE: dispositivo aggiuntivo per controllare esclusivamente le operazioni di I/O CANALE di I/O 10 - Sistemi operativi - MEMORIA CANALE istruzione di stampa I/O CPU mentre il canale controlla la stampa, la CPU può prendere in esame un’altra istruzione 11 - Sistemi operativi - Il canale può essere visto come un “calcolatore” indipendente dalla CPU che provvede a gestire l’I/O (eventuale conversione di codici, controllo sulla quantità di dati da memorizzare, indirizzamento delle varie unità di I/O, ...) 12 - Sistemi operativi - Di solito un canale gestisce più unità di I/O memoria bus canale I/O I/O gestione mediante bus I/O memoria canale I/O gestione a stella 13 I/O I/O - Sistemi operativi - sistema operativo programma per la gestione dell’I/O programma per la sincronizzazione tra CPU e canale programma caricatore programma traduttore HARDWARE 14 - Sistemi operativi - Per ottimizzare ulteriormente l’uso della CPU, se ne consente la condivisione da parte di più programmi MULTIPROGRAMMAZIONE CPU I/O prog1 prog2 tempo 15 - Sistemi operativi - MULTIPROGRAMMAZIONE = capacità del sistema operativo di far condividere a più programmi l’uso della CPU quando un programma effettua una operazione di I/O, l’uso della CPU passa ad un altro programma MA i programmi in coda possono attendere lunghi periodi di tempo nell’attesa di una istruzione di I/O del programma che sta utilizzando la CPU 16 - Sistemi operativi - SOLUZIONE: ad ogni programma viene assegnato un tempo massimo di utilizzo della CPU (time slice) TIME SHARING 17 - Sistemi operativi - Ogni programma può utilizzare la CPU finché non si verifica una delle seguenti condizioni: 1 ) il programma finisce 2) il programma va in errore (es. divisione per zero, overflow...) 3) è richiesta una operazione di I/O 4) è terminato il tempo assegnato Casi 1 e 2: il programma è eliminato dalla memoria Casi 3 e 4: il programma è sospeso 18 - Sistemi operativi - esempio: multiprogrammazione senza time sharing due programmi con le seguenti caratteristiche sono presenti in memoria: Prog. 1 Prog. 2 tempo CPU 15 2 tempo I/O 1 2 CPU I/O prog 1 prog 2 15 17 tempo il programma 2 attende 15 unità di tempo per utilizzare la CPU solo per 2 unità 19 - Sistemi operativi - esempio: multiprogrammazione con time sharing (time slice = 3 unità) CPU I/O 3 5 17 tempo con il time sharing il programma 2 attende solo 3 unità di tempo prima di utilizzare la CPU 20 - Sistemi operativi - Multiprogrammazione e time sharing consentono di simulare l’esecuzione contemporanea di più programmi e comportano la presenza di un programma che gestisce la corretta sospensione e ripresa dei programmi nella CPU • conservare tutte le informazioni relative allo stato del programma da sospendere, necessarie per una corretta ripresa della sua esecuzione • decidere a quale tra i programmi in attesa passare il controllo • interrompere l’esecuzione del programma e mandare in esecuzione il nuovo programma 21 - Sistemi operativi - Per decidere quale programma passare in memoria quando diversi programmi sono in attesa, bisogna stabilire un ordine di accesso alla CPU Un programma è incaricato di stabilire tale ordine SCHEDULER 22 - Sistemi operativi - Lo scheduler tiene conto di diversi fattori: •memoria richiesta dai programmi •tempo di CPU richiesto dai programmi •tipo del programma (di utente o di sistema) •tipo di utente (utente qualunque o gestore del sistema) •uso recente della CPU 23 - Sistemi operativi - L’insieme dei programmi del sistema operativo che gestiscono l’allocazione del tempo di CPU è detto GESTORE DELLA CPU 24 - Sistemi operativi - sistema operativo Gestore della CPU Altri programmi di S.O. HARDWARE 25 - Sistemi operativi - L’esecuzione di un programma richiede due azioni: 1.mettere a disposizione la CPU (allocazione di tempo) 2.trasferire il programma in memoria (allocazione di spazio) 26 - Sistemi operativi - PROBLEMA: limitatezza della memoria impossibilità di memorizzare grosse quantità di informazioni MA la CPU esegue un programma solo se questo è in memoria 27 - Sistemi operativi - Si dice che un programma è in esecuzione ad un certo istante, se la CPU in quell’istante sta eseguendo una istruzione di quel programma La memoria in cui risiede un programma in esecuzione è detta MEMORIA CENTRALE La CPU accede direttamente ai dati in essa immagazzinati, tramite gli indirizzi delle locazioni 28 - Sistemi operativi - Non è necessario che un programma che non è in esecuzione sia presente in memoria centale Esso viene generalmente memorizzato in una memoria secondaria, detta memoria ausiliaria o di massa (dischi e nastri magnetici) MEMORIA DI MASSA minor costo, maggiore capacità, ma tempo di accesso piú lento 29 - Sistemi operativi - La CPU non può accedere direttamente alle informazioni presenti nella memoria di massa. Queste devono essere prima trasferite in memoria centrale necessità di un programma per automatizzare il trasferimento dei programmi dalla memoria di massa alla memoria centrale 30 - Sistemi operativi - I programmi eseguibili non possono superare le dimensioni della memoria centrale l’utente deve dividere il programma in pezzi (pagine) per tenere in memoria centrale solo l’istruzione in esecuzione ed un certo numero di quelle che seguono 31 - Sistemi operativi - MEMORIA AUSILIARIA MEMORIA CENTRALE programma utente pagina 2 programma utente diviso in pagine 32 - Sistemi operativi - L’insieme dei programmi di S. O. che automatizza lo scambio di informazioni tra memoria centrale e memoria ausiliaria nell’esecuzione di programmi di utente suddivisi in pagine, realizza la MEMORIA VIRTUALE 33 - Sistemi operativi - L’insieme dei programmi che gestisce l’allocazione automatica di spazio nelle memorie del computer è detto GESTORE DELLA MEMORIA 34 - Sistemi operativi - sistema operativo Gestore della memoria Altri programmi di S.O. HARDWARE 35 - Sistemi operativi - Un SISTEMA OPERATIVO è l’insieme dei programmi che provvedono al controllo e alla gestione di tutte le risorse del calcolatore inteso come macchina virtuale HARDWARE + SISTEMA OPERATIVO (SOFTWARE DI BASE) = macchina virtuale 36 - Sistemi operativi - La memoria di massa permette di organizzare i programmi del sistema operativo in •parte residente in memoria centrale costituita dai programmi che devono essere utilizzati da tutti i programmi in esecuzione (ad es. gestore della memoria e della CPU) •parte presente in memoria ausiliaria costituita dai programmi non necessari a soddisfare al momento le richieste dell’utente (ad es. i programmi traduttori e i programmi utente) 37 - Sistemi operativi - Il Kernel del S.O. è l’insieme dei programmi che risiedono “permanentemente” in memoria centrale (cioè vengono caricati al momento dell’accensione del computer) Oltre ai gestori della memoria e della CPU, appartengono generalmente al kernel i programmi per la gestione di •I/O •situazioni speciali (accensione, spegnimento, accesso via rete, malfunzionamenti, ...) •scambio di informazioni tra memoria centrale e memorie ausiliarie 38 - Sistemi operativi - Suddivisione della memoria centrale in: •ROM = Read Only Memory memoria di sola lettura che contiene informazioni inserite al momento della costruzione ed il cui contenuto non si perde se si spegne il computer (memoria non volatile) •RAM = Random Access Memory memoria ad accesso diretto in cui risiedono i programmi in esecuzione (memoria volatile) Ad es. risiedono nella ROM le istruzioni per la fase di inizializzazione al momento dell’accensione del computer (fase di boot) 39 - Sistemi operativi - Inoltre fanno parte della memoria centrale particolari memorie di capacità ridotta ma ad accesso molto rapido REGISTRI che fanno parte della CPU e MEMORIA CACHE che è posta tra CPU e RAM 40 - Sistemi operativi - Nella cache memory si memorizzano le informazioni più frequentemente utilizzate o le istruzioni e i relativi dati in sequenza rispetto a quella in esecuzione velocizzazione del processo di elaborazione in quanto la CPU per tali informazioni accede alla cache e non alla RAM 41 - Sistemi operativi - Velocità e capacità dei vari livelli di memoria capacità velocità 10-9 sec = 1 n sec registri 3 n sec cache memory 10-8 sec -7sec 10 RAM memoria di massa 42 16 - 512 bytes 512 -2000 Kbytes 32 - 512 Mbytes fino a 80 Gbyte - Sistemi operativi - MEMORIA DI MASSA MEMORIA CENTRALE CPU INPUT CANALE 43 OUTPUT - Sistemi operativi - La comunicazione tra il calcolatore e l’esterno avviene tramite il LINGUAGGIO DI COMANDO cioè il linguaggio tecnico di comunicazione, in cui ogni frase è una richiesta al sistema operativo di esecuzione di una particolare operazione 44 - Sistemi operativi - ESEMPI DI COMANDI AL SISTEMA OPERATIVO UNIX MS/DOS ls dir lista dei file cp copy copia di file rm delete cancellazione di un file cat type f77 fl lista il contenuto di un file compilazione Fortran 45 - Sistemi operativi - Ogni richiesta al S.O. comporta le seguenti azioni: • interpretare le frasi del linguaggio di comando •individuare il programma di sistema che soddisfa la richiesta •caricare tale programma in memoria cen-trale •far eseguire il programma •restituire il controllo all’utente per rispondere ad altre richieste Tali azioni sono eseguite da un programma del kernel del sistema operativo INTERPRETE DEL LINGUAGGIO DI COMANDO 46 - Sistemi operativi - Recentemente sono state introdotte delle INTERFACCE GRAFICHE (GUI) ai comandi del sistema operativo per facilitarne l’uso attraverso un semplice click del mouse 47 - Sistemi operativi - L’evoluzione dei sistemi operativi ha definito una struttura logica “a livelli” utente interfaccia grafica interprete programmi di utilità kernel HARDWARE 48 sistema operativo - Sistemi operativi - Esistono due tipi di sistemi operativi: MONOUTENTE: il sistema operativo permette ad un solo utente l’accesso alle risorse della macchina MULTIUTENTE: il sistema operativo permette a più utenti l’accesso alle risorse della macchina, mediante terminali remoti 49 - Sistemi operativi - sistema operativo multiutente (es. UNIX) sistema operativo monoutente (es. MS/DOS) 50 - Sistemi operativi - •Se il sistema operativo è monoutente, l’utente ha immediato accesso al sistema •Se il sistema operativo è multiutente, l’utente è obbligato a dichiarare la propria identità prima di qualunque richiesta al sistema operativo FASE DI LOGIN l’utente ha accesso alla macchina solo se il suo nome è registrato nella memoria del calcolatore 51 - Sistemi operativi - L’obiettivo degli attuali sistemi operativi è non solo permettere lo sviluppo di programmi, ma creare un ambiente di lavoro completo e confortevole Disponibilità di strumenti per far fronte alle esigenze di diversi tipi di utente (ricercatori , segreterie, ...) 52 - Sistemi operativi - Strumenti per lo sviluppo di software •compilatori •programmi per la ricerca degli errori (debugger) •programmi per la valutazione delle prestazioni (timer) •programmi per la scrittura dei programmi di utente (editor) •................... 53 - Sistemi operativi - Strumenti per l’office automation •programmi per l’elaborazione di testi •posta elettronica •agende elettroniche e calendari elettronici •................. 54 - Sistemi operativi - nei moderni centri di ricerca e università convivono più calcolatori collegati in rete mondo esterno terminali concentratore stampante router rete locale supercalcolatori e workstation 55 - Sistemi operativi - in tale ambiente di calcolo ogni utente può accedere a tutte le risorse della rete in maniera trasparente ESEMPIO: l’utente collegato con il calcolatore 1 utilizza un programma residente sul calcolatore 2 con dei dati residenti sul calcolatore 3 calcolatore 3 calcolatore 2 56 calcolatore 1 - Sistemi operativi - necessità di programmi per il trasferimento automatico delle informazioni tra i calcolatori della rete sistema operativo programmi per il trasferimento delle informazioni HARDWARE 57 - Sistemi operativi - ogni calcolatore è identificato da un nome INTERNET = connessione di più livelli di rete altre reti nazionali rete nazionale rete cittadina reti locali ogni rete è identificata da un nome 58 - Sistemi operativi - ESEMPIO rete nazionale cittadina locale calcolatore nome it unina dma matna2 matna2.dma.unina.it identifica lo specifico calcolatore in tutto il mondo 59 - Sistemi operativi - I sistemi operativi attuali includono alcuni strumenti software per l’utilizzo delle reti di calcolatori •trasferimento di file (ftp) •collegamento remoto (telnet) 60 - Sistemi operativi - 61