Sistemi operativi e reti A.A Lezione 2

Documenti analoghi
Sistemi operativi e reti A.A Lezione 2

Sistemi operativi e reti A.A Lezione 2

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

Sistema operativo & file system 1

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

Il Sistema Operativo

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

Capitolo 6 Le infrastrutture SoftWare

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Struttura Logica del S.O:

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Capitolo 1: Introduzione

Corso di Informatica

Lezione 2 Chiamate di procedura e risposta alle interruzioni

Informatica Generale 06 - Introduzione ai Sistemi Operativi

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

Il Sistema Operativo. Informatica Sistema Operativo 1

Sistema Operativo (Software di base)

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:

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

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

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

I sistemi operativi. Prof. Daniele Contarino

Sistemi Operativi. Lez. 0: Introduzione ai sistemi operativi

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

Il software di sistema

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

Il sistema operativo Panoramica dei principali O.S.

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

IL SOFTWARE DI SISTEMA

Capitolo 6 Le infrastrutture SoftWare

Sistema operativo. Avere un architettura multi-core è un vantaggio

Sistema Operativo. Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)

Gestione dei processi

Dal sistema operativo all' hardware

Lezione 16. Il Software di base

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

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

Sistema operativo. Interazione con il SO

Introduzione ai sistemi operativi

Sistema operativo (SO)

Il software: Istruzioni per il computer

Prof. Rossella Cancelliere

Fondamenti di Informatica T. Il Software

Organizzazione di un SO monolitico

Interfaccia. Due sono i tipi di interfaccia più diffusi per interagire con un computer:

Sistemi Operativi ed interazione con HW e CAD

Il sistema operativo

Il Sistema Operativo

Come funzionano i computer

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

Tecnologie di virtualizzazione

Il Sistema Operativo

Computer e Programmazione

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

Personal Computer: introduzione

Il software: cenni sul sistema operativo

Elementi di Informatica

Corso Tecnico WEB 2013

Architettura dei calcolatori e Software di sistema

Il Sistema Operativo (1)

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Architetture di rete. 4. Le applicazioni di rete

Tecnologia dell Informazione

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Architettura di Von Neumann

Sistemi Operativi Modulo A a.a gruppo 1 (A-I)

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

I Processi. Il Concetto di Processo

Modulo 1: Le I.C.T. UD 1.4i: Prestazioni di un Computer

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

2. Strutture dei Sistemi Operativi. 2.2 Interfaccia col Sistema Operativo Interprete dei comandi

Modelli di interazione tra processi

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

Funzioni del Sistema Operativo

Il computer P R O F. L O R E N Z O P A R I S I

Sistema Operativo Compilatore. Maurizio Palesi

I THREAD O PROCESSI LEGGERI

Informatica di Base

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

Facoltà di Ingegneria - Università degli studi di Catania. Corso di Laurea in Ingegneria Civile. Sistemi Operativi. Fondamenti di Informatica

SISTEMI OPERATIVI. Fig. 1

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

Struttura hw del computer

Modelli di interazione tra processi

Introduzione all uso dei laboratori aka Linux basics. October 23, 2013

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Router. E altri elementi di una rete LAN

Computer. Com è fatto un Personal Computer.

Modelli di interazione tra processi

Il computer P R O F. L O R E N Z O P A R I S I

DIREZIONE DIDATTICA DI SAN GIUSEPPE JATO Programma Operativo Nazionale Fondo Sociale Europeo - Competenze per lo sviluppo

Calcolo numerico e programmazione. Sistemi operativi

Sistemi Operativi: avvio

Concetti di base della Tecnologia dell'informazione

Transcript:

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 2 Giovedì 8-10-2014 1

Sistemi a partizione di tempo (time-sharing) I sistemi batch multiprogrammati usano le risorse di sistema come la CPU, la memoria, le periferiche, etc., in modo efficiente, ma non consentono l interazione con l utente. Un SO time-sharing permette a più utenti di condividere il calcolatore nello stesso momento. Si sono diffusi nei primi anni 70 con l introduzione dei minicalcolatori, molto più economici rispetto ai mainframe. Molti SO moderni sono a partizione di tempo e multiprogrammati. La CPU viene commutata rapidamente da un programma all altro, dando ad ogni utente l impressione di disporre, in ogni istante, dell intero calcolatore. 2

L obiettivo principale per i sistemi time-sharing è minimizzare il tempo di risposta dei programmi e quindi minimizzare il tempo di attesa medio da parte degli utenti per ottenere dal programma una risposta alle richieste effettuate La reale condivisione può risultare evidente nel caso in cui il sistema è carico, cioè molti utenti sono in quel momento connessi e ci sono molti processi attivi o quando nel sistema si eseguono lunghe operazione di I/O, come ad esempio, stampe di grandi documenti. Ciascun utente può far eseguire più di un programma contemporaneamente (processo). Oltre alla multiprogrammazione, i SO a partizione di tempo introducono interessanti e complesse tecniche: 3

sono dotati di memoria virtuale che consente l esecuzione di programmi, anche se parzialmente caricati in memoria, cioè i programmi possono avere anche dimensioni superiori alla memoria fisica disponibile; sono dotati di file system che rappresenta un astrazione dei dischi, facendo vedere all utente un disco come composto da file e directory (cartelle) nidificate; utilizzano sofisticate tecnologie, sia hardware che software per consentire l esecuzione concorrente dei processi gestiti da funzioni di scheduling della CPU e funzioni per la sincronizzazione e comunicazione dei processi. 4

Questi sistemi devono anche garantire che i processi non si blocchino in stati di attesa indefinita reciproca (stallo). In pratica, un utente si collega ad un sistema time-sharing utilizzando un terminale o un PC sul quale è installata un applicazione che utilizza un protocollo di comunicazione per la connessione remota, come ad esempio telnet, rsh, rlogin e ssh (security shell). Quest ultimo è l unico che garantisce sicurezza nella connessione. Per connettersi un utente deve avere un account (utenza) sul sistema. L utente inizia una sessione di lavoro inserendo uno username e una password (login). Una volta connesso comunica con il SO mediante una shell o con una GUI (Graphics User Inteface). 5

La shell è un interfaccia a riga di comando con la quale l utente può digitare i comandi per la gestione e il controllo del SO o avviare applicazioni. Al termine del lavoro, l utente esegue l operazione di logout per disconnettersi dal sistema. L utente vede il comportamento della macchina come se questa fosse dedicata tutta a lui (macchina virtuale). La politica di scheduling della CPU usata nei sistemi a partizione di tempo è di eseguire i vari programmi assegnando loro un quanto di tempo di CPU (time slice) dell ordine di alcune decine di millisecondi. 6

Durante questo intervallo, il programma può terminare, o bloccarsi nel caso esegua operazioni di I/O, consentendo quindi la selezione di un nuovo programma da assegnare alla CPU. telnet, ssh SISTEMA TIME-SHARING switch PC PC PC TS Protocolli seriali TTY TTY TTY Terminali alfanumerici 7

Sistemi in tempo reale Il calcolatore è utilizzato per la gestione e il controllo di un sistema fisico, detto ambiente operativo, come ad esempio impianti industriali, centrali elettriche, robot, etc. Anche questi sistemi utilizzano la multiprogrammazione, dato che generalmente i task che il sistema deve svolgere sono molti. Caratteristica fondamentale dei SO realtime è che ogni task deve essere eseguito entro un intervallo di tempo definito (deadline) imposto dall applicazione (da microsecondi a millisecondi). In altri termini, la validità dei risultati ottenuti da un programma non dipende solo dalla correttezza del programma, ma anche dall intervallo di tempo entro il quale i risultati sono prodotti. 8

Esempio Per il processo in figura si ha: Istante di richiesta R = 0; tempo di esecuzione E = E1 + E2 = 20 + 40 = 60 deadline D = 100 Tempo di risposta = 90 R E1 E2 D P 0 10 30 50 70 90 100 Tempo di risposta Deadline 9

SISTEMA DA CONTROLLARE SENSORI ATTUATORI SISTEMA OPERATIVO IN TEMPO REALE (REAL TIME) 10

Nei SO real-time generalmente i task hanno diverse criticità e quindi hanno diverse priorità. Le priorità possono essere assegnate in modo statico (priorità statiche) o calcolate dinamicamente in base alle caratteristiche dei singoli task (priorità dinamiche). I SO real-time sono classificati in hard real-time e soft real-time. In questi ultimi, una deadline non rispettata, non danneggia il funzionamento dell ambiente operativo, ma ne abbassa le prestazioni e quindi la qualità del servizio (QoS Quality of Service). Una categoria di SO in tempo reale molto importante, per via della loro diffusione, è costituita dai sistemi dedicati (embedded systems): schede di controllo di varie apparecchiature, controllo motore di automobili, elettrodomestici, etc. Alcuni SO in tempo reale sono ottenuti dai SO time-sharing di uso generale, come ad esempio RT-Linux. 11

Sistemi paralleli e distribuiti I sistemi paralleli sono dotati di più CPU. In questi sistemi più processi potrebbero essere realmente eseguiti contemporaneamente. Il SO deve risolvere vari problemi legati all esecuzione in parallelo dei programmi, nel caso che essi accedono simultaneamente agli stessi dati. Prevenire possibili condizioni di inconsistenza sulle strutture dati del sistema, che si potrebbero verificare se queste fossero modificate contemporaneamente da funzioni di SO eseguite su diverse CPU. Lo sviluppo delle reti ha portato alla realizzazione di moduli di SO per la gestione delle schede di rete e di vari servizi che hanno permesso ai sistemi collegati in rete di condividere dati e informazioni in vario modo: ad esempio il www, e alla possibilità di realizzare applicazioni distribuite. 12

I SO per calcolatori collegati in rete vengono generalmente classificati in due categorie: Sistemi operativi di rete: ogni nodo della rete dispone di un proprio sistema operativo (non necessariamente uguale). I sistemi cooperano tra di loro, per esempio applicazioni web a n-strati. Sistemi operativi distribuiti: su ogni nodo deve girare lo stesso SO. L utente vede l intero sistema come un unico calcolatore. Il SO deve provvedere a bilanciare il carico di lavoro distribuendolo opportunamente sui vari nodi del sistema. I nodi condividono le risorse. Un esempio è dato dai sistemi cluster. 13

Sistemi operativi per PC I primi SO per personal computer erano semplici monoprogrammati e monoutente. Con l aumento delle prestazione dei microprocessori e delle dimensioni della memoria, la tecnica della multiprogrammazione è stata implementata anche nei SO per PC. Tutti i sistemi operativi moderni per PC sono multitasking: windows XP, windows 7 e Windows 8 (Microsoft), MacOs del Macinthosh (Apple) e Linux che è un anche un sistema time-sharing. 14

Struttura ed organizzazione software dei sistemi operativi Un sistema operativo deve svolgere molti compiti complessi. Per tale motivo dovrebbe essere progettato in modo tale che, oltre a funzionare correttamente, il suo codice sia facilmente modificabile. La scelta dell architettura software e della sua organizzazione dipende dagli obiettivi per cui il sistema operativo deve essere progettato. Nella fase di progettazione è molto importante suddividere le operazione che il sistema operativo deve svolgere in meccanismi (tecniche) e criteri (politiche o strategie). I meccanismi stabiliscono in che modo deve essere eseguito qualche compito; i criteri, invece, determinano in che modo utilizzare i meccanismi. 15

Ad esempio, nei sistemi multiprogrammati il sistema operativo, per commutare la CPU a più processi, esegue un insieme di operazioni detto cambio di contesto, che comprende il salvataggio dei registri della CPU del processo che lascia la CPU ed il caricamento dei registri del nuovo processo che andrà in esecuzione Le operazioni di schedulazione della CPU, stabiliscono i criteri con cui assegnare la CPU ad un nuovo processo. Ad esempio la schedulazione potrebbe basarsi su una politica FIFO, su una politica basata sulle priorità che i processi possiedono, o da altri criteri. I meccanismi dovrebbero essere progettati in modo tale che siano separati dai criteri. Questo consente, nel caso si cambino i criteri, di mantenere ancora validi i meccanismi. Se ad esempio si decidesse di modificare la politica di schedulazione da FIFO ad una politica più complessa, sarebbe ancora possibile utilizzare i meccanismi già esistenti, senza modificarli. 16

Una volta progettato il sistema operativo si deve realizzare. La scrittura di un sistema operativo dipende fortemente dall architettura del hardware ed in particolare dal processore o processori utilizzati nel calcolatore. Molti processori sono dotati di istruzioni che possono essere eseguite in modalità privilegiata (supervisor) e in modalità utente. Questa caratteristica consente di realizzare ed organizzare il software in modo tale che solo il codice del sistema operativo possa eseguire le istruzioni privilegiate, proteggendo in tal modo le componenti del sistema operativo stesso da un uso improprio o errato da parte dei programmi applicativi. Ad esempio le istruzioni di I/O, sono istruzioni privilegiate. Generalmente, i sistemi operativi, si scrivono con linguaggi di alto livello, come ad esempio il C ed il C++, con ristrette parti in linguaggio assembly, per poter accedere pienamente ai registri dei dispositivi hardware e realizzare funzioni compatte e veloci. 17

Struttura monolitica Una semplice organizzazione del software, detta struttura monolitica, consiste nel realizzare un insieme di funzioni ciascuna delle quali implementa un determinato servizio, attivabile tramite una o più chiamate di sistema. Spesso queste funzioni si scrivono in linguaggio assembly, per poter avere la massima velocità di esecuzione e una minore dimensione in termini di occupazione di memoria RAM. Questa struttura, piuttosto semplice è stata usata nel sistema operativo Microsoft MS-DOS, un sistema operativo monoutente e monotasking, scritto per microprocessori Intel 8088, 8086 e 80286, privi di modalità supervisor. In assenza di modalità privilegiata, il programmatore può accedere a qualsiasi istruzione del microprocessore e quindi eseguire qualsiasi operazione come, ad esempio, scrivere dati in qualsiasi locazione di memoria, anche se riservata al sistema operativo. E evidente che, in questi sistemi, un semplice errore di programmazione in un applicazione può portare al crash del sistema. 18

Chiamate di sistema kernel HARDWARE Sistemi stratificati Per la progettazione e sviluppo di sistemi più complessi si può ricorrere ai modelli e alle tecniche della programmazione strutturata o meglio ancora alla programmazione ad oggetti. I progettisti organizzano il sistema in un insieme di moduli, strutturandoli in vari livelli. Ciascun modulo di un livello utilizza le funzionalità offerte dai moduli di livello sottostante e fornisce a sua volta servizi ai moduli del livello superiore. Nei sistemi stratificati con il termine nucleo o kernel si indica il livello che è a stretto contatto con l hardware. 19

Moduli di livello N Sistem call Interfaccia MV N API Moduli di livello 2 Moduli di livello 1 (kernel) HARDWARE Interfaccia MV 2 Interfaccia MV 1 Interfaccia Kernel - HW Struttura a livelli gerarchici 20

Il principale vantaggio che offre la tecnica della stratificazione è dato dalla semplicità di progettazione e da una più semplice facilità nell eseguire modifiche e correzioni al codice. Ogni strato può essere modificato, senza apportare cambiamenti ai restanti strati. Tuttavia, è richiesta un attenta e complessa analisi per stabilire quanti strati realizzare e scegliere quale funzionalità implementare in ciascun livello. Inoltre, la stratificazione porta ad un funzionamento meno efficiente in termini di velocità di esecuzione ed occupazione di memoria. Ad esempio per eseguire un operazione, un programma applicativo, potrebbe effettuare una chiamata di sistema al livello sottostante, la quale, a sua volta, ne richiama un'altra, e questa un'altra ancora, e così. In altre parole, il programma applicativo per ottenere un servizio potrebbe attendere l esecuzione di N funzioni di sistema. 21

Bisogna tenere anche presente che nel passaggio da uno strato all altro sono allocate strutture dati e parametri, con conseguente maggiore impegno di memoria. Per tale motivo, attualmente, si progettano sistemi stratificati con un limitato numero di strati. 22