Orario definitivo

Martedì 14-16


Mercoledì 12-13


Aula 1 Fondi Palazzina delle Scienze
Giovedì 9-11


Aula 2 Polo
Aula 1 Fondi Palazzina delle Scienze
Nota: non ci sono lezioni al DISI!
Ancora su Software di Base


Software di base=strato (software) tra
macchina e utente che fornisce una macchina
virtuale facile da usare
Evoluzione:




Sistemi batch con schede (50’s-60’s)
System/360 IBM compatibili (65-70’s)
Sistemi operativi UNIX e DOS (80’s)
WINDOWS (90’s)
Uno sguardo al sistema
operativo




Gestione dei Processi
Gestione della Memoria Centrale
File System
Gestione delle Periferiche
Ciclo di vita dei processi



Processo = programma+stato mem e registri
Processo utenteprogrammi applicativi
Processo di sistemasistema operativo



Processi kernel (nucleo)
Gestori interruzioni
Esecuzione di un programma può comportare
l’alternanza di processi utente e di sistema
all’interno della CPU
Interruzione interna




L’esecuzione di un processo attivo si
interrompe ad es. per input/output
(operazioni costose in termini di tempo)
Lo stato corrente (contenuto reg..) del
processo interrotto viene salvato in memoria
Il processo passa allo stato in attesa
Il controllo passa ad un processo di sistema
che assegna la CPU ad un altro processo (per
poter ottimizzare l’utilizzo della CPU)
Interruzioni esterne





Una periferica segnala fine-operazione
L’esecuzione del processo corrente viene
interrotta (attraverso un controllo sul Reg.
RINT) e passa al gestore delle interruzioni
Il gestore delle interruzioni provvedere ad es
a trasferire dati in memoria e risvegliare il
processo in attesa che passa allo stato pronto
Il controllo passa poi al nucleo che manda in
esecuzione uno dei processi in stato pronto
Gestore lavoro con interruzioni disabilitate
Interruzioni interne
Ripristina
stato
attivo
Fine
Inizio
pronto
Acknowledg.
operazione
Salva
stato
attesa
Interruzioni esterne
Ripristina
stato
attivo
Fine
Inizio
pronto
Salva
stato
Scheduling dei processi



Il sistema operativo può interrompere i
processi per assicurare una politica fair di
esecuzione
Scheduler= parte di sistema operativo che
sceglie il processo da mandare in esecuzione
Due possibili politiche di scheduling:



Round robin
Priorità
Criteri di valutazione: efficienza, tempi di
risposta, fairness, ecc
Round Robin


Gestione dei processi in attesa tramite
una coda (FIFO=first-in first-out)
Ogni processo ha un quanto di tempo di
esecuzione dopo il quale torna in attesa


Quanto >> Tempo per salvare-ripristinare
stato (context switching)
Quanto << Tempo di esecuzione del
programma (per assicurare fairness)
Priorità


Si assegna una priorità ad ogni processo e si
manda in esecuzione il processo con priorità
più alta
La priorità può essere assegnata


staticamente ed essere ridotta durante
l’esecuzione (ancora per ragioni di fairness) e se
risulta più bassa di un processo in attesa
context switching
Assegnata dinamicamente a seconda delle
operazioni effettuate dal processo (es seleziona
subito processi con operazioni I/O)
Gestione Memoria Centrale


I processi si alternano nella CPU
Per ragioni di efficienza dobbiamo mantenere
più programmi in memoria centrale 
partizionamento memoria e del suo spazio di
indirizzi. Possibili tecniche:



Segmentazione
paginazione
Problema: rilocazione di un
programma=trasformare indirizzi logici in
indirizzi fisici
Rilocazione di programmi



Compilatore+Linker: traducono programmi
scritti in linguaggio ad alto livello in
programmi in linguaggio macchina che
accedono dati (variabili ecc) utilizzando
indirizzi logici indipendenti dalla posizione in
memoria centrale
Loader: carica il programma compilato in
memoria centrale.
(Linker: per compilare programmi divisi in
moduli)
Rilocazione



Statica: il loader trasforma indirizzi logici in
indirizzi assoluti durante il caricamento in
memoria centrale
Dinamica: il loader carica il programma con
indirizzi logici. Il programma compilato deve
pero gestire l’indirizzamento tramite un
registro speciale chiamato registro base
Registro base: mantiene l’indirizzo assoluto
della parte di memoria dove si trova il
programma
Segmentazione





Memoria centrale suddivisa in segmenti di
lunghezza variabile contenenti i programmi
Registro base:indirizzo prima cella del
segmento contenente il programma in
esecuzione
Registro frontiero: ultima cella...
Rilocazione:
ind. assoluto=ind. logico+cont. reg. base
Problema= frammentazione della memoria
Paginazione

Memoria e programmi suddivisi in pagine di
lunghezza fissa



I programmi vengono caricati in memoria anche in
pagine non contigue
La tabella delle pagine mantiene la
corrispondenza tra pagine dei programmi e
pagine in memoria centrale
Problema= ridurre no. di caricamenti pagine
Paginazione: rilocazione

Se registro indirizzi ha k bit e una pagina ha
2^p celle, vi sono q=k-p pagine in memoria
centrale



I primi q bit di indirizzo logico indicano una pagina
(logica) nella tabella (la tabella mappa pagine
logiche in pagine fisiche)
ultimi p bit indicano l’indirizzo relativo all’interno
della pagina
Rilocazione: tramite i primi q bit si recupera
indirizzo pagina fisica e poi lo si concatena
con gli ultimi p bit  ind. assoluto di k bit!
Memoria Virtuale


Con la suddivisone del programma in pagine
non è necessario mantenere tutto il
programma in memoria centrale
Paginazione a richiesta:



Se la pagina del programma che contiene la
prossima esecuzione da eseguire non è in
memoria si carica da disco (page swapping)
occorre trovare spazio in memoria e nella tabella
(dobbiamo uccidere altre pagine)
Indirizzi nei programmi diventano virtuali infatti la
tabella può contenere le pagine in ordine sparso
Gestione dei File

Memoria di massa server per gestire
grandi quantità di dati




Persistentenza
Sicurezza
Classificazione
Soluzione=dati organizzati logicamente
in file e gestiti dal sistema operativo
File


Nome: identificail file spesso con una
estensione che indica il tipo di file (es.
Tesi.doc oppure somma.exe)
Struttura: ad esempioç



Tipo:



Sequenza di byte
Sequenza di blocchi (record) di byte
File di caratteri e binari (eseguibili)
Directory
Attributi: nome, diritti di accesso,proprietario
Operazioni su File







Creazione
Cancellazione
Apertura e chiusura
Lettura e scrittura
Aggiunta
Modifica Attributi
Ridenominazione
File System

Consente di creare, cancellare,
spostare, recuperare, ecc documenti in
memoria di massa (persistente)
Directory



File di tipo speciale che mantiene informazioni
su altri file: permette di strutturare insiemi di
file (dati) in maniera gerarchica
DirectoryContenitore che contiene lista dei
nomi e attributi dei file e directory al suo
interno
File System  Albero


Radice=radice del’intero file system
nodi=file o ulteriori directory
Path names

In un’organizzaione ad albero i nomi
devono contenere informazioni sui
cammini sui quali si trovano i
corrispondenti file

Nomi relativi: relativi ad una particolare
directory
Nomi assoluti: specificano il cammino a
partire dalla radice (root) del file system
(mai ambigui)
File System in DOS



Disco fisso indicato con C:
Dischetto indicato con A:
Es. Directory:
C:\Delzanno_TAMC_00\tamc_intro

Es Comandi:




‘dir’ = lista file dir corrente
‘cd nome’=si posiziona nella dir nome
‘md nome’=crea dir nome sotto dir. Corrente
‘rd nome’=rimuove dir nome
Es C:\TAMC\Esami\Luglio
C:
RETI
TAMC
lucidi
Esami
Luglio
Settembre
Gestione File System

File possono venire memorizzati con




Allocazione continua di blocchi di byte
Allocazione collegata (un blocco contiene
l’indirizzo del prossimo)
Allocazione con indice (si mantiene una
tabella in memoria per recuperare i
blocchi) – DOS I-node: tabella con puntatori ad altre
tabelle (combina le ultime due) – UNIX –
Gestione delle periferiche


Driver fisici (hardware): per trasferire e
manipolare
Driver logici (software): parte del
sistema operativo che forniscono
funzionalità ad alto livello che
riguardano le periferiche
Driver fisico

Parte elettronica: device controller che
controlla i meccanismi fisici
dell’apparecchiatura (es unità di lettura di
floppy disk)



Il device controller dialoga con la CPU attraverso
registri e attraverso una memoria dedicata alle
operazioni I/O chiamata DMA (Memoria ad
accesso diretto)
DMA libera la CPU dal controllo di operazioni I/O
DMA memorizza informazioni che il device
controller puo usare per scrivere in memoria
direttamente senza passare attraverso la CPU
Driver logici

Software che mascherano i device fisici



Gestiscono errori
Gestisce nomi dei device drivers
Gestisce demoni per code di attesa per
l’utilizzo di device (ad es code di stampa
per stampare file)
Memoria di Massa: Disco Fisso






Vari piatti sovrapposti, ogni piatto ha 2
superfici magnetiche sulle quali vengono
memorizzati i dati
Superfice suddivisa in tracce e settori
Cilindro=tracce nella stessa posizione
Dati memorizzati sup-traccia-settore
Driver fisico=piatti+testine (una per sup.)
Driver logico=software di sistema che
gestisce disco fisso (C: in DOS) cioè
interruzioni
Memoria di Massa: Floppy




Unico disco con 2 superfici magnetiche
Vanno formattati cioè il sistema operativo
determina numero settori, densità bit sul
dischetto
Driver fisico=unità di lettura con 2 testine una
per ogni superficie
Driver logico=software che gestisce
trasferimento dati da floppy (driver A: in
DOS)