hardware 1
Software (sistema operativo) uomo
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
2
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.
3
Sistema operativo
•Un •Un sistemasistema operativooperativo èè un insiemeun insieme didi programmiprogrammi cheche agiscono
agiscono dada intermediariointermediario frafra utenteutente e macchinae macchina hardware. hardware.
•Il •Il sistemasistema operativooperativo forniscefornisceall'utenteall'utentevarivari strumenti, strumenti, qualequale un ambienteun ambiente per l'esecuzioneper l'esecuzione didi altrialtri programmiprogrammi e unae una
visione
visione astrattaastratta del hardware.del hardware.
vi sono diversi tipi di s.o.
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
4
Sistema operativo
Funzioni
Il s.o. fornisce all’utente una serie di
funzionalità
5
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,
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
6
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..)
7
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;
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
8
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;
9
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.
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
10
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
11
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.
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
12
Sistema operativo
C. si presenta all’esterno con
modularità, attraverso interfacce ben
definite le cui funzioni non dipendono
da come viene realizzato.
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
13
Sistema operativo
modello a buccia di cipolla “onion skin”
Macchina fisica nucleo
Memoria virtuale Periferiche virtuali Programmi di utilità
File system
Programmi utenti
hardware software uomo
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
14
Gli elementi del Sistema operativo
• Gestore dei processi
• Gestore della memoria
• Gestione delle periferiche
• Gestione dei file
• Gestione degli utenti
• Gestione della rete
15
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)
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
16
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
17
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
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
18
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
19
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”
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
20
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
correnti
21
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
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
22
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
23
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
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
24
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
25
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
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
26
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
27
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
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
28
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
29
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
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
30
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
31
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
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
32
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
33
Controllo degli accessi
•• Identificazione degli accessi al sistema.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…
Università del Salento Facoltà di Giurisprudenza Fondamenti di Informatica Ing. Angelo B. Capodieci
34
Controllo degli accessi
• • Identificazione degli accessi al sistema Identificazione degli accessi al sistema
Questo consente di personalizzare il sistema, per Questo consente di personalizzare il sistema, per
esempio definendo:
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.
35
Controllo degli accessi
•• Identificazione degli accessi al sistema.Identificazione degli accessi al sistema.
Consente di controllare gli accessi ai file:
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).