SISTEMA OPERATIVO:
È un insieme di programmi che gestiscono
le risorse dell’elaboratore (CPU, memoria
centrale, periferiche) in maniera trasparente
all’utente; in altre parole ha un ruolo di
interfaccia tra utente e macchina
HARDWARE
S.O.
PROGRAMMI APPLICATIVI
UTENTI
Poiché alcuni programmi dei s.o. interagiscono con le componenti
hardware, essi devono conoscerne le caratteristiche per poterle
adoperare; in realtà il s.o. deve poter essere ampliato
successivamente, ogni volta che si deve inserire nel sistema un
nuovo componente hardware.
Plug and play (inserisci ed usa) è la tecnologia con la quale
sono realizzati i dispositivi in grado di farsi riconoscere,
ovvero di far istallare al s.o. i driver necessari al loro
corretto utilizzo
-CPU compatibili INTEL
Standard di compatibilità
-Stampanti compatibili EPSON o HP
-Ecc.
Il s.o. ha una struttura gerarchica e modulare
i programmi che lo compongono si
collocano a livelli diversi, in modo da
servire i programmi dei livelli superiori e
di servirsi di quelli di livello inferiore
i programmi che appartengono ad un
unico livello si chiamano moduli, le
procedure per “dialogare “ tra moduli si
chiamano primitive
L’utente in realtà interagisce con una “macchina virtuale”, di
più semplice utilizzo, formata dall’hardware + il s.o.
interprete dei comandi
file system
gestione delle periferiche
nucleo
gestione della memoria
Modello onion skin (a buccia di
cipolla)
CLASSIFICAZIONE DEI S.O. IN RELAZIONE ALLA
POSSIBILITA’ DI ESEGUIRE UNO O PIU’ PROGRAMMI
CONTEMPORANEAMENTE
1. SISTEMA MONOPROGRAMMATO
Quando la sua memoria centrale contiene in un certo istante codice proveniente
da un unico programma. Possibili alti tempi di inattività della CPU
Tempoutente
Temposistema
Tempoinattivo
2. SISTEMA MULTIPROGRAMMATO
È un s.o. che consente di tenere in memoria centrale codice proveniente da più
programmi, portati avanti “contemporaneamente”; l’obiettivo è quello di
ridurre i tempi di inattività della CPU, soddisfacendo più rapidamente le
esigenze degli utenti finali
politiche di assegnazione della CPU
meccanismi di protezione tra i diversi programmi
risoluzione di eventuali conflitti per l’utilizzo di una risorsa
system overhead ovvero carico di lavoro in più per il s.o.
3. SISTEMA IN TIME SHARING (a partizione di tempo)
È un s.o. multiprogrammato nel quale ciascun processo attivo non può utilizzare la
CPU oltre un tempo massimo prefissato detto time slice (fetta o quanto di tempo)
CLASSIFICAZIONE DEI S.O. IN RELAZIONE AGLI UTENTI
1. SISTEMA DEDICATO
E’ il sistema che prevede l’utilizzo da parte di un unico utente; è il caso dei
personal computer
 MS DOS (fino agli anni ’90)
Windows
Linux
I sistemi dedicati moderni consentono il multitasking ovvero
un tipo particolare di multiprogrammazione che consente di
eseguire più applicazioni (task), a volte alcune in background
(attività come ascolto di musica, trasferimento di file
attraverso internet, ecc)
2. SISTEMA BATCH (A LOTTI )
È un s.o. in cui l’utente non interagisce con la macchina durante l’esecuzione
dei programmi; usato laddove occorre eseguire programmi lunghi che non
necessitano di input dell’operatore (es. la stampa degli estratti conto di una
banca a fine mese, la stampa delle bollette della luce, ecc)
Oggi è difficile trovare elaboratori che lavorino soltanto in modalità batch,
piuttosto in modalità mista, lasciando che il lavoro batch venga svolto a volte fuori
dall’orario di lavoro (es. di notte)
3. SISTEMA INTERATTIVO MULTIUTENTE
È il s.o. usato laddove ad un elaboratore sono collegati tanti terminali (videotastiera); la CPU deve avere una grande velocità (MIPS – milioni di istruzioni
per secondo) e la memoria centrale deve avere una considerevole dimensione
 CPU ACTIVITY (attività della CPU) = (tempoutente +
temposistema) * 100 / tempototale
 THROUGHPUT (produttività) = tempoutente / tempototale
È un’insieme di istruzioni, ovvero la
traduzione di un algoritmo in un linguaggio di
programmazione
È l’insieme di istruzioni e dati coinvolti,
ovvero è un programma in esecuzione, cioè
qualcosa che evolve nel tempo
È il dispositivo che causa l’evolvere di un
processo
In un s.o. multiprogrammato che lavora in modalità time sharing
in un certo istante possiamo avere una situazione come quella
rappresentata nella figura
Processo in esecuzione
P1
Processi pronti
P2
P3
Processi in attesa di I/O
P4
P5
Processi parcheggiati
P6
memoria centrale
P7
memoria di massa
Vediamo come avviene la transizione di stato dei processi
stato di parcheggio
I/O terminato
stato di attesa fine I/O
stato di pronto
scadenza time slice
stato di esecuzione
stato di terminazione
richiesta operazione di I/O
sincrone , ad es. in caso di errore,
fine del time slice
INTERRUPT (interruzioni): è un
segnale inviato alla CPU che le
segnala che è accaduto qualcosa e
che deve interrompere
momentaneamente la sua attività
per eseguire un compito particolare
asincrone , generate solo
dall’hardware, come la fine di una
stampa o di scrittura su disco
Quando un processo viene interrotto e di conseguenza cambia il suo stato,
prima di poter eseguire un altro processo il s.o. deve salvare tutte le
informazioni relative al processo che viene sospeso, in particolare il contenuto
del suo registro di stato, che contiene tra l’altro l’indirizzo dell’istruzione da
cui dovrà riprendere il processo; quindi dovrà caricare le informazioni relative
al nuovo processo che deve essere ripreso (il suo registro di stato), e
finalmente riprendere il nuovo processo
È la parte del s.o. più vicino all’hardware. Le sue funzioni sono:
 avvio e terminazione dei processi
 assegnazione della CPU ai vari processi (politiche di scheduling)
 sincronizzazione tra i processi
 sincronizzazione dei processi con l’ambiente esterno
 semplice modalità f.i.f.o. (first in, first out): a ciascun processo
viene assegnata la CPU , solo quando è in attesa di operazioni di I/O
cede la CPU al successivo processo in coda (gestione semplice, ma
non ottimizzata)
 round robin con modalità f.i.f.o. (first in, first out): a ciascun
processo viene assegnata la CPU per un intervallo di tempo,
terminato il quale il processo va in fondo nella coda dei pronti e
riattende il proprio turno
 round robin con code di priorità: i processi in attesa vengono
collocati su code a priorità differenti, privilegiando la coda a priorità
alta
1.
allocazione per partizioni fisse: la memoria centrale è divisa in blocchi
(partizioni ) di uguali dimensioni; molto semplice ma con spreco di memoria
s.o.
P1
P3
P2
BO
B1
BLOCCHI
PROGRAMMI
1
P1
2
P3
3
P2
B2
B3
4
LIBERO
MEMORIA CENTRALE
B4
TABELLA DI GESTIONE
1.
allocazione per partizioni variabili: i programmi vengono caricati all’inizio in
sequenza, quindi laddove c’è uno spazio libero sufficiente; la tabella di gestione
è più complessa, deve contenere anche la dimensione, quindi c’è un maggior
carico di lavoro da parte del s.o., ma lo sfruttamento della risorsa è migliore
ci sono svariati criteri per decidere dove allocare un processo in memoria:

First fit : il processo viene allocato nella prima partizione libera
adeguata per dimensione

Best fit : il processo viene allocato nella partizione libera più
adeguata per dimensione, ovvero quella che lascia il più piccolo
spazio inutilizzato

Worst fit : il processo viene allocato nella partizione libera più
grande, quella cioè che lascia uno spazio inutilizzato capace in
seguito anche di contenere un altro processo
Con questa tecnica il sistema
“simula” una memoria centrale più
grande di quella reale unendo due
componenti: la memoria centrale e la
memoria di massa; quando non c’è
memoria sufficiente per caricare un
programma in memoria centrale,
questo viene diviso in parti, e viene
caricata in memoria centrale una
parte per volta. Si realizza con due
differenti tecniche, la paginazione e
la segmentazione
1.
LA PAGINAZIONE
Ogni programma è suddiviso in blocchi detti pagine logiche tutti della
stessa dimensione, e la memoria centrale in blocchi della medesima
dimensione detti pagine fisiche; la tabella di gestione della memoria è più
complessa perché per ogni pagina logica occorre sapere se è stata
caricata in memoria e a quale indirizzo, altrimenti il suo indirizzo sulla
memoria di massa. Quando una pagina deve essere caricata in memoria
centrale possono verificarsi due differenti situazioni, o c’è una pagina
fisica disponibile e allora quella logica vi viene caricata e viene
contemporaneamente aggiornata la tabella di gestione, oppure non ci sono
posti disponibili in memoria centrale e allora si ricopre una pagina fisica
già occupata scegliendola con una delle due differenti tecniche:
 FIFO : viene ricoperta la pagina logica caricata da più tempo in
memoria, la più vecchia
 LRU (LAST RECENTLY USED) : viene ricoperta la pagina logica
che non viene usata da più tempo, ovvero quella più vecchia d’uso
VANTAGGI: semplicità dovuta alla uguale dimensione delle pagine
SVANTAGGI: l’arbitrarietà con la quale vengono create le pagine logiche
aumenta il numero di “chiamate”
2. LA SEGMENTAZIONE
Ogni programma è suddiviso in blocchi detti segmenti sulla base di criteri
logici, stabiliti dal programmatore (es. una certa area dati, una particolare
routine, ecc),non tutti della stessa dimensione, e di conseguenza la
memoria centrale non è a priori suddivisa in blocchi, ma si frammenta via
via nel corso delle elaborazioni.
VANTAGGI: più processi possono condividere stessi segmenti; inoltre
non ci sono vincoli sul numero di segmenti da caricare in memoria non
essendo stabilito a priori il numero di blocchi in cui è divisa la memoria
centrale
SVANTAGGI: la maggiore complessità delle tabelle di gestione ed il
conseguente maggior onere da parte del s.o.
Avviene attraverso interfacce o nei casi più complessi elaboratori
di canale in maniera assolutamente trasparente per l’utente
CPU
bus
REGISTRO
DATI (BUFFER)
bus
Il buffer
Il
buffer è un’area di memoria “tampone” dove
vengono appoggiati i dati in attesa di essere utilizzati
dalla periferica o viceversa e serve a garantire una
maggiore efficienza del sistema poiché i tempi di
“lavoro” della CPU e delle periferiche sono nettamente
differenti
P
E
R
I
F
E
R
I
C
H
E
canale1
CPU
bus
canale2
canale3
Gli elaboratori di canale hanno una loro autonoma
capacità di elaborazione per eseguire il trasferimento
dati tra CPU e periferiche
Grazie a questi dispositivi il s.o. riesce ad “aumentare” in maniera virtuale il
numero di periferiche, attuando quella che viene definita tecnica di SPOOL
(Simultaneous Peripheral Operation On Line), che consente a diversi processi
di utilizzare la stessa periferica, grazie alla gestione di una coda di spool
S
P1
Output 1
T
Coda di SPOOL
A
M
P2
Output 2
Output 3
Output 2
Output 1
P
A
N
P3
Output 3
T
E
E’ l’insieme dei programmi che consente all’utente di utilizzare file
memorizzati sulle memorie di massa utilizzando semplicemente i loro nomi
simbolici, e “ignorando” gli aspetti relativi alle tecniche di memorizzazione e
gestione delle memorie di massa. Il file system opera attraverso tabelle di
gestione dei file, dette directory o tabelle dei descrittori, che contengono una
serie di informazioni, tipo:
 il nome del file
 l’indirizzo
 la data di creazione
 la data dell’ultimo aggiornamento
 la grandezza
 l’eventuale password di protezione
 il tipo di accesso consentito (lettura, scrittura, ecc)
Con l’uso continuo e frequente delle memorie di massa non è sempre possibile
che un file sia memorizzato tutto insieme, ma può essere suddiviso in blocchi
fisici memorizzati in aree non contigue, e ciò crea un rallentamento e un
appesantimento del lavoro a carico del file system.
Per questo motivo è buona norma eseguire frequentemente l’operazione di
deframmentazione del dispositivo di memoria di massa, operazione che
consente un “risistemazione” dei file contenuti, nel senso che vengono
eliminati tutti i “buchi” creati con l’uso per creare aree libere sufficientemente
ampie per poter contenere nuovi file interi.
E’ un programma del s.o. che riceve in input le richieste di esecuzione di
operazioni. L’interprete standard del sistema DOS si chiama command.com e
contiene alcuni semplici comandi di base per l’utilizzo dell’elaboratore, e
consente anche la scrittura di script (i file BAT) da parte dell’utente più esperto
che voglia personalizzare il suo elaboratore
I s.o. più recenti colloquiano con l’utente attraverso
interfacce grafiche, di sempre più semplice utilizzo (user
friendly), che hanno nel tempo reso possibile l’utilizzo del
computer anche ad utenti per niente esperti
Il processo di esecuzione dell’interprete di comando viene considerato il
processo padre degli altri processi che verranno lanciati nell’ambito della
sessione di lavoro
All’accensione del computer il s.o. deve essere caricato in memoria centrale, per
poi rimanervi fino allo spegnimento; tale compito è svolto da un programma
IPL (Initial Program Loader), che si trova sulla memoria ROM, memoria
permanente e di sola lettuta, che prima effettua un controllo sulle varie
componenti L’operazione di caricamento del s.o. prende il nome di bootstrap.
La procedura di chiusura, shutdown, deve
controllare tutte le sessioni di lavoro aperte da
eventuali utenti differenti ed eventualmente
mandare un messaggio di conferma dello
spegnimento del computer, abortendo
eventuali processi in corso e non conclusi
Sono un insieme di programmi, detti anche programmi di utilità, che
agevolano l’attività degli utenti.
 editor di testi
Compilatori
Linker
Interpreti
Debugger
 ecc.
Tecniche per garantire la riservatezza di archivi “sensibili”, evitare la perdita di
dati e programmi, impedire l’accesso ad utenti non autorizzati, ecc
 backup: procedura per effettuare copie di salvataggio
 restore: procedura per il recupero delle copie di sicurezza
 antivirus
E’ la figura professionale che si occupa dei s.o. e del software di base
Scarica

sistemioperativi