Cosa è un Sistema Operativo (S.O.)



Documenti analoghi
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Un sistema operativo è un insieme di programmi che consentono ad un utente di

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Il Sistema Operativo (1)

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Gestione della memoria centrale

Il Sistema Operativo

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistemi Operativi. 5 Gestione della memoria

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Corso di Sistemi di Elaborazione delle informazioni

Sistema operativo: Gestione della memoria

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Infrastrutture Software

Il Software. Il software del PC. Il BIOS

Il memory manager. Gestione della memoria centrale

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

La Gestione delle risorse Renato Agati

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Architettura degli Elaboratori. Lez. 8 : Il Livello di Sistema Operativo

Varie tipologie di memoria

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Software di base. Corso di Fondamenti di Informatica

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

PARTE 4 La Macchina Software

Gestione della memoria centrale

TITLE Sistemi Operativi 1

Architettura di un calcolatore

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

STRUTTURE DEI SISTEMI DI CALCOLO

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Sistemi Operativi Kernel

Scheduling della CPU:

Approccio stratificato

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Esempio: aggiungere j

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Capitolo Silberschatz

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

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Dispensa di Informatica I.1

IL SISTEMA OPERATIVO

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Il supporto al Sistema Operativo

Il File System. Il file system

Corso di Informatica

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Gestione della Memoria

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

Introduzione ai sistemi operativi

Introduzione ai Sistemi Operativi

Le Infrastrutture Software ed il Sistema Operativo

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

Sistemi Operativi (modulo di Informatica II) I processi

Informatica - A.A. 2010/11

Funzioni del Sistema Operativo

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Gestione del processore e dei processi

Introduzione al sistema operativo Il file system: file, directory,...

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Laboratorio di Informatica

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

1. BASI DI DATI: GENERALITÀ

Corso di Informatica

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Struttura del calcolatore

Informatica di Base - 6 c.f.u.

Corso di Informatica

Il sistema operativo

Processi e Thread. Scheduling (Schedulazione)

Sistemi operativi. Esempi di sistemi operativi

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Corso di Informatica

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni

Il descrittore di processo (PCB)

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

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

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

Architettura hardware

Sistemi Operativi SCHEDULING DELLA CPU

Architettura di un sistema operativo

Transcript:

Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi per: permettere all utente l uso dell elaboratore senza la conoscenza approfondita dell hardware S.O. supporto all utente realizzare l integrazione, l ottimizzazione e la sincronizzazione della comunicazioni tra le componenti hardware S.O. come gestore delle risorse Sia il programmatore che l utente preferiscono trattare con una ASTRAZIONE della macchina reale. Il S.O. nasconde al programmatore la verità sui livelli hardware sottostanti e presenta un interfaccia gradevole e amichevole all utente Evoluzione delle interfacce utente Dal What You See Is What You Get al What You Get Is What You Want 1

Le nuove interfacce I Sistemi Operativi e la logica di calcolo S.O per Calcolo centralizzato S.O. per Calcolo personale S.O. per Calcolo distribuito 2

Turn Around Time (Tta) Tta =TO-TI è il tempo che passa tra l ingresso dei dati e la produzione dell output Throughput E proporzionale al numero di lavori eseguiti dal sistema nell unità di tempo E detto anche CARICO del SISTEMA Overhead di Gestione Sovraccarico Gestionale. E proporzionale al tempo consumato dal S.O. per eseguire il suo compito Un sistema efficiente... Throughput Elevato TurnAround Time Basso Overhead Gestionale Basso Ma. Quando il Turnaround è basso? 3

La storia dei S.O. Per comprendere le funzionalità di un S.O. è comodo seguirne l evoluzione storica anni 40 (assenza di S.O.) anni 50 (gestione dei lavori a lotti) anni 60 ( multiprogrammazione) metà anni 60 (Sistemi General Purpose) metà anni 70 ( DB, Reti, S.Distribuiti ) oggi Assenza di S.O. Scrittura di Programmi in Linguaggio Macchina Caricamento ed Avvio del Programma a carico dell Utente Tta minimo ma.... Throughput basso inattività della CPU intervento UMANO tra l esecuzione di due programmi gestione dell input/output Un passo avanti... Eliminazione dell intervento umano (Proposta della general motors GM per un sistema IBM 701) con programmi che operano così: MENTRE ci sono programmi da eseguire FAI carica programma in memoria esegui il programma controlla e riazzera lo stato del sistema per una successiva esecuzione FINE 4

Gestione a Batch Per superare i tempi morti necessari per caricare ed eseguire i programmi uno per volta, si introducono i primi monitor che prevedevano un tipo di lavoro cosiddetto batch (a lotti) in cui i programmi (le schede) venivano caricati tutti insieme ed eseguiti in sequenza Job Control Language (JCL) Necessità di direttive per segnalare la fine di un programma... JCL è un linguaggio compreso dal S.O. e che gli consentiva di distinguere i vari programmi da eseguire Con questo tipo di gestione, si automatizza la fase di inizializzazione e caricamento dei vari programmi, ma i programmi sono ancora eseguiti uno per volta in modo sequenziale Per ridurre i tempi. Le operazioni di I/O vengono fatte fuori linea usando nastri magnetici più veloci degli altri organi di Input Output presenza di elaboratori dedicati più piccoli La CPU ha una velocità molto elevata rispetto a quella dei dispositivi di I/O il vero problema era quello di sfruttare i tempi morti della CPU dovuti alle operazioni di I/O. Infatti, mentre i tempi di elaborazione di un carattere da parte della CPU sono dell ordine dei nanosecondi (10-6 sec.), tempi tipici per stampare un carattere sono dell ordine di circa 10 microsecondi (10-2 sec.) 5

Canale dati Per risolvere questo problema e ottimizzare l uso della CPU, tra gli anni 50 e 60, viene introdotto una importante innovazione: il canale di dati. Tale dispositivo hardware e l elemento che sovrintende e controlla la comunicazione e la trasmissione dei dati tra l elaboratore centrale e i dispositivi di I/O, sollevando la CPU da tale compito Il CANALE è un Processore dedicato al controllo dell unità periferica La memoria centrale e divisa tra CPU e il canale e contiene i dati e programmi di entrambi Un Canale, attivato dalla CPU, evolve in modo asincrono e parallelo alla CPU Un esempio di canale dati Con l introduzione dei canali di dati si risolve il problema della sovrapposizione delle operazioni di I/O ma e necessario poter sovrapporre le operazioni di calcolo e quelle di I/O (interrupt) 6

Multiprogrammazione Possibilita di caricare piu programmi in memoria in grado di condividere l uso della CPU e delle risorse dell elaboratore E possibile che il S.O., per realizzare la multiprogrammazione, non mantenga tutti i programmi in memoria ma carichi di volta in volta quello piu idoneo da un supporto di massa Tale tecnica, detta di swapping, e poco efficiente, ma risulta necessaria quando si hanno problemi di dimensione della memoria Processo = Programma in esecuzione Nucleo (o Kernel) = gestore dei processi Problema: nella multiprogrammazione più programmi sono in memoria, ma una sola è la risorsa processore. Come assegnare un processo al processore? Al processo è associato uno stato ed una priorità Stato dei Processi Ready pronto ad essere eseguito, ma non in esecuzione running in esecuzione waiting in attesa di un evento o di un dato Un processo è un programma in esecuzione. Un processo necessita di alcune risorse per assolvere il proprio compito: tempo di CPU, memoria, file e dispositivi di I/O. Il SO è responsabile delle seguenti attività in connessione con la gestione dei processi: Creazione e cancellazione di processi. Sospensione e riattivazione di processi. Fornire meccanismi per:» sincronizzazione di processi» comunicazione fra processi Il Supervisore E il cuore del S.O e.. prende le decisioni sulle modalità di attribuzione delle risorse, quando un processo si ferma per terminazione o attesa di I/0 Il Supervisore interviene quando un processo fa richiesta di I/0 quando il canale termina le sue operazioni quando un processo in running termina la sua esecuzione 7

Priorità Come scegliere nel caso di più processi pronti per l esecuzione o in attesa di uno stesso canale di I/0? Vendono associati ai processi delle priorità (numeri interi) STATICHE fissate dal gestore UNA TANTUM DINAMICHE il valore viene alterato durante l esecuzione La priorità da sola non basta PIU PROCESSI CON LA STESSA PRIORITA A ciascuna risorsa viene allora associata una coda di richieste contenente l identificatore di processi (PID) la priorità Il Supervisore sceglie il processo in testa con la massima priorità Sistemi Time Sharing Un processo rimane in running solo per un intervallo fissato di tempo (Time Slice) Per evitare che resti padrone della CPU a tempo indeterminato Il Supervisore riacquista il controllo... quando è terminata la time slice, il programma termina la sua esecuzione, il programma avanza una richiesta di I/O. È ovvio che un programma per terminare la sua esecuzione avrà bisogno di più time slice. Così... aumenta il turnaorund time dei singoli processi migliora il throughput complessivo 8

Il File System Dal punto di vista dell utente il File System è caratterizzato dalle operazioni che ha a disposizione, cioè come si definisce un file come il file vengono denominati e protetti che operazioni sono permesse sui file e così via Per tenere traccia dei file, il File system mette a disposizione dell utente dei directory contenenti un certo numero di elementi, uno per file E molto comune che un utente voglia raggruppare i suoi file in modo logico, attraverso una struttura gerarchica (ad albero) Memorizzazione dei File Un file è di solito composto da una sequenza di blocchi. Il File System deve tenere traccia dei blocchi di ciascun file Negli ambienti Microsoft ad ogni disco è associata una tabella d allocazione dei file o FAT, contenente un elemento per ogni blocco del disco. Il directory contiene il numero di blocco del primo blocco dei file 9

Il Gestore della Memoria Il compito del SO è anche di gestire la Memoria Centrale: ricordare quali parti della memoria sono attualmente in uso e quali non lo sono assegnare la memoria ai processi, deallocare la memoria assegnata, amministrare gli scambi tra memoria centrale e disco quando la prima non è più in grado di contenere i processi (swapping). Spazio degli indirizzi simbolici mov ax.bx cmp ax cx je punto1 add ax,cx punto1:add cx,bx traduzione rilocazione 011010100 010001000 010111110 110001110 000001111 111000000 000000000 000000000 Spazio degli indirizzi relativi ad un indirizzo base (binario rilocabile) Spazio degli indirizzi fisici (memoria centrale) CPU Reg. indir. Spazio logico Il Gestore della Memoria mov ax.bx cmp ax cx je punto1 add ax,cx punto1:add cx,bx... Map o bind i due diversi tipi di spazi Memoria centrale Spazio fisico allocare ai programmi la quantità di memoria necessaria rilocare i programmi, (tradurre i nomi dello spazio indirizzabile in locazioni di memoria centrale) rilocazione assoluta = prima che il programma sia caricato in memoria centrale rilocazione statica = quando il programma viene caricato in memoria rilocazione dinamica = durante l esecuzione del programma 10

Spazio logico indirizzabile Prog. A Prog. A compilazione compilazione Prog. A modulo assoluto Rilocazione assoluta (in compile time) Prog. A modulo assoluto Rilocazione statica (in load time) Spazio fisico Prog.A rilocato Spazio inutilizzato supervisore Prog.A rilocato S.O. Indirizo di impianto Indirizo di impianto Prog. A compilazione segm.1 segm.2 segm.3 Prog. B rilocato Rilocazione dinamica (in run time) Prog. C Tecniche di mapping tra spazio logico e spazio fisico In sistemi uniprogrammati - sequenziale : consiste nel suddividere l area di lavoro in due parti : una riservata al Sistema Operativo e l altra assegnata al programma utente - overlay: il programma viene suddiviso in blocchi, ciascuno dei quali contiene una entità logica a sé stante, che può venire caricata al momento del suo utilizzo e rilasciata subito dopo. S.O. Prog. A Subroutine 1 S.O. S.O. S.O. Prog. A Prog. A Prog. A Subroutine 2 Subroutine 3 Subroutine 4 11

Tecniche di mapping tra spazio logico e spazio fisico In sistemi multiprogrammati Partizionamento: La memoria fisica viene suddivisa in un certo numero di aree (PARTIZIONI) di dimensioni prefissate, ciascuna delle quali può essere assegnata separatamente ad un lavoro. Le partizioni possono essere create PRIMA che i vari programmi vengano caricati in memoria (P. STATICO) o all atto del caricamento dei programmi (P. DINAMICO). Questa tecnica è efficiente se si dispone di un meccanismo di rilocazione dinamica In ogni caso : occorre effettuare un mapping da indirizzo a singola componente ad indirizzo a doppia componente area di indirizzi (partizione) e offset (indirizzo nell area) Tecniche di mapping tra spazio logico e spazio fisico N. partizione Diritto di accesso trap offset Segmenti Pagine Traduzione indirizzo MMU Memory Management Unit componenti: tavola dei descrittori unità di verifica del tipo di accesso unità di traduzione degli indirizzi Indirizzo fisico 12

PAGINAZIONE Partizioni Fisse La memoria è divisa in N partizioni (pagine) di lunghezza uguale Lo spazio degli indirizzi fisici e quello degli indirizzi logici viene diviso in blocchi della stessa dimensione (in genere da 1 a 4 KB) Tavola dei descrittori delle pagine: N. pag. Page frame Start address su disco Modalità di accesso 0 1 3000 100 1 5 20000 110 2 3 200 001..... r w e Nel programma Opcode num.pag. ind.relat. Page frame offset Memoria Virtuale 10 pagine logiche di 4KB l una programma 00001011111010 00011100000011 00001111110000 00111100011110 00011100000000 11000000000011 11111000010100 100010 00111000111000 0. 01001100000000 101000001 Per la gestione dinamica della paginazione (demand paging memory management) spazio logico > spazio fisico Memoria centrale 4 Pagine fisiche di 4KB l una Page fault: eccezione che provoca un page demand con diverse strategie possibili N.pagina logica = indice tavola descrittori in mem. Centrale non in mem. centrale Tavola dei descrittori delle pagine: flag Page frame Start address su disco Modalità di accesso. 1 1 3C4T8S 100 0 5 1C2T8S 110 1 3 2C2T3S 001..... 13

SEGMENTAZIONE Segmento = raggruppamento logico di informazioni partizioni di lunghezza diversa che contengono ciascuno un solo oggetto di elaborazione! A differenza della paginazione, necessità di : - controllare che l offset non superi la lunghezza del segmento, - controllare le modalità di accesso N.segm. = indice tavola descrittori Nel programma Tavola dei descrittori dei segmenti: Start address in memoria centrale Opcode num.seg. ind.relat. Lunghezza segm. Modalità di accesso al segmento 1500 3KB 100 4600 8KB 110 14000 200KB 001.. Segmento offset 14