Cos è un sistema operativo 1

Documenti analoghi
Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Elementi di Informatica A. A. 2016/2017

Cos è un sistema operativo 1

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Introduzione ai Sistemi Operativi. A cura di Massimo Scolaro Mob :

Struttura del SO. hardware. Servizi richiesti dagli utenti al SO. Interfaccia nucleo verso l esterno. Gestore processori.

Fondamenti di Informatica 5. Il sistema operativo

un insieme di programmi

Cos è un sistema operativo 1

Sistema Operativo (Software di base)

Il Sistema Operativo Ripasso

Il sistema operativo

Il Sistema Operativo

Il Sistema Operativo

Informatica e Bioinformatica: Sistemi Operativi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

SOFTWARE. Programmi e dati che indicano al computer come svolgere un determinato compito

IL SISTEMA OPERATIVO

Sommario FONDAMENTI DI INFORMATICA. Schema dell'architettura a livelli del SO. Il Sistema Operativo (SO) SISTEMI OPERATIVI

2. Cenni di sistemi operativi

Lezione 5: Software. Firmware Sistema Operativo. Laboratorio di Informatica

Architettura dei Sistemi Informatici

correttezza e precisione; anywhere, anytime; affidabilità, disponibilità e sicurezza dei sistemi; riservatezza dei dati; interoperabilità fra

Struttura Logica del S.O:

Sistemi Operativi (prima parte) Appunti di TPI Elaborati dal prof. Ing. Mario Catalano Per la classe 3 Einf.

IL SOFTWARE DI SISTEMA

Introduzione all Informatica. Alfredo Cuzzocrea. Sistema Operativo

FONDAMENTI DI INFORMATICA

Modulo 3. Software. Corso di Sistemi di elaborazione delle informazioni -Autore: Ing. Maurizio Patanè

Il software: Istruzioni per il computer

I sistemi operativi. Prof. Daniele Contarino

Il sistema operativo

Il Sistema Operativo. Informatica Sistema Operativo 1

Informatica Sistemi operativi Sistemi Operativi 1

Struttura dei Sistemi Operativi

Corso di Informatica

Prof. G. Ascia. Sistema Operativo

Sistema operativo. Utente. Il S.O. mostra offre all utente un ambiente di lavoro che nascondendo la complessità della macchina fisica (hardware). S.O.

Capitolo 6 Le infrastrutture SoftWare

Sistemi Operativi ed interazione con HW e CAD

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Il software. Il solo hardware non è sufficiente per usare un calcolatore

Laboratorio di Informatica. Il Sistema Operativo. Il Sistema Operativo 1

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Parte II. Introduzione ai sistemi operativi e WindowsX. Parte II 1

Il software: Istruzioni per il computer

Definizioni iniziali. Sistemi Operativi. Tipi di software. Sistema Operativo. Programma: una sequenza di istruzioni elementari

Sistemi Operativi. Definizioni iniziali

Sistema operativo. Interazione con il SO

Sistema operativo & file system 1

Informatica di Base

Il software. la parte contro cui si può solo imprecare

Il software. la parte contro cui si può solo imprecare. Il software

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO

Sistema operativo: Introduzione

Il software: cenni sul sistema operativo

Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi

Sistemi Operativi: Concetti Introduttivi

Il sistema operativo

Linux. Dott.ssa Maria Silvia Pini Anno accademico 2009/2010

Componenti di un sistema operativo

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO

Prestazioni e affidabilità dei dischi

Lezione 15: Il Sistema Operativo : Principi Generali (3P) Lunedì 22 Novembre 2010

Sistema operativo (SO)

Il software: Istruzioni per il computer

Il software di sistema

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

IL SISTEMA OPERATIVO

Tecnologie Informatiche. Il software: I Sistemi Operativi

Sistema Operativo. 06 novembre Sistema Operativo (SO): punto di vista funzionale

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE

Prof. Rossella Cancelliere

Il supporto al sistema operativo

Principi operativi dei computer. Capitolo 7 Fluency Conoscere e usare l informatica

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

INFORMATICA DI BASE IL SISTEMA OPERATIVO

Come funzionano i computer

Cenni di sistemi operativi

Dipartimento di Giurisprudenza Prof. Michele Perilli Conoscenze Informatiche

Il Sistema Operativo Gestione del File System

Tecnologie dell Informazione e della Comunicazione

Il linguaggi di programmazione sono lo strumento per tradurre algoritmi in programmi. Ma come viene gestita l esecuzione di un programma?

La memoria cache. Informatica generale

Sistemi Operativi. La gestione delle risorse

Il software: cenni sul sistema operativo. Il software. IL sistema operativo (I) IL sistema operativo (II)

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Laboratorio di Informatica (Chimica)

Tecnologie dell Informazione e della Comunicazione

Sistemi Di Elaborazione Dell informazione

Il Sistema Operativo

Transcript:

Il software può essere diviso in due grandi classi: Cos è un sistema operativo 1 i programmi di sistema, che gestiscono le funzionalità del sistema di calcolo i programmi applicativi, che risolvono i problemi degli utenti L insieme dei programmi di sistema viene comunemente identificato con il nome di Sistema Operativo (SO) Definizione: Un sistema operativo è un programma che controlla l esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l hardware del calcolatore 1

Cos è un sistema operativo 2 Tutte le piattaforme hardware/software richiedono un sistema operativo Quando si accende un elaboratore, occorre attendere alcuni istanti per poter iniziare a lavorare: durante questa pausa il computer carica il SO 2

Scopo del sistema operativo Gestione EFFICIENTE delle risorse del sistema di elaborazione Rendere AGEVOLE l interfaccia tra l uomo e la macchina 3

Percezione del sistema operativo Per l utente, la percezione del calcolatore dipende dall interfaccia del SO SO progettato pensando alla facilità d uso Qualche attenzione alle prestazioni Scarsa attenzione all utilizzo delle risorse Dal punto di vista del sistema di calcolo Il SO viene percepito come un gestore di risorse (CPU, RAM, I/O) e come un programma di controllo Arbitra l esecuzione dei programmi utente Non c è uniformità nel definire cosa fa parte/non compete del/al SO 4

Esempio: il SO come gestore di risorse 1 Si consideri un ristorante con un capo cuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti: I clienti scelgono un piatto dal menù Un cameriere prende l ordine e lo consegna al capo cuoco Il capo cuoco riceve l ordine e assegna uno o più aiutanti alla preparazione del piatto Ogni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverse Il capo cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili 5

Esempio: il SO come gestore di risorse 2 Il capo cuoco cuoco è il sistema operativo! I clienti sono gli utenti Le ricette associate ai piatti sono i programmi Il menù ed il cameriere costituiscono l interfaccia verso il sistema operativo (grafica e non) Gli aiutanti sono i processi La cucina è il computer; pentole, fornelli, etc. sono le componenti hardware 6

Esempio: il SO come gestore di risorse 3 Problemi del capo cuoco: Esecuzione fedele delle ricette Allocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.) Coordinamento efficiente degli aiutanti Licenziamento degli aiutanti che non si comportano secondo le regole Problemi del sistema operativo: Esecuzione dei programmi utente Efficienza nell uso delle risorse (processori, memoria, dischi, etc.) Coordinamento dei processi Protezione nell uso delle risorse e abort dei processi che se appropriano indebitamente 7

Il SO come macchina estesa 1 Visione a strati delle componenti hardware/software che compongo un sistema di elaborazione 8

Il SO come macchina estesa 2 Il SO può essere inteso come uno strumento che virtualizza le caratteristiche dell hardware sottostante, offrendo all utente la visione di una macchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile In questa visione, un SO nasconde a programmatori/utenti i dettagli dell hardware e fornisce un interfaccia conveniente e facile da usare agisce come intermediario tra programmatore/utente e hardware Parole chiave Indipendenza dall hardware Comodità d uso Programmabilità 9

Il SO come macchina estesa 3 L utente è in grado di utilizzare la macchina fisica senza conoscere i dettagli della sua struttura interna e del suo funzionamento 1. Hardware fornisce le risorse fondamentali di calcolo (CPU, memoria, device di I/O) 2. Sistema Operativo controlla e coordina l utilizzo delle risorse hardware da parte dei programmi applicativi dell utente 3. Programmi Applicativi definiscono le modalità di utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti (compilatori, database, video game, programmi gestionali) 4. Utenti persone, altri macchinari, altri elaboratori Applications Systems software Hardware software Visione a cipolla del sistema di calcolo 10

Architettura del sistema operativo I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione I vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalità di base della macchina Gestore dell I/O Interfaccia utente Gestore del File System L insieme dei moduli per la gestione della CPU e della memoria centrale è il kernel Gestore dei Processi Gestore della Memoria Centrale KERNEL 11

Ancora sul sistema operativo Riassumendo: Il sistema operativo fornisce un ambiente per eseguire programmi in modo conveniente ed efficiente; funge infatti da Allocatore di risorse controlla, distribuisce ed alloca le risorse (in modo equo ed efficiente) Programma di controllo controlla l esecuzione dei programmi utente e le operazioni sui dispositivi di I/O Esempio: il filesystem Si ha a che fare con file, directory, etc., e non ci si deve preoccupare di come i dati sono memorizzati sul disco 12

Bootstrap -1 All accensione di un calcolatore vengono attivati programmi di diagnostica scritti nella ROM (Read Only Memory) che verificano l assenza di guasti Poi viene attivato il programma di bootstrap che è sempre memorizzato nella ROM Il bootstrap trasferisce una parte prestabilita della M di massa (disco rigido, CD o floppy) in M principale (kernel del SO) Poi l utente puo impartire comandi al SO attraverso l interfaccia utente (tastiera, mouse )

Bootstrap -2

Bootstrap -3 Dopo il bootstrap l'utente può iniziare a impartire comandi al sistema operativo utilizzando l'interfaccia utente Il codice del comando deve essere in memoria principale (o caricato dalla m.s.) La sua esecuzione è attivata dalla CPU modificando il registro P della CPU (program counter)

Shutdown Quando il calcolatore viene spento una fase di shutdown si assicura che tutte le informazioni che temporaneamente il SO ha caricato su memoria volatile vengano memorizzate su memoria di massa prima che l energia venga tolta dalla macchina

Struttura del SO Servizi richiesti dagli utenti al SO Interfaccia nucleo verso l esterno nucleo File system Gestore I/O Gestore processi Gestore memoria Gestore processori hardware

Struttura di un SO Elementi principali di un SO: Shell (interfaccia SO e utente) Kernel (insieme di programmi che realizzano le funzioni di base di un calcolatore)

Sistema operativo: shell Shell (guscio): interfaccia tra SO e utenti E il programma che permette agli utenti di comunicare con il sistema e di avviare I programmi Di solito grafica (GUI Graphical User Interface), ma anche testuale

Sistema operativo: kernel (1) Kernel (nucleo): programmi per le funzioni base del calcolatore da 100 Kilobyte a 100 Megabyte Kernel suddiviso in moduli Ogni modulo ha una funzione diversa Funzioni piu importanti: gestione processi gestione processori gestione memoria (principale e secondaria) gestione dispositivi di I/O

Sistema operativo: kernel (2) Funzioni piu importanti: gestione processi: controlla la sincronizzazione, l interruzione e la riattivazione dei programmi in esecuzione gestione processori: assegna il processore ai programmi che devono essere eseguiti (e gestisce la cooperazione tra varie CPU nel caso di piu calcolatori) gestione memoria (principale e secondaria): gestisce la collocazione dei dati e dei programmi nella RAM, la memorizzazione e il reperimento delle informazioni sulla memoria secondaria gestione dispositivi di I/O (gestisce l accesso e il controllo dei dispositivi periferici)

Gestione dei processi Un SO consente il caricamento in memoria e l'esecuzione di più programmi che si alternano nell'uso della CPU. Per far ciò un programma può essere eseguito, sospeso e fatto ripartire più volte.

Programmi e processi Programma: insieme statico di istruzioni Processo: entita che tiene traccia dello stato dell esecuzione di un programma Posizione nel programma Valori dei registri della CPU Valori delle celle di M assegnate al programma Anche piu processi per lo stesso programma Es.: due utenti che usano Word per scrivere due documenti diversi

Esempio Fare un dolce con una certa ricetta Ricetta = programma Noi = processore Ingredienti = dati in input Attivita di leggere la ricetta, usare gli ingredienti, mescolare, cuocere = processo Telefonata durante l esecuzione della ricetta = interrupt Il processo interrompe l esecuzione, prende nota del punto (riga della ricetta,...) e gestisce l evento (va al telefono e risponde) Alla fine della telefonata, l esecuzione riprende e viene conclusa Dolce = output

Processi e SO SO puo gestire simultaneamente piu programmi Ogni programma puo essere fermato e fatto ripartire piu volte Quindi ogni SO deve avere una struttura (detta processo) in grado di mostrare, istante per istante, lo stato di avanzamento di ciascun programma (PCB)

La gestione dei processi 1 Un processo è un programma in esecuzione Un processo utilizza le risorse fornite dal sistema di elaborazione per assolvere ai propri compiti La terminazione di un processo prevede il recupero di tutte le risorse riutilizzabili ad esso precedentemente allocate Normalmente, in un sistema vi sono molti processi, di alcuni utenti, e alcuni sistemi operativi, che vengono eseguiti in concorrenza su una o più CPU La concorrenza è ottenuta effettuando il multiplexing (multiplazione) delle CPU fra i vari processi 26

La gestione dei processi 2 Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione dei processi: creazione e terminazione dei processi sospensione e riattivazione dei processi gestione dei deadlock comunicazione tra processi sincronizzazione tra processi Il gestore dei processi realizza una macchina virtuale in cui ciascun programma opera come se avesse a disposizione un unità di elaborazione dedicata 27

La gestione dei processi 3 Il gestore dei processi è il modulo che si occupa del controllo, della sincronizzazione, dell interruzione e della riattivazione dei programmi in esecuzione cui viene assegnato un processore La gestione dei processi viene compiuta secondo modalità diverse, in funzione del tipo di utilizzo cui il sistema è rivolto Il programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l avvicendamento, è chiamato scheduler Nel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema (bilanciandone il carico) 28

Sistemi mono tasking I SO che gestiscono l esecuzione di un solo programma per volta (un solo processo) sono detti mono tasking Non è possibile sospendere un processo per assegnare la CPU ad un altro Sono storicamente i primi SO (es. MS DOS) C B Tempo di utilizzo della CPU Tempo di attesa di eventi esterni A T t 29

Sistemi multi tasking tasking I SO che permettono l esecuzione contemporanea di più programmi sono detti multi tasking tasking o multi programmati Un programma può essere interrotto e la CPU passata a un altro programma C B Tempo di utilizzo della CPU Tempo di attesa di eventi esterni A t Tmulti-tasking Tmono-tasking 30

Un evoluzione dei sistemi multi tasking sono i sistemi time sharing Ogni processo viene eseguito ciclicamente per piccoli quanti di tempo (TIME SLICE) Se la velocità del processore è sufficientemente elevata si ha l impressione di un evoluzione parallela dei processi Esempio Sistemi time sharing Ipotesi: 1 MIPS, 4 processi, 0.25 s/utente Conseguenze: 0.25 MIPS/utente, 0.75 T ELA = 4 T CPU C B D 0.00 A 0.25 0.50 31

Time sharing: diagramma temporale D Processo CPU burst A 3 B 2 C 4 D 3 C B A t 32

Time-sharing (condivisione di tempo)

Gestione della coda Un processo in esecuzione puo essere interrotto per vari motivi: Quanto esaurito Esecuzione completata Subentra un processo con maggiore priorita Ha fatto una richiesta di un operazione di I/O ->entra nella lista dei processi bloccati modifica del program counter tocca al vettore di interrupt (diverso per ogni evento) Politica di scelta del successivo processo da eseguire: FIFO: First in First out SJF: Shortest Job First Deadline (si esegue prima il processo con la scadenza piu vicina) SRT: Shortest Remaining Time

Transizioni tra stati di un processo In esecuzione schedulazione pronti fine tempo, evento esterno richiesta di I/O In attesa conclusione I/O Coda ordinata in attesa della CPU Insieme in attesa di eventi

Riassumendo... I processi sono messi in una coda dei pronti Il processo in cima alla coda ha a disposizione la CPU per un quanto di tempo, fissato e uguale per tutti Quando il tempo finisce, viene interrotto e messo in fondo alla coda Se richiede un operazione di I/O, va nel gruppo dei processi in attesa, quando l operazione finisce viene rimesso in coda per la CPU La CPU va al primo in coda (o altre strategie) Durante la vita di un processo, vari stati: In esecuzione: quando usa la CPU (solo un processo alla volta) Pronto: quando aspetta la CPU Bloccato: in attesa di un evento (es.: fine di op. di I/O)

Chi si occupa delle fasi di transizione??? INTERRUPT: segnali hardware che provocano la modifica del registro PC e l'esecuzione di un particolare programma (vettore di interrupt) che serve a gestire l'evento associato all'interruzione SCHEDULER: ha il compito di gestire la coda dei processi pronti e l'avvicendarsi dei processi

Gestione dei processi: Scheduler (1) Tiene traccia di tutti i processi A ogni processo e associata una Tabella (detta tabella di processo) in M Principale Identificativo Indirizzo prossima istruzione Contenuto registri CPU Stato corrente (Esecuzione, Bloccato, Pronto) Informazioni per gestire la M (collocazione in M centrale di dati e programmi) Priorita I/O (richieste inoltrate, dispositivi allocati al processo) Accounting (ammontare di CPU time gia speso)

Gestione dei processi: Scheduler (2) Usando questa tabella si possono compiere le seguenti operazioni Creazione (un processo puo crearne altri) Cambio di priorita Blocco Assegnamento della CPU Terminazione

Attesa Se il processo richiede operazioni ad altri dispositivi (es. Operazioni di I/O), la CPU rimarrebbe inutilizzata -> lo scheduler mette il processo in stato di attesa, e il dispatcher (modulo che implementa le decisioni prese dallo scheduler) sceglie un nuovo processo tra i pronti dalla tabella Quando l operazione sara finita, lo scheduler dichiarera di nuovo pronto il processo

Sistemi multiprocessore Reti di calcolatori: vari calcolatori che si scambiano dati Es.: Internet Una rete e un sistema multiprocessore con una CPU su ogni calcolatore Anche singoli calcolatori con piu CPU Non solo coordinamento delle attivita di ogni processore, ma anche bilanciamento del carico: distribuzione dinamica ed efficiente dei task ai vari processori Scalabilita : suddivisione dei task in sotto-task compatibile con il numero dei processori

Sistemi multiprocessore Reti di calcolatori: vari calcolatori che si scambiano dati Es.: Internet Una rete e un sistema multiprocessore con una CPU su ogni calcolatore www.mersenne.org/prime.htm Anche singoli calcolatori con piu CPU Non solo coordinamento delle attivita di ogni processore, ma anche bilanciamento del carico: distribuzione dinamica ed efficiente dei task ai vari processori Scalabilita : suddivisione dei task in sotto-task compatibile con il numero dei processori

Gestione dei processori La gestione dei processori riguarda i criteri in base ai quali i processori vengono assegnati ai vari processi Abbiamo già visto lo scheduler (ditribuisce il tempo della cpu tra i vari processi) e il dispacher (copia in memoria i registri del processo in esecuzione, copia i registri del processo cui assegnare la CPU, salta alla locazione da cui il nuovo programma deve partire o ripartire. Lo scheduler compie le proprie scelte cercando di ottimizzare vari criteri: max uso della CPU, max numero di elaborazioni,...

Parametri di valutazione della gestione dei processori Tasso di uso CPU (deve essere massimo) Throughput (n. di processi completati per unita di tempo) Elapsed time (tempo tra la sottomissione di un processo e il suo completamento) Tempo di attesa (tempo passato in attesa nella coda dei processi pronti)

La memoria principale è un array di byte indirizzabili singolarmente è un deposito di dati facilmente accessibile e condiviso tra la CPU ed i dispositivi di I/O Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria principale: La gestione della memoria principale 1 Tenere traccia di quali parti della memoria sono usate e da chi Decidere quali processi caricare quando diventa disponibile spazio in memoria Allocare e deallocare lo spazio di memoria quando necessario Il gestore di memoria realizza una macchina virtuale in cui ciascun programma opera come se avesse a disposizione una memoria dedicata 45

La gestione della memoria principale 2 L organizzazione e la gestione della memoria centrale è uno degli aspetti più critici nel disegno di un SO Il gestore della memoria è quel modulo del SO incaricato di assegnare la memoria ai task (per eseguire un task è necessario che il suo codice sia caricato in memoria) La complessità del gestore della memoria dipende dal tipo di SO Nei SO multi tasking, più programmi possono essere caricati contemporaneamente in memoria Problema: come allocare lo spazio in maniera ottimale? 46

Memoria reale Nessun problema se un programma per volta (tecnica di overlay) Se più task si partiziona la memoria: Partizioni fisse Partizioni variabili (un programma occupa il minimo spazio possibile per essere eseguito) Attenzione: problema della frammentazione della memoria

Allocazione lineare 0000x Programma A PROBLEMA!!!! Programma D FRAMMENTAZIONE FRAMMENTAZIONE Programma B Programma C Memoria 48

Paginazione Programma A Programma A Programma A Programma BE Programma B F Programma D Programma F 0000x Memoria 49

La memoria virtuale 1 Spesso la memoria non è sufficiente per contenere completamente tutto il codice dei processi Si può simulare una memoria più grande tenendo nella memoria di sistema (RAM) solo le parti di codice e dati che servono in quel momento Si usa il concetto di memoria virtuale I dati e le parti di codice relativi a programmi non in esecuzione possono essere tolti dalla memoria centrale e parcheggiati su disco nella cosiddetta area di swap I processori moderni sono dotati di meccanismi hardware per facilitare la gestione della memoria virtuale 50

La memoria virtuale 2 Memoria Programma A-1 Programma B-1 Programma D 0000x Swap Programma A-2 Programma A-3 Programma B-2 51

La memoria virtuale 2 Memoria Programma A-2 Programma B-1 Programma D 0000x Swap Programma A-1 Programma A-3 Programma B-2 52

Struttura del SO Servizi richiesti dagli utenti al SO Interfaccia nucleo verso l esterno nucleo File system Gestore I/O Gestore processi Gestore memoria Gestore processori hardware

Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, il computer è dotato di memoria secondaria In generale, la memoria secondaria è data da hard disk e dischi ottici Il SO garantisce una visione logica uniforme del processo di memorizzazione: La gestione della memoria secondaria 1 Astrae dalle caratteristiche fisiche dei dispositivi per definire un unità di memorizzazione logica il file Ciascuna periferica viene controllata dal relativo device driver, che nasconde all utente le caratteristiche fisiche variabili dell hardware: modalità e velocità di accesso, capacità, velocità di trasferimento 54

La gestione della memoria secondaria 2 Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria: Allocazione dello spazio Gestione dello spazio libero Ordinamento efficiente delle richieste di accesso al disco (disk scheduling) 55

Il file è l astrazione informatica di un archivio di dati La gestione del file system 1 Il concetto di file è indipendente dal mezzo sul quale viene memorizzato (che ha caratteristiche proprie e propria organizzazione fisica) Un file system è composto da un insieme di file Il SO è responsabile delle seguenti attività riguardanti la gestione del file system: Creazione e cancellazione di file Creazione e cancellazione di directory Manipolazione di file e directory Codifica del file system sulla memoria secondaria 56

La gestione del file system 2 Il gestore del file system è il modulo del SO incaricato di gestire le informazioni memorizzate sui dispositivi di memoria di massa Nei sistemi multi utente, fornisce meccanismi di protezione per consentire agli utenti di proteggere i propri dati dall accesso di altri utenti non autorizzati Le funzioni tipiche del gestore del file system sono: Fornire un meccanismo per l identificazione dei file Fornire metodi opportuni di accesso ai dati Rendere trasparente la struttura fisica del supporto di memorizzazione Implementare meccanismi di protezione dei dati 57

Organizzazione del file system -1 Quasi tutti i SO utilizzano un organizzazione gerarchica del file system L elemento utilizzato per raggruppare più file insieme è la directory L insieme gerarchico delle directory e dei file può essere rappresentato attraverso un grafo (un albero nei SO più datati) delle directory Directory File Grafo delle directory 58

Organizzazione del file system -2 I dischi fissi possono essere divisi in partizioni Una partizione e' organizzata gerarchicamente come un albero rovesciato (come quello genealogico) Nodi e collegamenti padre-figlio tra nodi Nodo dell'albero: file o directory Nodi divisi per livelli Collegamenti tra nodi di livelli vicini: nodo sopra = padre, nodo sotto = figlio Ogni nodo ha un solo padre Padre più in alto = radice I nodi che sono file non hanno figli Cammino assoluto o relativo (per file) directory file

Indirizzo (o percorso) dei file in Windows partizione Z Z: A a Z:\a b B c C Z:\A\c d e D E Z:\A\C\D\f F f g h Z:\A\C\E\h

Indirizzo (o percorso) dei file in Unix/Linux / A a /a b B c C /A/c d e D E /A/C/D/f F f g h /A/C/E/h

Gestore della memoria secondaria I byte che compongono I file possono essere organizzati in vari modi: Byte stream (sequenza di byte) Sequenziale (sequenza di record a lunghezza fissa o variabile) Diretto (sequenza di record a lunghezza fissa) A indice (sequenza di record ordinati logicamente secondo un indice)

Struttura del SO Servizi richiesti dagli utenti al SO Interfaccia nucleo verso l esterno nucleo File system Gestore I/O Gestore processi Gestore memoria Gestore processori hardware

La gestione dei dispositivi di I/O La gestione dell I/O richiede: Un interfaccia comune per la gestione dei device driver Un insieme di driver per dispositivi hardware specifici Un sistema di gestione di buffer per il caching delle informazioni Il gestore dei dispositivi di I/O è il modulo del SO incaricato di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessi Da esso dipende la qualità e il tipo di periferiche riconosciute dal sistema Il gestore delle periferiche offre all utente una versione astratta delle periferiche hardware; l utente ha a disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una periferica che percepisce come dedicata 64

L interfaccia utente 1 Tutti i SO implementano meccanismi per facilitare l utilizzo del sistema di calcolo da parte degli utenti L insieme di tali meccanismi di accesso al computer prende il nome di interfaccia utente Serve per attivare un programma, terminare un programma, etc. interagire con le componenti del sistema operativo (gestore dei processi, file system, etc.) 65

L interfaccia utente 2 Interfaccia testuale: Interprete dei comandi (shell) Esempio: MS DOS/UNIX Interfaccia grafica (a finestre): L output dei vari programmi viene visualizzato in maniera grafica all interno di finestre L utilizzo di grafica rende più intuitivo l uso del calcolatore Esempio: WINDOWS/Linux Differenze: Cambia il linguaggio utilizzato, ma il concetto è lo stesso Vi sono però differenze a livello di espressività 66

L interfaccia grafica Realizza la metafora della scrivania desktop Interazione semplice via mouse Le icone rappresentano file, directory, programmi, azioni, etc. I diversi tasti del mouse, posizionato su oggetti differenti, provocano diversi tipi di azione: forniscono informazioni sull oggetto in questione, eseguono funzioni tipiche dell oggetto, aprono directory folder, o cartelle, nel gergo GUI (Graphical User Interface) 67

Conclusioni: i SO oggi Sistemi complessi che presentano miriadi di problemi e milioni di linee di codice (100 1000 programmatori per anno) Interazioni complesse Universali (eseguiti su piattaforme diverse) Differenti classi di utenti hanno necessità diverse La performance è cruciale! Poco compresi: Il SO tipicamente dura più di chi lo ha programmato ed è troppo grande per essere compreso da una singola persona Mai completamente privi di errori (OS/360 rilasciato con 1000 bug); comportamenti difficili da prevedere; aggiustamenti spesso eseguiti per tentativi 68

Esempi di SO: MS - DOS Sviluppato dalla Microsoft nel 1981 per il PC IBM Adottato da altri con PC IBM-compatibili Molto limitato: mono-utente, mono-tasking Circa 50 comandi per il SO

Esempi di SO: MS - DOS Sviluppato dalla Microsoft nel 1981 per il PC IBM Adottato da altri con PC IBM-compatibili Molto limitato: mono-utente, mono-tasking Circa 50 comandi per il SO

Comandi piu usati in MS - DOS DIR per vedere il contenuto di una directory COPY per copiare file DEL per cancellare un file REN per cambiare il nome a un file CD per muoversi in un altra directory MD per creare nuove directory RD per cancellare directory Nome file: per eseguire il file (se eseguibile)

File in MS - DOS Per individuare un file: cammino assoluto Un file system per ogni disco anche nome del disco Esempio: C:\Dir1\Dir2\Dir3\file.txt Estensioni per file:.exe per programma eseguibile.txt per file di testo.sys per file di sistema.c per programma in C.doc per documento Word

Unix SO multi-utente, multi-tasking, con time-sharing Concepito per poter funzionare su diverse piattaforme hardware Interprete dei comandi: shell Piu di 300 comandi, con opzioni Comando man per aiuto Forma di un comando: nome-comando [[-opzioni] argomenti]

Comandi Unix ls per vedere il contenuto di una directory cp per copiare file rm per cancellare file mv per spostare file cd per spostarsi in un altra directory mkdir per creare una nuova directory ps per vedere tutti i processi attivi lp per stampare file who per vedere tutti gli utenti collegati

File in Unix Unico albero anche se ci sono piu dischi non serve indicare il disco per denotare un file Nei cammini non appare il nome del disco Radice: simbolo / Esempio: /dir1/dir2/dir3/file.txt

Windows Nato nel 1987, ispirato al Macintosh All inizio era un interfaccia grafica per DOS Windows 95: SO mono-utente, multi-tasking, time-sharing DOS emulato in speciali finestre (per seguire vecchi applicativi per DOS)

Filosofia Windows -- 1 Interfaccia grafica Mouse che sposta un cursore Cut & paste (copia e incolla) Drag & drop (trascina e lascia) Icone associate a file, directory, dischi, Directory come cartelle Pulsanti Finestre: cornici con strumenti Menu di comandi

Filosofia Windows -- 2 L utente non deve ricordarsi i nomi dei comandi, basta che selezioni col mouse: un oggetto e il comando da applicare all oggetto File system (cioe l albero): visualizzato come cartelle che contengono icone di file o di altre cartelle Cliccando su una cartella, si apre quella directory Icona del file: diversa a seconda del tipo di file