Sistemi Operativi: Componenti - Lezione 02

Preview:

Citation preview

1

I componenti del Sistema Operativo• Un SO viene progettato ed implementato

a moduli• Interfaccia ben definita fra programmi

utente e moduli del SO• Gli aspetti interni dei diversi SO possono

variare notevolmente– requisiti diversi– obiettivi di design diversi

• Primo passo della progettazione:–DEFINIRE GLI SCOPI DEL SO

• In base agli scopi, si definisce il design

2

Componenti di un SO

SO

3

Componenti di un SO

Gestioneprocessi

SO

4

Componenti di un SO

Gestioneprocessi

Gestionememoriacentrale

SO

5

Componenti di un SO

Gestionememoria

secondaria SO

6

Componenti di un SO

Gestionesistema

I/O

SO

7

Componenti di un SO

Gestionefile

SO

Char devices

8

Componenti di un SO

Gestionefile

SO

Block devices

9

Componenti di un SO

Gestionefile

SO

Block device

10

Componenti di un SO

Sistema diprotezione

SO

P1

P2

11

Componenti di un SO

Sistema diprotezione

SO

P1

P2

12

Componenti di un SO

GestionereteSO

13

Componenti di un SO:il quadro complessivo

Gestioneprocessi

Gestionememoriacentrale

Gestionememoria

secondaria

Gestionesistema

I/O

Gestionerete

Gestionefile

Sistema diprotezione

SO

14

Gestione dei processi• Attività principale CPU: esecuzione di

codice• PROCESSO: è un programma in

esecuzione– area codice del processo– area dati del processo– stato del processo

• Tipici processi:– programmi utente– esecuzione driver sistema operativo– servizi (spool di stampa, server Web)

15

Gestione dei processi• PROCESSO != PROGRAMMA• Programma: entità passiva– contenuto di un file (codice) scritto su disco

• Processo: entità attiva– può essere eseguito– ha bisogno di tutta una serie di informazioni

aggiuntive per potersi coordinare con altri processi

– due o più processi possono eseguire lo stesso programma

♦sequenze di esecuzione distinte

16

Gestione dei processi• Un processo, per svolgere i propri

compiti, ha bisogno di risorse– tempo di CPU, accesso a file, dispositivi I/O

• Le risorse possono essere assegnate al processo:– al momento della sua creazione– durante la sua esecuzione

17

Gestione dei processi• Il processo è l'unità di lavoro del SO• SO: caratterizzato da un insieme di

processi– organizzazione ad albero– esecuzione concorrente e sequenziale

♦concorrente: più processi in esecuzione simultaneamente

♦sequenziale: ciascun processo esegue gruppi di istruzioni, una alla volta

18

Gestione dei processi• Responsabilità del SO:– creare processi utente e di sistema– cancellare processi utente e di sistema– sospendere e ripristinare processi– fornire meccanismi per la sincronizzazione

di processo– fornire meccanismi per la comunicazione di

processo– fornire meccanismi per la gestione di

situazioni di stallo

19

Gestione della memoria centrale• Caratteristiche della memoria centrale:– vasto array accessibile per byte/parole– ciascun elemento della memoria ha il

proprio indirizzo–magazzino di dati velocemente accessibili– condivisa fra CPU e dispositivi di I/O

♦CPU legge istruzioni dalla memoria durante il ciclo di fetch delle istruzioni

♦CPU interagisce con la memoria in r/w durante il ciclo di fetch dei dati

♦Trasferimento efficiente dei dati tramite DMA

20

Gestione della memoria centrale• Solitamente, la memoria è l'unico

dispositivo indirizzabile direttamente dalla CPU– i dati del disco, vanno trasferiti in memoria

attraverso richieste di I/O, prima di poter essere utilizzati

– le istruzioni vanno trasferite in memoria centrale prima di poter essere eseguite

21

Gestione della memoria centrale• Schema di esecuzione di un programma

1.Il programma viene mappato in indirizzi assoluti e caricato in memoria.

2.Viene generato l'indirizzo assoluto corrispettivo ad istruzione/dato corrente.

3.Viene eseguita l'istruzione corrente oppure elaborato il dato corrente.

4.Al termine dell'esecuzione, lo spazio di memoria occupato dal processo viene reso di nuovo disponibile.

22

Gestione della memoria centrale• La memoria centrale è un dispositivo

molto veloce– più processi mantengo in memoria centrale,

più veloce sarà la loro esecuzione

• Diversi schemi di gestione della memoria– la scelta dello schema più adatto dipende

dalle esigenze specifiche– in pratica, il tipo di hardware detta la scelta

dello schema di gestione

23

Gestione della memoria centrale• Responsabilità del SO:– tenere traccia di quali parti della memoria

sono attualmente utilizzate e da chi– decidere quali processi debbano essere

caricati in memoria quando vi sia lo spazio disponibile

– allocare e deallocare lo spazio di memoria in base alle necessità

24

Gestione della memoria secondaria• La memoria centrale è troppo piccola per

poter contenere l'intero insieme di programmi– serve una memoria secondaria di ausilio a

quella centrale

• Caratteristiche memoria secondaria:–molto più ampia della memoria centrale–molto più lenta della memoria centrale

25

Gestione della memoria secondaria• Tipicamente, la memoria secondaria

viene fornita da un disco– dispositivo di massa–memorizza codice e dati indifferentemente

• I programmi rimangono sul disco fino a quando non vengono eseguiti

• Quando un programma deve essere eseguito, viene caricato in memoria

26

Gestione della memoria secondaria• Responsabilità del SO:– gestione dello spazio libero su disco– allocazione di spazio su disco– scheduling/riordino delle richieste per il

disco

27

Gestione del sistema di I/O• SCOPI del sistema di I/O:–mascherare le differenze tra i vari dispositivi

di I/O– presentare all'utente una visione omogenea

dei dispositivi– concetti di:

♦File♦Directory♦File system

28

Gestione del sistema di I/O• Responsabilità del SO:– gestire un sistema di buffer caching

♦memorizzazione preventiva di dati non ancora letti dai programmi

♦scrittura dei dati a buffer riempito

– fornire un'interfaccia generica di uso per i device driver

29

Gestione dei file• Le informazioni possono essere

memorizzate sui supporti fisici più disparati– nastro magnetico– disco magnetico

– disco ottico

• Il SO maschera le differenze fra device e fornisce una visione unica ad alto livello– file

30

Gestione dei file• FILE: raccolta di informazioni definite dal

loro creatore– sequenza di bit, byte, righe o record– significato di tale sequenza definito dal

programmatore– contengono codice di programmi oppure dati

• L'organizzazione dei file è gerarchica– organizzazione per cartelle (directory)– rappresentazione ad albero

31

Gestione dei file• Responsabilità del SO:– creare e cancellare file– creare e cancellare directory– supportare primitive per la manipolazione di

file e directory–mappare file su memoria secondaria

32

Sistema di protezione• I diversi processi di un SO devono

essere protetti contro le attività di altri processi– attività involontarie o maliziose

• PROTEZIONE: meccanismo che controlla l'accesso alle risorse di calcolo da parte di:– programmi– processi– utenti

33

Sistema di protezione• ESEMPI DI MECCANISMI:– il SO sfrutta l'hardware di indirizzamento

della memoria per impedire che un processo possa accedere ad aree non di sua competenza

– il timer di sistema assicura che nessun processo possa acquisire il controllo indefinito della CPU

– esecuzione di istruzioni di I/O diretto solo tramite interfaccia privilegiata (system call)

– classificazione degli utenti e schema di permessi per accesso alle risorse

Recommended