SlideShare ist ein Scribd-Unternehmen logo
1 von 30
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
PROGRAMMI APPLICATIVI
UTENTI
S.O.
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
Standard di compatibilità
-CPU compatibili INTEL
-Stampanti compatibili EPSON o HP
-Ecc.
Il s.o. ha una struttura gerarchica e modulare
i programmi che appartengono ad un
unico livello si chiamano moduli, le
procedure per “dialogare “ tra moduli si
chiamano primitive
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
L’utente in realtà interagisce con una “macchina virtuale”, di
più semplice utilizzo, formata dall’hardware + il s.o.
nucleo
gestione della memoria
interprete dei comandi
file system
gestione delle periferiche
Modello onion skin (a buccia di
cipolla)
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
CLASSIFICAZIONE DEI S.O. IN RELAZIONE ALLA
POSSIBILITA’ DI ESEGUIRE UNO O PIU’ PROGRAMMI
CONTEMPORANEAMENTE
TempoutenteTempoutente 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)
1. SISTEMA DEDICATO
E’ il sistema che prevede l’utilizzo da parte di un unico utente; è il caso dei
personal computer
CLASSIFICAZIONE DEI S.O. IN RELAZIONE AGLI UTENTI
 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 (video-
tastiera); 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
memoria centrale
memoria di massa
Processo in esecuzione P1
P3P2
P6 P7
P4 P5
Processi pronti
Processi in attesa di I/O
Processi parcheggiati
Vediamo come avviene la transizione di stato dei processi
stato di parcheggio
stato di esecuzione
stato di pronto
stato di terminazione
stato di attesa fine I/O
richiesta operazione di I/O
scadenza time slicescadenza time slice
I/O terminato
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
sincrone , ad es. in caso di errore,
fine del time slice
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.
LIBERO
BO
B2
B1
B3
B4
P1
P3
P2
MEMORIA CENTRALE
1 P1
2 P3
3 P2
4
TABELLA DI GESTIONE
BLOCCHI PROGRAMMI
2. 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
REGISTRO
DATI (BUFFER)
P
E
R
I
F
E
R
I
C
H
E
bus bus
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
CPU
REGISTRO
DATI (BUFFER)
P
E
R
I
F
E
R
I
C
H
E
bus bus
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
CPU
canale1
bus
canale2
Gli elaboratori di canale hanno una loro autonoma
capacità di elaborazione per eseguire il trasferimento
dati tra CPU e periferiche
canale3
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
P1
P2
P3
Output 1
Output 2
Output 3
Output 3 Output 2 Output 1
S
T
A
M
P
A
N
T
E
Coda di SPOOL
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

Weitere ähnliche Inhalte

Was ist angesagt?

Architetturacomputer1
Architetturacomputer1Architetturacomputer1
Architetturacomputer1
cesarem
 
Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01
Majong DevJfu
 
Architettura elaboratore
Architettura elaboratoreArchitettura elaboratore
Architettura elaboratore
serex86
 
Architettura dei Calcolatori 06 Elementi Architetturali Di Base
Architettura dei Calcolatori 06 Elementi Architetturali Di BaseArchitettura dei Calcolatori 06 Elementi Architetturali Di Base
Architettura dei Calcolatori 06 Elementi Architetturali Di Base
Majong DevJfu
 
Relazione cpu
Relazione cpuRelazione cpu
Relazione cpu
Giopalma
 
La struttura dell' elaboratore
La struttura dell' elaboratoreLa struttura dell' elaboratore
La struttura dell' elaboratore
Giopalma
 
Modulo1 lezione1
Modulo1 lezione1Modulo1 lezione1
Modulo1 lezione1
scipag
 
Alfabetizzazione informatica 8 ore
Alfabetizzazione informatica 8 oreAlfabetizzazione informatica 8 ore
Alfabetizzazione informatica 8 ore
Bruno Marzemin
 

Was ist angesagt? (20)

Cpu
CpuCpu
Cpu
 
Modulo 1 - Lezione 2
Modulo 1 - Lezione 2Modulo 1 - Lezione 2
Modulo 1 - Lezione 2
 
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
Guida al Computer - Lezione 51 - Il Sistema Operativo Parte 1
 
Architetturacomputer1
Architetturacomputer1Architetturacomputer1
Architetturacomputer1
 
Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01Sistemi Operativi: Introduzione - Lezione 01
Sistemi Operativi: Introduzione - Lezione 01
 
Architettura elaboratore
Architettura elaboratoreArchitettura elaboratore
Architettura elaboratore
 
Architettura dei Calcolatori 06 Elementi Architetturali Di Base
Architettura dei Calcolatori 06 Elementi Architetturali Di BaseArchitettura dei Calcolatori 06 Elementi Architetturali Di Base
Architettura dei Calcolatori 06 Elementi Architetturali Di Base
 
Lezione2
Lezione2Lezione2
Lezione2
 
Scheda Madre
Scheda MadreScheda Madre
Scheda Madre
 
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
Guida al Computer - Lezione 52 - Il Sistema Operativo Parte 2
 
La struttura del pc
La struttura del pcLa struttura del pc
La struttura del pc
 
Elaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlabElaborazione automatica dei dati: calcolatore e matlab
Elaborazione automatica dei dati: calcolatore e matlab
 
Relazione cpu
Relazione cpuRelazione cpu
Relazione cpu
 
La struttura dell' elaboratore
La struttura dell' elaboratoreLa struttura dell' elaboratore
La struttura dell' elaboratore
 
Modulo1 lezione1
Modulo1 lezione1Modulo1 lezione1
Modulo1 lezione1
 
Alfabetizzazione informatica 8 ore
Alfabetizzazione informatica 8 oreAlfabetizzazione informatica 8 ore
Alfabetizzazione informatica 8 ore
 
Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1Sistema Operativo - LInux - Modulo 2.1
Sistema Operativo - LInux - Modulo 2.1
 
Hardware3
Hardware3Hardware3
Hardware3
 
Personal computer
Personal computerPersonal computer
Personal computer
 
L' architettura dell' elaboratore( parte 1) (parte 2) periferiche
L' architettura dell' elaboratore( parte 1) (parte 2) perifericheL' architettura dell' elaboratore( parte 1) (parte 2) periferiche
L' architettura dell' elaboratore( parte 1) (parte 2) periferiche
 

Andere mochten auch (10)

Celia Cruz Negocios Sociais
Celia Cruz Negocios SociaisCelia Cruz Negocios Sociais
Celia Cruz Negocios Sociais
 
Sistemas operativos móviles office2003
Sistemas operativos móviles office2003Sistemas operativos móviles office2003
Sistemas operativos móviles office2003
 
Inexistencia no está reconocida
Inexistencia no está reconocidaInexistencia no está reconocida
Inexistencia no está reconocida
 
Rokkanen Tanja, Varma Onko ikä työkykykysymys?
Rokkanen Tanja, Varma Onko ikä työkykykysymys?Rokkanen Tanja, Varma Onko ikä työkykykysymys?
Rokkanen Tanja, Varma Onko ikä työkykykysymys?
 
محمد الغزالي جدد حياتك
محمد الغزالي   جدد حياتكمحمد الغزالي   جدد حياتك
محمد الغزالي جدد حياتك
 
Pitch koudetat thumbtack Final
Pitch koudetat   thumbtack FinalPitch koudetat   thumbtack Final
Pitch koudetat thumbtack Final
 
Niif13 2011valor razonable
Niif13 2011valor razonableNiif13 2011valor razonable
Niif13 2011valor razonable
 
Trends in Government ICT - Chasing Data, Information, and Decision Support
Trends in Government ICT - Chasing Data, Information, and Decision SupportTrends in Government ICT - Chasing Data, Information, and Decision Support
Trends in Government ICT - Chasing Data, Information, and Decision Support
 
Angulos 1
Angulos 1Angulos 1
Angulos 1
 
Die sinne
Die sinneDie sinne
Die sinne
 

Ähnlich wie Sistemioperativi

Thread o processo quale usare - 2010-11-02
Thread o processo  quale usare  - 2010-11-02Thread o processo  quale usare  - 2010-11-02
Thread o processo quale usare - 2010-11-02
Ionela
 
Attacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowAttacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflow
Giacomo Antonino Fazio
 
Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02
Majong DevJfu
 

Ähnlich wie Sistemioperativi (20)

Thread o processo quale usare - 2010-11-02
Thread o processo  quale usare  - 2010-11-02Thread o processo  quale usare  - 2010-11-02
Thread o processo quale usare - 2010-11-02
 
Sist op
Sist opSist op
Sist op
 
Sistemi Operativi
Sistemi OperativiSistemi Operativi
Sistemi Operativi
 
Processi e Thread
Processi e ThreadProcessi e Thread
Processi e Thread
 
Sistemi operativi
Sistemi operativiSistemi operativi
Sistemi operativi
 
Linux Device Drivers
Linux Device DriversLinux Device Drivers
Linux Device Drivers
 
HARDWARE & SOFTWARE
HARDWARE & SOFTWAREHARDWARE & SOFTWARE
HARDWARE & SOFTWARE
 
operating system
operating systemoperating system
operating system
 
Software7
Software7Software7
Software7
 
Presentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marcoPresentazione sistemi operativi meli marco
Presentazione sistemi operativi meli marco
 
Attacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflowAttacchi alle applicazioni basati su buffer overflow
Attacchi alle applicazioni basati su buffer overflow
 
Tecnologie Di Base
Tecnologie Di BaseTecnologie Di Base
Tecnologie Di Base
 
Jvm performance Tuning
Jvm performance TuningJvm performance Tuning
Jvm performance Tuning
 
Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02
 
MODULO 1-Informatica di Base
MODULO 1-Informatica di BaseMODULO 1-Informatica di Base
MODULO 1-Informatica di Base
 
Ti 2021 22_new
Ti 2021 22_newTi 2021 22_new
Ti 2021 22_new
 
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...
PROGETTAZIONE E SVILUPPO DI UN FRAMEWORK DI SUPPORTO IN AMBIENTE AZIENDALE SU...
 
Cpu Abacus
Cpu AbacusCpu Abacus
Cpu Abacus
 
Cpu abacus
Cpu abacusCpu abacus
Cpu abacus
 
Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.
 

Sistemioperativi

  • 1. 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 PROGRAMMI APPLICATIVI UTENTI S.O.
  • 2. 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 Standard di compatibilità -CPU compatibili INTEL -Stampanti compatibili EPSON o HP -Ecc.
  • 3. Il s.o. ha una struttura gerarchica e modulare i programmi che appartengono ad un unico livello si chiamano moduli, le procedure per “dialogare “ tra moduli si chiamano primitive 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
  • 4. L’utente in realtà interagisce con una “macchina virtuale”, di più semplice utilizzo, formata dall’hardware + il s.o. nucleo gestione della memoria interprete dei comandi file system gestione delle periferiche Modello onion skin (a buccia di cipolla)
  • 5. 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 CLASSIFICAZIONE DEI S.O. IN RELAZIONE ALLA POSSIBILITA’ DI ESEGUIRE UNO O PIU’ PROGRAMMI CONTEMPORANEAMENTE TempoutenteTempoutente Temposistema Tempoinattivo
  • 6. 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)
  • 7. 1. SISTEMA DEDICATO E’ il sistema che prevede l’utilizzo da parte di un unico utente; è il caso dei personal computer CLASSIFICAZIONE DEI S.O. IN RELAZIONE AGLI UTENTI  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)
  • 8. 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 (video- tastiera); la CPU deve avere una grande velocità (MIPS – milioni di istruzioni per secondo) e la memoria centrale deve avere una considerevole dimensione
  • 9.  CPU ACTIVITY (attività della CPU) = (tempoutente + temposistema) * 100 / tempototale  THROUGHPUT (produttività) = tempoutente / tempototale
  • 10. È 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
  • 11. In un s.o. multiprogrammato che lavora in modalità time sharing in un certo istante possiamo avere una situazione come quella rappresentata nella figura memoria centrale memoria di massa Processo in esecuzione P1 P3P2 P6 P7 P4 P5 Processi pronti Processi in attesa di I/O Processi parcheggiati
  • 12. Vediamo come avviene la transizione di stato dei processi stato di parcheggio stato di esecuzione stato di pronto stato di terminazione stato di attesa fine I/O richiesta operazione di I/O scadenza time slicescadenza time slice I/O terminato
  • 13. 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 sincrone , ad es. in caso di errore, fine del time slice asincrone , generate solo dall’hardware, come la fine di una stampa o di scrittura su disco
  • 14. 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
  • 15. È 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
  • 16.  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
  • 17. 1. allocazione per partizioni fisse: la memoria centrale è divisa in blocchi (partizioni ) di uguali dimensioni; molto semplice ma con spreco di memoria s.o. LIBERO BO B2 B1 B3 B4 P1 P3 P2 MEMORIA CENTRALE 1 P1 2 P3 3 P2 4 TABELLA DI GESTIONE BLOCCHI PROGRAMMI
  • 18. 2. 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
  • 19. 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
  • 20. 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”
  • 21. 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.
  • 22. Avviene attraverso interfacce o nei casi più complessi elaboratori di canale in maniera assolutamente trasparente per l’utente CPU REGISTRO DATI (BUFFER) P E R I F E R I C H E bus bus 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 CPU REGISTRO DATI (BUFFER) P E R I F E R I C H E bus bus 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
  • 23. CPU canale1 bus canale2 Gli elaboratori di canale hanno una loro autonoma capacità di elaborazione per eseguire il trasferimento dati tra CPU e periferiche canale3
  • 24. 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 P1 P2 P3 Output 1 Output 2 Output 3 Output 3 Output 2 Output 1 S T A M P A N T E Coda di SPOOL
  • 25. 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)
  • 26. 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.
  • 27. 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
  • 28. 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
  • 29. Sono un insieme di programmi, detti anche programmi di utilità, che agevolano l’attività degli utenti.  editor di testi Compilatori Linker Interpreti Debugger  ecc.
  • 30. 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