Componenti Lezione III: Concetti fondamentalihomes.di.unimi.it/sisop/lucidi0809/so02-handout.pdf ·...
Transcript of Componenti Lezione III: Concetti fondamentalihomes.di.unimi.it/sisop/lucidi0809/so02-handout.pdf ·...
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
1
Sistemi Operativi1
Mattia Monga
Dip. di Informatica e ComunicazioneUniversita degli Studi di Milano, Italia
a.a. 2008/09
1c© 2009 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia License.
http://creativecommons.org/licenses/by-sa/2.5/it/. Immagini tratte da [2] e da Wikipedia.
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
60
Lezione III: Concetti fondamentali
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
61
Kernel monolitici e micro
Kernel monolitico
Il kernel e un unico grande programma che gira in kernel mode.Le strutture dati e le funzionalita sono accessibili da tutto ilcodice del kernel
Microkernel
Il codice che gira in kernel mode e ridotto al minimo. Moltefunzionalita (file system, process management, network, devicedrivers) sono realizzate da moduli user mode che mandanomessaggi al microkernel.
I microkernel nascono per gestire meglio la complessita, ma siha una perdita di efficienza.Tanenbaum vs. Torvalds
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
62
Architettura: MS Windows 2000
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
63
Architettura: GNU/Linux
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
64
Architettura: MINIX
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
65
Architettura: Mac OS X
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
66
Funzionalita di base
Le componenti fondamentali di un SO
Inizializzazione del sistema
Gestione dei processi
Gestione della memoria
Gestione delle periferiche I/O
Apparati di comunicazione
Gestione dei file
Gestione Syscall/interrupt
Protezione
System Utility
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
67
Processo
Un processo e l’astrazioneche il s.o. usa perrappresentare unprogramma in esecuzione
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
68
Gestione della memoria
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
69
Gestione I/O
Il s.o. avvia, interrompe e controlla il flusso di dati da e verso idispositivi di I/O
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
70
File system
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
71
System call
Il sistema operativo e il gestore esclusivo di tutte le risorse diun sistema al fine di:
Garantire una gestione ottimale delle stesse
Evitare collisioni
Fornire modalita semplificate per il loro uso
Per usare una risorsa occorre rivolgersi al s.o. tramite unachiamata di sistema (syscall)
Il formato delle syscall differisce tra le varieimplementazioni dei sistemi operativi
In ambito UNIX e stato fatto uno sforzo distandardizzazione: POSIX
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
72
System call e librerie
Le system call sono generalmente incapsulate in librerie.Un programma applicativo che vuole accedere ad unasyscall deve solitamente:
Chiamare la routine di libreria collegataQuesta provvede a formattare i parametri opportunamentee a richiamare la syscall effettiva
In realta non sono normali chiamate di procedura, mainterruzioni software a cui il s.o. fa fronte svolgendo ilservizio richiesto
1
2 mov eax, 13 int 0x80
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
73
Syscall in un s.o. monolitico
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
74
Syscall in Mac OS X
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
75
Syscall in MINIX
SistemiOperativi
BruschiMartignoni
Monga
Arch. di uns.o.
Componenti
Syscall
76
Network client-server
Il modello e generalizzabile al caso di ambiente distribuito suuna rete (locale, geografica?)