l chiamate di sistema (system calls)cicalese/so/lezione2.pdf · 1 operating system concepts – 7th...

9
1 2.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition Servizi offerti dal sistema operativo Lʼinterfaccia di un sistema operativo Chiamate di sistema (System Calls) Tipi di System Call Programmi di sistema Progetto ed implementazione di un sistema operativo Struttura di un sistema operativo Macchine virtuali 2.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition Descriveremo i servizi che un sistema operativo offre ad utenti, processi e altri sistemi Discuteremo diverse possibili strutture di un sistema operativo 2.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition Servizi agli utenti: User interface (UI) Command-Line (CLI), Graphics User Interface (GUI), Batch Esecuzione dei Programmi – caricamento in memoria ed esecuzione dei programmi e gestione della terminazione, normale o a causa di errori (es. abort) Operazioni di I/O - I programmi in esecuzione possono richiedere I/O: accesso a file e dispositivi di I/O. Operazioni sul File-system Lʼaccesso agevole al File System eʼ cruciale: I programmi usano file e directory per la memorizzazione Gestione dei permessi di accesso al file system

Upload: dohanh

Post on 07-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

1

2.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Servizi offerti dal sistema operativo   Lʼinterfaccia di un sistema operativo   Chiamate di sistema (System Calls)   Tipi di System Call   Programmi di sistema   Progetto ed implementazione di un sistema operativo   Struttura di un sistema operativo   Macchine virtuali

2.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Descriveremo i servizi che un sistema operativo offre ad utenti, processi e altri sistemi

  Discuteremo diverse possibili strutture di un sistema operativo

2.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Servizi agli utenti:   User interface (UI)

 Command-Line (CLI), Graphics User Interface (GUI), Batch   Esecuzione dei Programmi – caricamento in memoria ed esecuzione

dei programmi e gestione della terminazione, normale o a causa di errori (es. abort)

  Operazioni di I/O - I programmi in esecuzione possono richiedere I/O: accesso a file e dispositivi di I/O.

  Operazioni sul File-system  Lʼaccesso agevole al File System eʼ cruciale: I programmi usano file

e directory per la memorizzazione  Gestione dei permessi di accesso al file system

Page 2: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

2

2.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Servizi agli utenti (Cont):   Comunicazione – I Processi possono scambiarsi dati, anche tra

computer diversi, es. Collegati mediante una rete  Comunicazione: usa memoria condivisa o scambio di messaggi

  Riconoscimento degli errori – SO deve essere sempre al corrente di possibili errori verificatisi  Errori nella CPU e/o memoria, nei dispositivi di I/O devices, in

programmi utente  Per ogni errore, SO deve prevedere le opportune contromisure che

garantiscano elaborazione corretta e coerente  Servizi di Debugging permettono di migliorare lʼuso del sistema da

parte degli utenti e dei programmatori

2.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Servizi del SO per garantire efficienza del sistema stesso   Allocazione di Risorse – per multi-utenza e multi-programmazione   Contabilitaʼ – Quali utenti usano quali risorse ein che quantitaʼ   Protezione e sicurezza – In un ambiente multiutente o in rete i processi

concorrenti non dovrebbero intralciarsi o influenzarsi   Protezione assicurare accesso alle risorse controllato   Sicurezza del sistema dagli estranei, mediante autenticazione degli

utenti; esteso a regolare lʼaccesso ai dispositivi di I/O

2.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

CLI (command line interface) permette inserimento diretto dei comandi  Solitamente implementata in kernel, o da programmi di

sistema  A volte piuʼ di unʼinterfaccia CLI eʼ presente – shells  Principalmente riceve comandi dallʼutente e li esegue

–  I commandi sono implementati nella shell, –  I comandi sono nomi di programmi invocati dalla shell

»  Nuovi comandi non implicano modifiche alla shell

  Noi usereme BASH shell

2.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  User-friendly, metafora del desktop   mouse, keyboard, and monitor   Icone rappresentano file, programmi, azioni, etc.   Diversi usi del mouse per ottenere varie azioni (fornire dati,

opzioni, eseguire funzioni, aprire directory (aka folder)   Inventata alla Xerox PARC (anni ʻ70)

  Molti sistemi forniscono sia CLI che GUI

Page 3: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

3

2.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Interfaccia di programmazione ai servizi del SO   Scritte in un linguaggio di alto livello (C o C++)   Tipicamente lʼaccesso avviene mediante Application Program

Interface (API) e non mediante uso diretto delle system call   Win32 API per Windows,   POSIX API per sistemi POSIX-based (es. UNIX, Linux, e Mac

OS X),   Java API (JVM)

  Percheʼ usare API e non system call?

2.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Sequenza di System call per copiare un file in un altro

2.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  La funzione ReadFile() in Win32 API per leggere da un file

2.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Tipicamente, un numero associato ad ogni system call   Lʻinterfaccia alle System-call mantiene una tavola indicizzata

secondo tale numerazione   Lʼinterfaccia invoca la system call necessaria nel kernel e ritorna il

valore di stato della syscall e ogni valore ritornato dalla stessa   La funzione chiamante puoʼ ignorare lʼimplementazione della

system call   Deve rispettare le specifiche dellʼAPI e sapere cosa fa il SO in

seguito alla sua chiamata   Molti dettagli vengono nascosti dalla API

 Gestita mediante la run-time support library (funzioni fornite come librerie standard)

Page 4: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

4

2.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Un programma C invoca printf(), che usa la system call write()

2.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Spesso, eʼ necessario fornire dati al kernel associati alla system call   Il tipo e il numero di parametri dipende da SO e tipo di call

  In generale, 3 metodi per passare parametri al SO   Parametri passati tramite registri

  potrebbero esserci piuʼ parametri che registri   Parametri memorizzati in un blocco, o tavola, in memoria, il cui

indirizzo eʼ passato come parametro in un registro  Es. Linux e Solaris

  Parametri via stack: push dal programma e pop dal SO   Gli ultimi due metodi non limitano il numero di parametri

2.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

Page 5: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

5

2.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Controllo dei Processi   Gestione dei File   Gestione dei Dispositivi   Gestione delle Informazioni   Comunicazione

2.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

(a) At system startup (b) running a program

2.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  I programmi di Sistema forniscono ambienti specializzati per lo sviluppo e lʼesecuzione dei programmi:   Manipolazione di file   Informazioni di Stato   Modifica dei File   Funzioni di supporto alla programmazione   Caricamento ed esecuzione dei Programmi   Comunicazione   Programmi applicativi

  Per molti utenti lʼattivitaʼ del SO eʼ definita dai programmi di sistema piuʼ che dalle system call

Page 6: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

6

2.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Supporto per lo sviluppo e lʼesecuzione di programmi   da semplice interfaccia per system call; a funzioni molto piuʼ complesse

  File management - Create, delete, copy, rename, print, dump, list, e manipolare file e directory

  Informazioni di Stato   Inform. di sistema come: date, time, disponibilitaʼ di memoria, spazio

su disco, numero di utenti   Informazioni dettagliate su performance, informazioni di logging, e

debugging   In genere tali informazioni sono formattate dai prog. di sistema e

mandate in output

2.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Operazioni su file   Editor di testi per creare e modificare file   Comandi speciali per ricercare nei file od operarvi

trasformazioni testuali   Supporto alla programmazione: compilatori, linker, debugger, ed

interpreti   Caricamento ed esecuzione dei programmi- Absolute loaders,

relocatable loaders, linkage editors, and overlay-loaders, sistemi di debugging per linguaggio macchinae linguaggi di alto livello

  Comunicazioni – Fornisce meccanismi per creare connessioni virtuali tra processi, utenti e diversi calcolatori   Permette lʼinvio di messaggi tra utenti, browsing di pagine web,

trasferimento di file tra una macchina e lʼaltra, etc.

2.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Non esistono metodi infallibili; diversi approcci +/- efficaci   La struttura interna di sistemi operativi diversi puoʼ essere

estremamente differente   Punto di partenza: scopi e specifiche   Scelta dipendente dallʼhardware e dal tipo di sistema   User goal e System goal tipici:

  User goal – il sistema operativo dovrebbe essere conveniente, affidabile, facile da apprendere, sicuro e veloce

  System goal – il sistema operativo dovrebbe essere facile da progettare, implementare e manutenere, ed allo stesso tempo versatile, affidabile, efficiente e robusto

2.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  MS-DOS – scritto per ottenere la massima funzionalita in poco spazio   Progettato in maniera monolitica (poco modulare)

 Esiste una qualche strutturazione, ma i diversi livelli di funzionalitaʼ non sono ben separati

Page 7: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

7

2.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.27 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Il sistema operativo eʼ diviso in un numero di livelli, ciascuno costruito sul livello direttamente piuʼ basso. Il livello 0 eʼ costituito dallʼhardware della macchina, il livello piuʼ alto eʼ lʼinterfaccia utente

  Modularitaʼ, i livelli sono scelti in modo tale che ciascun livello usi le funzioni (operazioni) ed i servizi definiti dal/i livello/i inferiore/i

2.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.29 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  UNIX – il modello originario di UNIX era poco strutturato. Essenzialmente costituito da due parti separate   Programmi di sistema   Kernel

 Consiste di tutto cioʼ che eʼ al di sotto delʼinterfaccia delle system call ed al di sopra dellʼhardware

 Fornisce: file system, CPU scheduling, gestione della memoria, ed altre funzionalitaʼ.Decisamente molto per un solo livello

Page 8: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

8

2.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.31 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Tutto quanto non eʼ necessariamente parte del kernel, va nello spazio utente

  Comunicazione tra I moduli utente e di sistema mediante scambio di messaggi

  Benefici:   Eʼ piuʼ semplice estendere un microkernel   Piuʼ semplice da “portare” su nuove architetture   Maggiore affidabilitaʼ (meno codice gira in modalitaʼ kernel)   Piuʼ sicuro

  Difetti:   Perdita di performance per lʼeccesso di comunicazione tra

kernel e spazio utente

2.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 2.33 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Il concetto di macchina virtuale estremizza il modello a livelli. Considera lʼhardware ed il sistema operativo come se definissero insieme un sistema hardware

  Una macchina virtuale fornisce unʼinterfaccia identica a quella dellʼhardware sottostante

  Il sistema operativo crea lʼillusione della presenza di piuʼ processi ognuno eseguito sul proprio processore (virtuale) con la propria memoria.

Page 9: L Chiamate di sistema (System Calls)cicalese/SO/Lezione2.pdf · 1 Operating System Concepts – 7th Edition 2.3 Silberschatz, Galvin and Gagne ©2005 Servizi offerti dal sistema operativo

9

2.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

(a) Nonvirtual machine (b) virtual machine

Non-virtual Machine Virtual Machine

2.35 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition

  Protezione completa delle risorse del sistema: ogni macchina virtuale eʼ isolata dalle altre. In generale nessuna possibilitaʼ di condivisione

  Utile per studiare e sviluppare i sistemi operativi.   Lo sviluppo e il testing viene fatto sulla macchina virtuale senza

intaccare il normale ambiente di lavoro.   Di non semplice implementazione: bisogna fornire unʼesatta copia

della macchina ospite

2.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition