Corso di Laurea in Medicina e chirurgia - elpmed.unife.it · Valentina Rolando A.A. 2015/2016...
-
Upload
truongkhuong -
Category
Documents
-
view
215 -
download
0
Transcript of Corso di Laurea in Medicina e chirurgia - elpmed.unife.it · Valentina Rolando A.A. 2015/2016...
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 1
CORSO DI INFORMATICA DI BASE
A.A. 2015/16
Corso di Laurea in Medicina e chirurgia
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 2
CORSO DI INFORMATICA DI BASE
A.A. 2013/14
TESTO DI RIFERIMENTO
Informatica e cultura dell’informazioneLuca Mari, Giacomo Buonanno, Donatella Sciuto,
seconda edizione McGraw-Hill
Gestione delle Risorse e Strumenti specifici per l’elaborazione dei dati
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 4
Gestione delle Risorse e Strumenti specifici per l’elaborazione dei dati
1. Struttura del Sistema Operativo
2. Gestione ed esecuzione dei Processi
3. Gestione della Memoria
4. Gestione delle periferiche
1. Concetto di Software applicativo
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 5
Struttura del software Software applicativo
GUI
Sistema Operativo
Hardware
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 6
Un sistema operativo è un insieme diprogrammi che agiscono da intermediariofra utente e macchina hardware.
Il sistema operativo fornisce all'utente varistrumenti, quale un ambiente perl'esecuzione di altri programmi e unavisione astratta dell’ hardware.
Il Sistema Operativo
Un sistema operativo (abbreviato in SO, inlingua inglese OS, "operating system"), ininformatica, è un insieme di componentisoftware, che rende operativi (da cui il nome)computer, apparati e dispositivi informatici.
Esempi di sistemi operativi sono il MS DOS(ormai obsoleto), Windows, Mac OS, Unix, ledistribuzioni GNU/Linux, BSD, e poi Android,iOS e Windows Phone per smartphone.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 7
Un sistema operativo è un software che fornisce all'utente unaserie di comandi e servizi per fruire al meglio della potenza dicalcolo di un qualsivoglia elaboratore elettronico.Il sistema operativio nasconde tutti i dettagli tecnici legati allospecifico hardware e architettura rappresentando leinformazioni ad un alto livello, meglio comprensibile dall'uomo.
Esso garantisce l'operatività di base di un calcolatore,coordinando e gestendo le risorse hardware e facendo dainterfaccia con l'utente.
È dunque un componente essenziale del sistema dielaborazione.
Funge inoltre da base sulla quale si appoggiano gli altri software,che sono dunque realizzati in modo da essere compatibili conquel particolare sistema operativo.
Il software applicativo
Nasce specificamente per svolgere un determinato compito e NON si occupa della gestione del computer edelle periferiche, ma inoltra ogni sua richiesta al Sistema operativo che la accoglie e la gestisce. (es. stampadi una pagina). Di fatto, se su un computer ci fosse installato solo il sistema operativo, questofunzionerebbe perfettamente ma l'utente non sarebbe in grado di farci nulla.
Utilità di Sistema: programmi che servono per migliorare la gestione e la sicurezza della macchina,come ad esempio gli stessi antivirus…
Office Automation: programmi di ausilio nei normali lavori d'ufficio, quindi creazione e elaborazione ditesti es. word processor…
Applicazioni aziendali: programmi creati per le necessità specifiche delle aziende, come ad esempio iprogrammi per la fatturazione o per la gestione del personale ecc…
Strumenti di sviluppo: programmi per la creazione di oggetti multimediali (pagine Web, animazioni e CDinterattivi), elaborazione audio/video/immagini, programmi che servono per la creazione di nuoviapplicativi
Giochi e svago: giochi, emulatori, lettori audio e video.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 8
Funzione del sistema operativo
Rendere utilizzabili le risorse fisiche presenti nel sistemainformatico
infrastruttura software, che si pone come interfaccia perl’infrastruttura hardware e serve a facilitarne l’utilizzo e la gestione
Il sistema operativo è un insieme di moduli software chevirtualizzano le caratteristiche dell’hardware sottostante,rendendolo accessibile come una macchina astratta, piùsemplice da utilizzare di quella fisicamente disponibile.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 9
SO: funzionalità
GESTORE DELLE RISORSE,controlla tutte le risorse del calcolatore e le gestisce in modo efficiente: tiene traccia di chi utilizza la risorse
accetta e soddisfa le richieste di utilizzo di una risorsa
fa da mediatore fra le risorse che risultano in conflitto.
MACCHINA ESTESA: costituisce la base su cui è possibile scrivere i programmi applicativi.
presenta all’utente una macchina estesa più facile da programmare dell’HW sottostante.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 10
Funzioni di servizio del SO
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 11
Esecuzione di applicazioni
•Carica il programma (istruzioni e dati) nella memoria centrale
•Mette in relazione gli applicativi con le risorse di sistema
• inizializzazione dei dispositivi di ingresso/uscita,
• preparazione e gestione di altre risorse come la rete di comunicazione,
Accesso ai dispositivi di ingresso/uscita
• Gestisce i segnali necessari per il trasferimento dei dati
• Consente all’utente di ragionare in termini di operazioni astratte di lettura e scrittura
Archiviazione di dati e programmi
• Fornisce un’organizzazione logica dei dati sotto forma di cartelle (directory) e file
• Gestisce le operazioni di basso livello per il relativo ingresso/uscita
Controllo di accesso
• Controlla la condivisione di risorse da parte di più utenti o applicazioni
• Gestisce i meccanismi di protezione e politiche di risoluzione degli eventuali conflitti d’uso
Contabilizzazione
• Ottimizza il tempo di risposta dei programmi interattivi
• Fattura agli utenti i costi dell’impiego del sistema
Gestione dei malfunzionamenti
• Rileva e, se possibile, risolve eventuali malfunzionamenti provocati da guasti hardware, o da operazioni scorrette compiute dal software applicativo.
Elementi di un SO
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 12
Sistema di gestione del processore
• controlla l’unità centrale di elaborazione (CPU)
• definisce quali programmi sono da eseguire e quali compiti sono da assegnare alla CPU
Sistema di gestione della memoria
• controlla l’allocazione della memoria di lavoro ai diversi programmi che possono essere contemporaneamente in esecuzione
Sistema di gestione delle periferiche
• garantisce l’accesso ai dispositivi di ingresso/uscita
• maschera i dettagli di basso livello e gli eventuali conflitti che possono insorgere nel caso che diverse richieste arrivino contemporaneamente a uno stesso dispositivo
Sistema di gestione dei file (file system)
• consente l’archiviazione e il reperimento dei dati sfruttando le periferiche che costituiscono la memoria di massa
Sistema di gestione degli utenti e dei relativi comandi
(interprete comandi)
• interfaccia diretta con gli utenti
• permette agli utenti di accedere in maniera semplice e intuitiva alle funzionalità disponibili
Sistema di gestione della rete
• interfaccia con risorse collegate via rete
• comunicazione con processi in esecuzione su altri calcolatori
SO vs applicazioni: i privilegi
Programmi applicativi hanno accesso a un insieme ridotto di
risorse
possono utilizzare solo un sottoinsieme delle istruzioni del processore (esecuzione in modalità utente)
non possono decidere autonomamente quando e come avere accesso alle risorse del sistema (richiedono al sistema operativo l’esecuzione di alcuni servizi)
Sistema operativo ha accesso a tutte le risorse
può utilizzare tutte le istruzioni del processore (esecuzione in modalità supervisore)
stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 13
Tassonomia degli utenti
Programmatori
Amministratori di sistema
Utenti applicativi
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 14
Caratteristiche desiderabili in un SO
Definizioni:
SO uniprogrammato (es. MS DOS) consente di tenere in memoria ed eseguire un solo programma per volta
SO multiprogrammato consente di tenere in memoria ed eseguire molti programmi applicativi per volta
Interattività (con tempi ragionevoli)
Protezione accurata della memoria (specialmente per multiprogrammati)
Temporizzazione dell’esecuzione
Gestione delle attività I/O
Possibilità di appropriato sfruttamento
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 15
Multiprogrammazione
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 16
TempoProgr. 3
Progr. 2
Progr. 1
attesa per operazioni di I/Oelaborazione
Sistema
uniprogrammato
Sistema
multiprogrammato
con time sharing
Tempo
attesa per operazioni di I/Oelaborazione
Partizione di tempo (time sharing)
Per evitare l’utilizzo esclusivo della CPU da parte di un solo programma Tempo suddiviso in unità di tempo: quanti
Ogni programma ha assegnato un quanto di tempo per l’esecuzione sullaCPU che gli viene tolta allo scadere per assegnarla a un altro programma
Un programma rinuncia alla CPU spontaneamente quando è in attesa di operazioni di ingresso/uscita
La scelta dei turni di assegnazione della CPU ai programmi dipende dallepolitiche decise dal sistema operativo: Metodo più semplice: a rotazione tra tutti i programmi in memoria centrale
(round robin)
La durata del quanto di tempo incide sulle prestazioni del sistema
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 17
Processo vs programma
Programma:entità statica composta dal codice eseguibile dal processore.
Processo:entità dinamica che corrisponde al programma in esecuzione, composto da:
codice (il programma);
dati (quelli che servono per l’esecuzione del programma);
stato (a che punto dell’esecuzione ci si trova, cosa c’è nei registri, …).
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 18
Organizzazione di un SO
Gerarchia di “macchine virtuali”
La visione della macchina virtuale a livello n è quellafornita dall’HW e dagli strati del SO fino all’ennesimo(incluso)
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 19
Ogni livello corrisponde a un insieme di programmi cherealizza delle funzionalità che utilizzano i servizi forniti a livelloinferiore.
Obiettivo: creare un insieme di ambienti protetti in cui iprocessi possono evolvere, ognuno dei quali disponeapparentemente di una macchina dotata di tutte le risorse diquella reale e a esso completamente dedicata: macchinavirtualeOgni macchina virtuale ha il compito di gestire risorsespecifiche di sistema regolandone l’uso e mascherandone ilimiti.I meccanismi che garantiscono la correttezza logica sonoseparati dalle politiche di gestione (maggiore flessibilità).
Ogni livello risolve un problema specifico
Nucleo – kernel – gestore dei processi
Interagisce direttamente con l’hardware
Si occupa dell’esecuzione dei programmi e della risposta agli eventi esterni generati dalle unità periferiche.
Scopo principale: gestire i processi corrispondenti ai programmi che sono contemporaneamente attivi applicazioni utente; processi di servizio.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 20
Fornisce alle macchine virtuali di livello superiore la visione di un insieme di unità di elaborazione virtuali ciascuna dedicata a un processo presente in memoriaGestisce il contesto di esecuzione dei vari processiAttua una politica di alternanza (scheduling) nell’accesso alla CPU da parte dei processi in esecuzione.
Controlla la memoria centrale, al fine di risolvere le relative esigenze dei vari processi in modo trasparente ed efficiente.
Consente ai programmi di lavorare in un proprio spazio di indirizzamento virtuale e di ignorare quindi le effettive zone di memoria fisica occupata.
Si occupa di: proteggere programmi e relativi dati caricati nella memoria di lavoro
(nessun processo deve poter leggere o modificare quanto contenuto nello spazio di indirizzamento virtuale di un altro processo)
mascherare la collocazione fisica dei dati (un processo potrebbe agire su uno spazio di indirizzamento di dimensione maggiore di quello della memoria fisica)
permettere, in modo controllato, la parziale sovrapposizione degli spazi di memoria associati ai vari programmi (condivisione dati e/o scambio messaggi).
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 21
Gestore della memoria
Fornisce alle macchine di livello superiore la possibilità di lavorare come se esse avessero a disposizione una memoria dedicata, di capacità anche maggiore di quella fisicamente disponibile.
Fornisce una visione del sistema in cui i processi possono operare mediante periferiche astratte.
Maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscita
Ogni processo ha a disposizione delle periferiche virtuali sono completamente dedicate alle esigenze del processo in
questione il gestore si preoccupa della soluzione degli eventuali
conflitti di accesso utilizza un insieme di comandi di alto livello (forniti dai
driver delle periferiche) per leggere e scrivere dati, senza preoccuparsi dei problemi di indirizzamento e di sincronizzazione delle periferiche.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 22
Gestore delle periferiche
Gestisce la memoria di massa anche se è una delle unità periferiche, le sue
peculiarità richiedono la presenza di un apposito modulo del SO
Gestisce i file Un file è un contenitore logico per dati e
programmi Un file è l’unità di base per la memorizzazione
nella memoria di massa Ogni file è identificato da un nome e accessibile
tramite comandi ad alto livello che rendono trasparenti all’utente le operazioni per l’allocazione della memoria necessaria per i dati l’accesso alla memoria di massa
Di ogni file si possono definire diversi diritti di accesso ai relativi contenuti.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 23
Gestore dei file – file system
Modulo del SO direttamente accessibile dall’utente
Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o point&click) e di attivare i programmi corrispondenti.
Le operazioni che svolge sono: lettura dalla memoria di massa del programma da
eseguire (tramite il gestore dei file) allocazione della memoria centrale (tramite il gestore
della memoria) caricamento del programma e dei relativi dati nella
memoria allocata (tramite il gestore della memoria) creazione e attivazione del processo corrispondente
(tramite il nucleo)
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 24
Interprete dei comandi
Gestore dei processi
Il concetto di elaborazione parallela si riferisce specificamente: ai dati, che potrebbero essere trattati parallelamente alle istruzioni, che potrebbero essere eseguite contemporaneamente nel caso di
operazioni indipendenti che trattano dati distinti ai programmi, che potrebbero essere in esecuzione nello stesso tempo.
Il parallelismo a livello di dati e di istruzioni è possibile solo con l’impiego di architetture di elaborazione parallela, basate sulla presenza di più unità di elaborazione in grado di eseguire istruzioni in modo concorrente ma anche, per esempio, di adeguati linguaggi di programmazione.
Il parallelismo a livello di programma ricade nell’ambito dei sistemi operativi.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 26
Elaborazione parallelaCorso di informatica avanzata
Parallelismo a livello di programma
Sistema operativo deve gestire un insieme di risorse scarse,con l’obiettivo di ridurne i periodi di inutilizzo, aumentarel’utilizzo del sistema e ridurre i tempi di risposta
Le condizioni che un sistema operativo deve soddisfare sono: efficienza: occorre assicurare un impiego ottimale di tutte le risorse
interattività: il tempo di risposta è un fattore determinante per definire la qualità del sistema operativo
sincronizzazione/cooperazione: gestire la conseguente presenza di più agenti in grado di operare sul sistema in modo concorrente, al fine di evitare possibili malfunzionamenti (per esempio il blocco di un programma a causa di operazioni errate compiute da altri).
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 27
Esecuzione dei processi
Processo caratterizzato da:
Programma eseguibile
Contesto: informazioni ausiliarie necessarie alla sua esecuzione Es. file aperti, valori contenuti nei registri …
In un sistema con una sola CPU multiprogrammato in time sharing la CPU è condivisa tra più processi in memoria
Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CPU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione
Un processo in esecuzione si sospende quando è in attesa di una operazione di ingresso/uscita
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 28
Stato dei processi
I processi possono essere
in ESECUZIONE, se stanno occupando la CPU
in ATTESA di un evento esterno (ad esempio I/O)
PRONTI ad essere eseguiti, ma la CPU sta processando un secondo processo
PRONTO ed ATTESA sono due stati diversi, realizzati con due code diverse
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 29
Stati di un processo
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 30
Selezione primo processo
pronto e sua esecuzione
Processo in
esecuzioneProcessi
pronti
Inizio esecuzione
(accodamento ai
processi pronti)
Termine quanto di
tempo
Termine
elaborazione
Processi
in attesa
Richiesta
operazione di I/O
Completamento operazione di
I/O (evento esterno atteso)
Transizioni di stato
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 31
Pronto ⟶ Esecuzione Il SO stabilisce quale dei processi “pronti”
debba essere mandato in “esecuzione”
La scelta è fatta dall’algoritmo di scheduling che deve bilanciare efficienza e fairness.
Esecuzione ⟶Attesa il processo chiede delle risorse che non
sono disponibili o attende un evento
il SO salva tutte le informazioni necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso nella tabella dei processi
EP
A
EP
A
Transizioni di stato
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 32
Attesa ⟶ Pronto Si verifica l’evento atteso dal processo e il
SO sposta quel processo nella coda dei processi pronti.
Esecuzione ⟶ Pronto Termina il quanto di tempo e il processo in
“esecuzione” lascia spazio a un altro processo “pronto”.
Il SO salva (nella tabella dei processi) tutte le informazioni per riprendere l’esecuzione del processo dal punto in cui viene interrotta.
Contemporaneamente un altro processo passa da “pronto” a “esecuzione”.
EP
A
EP
A
Una possibile evoluzione
Il processo viene creato e viene posto nella coda dei processi pronti il primo processo tra i processi pronti viene posto in esecuzione il processo in esecuzione dispone delle risorse del sistema fino a
1. il termine del quanto di tempo il nucleo interrompe il processo e lo mette in coda ai processi pronti quando arriva in cima alla coda dei processi pronti, il processo torna in stato in esecuzione,
proseguendo con l’elaborazione dell’istruzione successiva a quella su cui era stato interrotto
2. la richiesta di un’operazione di ingresso/uscita il nucleo sposta il processo attivo nello stato di attesa quando l’operazione di ingresso/uscita si completa il processo può proseguire l’elaborazione e
viene messo in fondo alla coda dei processi in pronti e prosegue come nel punto precedente
3. il termine delle propria esecuzione (istruzione finale) il processo viene eliminato e rimosso dall’elenco dei processi esistenti;
in ogni caso il nucleo provvede a sostituirlo con il primo dei processi pronti.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 33
Context swapping
Il processo non si rende conto delle interruzioni: il nucleo maschera al processo come
effettivamente la sua elaborazione evolve nel tempo
il nucleo rende trasparente la presenza delle operazioni di interruzione e di riassegnamento del processore a un processo
Contesto di un processo insieme dei dati che rappresentano lo “stato”
del processo: situazione della memoria, contenuto dei registri, livello di priorità, …
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 34
quando un processo viene interrotto (esce dallo stato di esecuzione) il nucleo provvede a salvare del suo contesto (in una struttura dati chiamata descrittore del processo);
quando un processo torna nello stato di esecuzione il nucleo provvede a ripristinare il suo contesto (recuperando i dati precedentemente salvati nel descrittore).
Cambio di contesto (context swapping) si verifica quando un processo (e.g. P1) in
esecuzione viene sostituito da un altro processo P2 (il primo del processi pronti);
il nucleo provvede a
salvare il contesto di P1 e gestirne l’evoluzione (pronto vs attesa)
ripristinare il contesto di P2 per consentirgli una corretta evoluzione
Modalità user e modalità kernel
I processi possono essere eseguiti in modalità kernel (riservata ai servizi forniti dal sistema operativo) o user (programmi applicativi) non basta più un solo stato di esecuzione, è necessario distinguere le due
situazioni
due nuovi stati: esecuzione user ed esecuzione kernel.
Ci sono due nuove transizioni di stato: esecuzione user⟶ esecuzione kernel richiesta di servizi al sistema operativo da parte del processo utente, detta
chiamata di sistema (SuperVisor Call – SVC)
evento esterno segnalato da una periferica (Interrupt)
esecuzione kernel⟶ esecuzione user termine gestione interrupt (return from interrupt – RTI)
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 35
Transizioni di stato
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 36
Selezione primo processo
pronto e sua esecuzione
Processo in
esecuzione
(kernel)
Processi
pronti
Inizio esecuzione
(accodamento ai
processi pronti)
Termine quanto di
tempo
Termine
elaborazione
Processi
in attesa Richiesta
operazione di I/O
Completamento
operazione di I/O
(evento esterno atteso)
Processo in
esecuzione
(user)
Interrupt
o SVC
RTI
Esempio: esecuzione di P1 e P2 P1 in esecuzione (user):
esegue una serie di istruzioni; richiede un servizio di I/O, e.g. lettura di un
carattere da tastiera [SVC].
SO in esecuzione (kernel): decide di sospendere P1 finché non termina
l’operazione di I/O richiesta; salva il contesto di P1 nel descrittore di P1 e
sposta P1 in attesa di “carattere da tastiera”. sceglie P2 tra i processi pronti per mandarlo in
esecuzione; ripristina il contesto di P2 leggendo i dati dal
descrittore di P2; manda in esecuzione P2 restituendogli il controllo
[RTI].
P2 in esecuzione (user): esegue una serie di istruzioni; arriva un interrupt da tastiera (evento esterno) e il
controllo passa al SO [interrupt].
SO in esecuzione (kernel): legge il carattere in arrivo dalla tastiera e lo scrive in
un buffer di sistema; sposta P1 nella coda dei processi pronti; restituisce il controllo a P2 [RTI].
P2 in esecuzione (user): esegue una serie di istruzioni; arriva un interrupt da orologio (evento esterno) e il
controllo passa al SO [interrupt].
SO in esecuzione (kernel): decide di sospendere P2 perché è scaduto il suo
quanto; salva il contesto di P2 nel descrittore di P2 e sposta
P2 tra i processi pronti; sceglie P1 tra i processi pronti per mandarlo in
esecuzione (ipotesi: ci sono solo P1 e P2); ripristina il contesto di P1 leggendo i dati dal
descrittore di P1; manda in esecuzione P1 restituendogli il controllo
[RTI].
P1 in esecuzione (user) … … … …
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 37
Round Robin
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 38
I/O
Fin
e
I/O
E
P
P
E
P
P E
P
P E
A
P E
A
P
E
P
P
E
A
P
Cambio di contesto
EP
A
P1
E
P
P
E
P
P
P2P3
P
E
PProcesso 3
Processo 2
Processo 1
“concorrenza” fra processi
impiegare in maniera trasparente una o più CPU (sia inserite in un solo calcolatore che in più calcolatori, collegati in rete);
aumentare l’utilizzo della CPU nei sistemi a partizione di tempo, ove si eseguono più lavori in quasi parallelismo;
condividere la stessa risorsa fisica fra diversi utenti in modo del tutto trasparente ma controllato;
accedere contemporaneamente, da parte di diversi utenti, a una base di dati comune e centralizzata;
…
starvation: un processo non riesce ad accedere ad una risorsa perché la trova sempre occupata da altri processi (che per esempio possono avere un livello di priorità maggiore);
blocco critico: un insieme di processi rimane bloccato perché ciascuno di essi aspetta delle risorse che sono occupate da un altro processo compreso in questo stesso insieme (vincolo circolare).
Evitare (prevenzione) o risolvere (eliminazione) situazioni di blocco critico o di starvation riduce le prestazioni complessive del sistema.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 39
Approfondimento: Due tipi di traduttori
Compilatori
Accettano in ingresso l’interoprogramma e producono inuscita la rappresentazionedell'intero programma inlinguaggio macchina
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 41
Interpreti Traducono ed eseguono direttamente
ciascuna istruzione del programmasorgente, istruzione per istruzione.
Compilatore
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 42
Unità Centrale di Elaborazione Memoria
Bus di sistema
Programma P in un linguaggio ad alto livello L
Programma P’ in linguaggiomacchina della CPU
Programmacompilatore del
linguaggio ad alto livello L
Dati del compilatore
Fase 1
Unità Centrale diElaborazione Memoria
Bus di sistema
Dati del programma P’
Programma P’ in linguaggio macchina della
CPUFase 2
Interprete
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 43
Unità Centrale di Elaborazione Memoria
Bus di sistema
Programma P in un linguaggio ad alto livello L
Dati del programma P
Programmainterprete del
linguaggio ad alto livello L
Dati dell’interprete
Due tipi di traduttori
Compilatori Per ogni programma da tradurre, lo schema
viene percorso una volta sola prima dell’esecuzione.
Interpreti Lo schema viene attraversato tante volte
quante sono le istruzioni che compongono ilprogramma; ad ogni attivazionedell'interprete su una particolare istruzione, segue l’esecuzione dell’istruzione stessa.
L’esecuzione di un programma compilatoè più veloce dell'esecuzione di un programma interpretato.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 44
WYSIWYG è l'acronimo che sta per l'inglese WhatYouSee Is WhatYou Get ("quello che vedi è quello che è" o "ottieni quanto vedi")
Il gestore della memoria
Applica tecniche per gestire il conflitto fra dimensione della memoria fisica e spaziocomplessivo richiesto dai programmi che devono essere eseguiti in modo concorrente edai relativi dati.
Combina le seguenti strategie: consentire il caricamento di un programma a partire da un indirizzo qualunque della memoria ridurre la necessità di spazio tenendo in memoria solo una porzione dei programmi e dei dati condividere parte delle istruzioni (codice eseguibile) fra diversi processi corrispondenti a uno stesso
programma
garantisce ai vari processi uno spazio di indirizzamento virtuale in cui lavorare, che puòessere superiore alla memoria fisica presente nel calcolatore
mette in atto dei meccanismi di protezione che tutelano la privatezza dello spazio dilavoro assegnato a ogni processo
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 47
Swapping
Spesso la memoria centrale non ha dimensioni tali da contenere tutti iprogrammi che occorre eseguire in modo concorrente:
manca spazio per attivare nuovi processi
manca spazio per consentire l’evoluzione di qualche processo già in esecuzione
Soluzione: trasferire il contenuto di un’area della memoria centrale (RAM)in un’area della memoria di massa (Hard drive). La porzione di memoriaMGL allocata a questa finalità di chiama area di swap
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 49
Paginazione (Paging)
È detto paginazione la frammentazione dellamemoria in blocchi di dimensioni prefissate: lepagine.
Lo spazio logico di indirizzamento del processoè suddiviso in sezioni, di dimensioni fisse euguali fra loro, dette pagine logiche
Lo spazio fisico di indirizzamento disponibile nelcalcolatore è anch’esso suddiviso in paginefisiche, della stessa dimensione delle paginelogiche.
La paginazione consente di: estendere la dimensione di un processo utilizzando
delle zone di memoria non necessariamente contigue tenere in memoria solo la porzione ridotta del
programma che si sta utilizzando.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 51
Si basa sul principio di località spazio-temporale
Non vale la pena di caricare in RAM tuttoil codice poiché l’esecuzione in un datoistante di tempo si limita ad una sezionelimitata del codice stesso che, spesso,viene rieseguita.
Meccanismo:• Solo alcune pagine logiche del codice in esecuzione
vengono caricate in alcune pagine fisiche (su RAM)• Le pagine logiche necessarie vengono caricate di volta in
volta, in base all’esigenza.• Quante pagine caricare e/o quante e quali pagine
sostituire dipende dalla politica adottata.• Ogni volta che si cerca di accedere all’indirizzo di una
pagina non in memoria (page fault) il SO provvede aliberare dello spazio in memoria per caricarla.
• L’opportuno dimensionamento del numero di paginelogiche da tenere in memoria è detta memoria virtuale
Paginazione
La paginazione risolve contemporaneamente tre problemi:
Dove mettere il processo in memoria
non ha importanza quale sia il posto dove è allocato il processo
Superare il numero di processi che posso gestire contemporaneamente
Se i processi fossero messi interamente in memoria lo spazio sarebbe sufficiente solo per pochi processi, non per tanti.
Superare la dimensione fisica della memoria di lavoro
Non c’è relazione tra le pagine logiche di un processo e le pagine fisiche che gli vengono messe a disposizione dal SO
Un processo può avere molte più pagine logiche di quante siano le pagine fisiche disponibili in RAM
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 52
Segmentazione
La struttura del programma non è monolitica ma suddivisa in segmenti per esempio:
Codice: istruzioni del programma
Dati: su cui operano le istruzioni
Il sistema operativo può consentire a più processi di condividere lo stesso segmento codice operando su datidiversi
I segmenti possono essere gestiti in modo paginato
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 53
Gestore delle periferiche
Compiti del gestore delle periferiche
Comunicazione tra l’ambiente CPU-RAM e i dispositivi esterni.
Mascherare ai processi l’esistenza di un numero limitato di risorse. Esempio: stampa da più processi su
di una unica stampante.
Mascherare ai processi la differenza tra risorse dello stesso tipo (o di tipo simile) Esempio: stampante laser da un
terminale video
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 55
• dipendono dalle caratteristiche fisiche delle periferiche che gestiscono
• l’interfaccia per la gestione di un mouse è sicuramente diversa da quella utilizzata per controllare il funzionamento di un lettore di CD-ROM
Controller:
dispositivi hardware utili ad effettuarea livello fisico le operazioni ditrasferimento dei dati con leperiferiche.
Vengono usualmente attivatimediante meccanismi di interruzione
• mascherano le caratteristiche specifiche dei controller
• forniscono un insieme di primitive ad alto livello per la gestione delle operazioni di ingresso/uscita utilizzabili dai programmi applicativi e dagli utenti.
Driver:
programmi software finalizzati allagestione delle periferiche.
Vengono considerati parte integrantedel sistema operativo, anche se spessosono sviluppati e forniti dal produttoredella periferica
I driver nel SO ed il Plug & Play
I sistemi operativi comprendono i driver per la gestione delle periferiche più comuni:tastiera, video, mouse, …stampanti, scanner, …
Ogni aggiunta o modifica alla configurazione standard comporta l’installazione di software addizionale (driver aggiuntivi).
I sistemi operativi più recenti sono dotati di funzioni di Plug&Play che permettono la configurazione automatica dei driver:
all’attivazione il SO cerca ed esamina tutte le periferiche collegate al sistema, le periferiche si fanno riconoscere specificando quali driver servono, il SO installa gli opportuni driver per la loro gestione.
Un sistema Plug and Play consente di aggiungere nuove periferiche al sistema che possonoessere utilizzate, senza necessità di intervento da parte dell’utente per la selezione el’installazione dei driver, che sono spesso memorizzati nella periferica stessa.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 56
Spooling
I driver servono anche a virtualizzare la presenza di più periferiche intrinsecamente noncondivisibili, tramite la tecnica di spooling, che consiste nella creazione di una coda diprocessi, grazie al file nella directory di spooling.
Esempio: gestione di una stampante quando un processo desidera stampare un file, lo invia al driver il driver lo accoda in un’opportuna directory di spooling i file contenuti nella directory di spooling vengono stampati in ordine di arrivo (a meno che siano
stabilite delle politiche di gestione delle priorità) quando la directory di spooling si svuota il driver rimane in memoria in attesa che un processo cerchi
di stampare.
Questa soluzione: consente di disaccoppiare il programma che deve stampare e la periferica rende possibile l’utilizzo sincrono della stampante da parte di molti processi senza attese inutili.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 57
File system – gestore dei file
Il file system deve gestire in modo efficiente la memoria di massa, presentandoall’utente l’organizzazione logica dei dati e le operazioni che è possibile compiere sudi essi.
Esempi delle operazioni di base di un file-system: recupero di dati precedentemente memorizzati;
eliminazione (cancellazione) di dati obsoleti;
modifica/aggiornamento di dati preesistenti;
copia di dati per backup o per il trasferimento;
I servizi vengono forniti sia a programmi applicativi che direttamente agli utenti.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 59
File Cosa è
contenitore logico di informazioni (dati o istruzioni)
Unità logica di memorizzazione
oggetto a “lunga vita”, per conservare le informazioni anche dopo la terminazione del processo che lo ha generato
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 60
Ogni file è caratterizzato da:• Identificatore [nome.estensione]• Periferica e percorso sulla periferica• Data di creazione• Dimensione• Posizione effettiva dei dati nella memoria di
massa• Altre informazioni, ad esempio:
o applicazione che consente all’utente di “usare” il fileo data di ultima modificao diritti di accesso al contenuto del file
Nome estensione
Periferica Percorso sulla periferica
identificatore
La localizzazione dei dati
I nomi dei file sono in genere composti da due parti: nome (vero e proprio), che viene assegnato dall’utente estensione, associata al programma che ha generato il file e consente quindi di identificare
la tipologia dei dati contenuti nel file i file eseguibili hanno estensioni exe, i file generati da Wordprocessors (come MS Word) hanno estensione doc, docx, odt i file generati da Spreadsheets (come MS Excel) hanno estensione xls, xlsx, ods i file di testo generici (come il blocco note) hanno estensione txt
Ogni sistema operativo pone dei vincoli sulla lunghezza dei filename e sui caratteri di cui possono essere costituiti MS-DOS imponeva una lunghezza massima di 8+3 caratteri per nomi ed estensioni Windows ha un limite di 254 caratteri (compreso il path)
I file sono generalmente organizzati in cartelle (directory) e sottocartelle in una gerarchia ad albero.
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 61
Un esempio di struttura
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 62
iscrgen.dociscrfeb.doc
iscrmar.doc
intro.txt
filea.txt
fileb.wav
filec.jpg filea.txtedit.com
xcopy.com
command.com
DOS
ESAMI
ROSSI
DIDATT
LEZIONI
UTENTI
BIANCHI
NERI
. (radice)
Il controllo degli accessi per gli utenti
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 gliaccount e delle relative password: solo seviene specificato un account fra quelli previsti(utente abilitato) e la password corrisponde aquella memorizzata (certificazione di identità)viene consentito l’accesso al sistema.
Questo consente di personalizzare ilsistema, per esempio definendo:
la distribuzione dei costi di gestione fra i variutenti
la visibilità del sistema in termini di porzionedel file system complessivo, periferiche eprogrammi applicativi disponibili
la personalizzazione dell’ambiente operativo.
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 gliutenti abilitati all’uso della corrispondenterisorsa e le modalità per la sua fruizione (peresempio a un utente potrebbe essereconsentito solo leggere ma non scrivere inuna directory, oppure proibito l’uso di alcunestampanti collegate in rete).
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 65
Il gestore delle interfacce
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 66
Interfaccia a caratteri (terminale, prompt, shell)
Interfaccia graficaGUI Graphical User Interface
(point & click)
Il software applicativo
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 68
Nasce specificamente per svolgere un determinato compito e NON si occupa della gestione del computere delle periferiche, ma inoltra ogni sua richiesta al Sistema operativo che la accoglie e la gestisce. (es.stampa di una pagina).
Di fatto, se su un computer ci fosse installato solo il sistema operativo, questo funzionerebbe perfettamentema l'utente non sarebbe in grado di farci nulla.
• Utilità di Sistema: programmi che servono per migliorare la gestione e la sicurezza della macchina, comead esempio gli stessi antivirus…
• Office Automation: programmi di ausilio nei normali lavori d'ufficio, quindi creazione e elaborazione ditesti es. word processor…
• Applicazioni aziendali: programmi creati per le necessità specifiche delle aziende, come ad esempio iprogrammi per la fatturazione o per la gestione del personale ecc…
• Strumenti di sviluppo: programmi per la creazione di oggetti multimediali (pagine Web, animazioni e CDinterattivi), elaborazione audio/video/immagini, programmi che servono per la creazione di nuoviapplicativi (authoring tools).
• Giochi e svago: giochi, emulatori, lettori audio e video.
Tipi di distribuzione dei programmi applicativi
Shareware Software distribuiti gratuitamente per un periodo di prova per poi bloccarsi
se non si perfeziona l'acquisto
Freeware Software distribuiti gratuitamente per sempre gratuiti ma col solo obbligo
di registrarsi come utenti
Open Source Gli autori del software distribuiscono anche i “sorgenti” del programma,
rinunciando a qualsiasi diritto
GPL - GNU General Public License Chi voglia manipolare, migliorare o adattare il software deve poi mettere a
disposizione di tutti il software secondo lo stesso principio
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 69
Spreadsheet – il foglio elettronico
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 70
È un programma che permette di effettuare calcoli, elaborare dati e tracciare efficaci rappresentazioni grafiche.Il principio su cui si basa il foglio di calcolo è semplice: fornire una tabella, detta anche foglio di lavoro, formatada celle in cui si possono inserire dati, numeri o formule. Le celle, come detto in precedenza, sono la basefondamentale del foglio di calcolo. Esse, per essere riconoscibili, sono costituite da una lettera e un numero. Lecolonne sono indicate dalle lettere, le righe dai numeri. Es: la prima cella in alto a sinistra sarà A1, quella accantoa destra B1, e così via. Quelle invece sotto alla cella A1 saranno A2, A3, A4, ecc ecc.
Ogni cella è identificata da un numero cheindica le righe e da una lettera che indica lecolonne.
È possibile effettuare operazioni o applicarefunzioni ai contenuti delle celle,specificandone l’indirizzo tramite la letteraidentificativa della casella ed il numeroidentificativo della riga,
Spreadsheet – il foglio elettronico
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 71
È possibile effettuare operazioni o applicare funzioni aicontenuti delle celle, specificandone l’indirizzo tramite lalettera identificativa della casella ed il numeroidentificativo della riga.
Le funzioni seguono la sintassi=NOMEFUNZIONE(argomento1,…,argomentoN)
Per identificare un blocco di celle adiacenti, se A1 è laprima cella in alto a sinistra e C3 è l’ultima cella in basso adestra, la sintassi è (A1:C3)
Se al contrario si vuole identificare una sequenza di cellenon adiacenti, è necessario separarle con il simbolo ;
Spreadsheet – il foglio elettronico
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 72
È possibile copiare il contenuto di celle semplicemente trascinando nella direzione desiderata la selezione.
Dato che tale procedura è valida sia per dati che per operazioni o formule su tali dati, è possibile specificaredue tipi di indirizzi di cella:
• Riferimenti relativi (esempio A2)• Riferimenti assoluti (esempio $A$2)
Nei riferimenti relativi, durante la copia per trascinamento di una cella, vengono memorizzate e copiate ledistanze tra coordinate relative tra le celle.
Il simbolo $ specifica che tale colonna o riga non deve essere modificata durante la copia. Sono sintassiaccettate anche $A1 (nel quale la copia modifica il numero di riga, ma non la colonna) ed A$1 (nel quale la copiamodifica la lettera di colonna, ma non la riga).
Definizione di S.O. e software applicativo con esempi.
Funzioni di servizio del SO
Elementi di un SO (definizione e principali funzioni) Kernel
Gestore della memoria
Gestore delle periferiche
Gestore dei file
Interprete dei comandi
Gestore della rete
Programma, processo, contesto
Sistema multiprogrammato: Time sharing, quanto di tempo, contextswapping
Organizzazione a livelli del SO
Stati di un processo esecuzione/pronto/attesa (e quando avviene la transizione da uno all’altro)
Memoria: SWAP e Paginazione
File: definizione e caratteristiche
Differenza fra controller e driver
Definizione di plug&play
Utente e privilegi
Spreadsheet Struttura
Operazioni/funzioni
Sintassi
Riferimenti
A.A. 2015/2016 sistema operativo e softwareValentina Rolando 73