In questa presentazione parleremo del sistema operativo, della sua evoluzione e delle sue tipologie. Per queste ultime ci limitiamo solo ad elencarle ad eccezione dell’elaborazione a lotti (batch) in quanto è stato scelto per approfondimento. Definizione di sistema operativo • • • • Un S.O. può essere definito, in modo generale, come un insieme di procedure manuali e automatiche che consentono all’utente di un sistema di elaborazione di usarlo efficientemente. Ciò vuol dire che un S.O. deve: Permettere all’utilizzatore (utente, operatore o programmatore) di usare in modo semplice e immediato tutte le risorse che il sistema di elaborazione mette a disposizione Ottimizzare l’uso delle risorse a disposizione, attuando opportune politiche di gestione razionale delle stesse; Fornire un’immagine astratta di tutte le risorse disponibili, indipendentemente da come queste funzionino (risorse hardware) e dai dettagli implementativi necessari al loro uso Classificazione dei S.O. • L’evoluzione delle architetture dei calcolatori segna anche l’evoluzione dei sistemi operativi. • In ordine cronologico 1. Dedicati 2. A lotti (batch) 3. Multiprogrammazione 4. Interattivi (Time-Sharing) 5. Pc e Wolkstation (sistemi da scrivania) 6. Sistemi paralleli e distribuiti 7. Real–Time 8. Sistemi palmari Prima Generazione (1945-1955) • I calcolatori erano basati su valvole • Praticamente non vi era S.O. • I Sistemi dedicati che ne facevano parte erano quasi esclusivamente per il calcolo numerico/scientifico Il primo calcolatore basato su valvole Seconda Generazione (1955-1965) • • • • • S.O. Batch (gestione a lotti) È determinata dall’introduzione di importanti innovazioni tecnologiche: Transistor I calcolatori potevano essere prodotti e venduti ai clienti Nascono figure professionali distinte nel processo di produzione di un programma (job) Costi di milioni di dollari (solo Università e grandi industrie) Inventori del Transistor Job (programma o insieme di programmi) • Un programmatore scrive il programma su carta (Fortran, Assembler), e perfora le schede; • le riceve un operatore che le inserisce in una coda dei programmi, le immette nel calcolatore e, se necessario, carica l’opportuno compilatore; • L’operatore consegna poi al programmatore l’output finale Job (programma o insieme di programmi) • Problema: enorme spreco di tempo (set – up time) • Caricamento nastro compilatore, esecuzione compilatore, scaricamento compilatore, caricamento assembler, esecuzione assembler, scaricamento assembler, caricamento oggetto, esecuzione programma … • Soluzione: Sistemi a lotti (batch) Sistemi batch • Nati per sfruttare meglio la velocità crescente delle macchine: eliminando i tempi morti tra programmi successivi di utenti diversi automatizzando le operazioni manuali • Un insieme di lavori (jobs) viene accorpato in un lotto (batch) tramite un calcolatore ausiliario e trasferito su una unità di ingresso veloce (nastro) • Ogni lavoro viene caricato da un operatore ed eseguito in sequenza senza interruzione fino al termine • L’output viene scritto su un secondo nastro invece di essere stampato (stampa off line) • La CPU viene ancora sottoutilizzata perché, durante le operazioni di I/O deve adeguarsi alla bassa velocità delle periferiche Sistemi batch Sistemi batch • Si noti che servono due sistemi distinti. • IBM 1401 per la gestione dei lotti • IBM 7094 per l’esecuzione dei programmi Terza generazione (1965-1980) • Nascono i circuiti integrati • I sistemi operativi che ne fanno parte sono la multiprogrammazione (multitasking) e il S.O. Time Sharing Alcuni circuiti integrati. Nel 1958, l'ingegnere americano J.C. Kilby della Texas riuscì a combinare diversi componenti elettronici (transistor, diodi, resistenze, ecc.) su una piastrina di silicio di dimensioni più piccole di un francobollo. Ingrandimento della superficie di un circuito integrato Quarta generazione: Pc e workstation (sistemi da scrivania) • • Sono basati sulla tecnologia VLSI (Very Large Scale Integration) Due sistemi operativi hanno dominato la scena dei Personal Computer e delle Workstation: MS-DOS (Microsoft) con il derivato Windows UNIX (Bell Labs) Sistemi paralleli e distribuiti • La crescita di reti di PC e di WS ha permesso lo sviluppo di • Sistemi con più CPU: i processori non condividono o condividono clock e/o memoria (loosely o tight coupled) - Con multielaborazione simmetrica o asimmetrica • Sistemi distribuiti e di rete - Modalità Client server - Sistema operativo di rete - Batterie di sistemi Sistemi operativi Real Time • Sistemi operativi al servizio di una specifica applicazione che ha dei vincoli precisi nei tempi di risposta • Il S.O. deve garantire un tempo massimo entro il quale mandare in esecuzione un programma a seguito di un evento • Gestione di strumentazione • Controllo di processo • Gestione di allarme • Sistemi transazionali (banche, prenotazioni) • In generale si ha un sistema real-time quando il tempo di risposta dalla richiesta di esecuzione di un processo al completamento della stessa è sempre minore del tempo prefissato Sistemi Operativi Palmari • Sistemi operativi a bordo dei palmari o PDA (personal digital assistant) • Memoria RAM da pochi megabyte • Schermi ridotti • Frequenza di CPU bassa • Comunicazione con reti (con o senza fili) • Es. Palm OS processori a 32 bit, 480X320 pixel, supporto multitasking limitato, bluetooth Servizi Offerti dal S.O. • • • • Il S.O. serve per agevolare la programmazione semplificando lo svolgimento di attività quali: Operazioni di I/O Esecuzione programmi Manipolazione archivi Rilevazione degli errori Esso serve inoltre per migliorare l’efficienza d’uso del calcolatore intervenendo nella: • Allocazione di risorse • Contabilità • Protezione Strumenti a disposizione del S.O. Un sistema operativo utilizza vari strumenti i principali dei quali sono: • Programmi di sistema • Chiamate al Sistema Operativi o Supervision Call (SVC) o System Call • Interruzioni • Istruzioni privilegiate (si tratta di istruzioni utilizzabili solo da particolari utenti e destinate al S.O.) Componenti essenziali di un sistema operativo Le componenti essenziali di un sistema operativo sono costituite da: • Gestore delle interruzioni • Programma di gestione dei dispositivi (driver) • Interprete dei comandi • Routine per le chiamate al sistema • Gestore della memoria primaria • Gestore dei processi • Gestore dell’I/O • Gestore dei file (file system) Questa presentazione è stata rappresentata da due alunni frequentanti la classe IV A dell’istituto Industriale statale “E.Mattei” (I.I.S. E. Mattei) Eboli (SA). Gli alunni: Olivieri Luciano & Scotese Francesco