Il Sistema Operativo
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