Corso di Laurea in Medicina e chirurgia - elpmed.unife.it · Valentina Rolando A.A. 2015/2016...

68
A.A. 2015/2016 sistema operativo e software Valentina Rolando 1 CORSO DI INFORMATICA DI BASE A.A. 2015/16 Corso di Laurea in Medicina e chirurgia

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

A.A. 2015/2016 sistema operativo e software 3Valentina Rolando

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

A.A. 2015/2016 sistema operativo e softwareValentina Rolando 25

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")

A.A. 2015/2016 sistema operativo e softwareValentina Rolando 46

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

A.A. 2015/2016 sistema operativo e softwareValentina Rolando 54

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

A.A. 2015/2016 sistema operativo e softwareValentina Rolando 58

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)

A.A. 2015/2016 sistema operativo e softwareValentina Rolando 64

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)

A.A. 2015/2016 sistema operativo e software 67Valentina Rolando

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