struttura dei sistemi operativi · architettura android giorgio giacinto 2018 sistemi operativi 35...
TRANSCRIPT
Servizi di un sistema operativo
Gior
gio
Giac
into
201
8
Sistemi Operativi
3
Il Sistema Operativo è» Una interfaccia uomo-macchina
˃ per rendere l’hardware usabile, programmabile
» Un gestore di risorse˃ condividere le risorse hardware fra più utenti e
programmi
» Un sistema che evolve nel tempo˃ in risposta a nuove funzionalità hardware˃ in risposta a nuove esigenze d’uso
Gior
gio
Giac
into
201
8
4
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
5
Cos’è una chiamata al sistema?» Il SO mette a disposizione i suoi servizi ai
programmi utente attraverso funzioni (C, C++…)˃ Alcune porzioni potrebbero essere scritte in
assembly
» Il programmatore interagisce con il SO tramite API (Application Programming Interface)˃ Funzioni in linguaggio di alto livello (C, C++,…)˃ Sintassi standard delle API (POSIX, Win32)
» Un servizio del SO tramite API può coinvolgere più di una chiamata al sistema
Gior
gio
Giac
into
201
8
6
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
7
Servizi del sistema operativo echiamate al sistema
Copia di dati da un file a un altro
APIUn esempio
Gior
gio
Giac
into
201
8
Sistemi Operativi
8
» read() - API UNIX - Linux˃ int fd – descrittore file da cui leggere˃ void *buf - buffer in cui scrivere i dati provenienti dai file˃ size_t count - numero massimo di byte da trasferire dal file al
bufferLa funzione ritorna il numero di byte effettivamente letti
Gior
gio
Giac
into
201
8
Sistemi Operativi
9
Chiamata al sistema open()Gi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
10
Libreria standard del linguaggio C - write()
Categorie di chiamate di sistema» Controllo dei processi
» Gestione dei file
» Gestione dei dispositivi
» Gestione delle impostazioni di base
» Comunicazione
Gior
gio
Giac
into
201
8
11
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
12
Esempi chiamate di sistemaUNIX - Win32
Windows UNIXControllo 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()
Esecuzione nel MS-DOSGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
13(a) All’avviamento del sistema (b) Durante l’esecuzione di un programma
Esecuzione di più programminel sistema operativo FreeBSD
Gior
gio
Giac
into
201
8
Sistemi Operativi
14
Gior
gio
Giac
into
201
8
Sistemi Operativi
15
Programmi di sistema» Programmi accessori e programmi di utilità di
sistema˃ Gestione, modifica, backup di file˃ Informazioni di stato˃ Ambienti di supporto alla programmazione (compilatori,
debugger, ecc.)
» Altri programmi inclusi nel sistema, ma non parte del sistema in senso stretto˃ Web browser˃ Office automation˃ Lettori multimediali
Gio
rgio
Gia
cint
o 20
18
16
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
17
Aspetti della progettazione e realizzazione» Scopi
˃ Campo di utilizzo del sistema e categorie di utenti
» Criteri (policy) e meccanismi˃ Cosa fare e come farlo
» Realizzazione˃ Linguaggi di alto livello e linguaggio assembly
Gior
gio
Giac
into
201
8
18
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
19
Struttura semplice» È la struttura tipica dei primi sistemi operativi
˃ Progettati ad hoc per utilizzare in modo più agevole i sistemi di calcolo
˃ Riflettono le limitazioni dell’hardware˃ Es. MS-DOS e prime versioni UNIX
» Caratteristiche salienti˃ Scarsa modularità
+ Progettato in modo monolitico˃ Possibilità di accesso diretto a I/O dei programmi
utente
Gio
rgio
Gia
cint
o 20
18
20
Sistemi Operativi
Struttura sempliceMS-DOS
Gior
gio
Giac
into
201
8
Sistemi Operativi
21ROM BIOS device drivers
application program
MS-DOS device drivers
resident system program
Gior
gio
Giac
into
201
8
Sistemi Operativi
22
Struttura sempliceUNIX
Struttura a strati» Necessario supporto hardware» Suddivisione in moduli
˃ Il sistema operativo può nascondere gran parte delle funzionalità di basso livello
+ Maggior sicurezza del sistema da usi impropri˃ Aggiornamento e aggiunta di funzionalità più
agevole˃ I programmatori interagiscono solo con le funzioni
esposte ad alto livello (API)
Gior
gio
Giac
into
201
8
23
Sistemi Operativi
Gior
gio
Giac
into
201
8
Sistemi Operativi
24
Struttura a strati Modello “a buccia di cipolla”
Problemi di progettazione:
- numero degli strati
- funzionalità presenti in ciascuno strato
- efficienza del sistema
Microkernel» Anni ‘80: i kernel dei sistemi operativi erano di
dimensioni elevate» Microkernel: individuare le funzioni essenziali,
implementando il resto come processi utenteEs. sistema Mach (Carnegie Mellon)
» I componenti esterni al microkernel sono implementati come processi server˃ Interagiscono fra di loro tramite scambio di messaggi
attraverso il microkernel+ possibile fonte di rallentamenti del sistema
Gior
gio
Giac
into
201
8
25
Sistemi Operativi
Microkernel
Gior
gio
Giac
into
201
8
26
Sistemi Operativi
ApplicationProgram
FileSystem
DeviceDriver
InterprocessCommunication
memorymanagment
CPUscheduling
messagesmessages
microkernel
hardware
usermode
kernelmode
Struttura modulare» Modalità di progettazione mutuata dalla
programmazione orientata agli oggetti˃ kernel con componenti fondamentali˃ funzionalità integrative realizzati come moduli
caricabili dinamicamente+ ad es., supporto per file system diversi
˃ i moduli possono comunicare fra loro senza l’intervento del kernel
» Aspetti positivi della struttura a strati e a microkernel
Gior
gio
Giac
into
201
8
27
Sistemi Operativi
Sistemi ibridi» I SO moderni non seguono un modello in
particolare˃ Le funzionalità possono essere realizzate seguendo
modelli diversi+ Scopo+ Prestazioni+ Esperienza utente
Gior
gio
Giac
into
201
8
28
Sistemi Operativi
Struttura dei moderni SOGi
orgi
o Gi
acin
to 2
018
29
Sistemi Operativi
I/O devicesand
networking
System interconnect(bus)
Software
Applicationprogramming interface
Instruction SetArchitecture
Hardware
Mainmemory
Memorytranslation
Execution hardware
Figure 2.1 Computer Hardware and Software Structure
Application programs
Applicationbinary interface
Operating system
Libraries/utilities
Struttura MS Windows
Gior
gio
Giac
into
201
8
30
Sistemi Operativi
User mode
Kernel mode
Figure 2.14 Windows Architecture
Sessionmanager
Systemthreads
System service dispatcher
WinlogonLsass
Lsass = local security authentication serverPOSIX = portable operating system interfaceGDI = graphics device interfaceDLL = dynamic link libraries
Colored area indicates Executive
System supportprocesses
Service processes Applications
Environmentsubsystems
Service controlmanager
Services.exe
SpoolerWinmgmt.exe
SVChost.exe
Userapplication
Subsytem DLLs Win32
Ntdll.dll
WindowsExplorer
Task manager
(Kernel-mode callable interfaces)Win32 USER,
GDI
Graphicsdrivers
Hardware abstraction layer (HAL)
File system cache
Object m
anager
Plug and playm
anager
Power m
anager
Security referencem
onitor
Virtual m
emory
Processes andthreads
Configuration
manager (registry)
Local procedurecall
POSIX
Deviceand filesystemdrivers
I/O manager
Kernel
Struttura UNIXGi
orgi
o Gi
acin
to 2
018
31
Sistemi Operativi
Hardware Level
Kernel Level
User Level
User Programs
Trap
Hardware Control
System Call Interface
Libraries
Device Drivers
File Subsystem ProcessControl
Subsystem
character block
Buffer Cache
Inter-processcommunication
Scheduler
Memorymanagement
Figure 2.15 Traditional UNIX Kernel
Gior
gio
Giac
into
201
8
Sistemi Operativi
32
Struttura di Mac OS Xhttps://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/OSX_Technology_Overview
Struttura di iOShttps://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview
Gior
gio
Giac
into
201
8
Sistemi Operativi
33
Struttura Software di Android
Gior
gio
Giac
into
201
8
Sistemi Operativi
34
Figure 2.20 Android Software Architecture
Display Driver
Implementation:
Applications, Application Framework: Java
System Libraries, Android Runtime: C and C++
Linux Kernel: C
Contacts Voice Dial Email Calendar MediaPlayer Albums Clock
Home Dialer SMS/MMS IM Browser Camera Alarm Calculator
Camera Driver Bluetooth Driver
Linux Kernel
Application Framework
Applications
System Libraries Android RuntimeCore Libraries
Dalvik Virtual Machine
Flash MemoryDriver
Binder (IPC)Driver
USB Driver Keypad Driver WiFi Driver
SGL SSL Libc
OpenGL/ES FreeType LibWebCore
Surface Manager Media Framework SQLite
Audio Drivers PowerManagement
Activity Manager WindowsManager Content Providers View System Notification
Manager
Package Manager TelephonyManager Resource Manager Location Manager XMPP Service
Architettura AndroidGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
35
Figure 2.22 Android System Architecture
Camera Driver Display DriversAudio Driver(ALSA, OSS, etc) Other Drivers
Linux Kernel
Binder IPC
Android Runtime/Dalvik
Applications and Framework
Camera HAL Graphics HALAudio HALOther HALs
ActivityManager
WindowManager
Other Services
PowerManagerService
CameraService
MediaPlayerService
Other MediaServices
Hardware Abstraction Layer (HAL)
Android System Services
Media Server System Server
AudioFlinger