Presentazione del corso Lezione 1



Documenti analoghi
Presentazione del corso Lezione 1

Presentazione del corso Lezione 1

Il Sistema Operativo (1)

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

Presentazione del corso

Presentazione del corso

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

Sistemi operativi e reti A.A Lezione 2

Dispensa di Informatica I.1

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

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

Sistemi Operativi UNICAL. Facoltà di Ingegneria. Domenico Talia A.A Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A

Architettura di un sistema operativo

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

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

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Informatica per la Storia dell Arte. Anno Accademico 2014/2015

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

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

Corso di Informatica

Sistemi operativi e reti A.A Lezione 2

Università di Bologna Corso di Laurea Specialistica in Ingegneria dell'automazione e Ingegneria Elettronica A.A Sistemi Operativi L-A

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Corso di Informatica

Informatica - A.A. 2010/11

Corso di Sistemi di Elaborazione delle informazioni

INTRODUZIONE ALL' INFORMATICA

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

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

Approccio stratificato

Architettura di un calcolatore

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Come funziona un sistema di elaborazione

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Memoria Secondaria o di Massa

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

Principi di Sistemi Operativi (1 anno Corso di Laurea Magistrale in Ingegneria Informatica) ANNO ACCADEMICO

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

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

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

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

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

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

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

STRUTTURE DEI SISTEMI DI CALCOLO

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

Informatica: il sistema operativo

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

Introduzione ai sistemi operativi

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Introduzione ai Sistemi Operativi

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

Il Sistema Operativo

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

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

HARDWARE. Relazione di Informatica

Informatica. Scopo della lezione

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

Esame di INFORMATICA

CdL in Medicina Veterinaria - STPA AA

Corsi Speciali Abilitanti Indirizzo 2: Fisico-Matematico Modulo Didattico: Elementi di Informatica Classi: 48/A TEST D INGRESSO

TITLE Sistemi Operativi 1

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Il computer: primi elementi

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

Origini e caratteristiche dei calcolatori elettronici

Sistemi operativi. Esempi di sistemi operativi

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

Laboratorio di Informatica di Base Archivi e Basi di Dati

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

FONDAMENTI di INFORMATICA L. Mezzalira

Nozioni di Informatica di base. dott. Andrea Mazzini

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

I L C O M P U T E R COM E FATTO DENTRO (Unità 2)

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

introduzione I MICROCONTROLLORI

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

Fondamenti di Informatica. Allievi Automatici A.A Nozioni di Base

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

ECDL MODULO 1 Concetti di base della tecnologia dell informazione. Prof. Michele Barcellona

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

Hardware di un Computer

Architetture Applicative

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

Calcolatori Elettronici A a.a. 2008/2009

RETI E SISTEMI INFORMATIVI

PROGRAMMAZIONE DISCIPLINARE INDIVIDUALE

Infrastrutture Software

Architettura del calcolatore

Il Software. Il software del PC. Il BIOS

Corso di Informatica

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

Architettura dei computer

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

ARCHITETTURA DELL ELABORATORE

Corso di Informatica

Breve storia del calcolo automatico

Transcript:

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Presentazione del corso Lezione 1 Martedì 7-10-2014 1

Obbiettivo del corso L'obiettivo dell'insegnamento e' fornire allo studente le conoscenze di base sui Sistemi operativi moderni e sulle Reti di calcolatori. 2

Libri di riferimento Sistemi operativi, II ed. - P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari - McGraw-Hill Reti di Calcolatori e Internet, IV (VI) ed. - Un approccio top-down - J.F. Kurose, K.W. Ross - Pearson - Addison Wesley. 3

Libri consigliati per approfondimenti Sistemi Operativi, VIII ed., A. Silberschatz, P. Galvin, G. Gagne. Pearson. I moderni Sistemi Operativi, III ed., A. S. Tanenbaum. Pearson - Prentice Hall. Sistemi operativi, D. M. Dhamdhere, McGraw-Hill. Reti di Calcolatori e Internet, B. A. Forouzan, F. Mosharraf. McGraw-Hill. 4

Propedeuticità Non si può sostenere l esame di Sistemi operativi e reti senza aver prima sostenuto gli esami di: Architettura dei sistemi di elaborazione (ASE) o Reti logiche ed architettura dei calcolatori (RLAC). Programmazione dei calcolatori con laboratorio (PR) 5

Modalità di esame L'esame consiste in una prova scritta e in una prova orale. Il testo della prova scritta è suddiviso in due parti. La prima parte è composta da un gruppo di 4-5 domande che riguardano argomenti di "Sistemi operativi". La seconda parte, è composta da un gruppo di 4-5 domande, relative ad argomenti di "Reti di calcolatori". Le domande sono del tipo a risposta aperta o sottoforma di problemi. Per la parte Sistemi operativi una delle domande consiste nello sviluppo di un breve programma in linguaggio C basato sulle system call POSIX studiate durante il corso. La durata dell esame di 12 crediti è di 3 ore, mentre la durata dell'esame di 6 crediti è di 1 ora e 30 minuti. Durante lo svolgimento della prova scritta è vietato l'uso di libri e/o appunti di qualsiasi genere. 6

Per sostenere la prova orale è necessario aver superato la prova scritta con una votazione di almeno 18/30. Inoltre, lo studente può svolgere una tesina facoltativa consistente nella realizzazione di un'applicazione in java basata sulla programmazione dei socket o di un'applicazione multi-thread scritta in c. La tesina deve essere consegnata (personalmente o via e-mail) almeno una settimana prima della data della prova orale. La realizzazione della tesina consente di migliorare la votazione di 1,2 o 3 punti. 7

Esame parziale (esonero) Gli studenti del nuovo ordinamento possono sostenere, nel solo appello invernale, l'esame parziale (esonero) di "Sistemi operativi e reti" che consiste in una prova scritta e in una prova orale basate sugli argomenti della prima parte del corso (Sistemi operativi). Lo studente che intende sostenere l'esame parziale deve prenotarsi inviando una e-mail all'indirizzo del docente: frasca@mat.uniroma2.it, indicando come oggetto la frase "esame parziale SOR A.A. 2013/2014" e indicando nel messaggio il proprio cognome, nome e numero di matricola. La prenotazione deve essere inviata almeno una settimana prima dell appello relativo alla sessione invernale. Lo studente che supera l'esame parziale deve sostenere la restante parte di SOR entro l'anno accademico 2013/2014. Il testo della prova scritta è composto da un gruppo di 4-5 domande. La durata della prova scritta dell'esame parziale è di 1 ora e 30 minuti. 8

Per sostenere la prova orale è necessario aver superato la prova scritta con una votazione di almeno 18/30. 9

Informazioni sul corso di SOR Saranno pubblicate sul sito di Informatica: www.cs.uniroma2.it nella pagina relativa al corso. Dall anno accademico 2009-10 i corsi di sistemi operativi (SO) e reti di calcolatori (RC), ciascuno di 6 crediti, sono stati uniti nell unico corso Sistemi operativi e reti (SOR) di 12 crediti. 10

Applicazioni Durante la prima parte del corso, relativa a sistemi operativi, saranno mostrate varie chiamate di sistema POSIX. Per realizzare applicazioni basate su POSIX, lo studente che utilizza Windows può installare sul proprio computer Cygwin, un ambiente Linux-like per Windows, liberamente scaricabile dal sito http://www.cygwin.com. In alternativa a Cygwin è possibile installare su Windows l applicazione VMWare Player (o atre simili) scaricabile all indirizzo http://www.vmware.com e un immagine di un sistema operativo Linux. 11

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 1 Martedì 7-10-2013 12

Introduzione Un computer è costituito da vari componenti elettronici molto complessi: da uno o più processori, dalla memoria RAM, dischi, SSD (Solid State Disk), monitor, scheda grafica, scheda di rete, tastiera, mouse e altri dispositivi. 13

CPU Scheda Grafica Northbridge Cache L2 Memoria RAM BIOS IDE ATA/Atapi Southbridge PCI USB ALTRI standard Architettura di un moderno computer 14

Si tratta quindi di un sistema molto complesso. Sarebbe impossibile per un programmatore sviluppare un applicazione dovendo scrivere codice per il funzionamento di ciascuno dei dispositivi sopradetti. Per tale motivo i computer dispongono di un software detto sistema operativo, il cui compito è fornire ai programmi applicativi, e quindi all utente, funzioni e servizi per ottenere un uso agevole della macchina fisica. I moderni sistemi operativi sono sviluppati a strati. A grandi linee, si può pensare che il computer e il sistema operativo siano progettati in tre livelli: 15

Struttura a livelli di un sistema operativo Livello applicazioni editor di testi browser shell compilat. Utenti GUI Program. di applicazioni Scheduler CPU Livello di SO Gestore memoria Chiamate di sistema driver driver Program. di sistema Livello fisico CPU Video scheda di rete scheda grafica tastiera RAM mouse stampante 16

Livello fisico: costituito dai componenti fisici del calcolatore quali la cpu, la memoria RAM, le periferiche, come la scheda grafica, la tastiera, il mouse, il modem etc. Livello di sistema operativo: costituito da un insieme di librerie software che hanno il compito di gestire le risorse fisiche fornendo ai programmi applicativi un interfaccia standard più semplice da usare, in modo da fornire un astrazione delle risorse stesse. Livello dei programmi applicativi: costituito da un insieme di applicazioni che vengono usate dagli utenti del sistema. I programmi applicativi non comunicano direttamente con le risorse fisiche, ma lo fanno attraverso l interfaccia del SO. Questo tipo di interazione con le risorse fisiche è necessario per controllare l accesso alle risorse fisiche della macchina da parte di più programmi. 17

In breve, il SO è un insieme di programmi che realizzano una macchina virtuale più semplice da usare per le applicazioni e quindi per gli utenti, in quanto nascondono ad essi la macchina fisica. Tale astrazione consente agli sviluppatori di software di non preoccuparsi della programmazione dei dispositivi hardware del calcolatore e rende più facile quindi la realizzazione e la portabilità delle applicazioni. Un SO può essere pensato anche come un gestore di risorse, le quali possono essere sia di tipo software, come ad esempio una variabile o un file, che di tipo hardware, ad esempio un disco. Inoltre, un SO si deve occupare della gestione degli errori e dei malfunzionamenti che si possono verificare durante l esecuzione dei programmi che potrebbero causare un crash del sistema se non sono adeguatamente gestiti. 18

L interfaccia che il SO fornisce ai programmi è costituita da un insieme di funzioni che prendono il nome di chiamate di sistema (system calls). Generalmente il programmatore non utilizza direttamente le system calls ma librerie a livello più alto dette API (Application Programming Interface) le quali richiamano le system calls. Un esempio è dato dalle librerie standard del C o dai package java. 19

Classificazione dei sistemi operativi I sistemi operativi hanno subito una grande evoluzione nel corso degli anni. Attualmente esistono varie tipologie di sistemi operativi, che comprendono i sistemi batch, time-sharing, real-time, distribuiti, per uso generale (pc), per smartphone etc. Alcune tipologie sono nate prima di altre. Primi sistemi di elaborazione I computer costruiti prima della metà degli anni 50 erano di enormi dimensioni e di elevatissimo costo e pertanto il loro uso era ristretto prevalentemente in ambiente militare e scientifico. La tecnologia elettronica per la realizzazione del calcolatore era basata sui tubi a vuoto (valvole). 20

I calcolatori non avevano un SO e il programmatore, tramite una consolle, scriveva le istruzioni direttamente, in codice binario, nei registri del processore e nella memoria. Non era presente neanche il linguaggio assembly. EDVAC (Electronic Discrete Variable Automatic Computer) fu uno dei primi computer elettronici. A differenza del predecessore ENIAC utilizzava il codice binario invece del sistema decimale utilizzato dall'eniac. Il computer era basato sull architettura di Von Neumann. 21

22

Sistemi batch Tra la fine degli anni 50 e i primi anni 60, nacquero i primi sistemi operativi. Nacquero le figure professionali del sistemista e dell operatore i cui compiti erano di gestire il calcolatore. I programmi per lo sviluppo del software furono memorizzati su nastri magnetici. Il sistema era dotato di un linguaggio di controllo (job control language, JCL ) che consentiva all utente programmatore di specificare le risorse di programmazione (compilatori, librerie..) di cui aveva bisogno. Un programma in codice sorgente scritto in un linguaggio di programmazione, ad esempio in FORTRAN o assembly, veniva scritto su schede perforate di cartoncino. 23

Ogni scheda conteneva un istruzione. I dispositivi di input erano i lettori di schede perforate e i dispositivi di output erano le stampanti e i perforatori di schede. 24

Il programma sorgente insieme alle istruzioni JCL, venivano perforati su schede che venivano date all operatore. Per ottenere un programma compilato, le schede del programma sorgente venivano inserite nel lettore di schede. Questi sistemi erano dotati di un software di sistema detto monitor, che può essere considerato è il primo prototipo di SO. 25

Il monitor veniva caricato in un area di memoria riservata. Il monitor eseguiva un ciclo durante il quale leggeva le schede, e quando incontrava le schede del JCL, caricava in memoria i programmi di sistema richiesti leggendoli da nastro magnetico. il codice eseguibile ottenuto come risultato veniva inviato al perforatore di schede che lo memorizzava in questo modo ancora su schede perforate. Successivamente si inserivano le schede relative al programma compilato sul lettore di schede e si caricava in memoria il codice eseguibile. Infine si avviava l esecuzione del programma. L efficienza d uso della cpu era molto basso < 1%. Il tempo medio per eseguire un lavoro (job) era di qualche decina di minuti, mentre l uso di cpu era di pochi secondi. efficienza uso cpu tempouso cpu tempoesecuzione job 26

27

Gli unici programmi di sistema presenti in questi calcolatori erano i compilatori, caricatori, debugger e alcune librerie di I/O, che costituivano l ambiente di programmazione. Successivamente la CPU eseguiva il programma, il quale una volta terminato restituiva il controllo della CPU al monitor. Successivamente vennero introdotti i lettori di schede a lotti, in grado di leggere programmi di più utenti, organizzati a lotti. Ora, il monitor poteva passare dall esecuzione di un job al successivo job senza l intervento dell operatore. L efficienza aumentò, ma di poco. Le caratteristiche fondamentali dei sistemi batch sono: Efficienza di uso delle risorse di macchina (CPU, memoria, periferiche ); I programmi venivano eseguiti in modo sequenziale, nell ordine in cui erano stati posizionati i pacchi nel lettore di schede (non c erano altre politiche di scheduling). 28

Sistemi batch multiprogrammati La causa principale della bassa efficienza dei primi sistemi batch era dovuta alla grandissima differenza che c era tra la velocità della CPU e la velocità delle periferiche. Le operazioni di I/O richiedevano molto più tempo rispetto alle operazioni computazionali. L introduzione di alcuni dispositivi fisici, come i dischi e i DMA (Direct Memory Access) e l introduzione della tecnica dell interruzione (interrupt) portò a significativi miglioramenti. Con la tecnica dello spooling (simultaneous peripheral operation on line) si ebbe un apprezzabile primo miglioramento. Tutti i job di un batch venivano caricati inizialmente su disco e successivamente caricati in memoria per essere eseguiti. 29

I risultati venivano salvati ancora su disco. I dati venivano caricati su disco tramite DMA, quindi la CPU era libera di eseguire altre operazioni. Inoltre i risultati venivano stampati trasferendo i dati da disco a stampante. 30

1) Caricamento dei job su disco 2) Caricamento dei job da disco in memoria 3) Risultati su disco 4) Stampa dei risultati Disco 2 3 1 4 Lettore schede DMA DMA Stampante CPU MEMORIA Sistema di spooling 31

32

La memorizzazione delle applicazioni su disco (pool of job) che è un dispositivo ad accesso casuale, consentì di implementare varie politica di scheduling, scegliendo di volta in volta, quale job eseguire per primo in base a un determinato criterio come, ad esempio, eseguire prima i programmi che hanno un tempo di esecuzione più breve (SJF). Un netto miglioramento dell efficienza d uso della CPU e delle risorse si ebbe grazie alla tecnica della multiprogrammazione e della tecnica dell interrupt. La multiprogrammazione consiste nel caricare in memoria più programmi in modo da allocare ciascuno di essi in una diversa area di memoria. In tal modo, quando il programma corrente esegue operazioni di I/O, è possibile assegnare la CPU ad un altro programma. Con questa tecnica, tutti i programmi caricati in memoria è come se eseguissero in parallelo, anche se in realtà solo uno di essi si trova in esecuzione. 33

Programma N Programma applicativo Programma 2 Programma 1 Sistema operativo Sistema operativo Struttura della memoria in un sistema batch monotasking Struttura della memoria in un sistema batch multitasking 34

Con la multiprogrammazione è possibile aumentare nettamente l efficienza della CPU fino a raggiungere valori superiori all 80% Per esempio, consideriamo tre processi P1, P2 e P3 e consideriamo i casi in cui fossero eseguiti con a) un sistema monotasking e b) con un sistema multitasking. Nel primo caso i programmi vengono eseguiti sequenzialmente, come mostrato in figura. Il tempo d uso di CPU è pari a 10 unità di tempo, mentre il tempo totale è pari a 27 unità. L efficienza d uso della CPU è quindi data da 10/27=0,37 (37%). Con la multiprogrammazione il tempo totale di esecuzione dei tre programmi scende a 12 unità di tempo e quindi l efficienza d uso sarà data da 10/12=0,83 (83%). ) 35

A prima vista, l efficienza d uso della CPU può essere migliorata, aumentando il numero di programmi (grado di multiprogrammazione). Tuttavia bisogna considerare anche il tempo di commutazione necessario per assegnare la CPU da un programma ad un altro. Questo meccanismo è chiamato cambio di contesto, il quale porta ad un aumento dell overhead di sistema. Quando la CPU viene assegnata ad un altro programma, il SO deve eseguire varie operazione tra cui il salvataggio dello stato della CPU (il valore di tutti i suoi registri). Con più programmi in esecuzione il SO si deve occupare della gestione delle risorse per evitare conflitti tra i programmi. 36

Esecuzione sequenziale 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Esecuzione in multi-tasking 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 37

Se le risorse non fossero gestite dal SO, un programma in esecuzione potrebbe usarle quando queste sono già state assegnate ad un altro programma. Consideriamo, ad esempio, cosa succederebbe se un programma stesse stampando e un altro interferisse nell operazione. Si avrebbero delle stampe con contenuto misto relativo ai due programmi. E necessario quindi che il sistema operativo implementi degli algoritmi di assegnazione delle varie risorse ai programmi. Per la scelta dei programmi da caricare in memoria, una strategia spesso usata è scegliere un insieme di programmi con caratteristiche diverse, ad esempio alcuni programmi che eseguono molte operazioni di computazione e poche operazione di I/O (CPU-bound) e altri con poche istruzioni di calcolo e molte operazioni di I/O (I/O-bound) in modo bilanciato e quindi ottimizzare tutte le risorse di macchina. 38

Inoltre quando avviene un cambio di contesto, a causa di operazioni di I/O, è necessario scegliere quale sarà il prossimo programma a cui assegnare la CPU. Un criterio spesso utilizzato nei sistemi batch è di assegnarla in base al programma che da più tempo attende di essere eseguito (criterio FIFO). Un altro criterio, adottato presso i centri di calcolo, era anche basato di eseguire prima i programmi in base a diversi livelli di tariffe. I sistemi batch multiprogrammati sono stati i primi SO complessi funzionanti sui grossi mainframe. Molto famosi sono stati i sistemi dell IBM della serie 360 e 370. I sistemi batch sono oggi ancora molto usati in ambiente aziendale finanziario per l elaborazione di buste paga, gestione conto correnti, gestione assicurazioni e altre attività che richiedono una grande potenza elaborativa su grandissime quantità di dati. 39

40

41