struttura dei sistemi operativi · architettura android giorgio giacinto 2018 sistemi operativi 35...

18
Struttura dei Sistemi Operativi SISTEMI OPERATIVI Giorgio Giacinto 2018 Sistemi Operativi 2

Upload: others

Post on 04-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Struttura dei Sistemi Operativi

SISTEMI OPERATIVIGi

orgi

o Gi

acin

to 2

018

Sistemi Operativi

2

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