vuoi
o PayPal
tutte le volte che vuoi
Appunto di informatica che fornisce in un allegato la descrizione della caratteristiche principali del Sistema Operativo.
INFORMATICA
Componenti di un sistema di calcolo:
Hardware: fornisce le risorse fondamentali di calcolo (CPU, memoria, device di I/O).
Sistema Operativo: controlla e coordina l’utilizzo delle risorse hardware da parte dei
programmi applicativi dell’utente.
Programmi Applicativi: definiscono le modalità di utilizzo delle risorse del sistema, per
risolvere i problemi di calcolo degli utenti (compilatori, database, video game, programmi
gestionali).
Interfaccia: permette agli utenti di accedere alle risorse del sistema attraverso un linguaggio di
comando o desktop grafici
Utenti : persone, altri macchinari, altri elaboratori.
Compiti del sistema operativo:
Gestione dei processi;
• Gestione della memoria principale;
• Gestione della memoria di massa (file system);
• Realizzazione dell’interfaccia utente;
• Gestione dell’accesso simultaneo di più utenti alla stessa macchina;
• Esecuzione simultanea di più processi sulla stessa macchina;
• Rilevamento e gestione degli errori;
• HW-SW
[Type text] Page 2
INFORMATICA
Riassunto della storia dei sistemi di elaborazione:
Generazione 0: Babbage (1792–1871)
Progetta la macchina analitica (programmabile, meccanica)
Non aveva sistema operativo
La prima programmatrice della storia è Lady Ada Lovelace (figlia del poeta Lord Byron)
Generazione 1: 1945–1955
Valvole e tavole di commutazione
Generazione 2: 1955–1965
Transistor e sistemi batch
Generazione 3: 1965–1980
Circuiti integrati, multiprogrammazione e time–sharing
Generazione 4: 1980–oggi
Personal computer
Generazione 1:
Non erano dotati di sistema operativo;
• Non esistevano i linguaggi ad alto livello né l’assembly;
• Primi programmi per la gestione di periferiche;
• L’elaboratore gestiva un solo lavoro (job);
•
Generazione 2:
Sistemi batch caratteristiche:
Presuppongono un operatore ≠ utente
• Assenza di interazione fra utente e job a run–time (tempo
• di esecuzione)
Presuppongono come periferica di ingresso un lettore di
• schede o nastri.
Riducono il tempo di setup riunendo in lotti (batch) job
• simili.
Aumento del throughput (quantità di dati trasmessi in un unità di tempo)
• Viene eseguito un solo job alla volta fino al suo completamento.
•
Funzionamento:
1. Un lotto di job sotto forma di schede viene trascritto su di un nastro,
2. Il nastro viene montato nel sistema centrale (7094) che li elabora uno alla volta.
3. I risultati sono trascritti su di un ulteriore nastro (nel frattempo e’ possibile cominciare a
creare un altro nastro di job sul sistema ausiliario 1401)
4. Il nastro con i risultati viene montato sul sistema ausiliario 1401 che li stampa (nel
frattempo il sistema centrale 7094 elabora altri job su un altro nastro)
[Type text] Page 3
INFORMATICA
Sistemi batch: problemi
Le operazioni di elaborazione e di I/O non possono essere svolte contemporaneamente.
E’ possibile tenere in memoria un solo job alla volta.
Lentezza dei lettori di schede e nastri rispetto alla CPU (anche 3 ordini di grandezza).
Uso inefficiente della CPU.
Primo miglioramento:
Caricamento di numerosi job su nastro (off–line)
Elaborazione (output su nastro)
Stampa del nastro di output (off–line)
Possibile Soluzione:
Uso di memorie di massa veloci ad accesso diretto (dischi)
Generazione 3:
Sistemi operativi interattivi, con multi–programmazione e time–sharing:
Con la multiprogrammazione e il time sharing si riducono i tempi medi di attesa e ogni utente
ha la sensazione di essere l’unico utente del sistema.
Sistemi interattivi:
Permettono la comunicazione on–line tra utente e sistema; quando il SO termina
• l’esecuzione di un comando, si aspetta il successivo comando da tastiera;
Devono essere sempre disponibili per l’accesso a dati e codice da parte degli utenti
• (File system on–line).
Multi–programmazione: Utilizzo del processore durante i periodi di I/O di un job per
eseguire altri job
Vantaggi: Il processore non viene lasciato inattivo (idle) durante le operazioni di I/O (molto
lunghe). La memoria viene utilizzata al meglio, caricando il maggior numero di job possibili.
Per gestire la multi–programmazione, il SO deve gestire un pool di job da eseguire, fra cui
alternare il processore.
[Type text] Page 4
INFORMATICA
Caratteristiche:
Più job contemporaneamente in memoria.
Una componente del SO, detta scheduler, si preoccupa di alternarli nell’uso della CPU
Quando un job richiede un’operazione di I/O, la CPU viene assegnata ad un altro job.
SO multi–programmati:
Routine di I/O fornite dal SO.
• Gestione della memoria: il sistema deve allocare la memoria per i job presenti
• contemporaneamente
CPU scheduling: il sistema deve scegliere tra i diversi job pronti all’esecuzione
• Allocazione delle risorse di I/O: il SO deve essere in grado di allocare le risorse di I/O
• fra diversi processi.
SO multi-programmati: problemi
Se nel job pool è presente un job molto lungo, eventuali job più piccoli devono attendere la fine
di tale job anche se devono usare la CPU per poco tempo.
Tempo medio di elaborazione: Elevato
Soluzione: Sospendere l’esecuzione di job che superano un fissato tempo limite (time slice).
Time–Sharing: La risorsa CPU viene suddivisa in quanti temporali; allo scadere di un
quanto, il job corrente viene interrotto e l’esecuzione passa ad un altro job, anche in assenza di
richieste di I/O.
Il passaggio di utilizzo della CPU da un processo all’altro (context switch) avviene così
frequentemente che più utenti possono interagire con i programmi in esecuzione.
SO Time–Sharing:
Gestione della memoria: il numero di processi utente può essere molto elevato; si rende
• necessario l’uso della memoria virtuale;
CPU scheduling: deve essere di tipo time–sliced, ovvero sospendere periodicamente
• l’esecuzione di un programma a favore di un altro.
La presenza di più utenti rende necessari meccanismi di protezione ( protezione del file
• system, della memoria, etc.)
Gestione di un file system on–line e della memoria secondaria di supporto.
• La presenza di meccanismi per l’esecuzione concorrente, la comunicazione e la
• sincronizzazione dei job.
La presenza di meccanismi per evitare i deadlock.
• La presenza di differenti unità di I/O.
•
Time-Sharing Problemi:
Il time sharing permette l’accesso alla cpu a molti programmi residenti in memoria.
La memoria ha una capacità limitata.
[Type text] Page 5