SISTEMIOPERATIVI
GiorgioGiacinto2015
Struttura
dei
Sistemi
Operativi
2
SistemiOperativi
GiorgioGiacinto2015
Panoramicadeiservizidel
sistemaoperativo
3
GiorgioGiacinto2015
SistemiOperativi
4
SistemiOperativi
Cos’èunachiamataal
sistema?
» IlSOmetteadisposizioneisuoiserviziai
programmiutenteattraversofunzioni(C,C++…)
˃ Alcuneporzionipotrebberoesserescrittein
assembly
GiorgioGiacinto2015
» IlprogrammatoreinteragisceconilSOtramite
API (ApplicationProgrammingInterface)
˃ Funzioniinlinguaggiodialtolivello(C,C++,…)
˃ SintassistandarddelleAPI(POSIX,Win32)
» UnserviziodelSOtramiteAPIpuòcoinvolgere
piùdiunachiamataalsistema
5
SistemiOperativi
GiorgioGiacinto2015
Servizi delsistema operativo e
chiamate alsistema
Copia di dati da un file a un altro
SistemiOperativi
6
API
Unesempio
GiorgioGiacinto2015
» read() - APIUNIX- Linux
˃ int fd – descrittorefiledacuileggere
˃ void *buf - bufferincuiscrivereidatiprovenientidaifile
˃ size_t count - numeromassimodibytedatrasferiredalfileal
buffer
Lafunzioneritornailnumerodibyteeffettivamenteletti
7
SistemiOperativi
GiorgioGiacinto2015
Chiamataalsistemaopen()
8
SistemiOperativi
GiorgioGiacinto2015
Libreria standard
dellinguaggio C- write()
9
SistemiOperativi
Categoriedichiamatedi
sistema
» Controllodeiprocessi
» Gestionedeifile
» Gestionedeidispositivi
GiorgioGiacinto2015
» Gestionedelleimpostazionidibase
» Comunicazione
10
SistemiOperativi
GiorgioGiacinto2015
Esempichiamatedisistema
UNIX- Win32
Windows
UNIX
Controllo dei
processi
CreateProcess()
ExitProcess()
WaitForSIngleObject()
fork()
exit()
wait()
Gestione dei file
CreateFile()
ReadFile()
WriteFile()
CloseHandle()
open()
read()
write()
close()
Gestione dei
dispositivi
SetConsoleMode()
ReadConsole()
WriteConsole()
ioctl()
read()
write()
Gestione delle
informazioni
GetCurrentProcessID()
SetTimer()
Sleep()
getpid()
alarm()
sleep()
Comunicazione
CreatePipe()
CreateFileMapping()
MapViewOfFIle()
pipe()
shmget()
nmap()
Protezione
SetFileSecurity()
InitializeSecurityDescriptor()
SetSecurityDescriptorGroup()
chmod()
umask()
chown()
11
SistemiOperativi
GiorgioGiacinto2015
Esecuzione nel MS-DOS
(a) All’avviamento del sistema (b) Durante l’esecuzione di un programma
SistemiOperativi
12
GiorgioGiacinto2015
Esecuzione dipiù programmi
nel sistema operativo FreeBSD
13
GiorgioGiacinto2015
SistemiOperativi
14
SistemiOperativi
Programmidisistema
» Programmiaccessori eprogrammidiutilità di
sistema
˃ Gestione,modifica,backupdifile
˃ Informazionidistato
˃ Ambientidisupportoallaprogrammazione(compilatori,
debugger,ecc.)
GiorgioGiacinto2015
» Altriprogrammiinclusi nelsistema,manonparte
delsistemainsensostretto
˃ Webbrowser
˃ Officeautomation
˃ Lettorimultimediali
15
GiorgioGiacinto2015
SistemiOperativi
16
SistemiOperativi
Aspettidellaprogettazionee
realizzazione
» Scopi
˃ Campodiutilizzodelsistemaecategoriediutenti
» Criteri(policy)emeccanismi
GiorgioGiacinto2015
˃ Cosa fareecomefarlo
» Realizzazione
˃ Linguaggidialtolivelloelinguaggioassembly
17
GiorgioGiacinto2015
SistemiOperativi
18
SistemiOperativi
Strutturasemplice
» Èlastrutturatipicadeiprimisistemioperativi
˃ Progettatiadhoc perutilizzareinmodopiùagevolei
sistemidicalcolo
˃ Riflettonolelimitazionidell’hardware
˃ Es.MS-DOSeprimeversioniUNIX
» Caratteristichesalienti
GiorgioGiacinto2015
˃ Scarsamodularità
+ Progettatoinmodomonolitico
˃ PossibilitàdiaccessodirettoaI/Odeiprogrammi
utente
19
SistemiOperativi
Struttura semplice
MS-DOS
application program
resident system program
GiorgioGiacinto2015
MS-DOS device drivers
ROM BIOS device drivers
SistemiOperativi
20
GiorgioGiacinto2015
Struttura semplice
UNIX
21
SistemiOperativi
Strutturaastrati
» Necessariosupportohardware
» Suddivisioneinmoduli
˃ Ilsistemaoperativopuònascondere granpartedelle
funzionalitàdibassolivello
GiorgioGiacinto2015
+ Maggiorsicurezzadelsistemadausiimpropri
˃ Aggiornamentoeaggiuntadifunzionalitàpiù
agevole
˃ Iprogrammatoriinteragisconosoloconlefunzioni
esposteadaltolivello(API)
22
SistemiOperativi
Struttura astrati
Modello “abuccia dicipolla”
Problemi di
progettazione:
- numero degli strati
- funzionalità presenti
in ciascuno strato
GiorgioGiacinto2015
- efficienza del sistema
23
SistemiOperativi
Microkernel
» Anni‘80:ikernel deisistemioperativieranodi
dimensionielevate
» Microkernel:individuarelefunzioniessenziali,
implementandoilrestocomeprocessiutente
Es.sistemaMach(CarnegieMellon)
GiorgioGiacinto2015
» Icomponentiesternialmicrokernel sono
implementaticomeprocessiserver
˃ Interagisconofradilorotramitescambiodimessaggi
attraversoilmicrokernel
+ possibilefontedirallentamentidelsistema
24
SistemiOperativi
Microkernel
Application
Program
File
System
messages
Interprocess
Communication
Device
Driver
user
mode
messages
memory
managment
CPU
scheduling
kernel
mode
GiorgioGiacinto2015
microkernel
hardware
25
SistemiOperativi
Strutturamodulare
» Modalitàdiprogettazionemutuatadalla
programmazioneorientataaglioggetti
˃ kernel concomponentifondamentali
˃ funzionalitàintegrativerealizzaticomemoduli
caricabilidinamicamente
+ ades.,supportoperfilesystem diversi
GiorgioGiacinto2015
˃ imodulipossonocomunicarefralorosenza
l’interventodelkernel
» Aspettipositividellastrutturaastratiea
microkernel
26
SistemiOperativi
Sistemi ibridi
» ISOmoderninonseguonounmodelloin
particolare
˃ Lefunzionalitàpossonoessererealizzateseguendo
modellidiversi
GiorgioGiacinto2015
+ Scopo
+ Prestazioni
+ Esperienzautente
27
SistemiOperativi
Struttura dei moderni SO
Application
programming interface
Application
binary interface
Instruction Set
Architecture
Application programs
Libraries/utilities
Software
Operating system
Execution hardware
GiorgioGiacinto2015
System interconnect
(bus)
I/O devices
and
networking
Memory
translation
Hardware
Main
memory
28
SistemiOperativi
GiorgioGiacinto2015
Struttura MSWindows
29
SistemiOperativi
Struttura diMacOSX
GiorgioGiacinto2015
https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/OSX_Technology_Overview
30
SistemiOperativi
Struttura diiOS
GiorgioGiacinto2015
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview
31
SistemiOperativi
GiorgioGiacinto2015
Struttura diAndroid
32
SistemiOperativi