hardware Software (sistema operativo) uomo

uomo
Software (sistema operativo)
hardware
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
1
Sistema operativo
Insieme di programmi che svolgono
funzioni essenziali per l’uso del
sistema di elaborazione
Questi programmi sono i primi ad essere eseguiti quando un
elaboratore viene avviato e alcuni di essi rimangono sempre in
memoria (cioè in esecuzione)
essi gestiscono direttamente i dispositivi che fanno parte del PC
Quando l’utente usa un programma per accedere a un componente lo
fa attraverso il s.o.
2
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistema operativo
•Un sistema operativo è un insieme di programmi che
agiscono da intermediario fra utente e macchina hardware.
•Il sistema operativo fornisce all'utente vari strumenti, quale
un ambiente per l'esecuzione di altri programmi e una
visione astratta del hardware.
vi sono diversi tipi di s.o.
3
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistema operativo
Funzioni
Il s.o. fornisce all’utente una serie di
funzionalità
4
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Funzioni del Sistema operativo
•Esecuzione di applicazioni, il S.O. gestisce
per conto dell’utente operazioni quali:
– caricamento del programma (istruzioni e dati)
nella memoria centrale,
– inizializzazione dei dispositivi di
ingresso/uscita,
– preparazione e gestione di altre risorse come la
rete di comunicazione,
5
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Funzioni del Sistema operativo
Accesso ai dispositivi di ingresso/uscita, il S.O. maschera i
dettagli di basso livello
– gestione dei segnali necessari per il trasferimento dei dati,
– consente all’utente di ragionare in termini di operazioni astratte di
lettura e scrittura;
• rende disponibile all’utente meccanismi di I/O potenti ed indipendenti dal tipo di
periferica
•
(l’utente dice leggi dal disco e basta poi il s.o. in funzione del disco e sa che cosa comandare al
processore)
– gestisce le periferiche condivise
•
se mando in stampa 2 documenti chi gestisce che i due non siano in conflitto
• se hanno meccanismi particolari di accesso (se sono in locale oppure in remoto)
• se ci sono malfunzionamenti (esempio carta inceppata..)
6
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Funzioni del Sistema operativo
• Archiviazione di dati e programmi
– fornire un’organizzazione logica dei dati sotto
forma di cartelle (directory) e file,
– gestire le operazioni di basso livello per il
relativo ingresso/uscita;
7
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Funzioni del Sistema operativo
• Controllo di accesso
– condivisione di risorse da parte di più utenti o
applicazioni,
– meccanismi di protezione e politiche di
risoluzione degli eventuali conflitti d’uso;
8
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Funzioni del Sistema operativo
• Contabilizzazione
– ottimizzare il tempo di risposta dei programmi
interattivi,
– fatturare agli utenti i costi dell’impiego del sistema;
• Gestione dei malfunzionamenti
– rilevare e, se possibile, di risolvere eventuali
malfunzionamenti provocati da guasti hardware, o da
operazioni scorrette compiute dal software applicativo.
9
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistema operativo
Il s.o. è un complesso insieme di programmi
che interagiscono tra loro.
Il modello per rappresentare le funzionalità
e le interazioni e’ quello che lo vede come
una serie di livelli di macchine virtuali
10
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistema operativo
A. ogni livello gestisce una specifica
risorsa (o insieme di risorse). Il s.o.
simula l’esistenza di una macchina
virtuale diversa dalla reale macchina
fisica.
B. ogni livello è costruito sopra a
quelli sottostanti, cioè usa i
meccanismi di quello che sta sotto.
11
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistema operativo
C. si presenta all’esterno con
modularità, attraverso interfacce ben
definite le cui funzioni non dipendono
da come viene realizzato.
12
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistema operativo
modello a buccia di
cipolla “onion skin”
uomo
Programmi utenti
Programmi di utilità
File system
Periferiche virtuali
software
Memoria virtuale
nucleo
Macchina fisica
13
hardware
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Gli elementi del Sistema operativo
•
•
•
•
•
•
Gestore dei processi
Gestore della memoria
Gestione delle periferiche
Gestione dei file
Gestione degli utenti
Gestione della rete
14
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Evoluzione dei Sistemi operativi
I primi sistemi erano uniprogrammati, cioè in
memoria c’e’ un solo programma utente per
volta, ovviamente insieme ai programmi
che costituiscono il S.O. (durante l’attesa il
processore non fa niente, oppure potrebbe
caricare un altro programma, ma ci vuole
tempo)
15
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Evoluzione dei Sistemi operativi
Successivamente si sono sviluppati i sistemi
multiprogrammati (durante l’attesa di I/O il
processore si occupa di altri utenti e o programmi,
che ha già in memoria)
Con quale politica passa da un programma o ad un
altro?
Tecnica del Time sharing, assegnare un quanto di
tempo ad ogni programma (round-robin), con la
possibilità che un programma possa rinunciare alla
CPU se non gli serve
16
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Processi-Programmi
Nei sistemi operativi moderni il parallelismo nell’esecuzione ha portato a
superamento del concetto statico di programma per parlare di
“processo”
• Un processo é un programma in esecuzione sul calcolatore
• un programma é un oggetto statico
• un processo é un oggetto dinamico poiché è dotato di uno stato interno
che cambia nel tempo
• lo stato di un processo é dato dai valori dei dati nella memoria e nei
registri della CPU
• Ad ogni programma possono corrispondere diversi processi, esempio il
programma word hai processo che si occupa della stampa ed il
processo che mi permette di salvare
17
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Multitask e interrupt
• Un processo può trovarsi in tre situazioni
diverse: in esecuzione, pronto, in attesa
• Di solito in un computer sono attivi
contemporaneamente più processi
• solo un processo per volta però si trova
nello stato di esecuzione
18
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Processi
• Un processo é pronto quando può andare subito in
esecuzione
• un processo é in attesa quando attende il
verificarsi di un evento esterno (in genere
operazione di I/O)
• Quando un processo è in esecuzione la CPU
esegue istruzioni che appartengono a quel
processo
• La contemporaneità di esecuzione viene di fatto
“simulata”
19
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Stato di un processo
• Solo un processo per volta può trovarsi
nello stato di esecuzione
• per simulare la simultaneità é necessario
interrompere l’esecuzione di un processo e
passare all’esecuzione di un altro
• un interrupt é un particolare segnale che
arriva alla CPU e la avverte che deve
interrompere la sequenza delle istruzioni
20
correnti
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistemi multitasking
• La CPU esegue sequenzialmente operazioni
elementari
• Nella realtà molte si fanno in parallelo, scaricare
un file da Internet e allo stesso tempo elaborare un
documento, ma se ho un solo processore?
• Le attività vengono eseguite in sequenza: il
sistema operativo cede il controllo della CPU a un
programma o all’altro a seconda delle esigenze
21
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistemi multitasking
• Consiste nel suddividere il tempo di lavoro della
CPU tra i vari programmi in esecuzione
• Nei sistemi più recenti si usa il “preemptive”. Il
sistema operativo ha una lista di processi con
diversi priorità, un processo in corso può essere
interrotto temporaneamente, tolto quindi dalla
CPU, che viene assegnata ad un processo con
priorità maggiore
22
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Sistemi multithreading
• I programmi elaborano dati in sequenza, quando un
operazione finisce ne iniziano un’altra
• Ma se un programma deve fare più cose insieme, esempio,
in un editor si deve scrive e contemporaneamente I dati si
devono leggere sullo schermo, come si fa?
• Si applica il concetto di “multithreading” che è il
concetto di multitasking applicato ad un singolo
programma, in pratica la CPU viene occupata ora
per un’operazione ora per un’altra, a rotazione
23
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Gli elementi del Sistema operativo
• Gestore dei processi
– controlla la CPU
– si occupa di definire quali programmi sono da
eseguire alla CPU
– gestisce la traduzione dei programmi in un
linguaggio eseguibili dal processore
24
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Gli elementi del Sistema operativo
• Gestore della memoria
Controlla l’assegnazione della memoria di
lavoro ai diversi programmi, che possono
essere contemporaneamente in esecuzione,
garantendo a ciascuno di essi l’accesso a
zone riservate di memoria in cui poter
depositare in modo esclusivo i propri dati
25
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Gli elementi del Sistema operativo
• Gestione delle periferiche
Il sottosistema garantisce l’accesso ai dispositivi di
I/O mascherandone I dettagli di basso livello e gli
eventuali conflitti che possono insorgere nel caso
che diverse richieste arrivino in contemporanea ad
uno stesso device da più programmi
I driver sono programmi che gestiscono le
periferiche
I nuovi sistemi sono plug&play, cioè permettono alle
periferiche di farsi riconoscere
26
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Gli elementi del Sistema operativo
Gestione dei file
Chiamato spesso con il termine file system,
serve per archiviare i dati e a reperire i dati
sfruttando le periferiche di archiviazione di
massa
I dati vengono strutturati e gestiti in FILE, che
sono dei contenitori logici identificati
mediante un nome
27
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
file
• Identificati da un nome costituito da due parti:
nome.estensione
• Vincoli di lunghezza del nome
• Vincoli di caratteri
• Informazioni associate ad ogni file (lunghezza in
byte, data di creazione, di modifica, ed altre
informazioni specifiche del tipo di file, protezione
e posizione sul supporto dei dati
28
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
cartelle
• Se abbiamo l’esigenza di usare lo stesso nome per
file diversi dobbiamo introdurre il concetto di
cartella
• Cartella: contenitore di file, o di altre cartelle
• Ogni file viene univocamente individuato
specificando il suo nome e il nome della cartella (o
cartelle) che lo contiene, questo si chiama path,
esempio c:\windows\system.ini
• Ogni sistema ha il suo metodo per nascondere
alcune caratteristiche dei file e delle cartelle agli
utenti
29
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Diversi file system
• FAT , 8 numero di caratteri per i nomi dei file,
dimensioni delle partizioni dei dischi massimo 2
Gbyte, no alias
• FAT32 da 512MB a 32GB , nessuna sicurezza
all’accesso dei file, si alias
• NTFS > 32 GB finoa 2TByte, gestione privilegi, si
alias
• HFS plus (Mac OS Extended ) 16TByte, privilegi
come UNIX, si alias
30
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Gli elementi del Sistema operativo
• Gestione degli utenti
Sottosistema che si interfaccia direttamente
con l’utente e gli permette di accedere in
maniera semplice ed intuitiva alle
funzionalità disponibili
31
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Gli elementi del Sistema operativo
• Gestione della rete
Sottosistema che consente di interfacciarsi a
risorse collegate in rete e di comunicare con
processi in esecuzione su altri calcolatori
32
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Controllo degli accessi
• Identificazione degli accessi al sistema.
– Associare a ogni utente un account (login) e una parola
d’ordine (password).
– All’interno del sistema operativo, in un apposito file, è
contenuta la lista di tutti gli account e delle relative
password: solo se viene specificato un account fra quelli
previsti (utente abilitato) e la password corrisponde a quella
memorizzata (certificazione di identità) viene consentito
l’accesso al sistema.
– Si possono creare gruppi di utenti con diritti di accesso
differenti, gli amministratori e gli utenti normali, gli ospiti,
etc..
– All’interno dei gruppi si creano I singoli utenti, esempio
mario.rossi, direttore, etc…
33
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Controllo degli accessi
• Identificazione degli accessi al sistema
Questo consente di personalizzare il sistema, per
esempio definendo:
– la distribuzione dei costi di gestione fra i vari utenti
(spazio su disco);
– la visibilità del sistema in termini di porzione del
file system complessivo, periferiche e programmi
applicativi disponibili;
– la personalizzazione dell’ambiente operativo.
34
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
Controllo degli accessi
• Identificazione degli accessi al sistema.
Consente di controllare gli accessi ai file:
– livello di protezione a livello di file o di directory; es. UNIX:
• tre tipi di utenti: il proprietario, il gruppo e il “resto del
mondo”.
• tre abilitazioni: lettura (R), scrittura (W) ed esecuzione (X).
– altro metodo: Access Control List
• nel SO esiste una tabella in cui ogni riga corrisponde a una
diversa risorsa del sistema (programmi, stampanti, directory...),
• la riga contiene una lista che specifica tutti gli utenti abilitati
all’uso della corrispondente risorsa e le modalità per la sua
fruizione (per esempio a un utente potrebbe essere consentito
solo leggere ma non scrivere in una directory, oppure proibito
l’uso di alcune stampanti collegate in rete).
35
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci