Sei sulla pagina 1di 28

Universit di Roma Tor Vergata

Corso di Laurea triennale in Informatica

Sistemi operativi e reti


A.A. 2015-16

Pietro Frasca

Presentazione del corso


Lezione 1
Marted 6-10-2015

Obbiettivo del corso

L'obiettivo dell'insegnamento e' fornire allo studente le


conoscenze di base sui Sistemi operativi moderni e sulle
Reti di calcolatori.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

Libri consigliati per approfondimenti


Sistemi Operativi, IX 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.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

Propedeuticit
Non si pu sostenere lesame 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)

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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 dellesame 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.
Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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 dellappello 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.
Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

Per sostenere la prova orale necessario aver superato la prova


scritta con una votazione di almeno 18/30.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

Informazioni sul corso di SOR

Saranno pubblicate sul sito di Informatica:


www.cs.uniroma2.it
nella pagina relativa al corso.
Dallanno accademico 2009-10 i corsi di sistemi operativi
(SO) e reti di calcolatori (RC), ciascuno di 6 crediti, sono
stati uniti nellunico corso Sistemi operativi e reti (SOR) di
12 crediti.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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
lapplicazione VMWare Player (o atre simili) scaricabile
allindirizzo http://www.vmware.com e unimmagine di un
sistema operativo Linux.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

11

Universit di Roma Tor Vergata

Corso di Laurea triennale in Informatica

Sistemi operativi e reti


A.A. 2015-16

Pietro Frasca

Lezione 1
Marted 6-10-2015

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

13

CPU

Cache
L2
Scheda
Grafica

Northbridge
Memoria
RAM

BIOS
IDE
ATA/Atapi

PCI
Southbridge

USB

ALTRI
standard

Architettura di un moderno computer


Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

14

Si tratta quindi di un sistema molto complesso.


Sarebbe impossibile per un programmatore sviluppare
unapplicazione 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 allutente, 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:

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

15

Struttura a livelli di un sistema operativo

Utenti
Livello applicazioni
editor
di testi

browser

Livello di SO
Scheduler
CPU

shell

GUI

Program. di
applicazioni

compilat.
Chiamate di sistema

Gestore
memoria

driver

driver

scheda
grafica

tastiera

Program. di
sistema

Livello fisico
CPU

Video

scheda
di rete

RAM

mouse

stampante

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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 uninterfaccia
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
linterfaccia del SO. Questo tipo di interazione con le risorse
fisiche necessario per controllare laccesso alle risorse
fisiche della macchina da parte di pi programmi.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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 o una stampante.
Inoltre, un SO si deve occupare della gestione degli errori e
dei malfunzionamenti che si possono verificare durante
lesecuzione dei programmi che potrebbero causare un
crash del sistema se non sono adeguatamente gestiti.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

18

Linterfaccia 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.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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).
Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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 sullarchitettura di Von Neumann.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

21

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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
delloperatore 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 allutente
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.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

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.

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

24

Il programma sorgente insieme alle istruzioni JCL, venivano


perforati su schede che venivano date alloperatore.

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.
Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

25

Il monitor veniva caricato in unarea 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 lesecuzione
del programma.
Lefficienza duso della cpu era molto basso < 1%. Il
tempo medio per eseguire un lavoro (job) era di qualche
decina di minuti, mentre luso di cpu era di pochi secondi.

tempo uso cpu


efficienza uso cpu
tempo esecuzione job
Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

26

Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

27

Gli unici programmi di sistema presenti in questi calcolatori


erano i compilatori, caricatori, debugger e alcune librerie di
I/O, che costituivano lambiente 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
dallesecuzione di un job al successivo job senza
lintervento delloperatore.
Lefficienza 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,
nellordine in cui erano stati posizionati i pacchi nel lettore di
schede (non cerano altre politiche di scheduling).
Appunti di Sistemi Operativi, 2015-2016 - Pietro Frasca

28