Capitolo 2 -- Silberschatz



Похожие документы
Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistema di protezione (2) Protezione (1)

Sistema di protezione (1)

Sommario della lezione

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI STRUTTURE DEI SISTEMI OPERATIVI

Sistema di protezione

Organizzazione Monolitica

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Il Sistema Operativo (1)

Capitolo 3: Strutture dei sistemi operativi

Il Software. Il software del PC. Il BIOS

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Approccio stratificato

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

SISTEMI OPERATIVI DISTRIBUITI

Architettura di un sistema operativo

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi

Capitolo Silberschatz

Protezione. Protezione. Protezione. Obiettivi della protezione

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Il Sistema Operativo

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione al Linguaggio C

Drivers. Introduzione Tipologie Struttura Interazione con il kernel

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

STRUTTURE DEI SISTEMI DI CALCOLO

Corso di Sistemi di Elaborazione delle informazioni

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere

CdL in Medicina Veterinaria - STPA AA

HARDWARE. Relazione di Informatica

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione a Dev-C++

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Nozioni di Informatica di base. dott. Andrea Mazzini

Software di base. Corso di Fondamenti di Informatica

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

CAPITOLO 1 I SISTEMI OPERATIVI

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Il computer: primi elementi

Come usare P-touch Transfer Manager

File system II. Sistemi Operativi Lez. 20

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Il File System. Il file system

Laboratorio di Informatica

Corso di Informatica

Introduzione alle applicazioni di rete

Esercitazione 1 primi passi e uso dei file

Sistemi operativi. Esempi di sistemi operativi

Introduzione ai Sistemi Operativi

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Architetture Applicative

Sistema operativo: Gestione della memoria

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Architettura di un calcolatore

Il sistema operativo

Strumenti per la programmazione

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE

Sistemi Operativi (modulo di Informatica II) Architettura

NOZIONI BASE PER ESERCITAZIONI

Informatica e Bioinformatica: Sistemi Operativi

Informatica. Il software (S.O.) e ancora sulle basi numeriche

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Corso di Alfabetizzazione Informatica

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo

Hardware di un Computer

Транскрипт:

Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz

Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema 1.2

Servizi per l utente generico 1.3

Servizi per l utente generico Esecuzione dei programmi Il SO carica in memoria ed esegue i programmi e ne termina l esecuzione in modo normale o anormale, indicandone l errore Operazioni di I/O - Un programma in esecuzione può richiedere I/O su file o dispositivi di I/O Gestione del file-system - I programmi necessitano di leggere e scrivere file e directory, crearne e cancellarne, accedere alle informazioni di gestione del file, gestire i permessi 1.4

Servizi per l utente generico Comunicazioni I processi possono scambiarsi informazioni, sullo stesso computer o tra computer su una rete Rilevazione dell errore il SO deve essere costantemente informato sugli errori CPU, hardware della memoria, I/O device, programmi utente Per ogni tipo di errore, il SO dovrebbe prendere le azioni appropriate per assicurare computazioni corrette e consistenti Strumenti di supporto per il debug incrementano le possibilità dell utente e dei programmatori di usare efficientemente il SO 1.5

Servizi impliciti Allocazione risorse Quando più utenti o processi vengono eseguiti concorrentemente, le risorse debbono essere allocate ad ognuno di essi Risorse : cicli CPU, memoria, file, dispositivi I/O Contabilizzazione Tenere traccia di quali utenti (e quanto) usano certe risorse 1.6

Servizi impliciti Protezione e sicurezza I proprietari di dati memorizzati in un sistema multiutente o connesso alla rete desiderano controllare l uso dei propri dati ed esser sicuri che i processi non interferiscano Protezione: tutti gli accessi alle risorse del sistema sono controllati Sicurezza: autenticazione degli utenti contro attacchi esterni una catena è tanto forte quanto il suo anello più debole. 1.7

Interfaccia utente CLI Le interfacce a linea di comando CLI permettono l invio diretto di comandi Caratteristiche multiple e opzioni shell A volte i comandi sono built-in (implementati nel kernel), altre sono semplici nomi di eseguibili Con il secondo approccio, l aggiunta di nuove caratteristiche non richiede la modifica della shell Unix: Bourne Shell, C Shell, Bourne-again Shell, Korn Shell 1.8

Interfaccia utente GUI Le interfacce grafiche forniscono desktop amichevoli I comandi sono forniti tramite mouse, tastiera, monitor Icone rappresentano file, programmi, azioni La pressione dei tasti del mouse sugli oggetti dell interfaccia causa varie azioni (recupero informazioni, opzioni, esecuzioni di funzioni, apertura di directory) Inventate a Xerox PARC, comuni con Apple Mac Molti sistemi oggi includono interfacce sia CLI che GUI Microsoft Windows offre una GUI ed una CLI Apple Mac OS X offre una GUI (Aqua), che poggia su un kernel UNIX, e mette a disposizione le shell UNIX Solaris offre una CLI e opzionalmente GUI (Java Desktop, KDE) 1.9

Servizi per il programmatore 1.10

Chiamate di sistema System Call Interfaccia per i programmatori ai servizi offerti dal SO Tipicamente scritte in un linguaggio ad alto livello (C or C++) 1.11

Gestione di chiamate di sistema Tipicamente ad ogni chiamata di sistema è associato un numero Il sistema mantiene una tabella indicizzata da questi numeri 1.12

Passaggio di parametri Spesso sono richieste informazioni aggiuntive all identificativo della system call Il tipo e la quantità di informazione dipendono dal SO e dalla call Tre metodi sono usati per passare i parametri al SO Passaggio dei parametri nei registri Parametri memorizzati in un blocco, o tabella in memoria, e l indirizzo del blocco viene passato al SO in un registro I parametri vengono posizionati nello stack dal programma e prelevati dal SO 1.13

Passaggio di parametri attraverso una tabella 1.14

API e Chiamate di sistema I programmi accedono alle chiamate di sistema principalmente tramite Application Programming Interface (API) piuttosto che chiamate dirette Tre API comuni sono la Win32 API per Windows, la POSIX API per sistemi POSIX-based (che virtualmente includono tutte le versioni di UNIX, Linux, e Mac OS X), e la Java API per la Java virtual machine (JVM) Perchè usare API invece di system call direttamente? Portabilità dei programmi, dettagli delle system call reali 1.15

Esempio API Considera la funzione ReadFile() - Win32 API I parametri passati a ReadFile() sono HANDLE file il file da leggere LPVOID buffer un buffer in cui I dati vengono letti DWORD bytestoread numero di byte da leggere nel buffer LPDWORD bytesread numero di byte letti durante l ultima read LPOVERLAPPED ovl indica se l I/O prevede la sovrapposizione 1.16

API System Call Relazione con il SO L interfaccia (API) alle chiamate di sistema invoca l opportuna chiamata di sistema e restituisce lo stato e qualunque valore di ritorno della chiamata stessa Il chiamante deve semplicemente seguire le specifiche dell API e capire cosa il SO fa a seguito di una chiamata l API nasconde al programmatore molti dettagli implementativi, gestiti dal sistema di supporto runtime (insieme di funzioni della libreria inclusa con il compilatore) 1.17

Categorie di system call Controllo dei processi Gestione dei file Gestione dei dispositivi Gestione delle informazioni di stato Comunicazioni 1.18

Categorie di system call Processi end, abort load, execute create process, terminate process get process attribute, set process attributes wait for time wait event, signal event allocate memory, free memory Dispositivi I/O request device, release device read, write, reposition get device attribute, set device attributes attach device, detach device File create file, delete file open, close read, write, reposition get file attribute, set file attributes Informazioni get time, get date, set time, set date get system data, set system data get process, file, or device attributes set process, file, or device attributes 1.19

Categorie di system call Comunicazioni: Scambio di massaggi gethostid IP address getprocessid PID open connection accept connection send/receive close connection Memoria condivisa shared memory create shared memory attach 1.20

Struttura del sistema operativo UNIX 1.21

System Call & librerie Una system call è un entry point del kernel per fornire servizi ai processi che li richiedono man 2 fornisce la documentazione sulle system call (definite in C) system call funzione omonima nella libreria standard (wrapper) Es. ssize_t write (int filedes, void *buff, size_t nbytes); l'utente chiama il wrapper (attraverso la sequenza standard di chiamate a funzioni di C), questo invoca il servizio del kernel Semplifichiamo: System Call = Funzioni C 1.22

Esempio della libreria C Standard Un programma C che invoca la funzione di libreria printf(), la quale ha bisogno di chiamare la system call write() 1.23

System Call & Librerie system call: interfaccia minima, mentre le funzioni di libreria forniscono più elaborate funzionalità libc: interfaccia normale system call sono definitive dal s.o., le funzioni di libreria no! 1.24

Programmi di sistema Alcuni sono semplici interfacce alle chiamate di sistema. Altri sono considerevolmente più complessi. Programmi di sistema Sistem call 1.25

Programmi di sistema Gestione dei File - Create, delete, copy, rename, print, dump, list, e programmi per manipolare file e directory Gestione informazioni di stato Alcuni chiedono al SO informazioni quali data, ora, quantità di memoria disponibile, spazio su disco, numero di utenti Altri forniscono dettagli sulle prestazioni, informazioni sulle operazioni di log e il debug Tipicamente, questi programmi formattano e stampano le informazioni al terminale o su altri dispositivi di output Alcuni sistemi implementano un file registro, usato per memorizzare e recuperare informazioni di configurazione del SO 1.26

Programmi di sistema Editing dei File Editor di testo per creare e modificare file Comandi speciali per cercare contenuti di file o elaborare il testo Supporto ai linguaggi di programmazione - Compilatori, assemblatori, debugger e interpreti Caricamento ed esecuzione dei programmi Caricatori assoluti, caricatori rilocabili, linker, e caricatori di overlay, sistemi di debug per linguaggi ad alto livello Comunicazioni Forniscono un meccanismo per creare connessioni virtuali tra processi, utenti, e sistemi di calcolatori Permettono agli utenti di inviare messaggi ad un altro schermo, sfogliare pagine web, inviare messaggi di posta elettronica, login remoto, trasferire file da una macchina ad un altra 1.27