• Non ci sono risultati.

Sistema di protezione (1)

N/A
N/A
Protected

Academic year: 2022

Condividi "Sistema di protezione (1) "

Copied!
25
0
0

Testo completo

(1)

Sistema di protezione (1)

- Un processo potrebbe tentare di modificare il

programma o i dati di un altro processo o di parte del S.O. stesso.

- Protezione: politiche (cosa) e meccanismi (come) per controllare l'accesso di processi alle risorse del

sistema di elaborazione

(2)

Sistema di protezione (2)

All'hardware é affidato il compito di

rilevazione

di

errori, come

op code

illegali o riferimenti in memoria illegali, possibili effetti di errori di programmazione o di comportamenti deliberatamente intrusivi.

Esempi:

- L'hardware di indirizzamento della memoria assicura che un processo possa operare solo entro il proprio spazio di indirizzi.

- L'I/O system impedisce l'accesso diretto ai dispositivi

Pagina 2

(3)

Sistema di protezione (3)

- Questi errori vengono

segnalati

e affidati alla

gestione

del S.O. tramite il meccanismo delle

trap

.

- In presenza di errore o di violazione della protezione il S.O. provvede a:

o terminare il processo,

o segnalare la terminazione anomala ed o effettuare un

dump

della memoria.

(4)

Sistema di protezione (4)

- Ciascun processo opera in un

dominio di protezione

che specifica le risorse a cui il processo può accedere e le operazioni consentite.

- Diritto di accesso (coppia ordinata <risorsa, diritti>):

abilitazione all’esecuzione di un’operazione sulla

risorsa; un dominio di protezione è una collezione di diritti di accesso.

Pagina 4

(5)

Protezione (1)

• Il sistema di protezione richiede l'esistenza di

più modi di funzionamento

della CPU:

o

supervisor mode

(system mode, monitor mode) o

user mode

• Il passaggio dal modo

user

al modo

supervisor

avviene tramite

interruzione

:

o esterna (asincrona)

o interna (sincrona, trap), generata da una SVC (SuperVisor Call o System call).

(6)

Protezione (2)

• Il passaggio dal modo

supervisor

al modo

user

avviene tramite un’istruzione speciale di

cambiamento di modo

eseguita dal S.O. prima della cessione del controllo ad un processo utente.

• Esistono delle istruzioni privilegiate che possono essere eseguite solo in

system

mode

Pagina 6

(7)

Protezione (3)

• Istruzioni

privilegiate

: o I/O

o modifica dei registri che delimitano le partizioni logiche di memoria

o manipolazione del sistema di interruzione o cambiamento di modo

o halt

(8)

Protezione della memoria con registri limite

0

monitor

300040

420940

job4 job3 job2 job1

Prima di mettere un

processo in esecuzione il S.O. ne confina lo

spazio logico di memoria mediante registri limite

256000

300040

registro base

420940

registro limite

880000

Pagina 8

1024000

(9)

Protezione della memoria con registri limite

no

<

>

base + limite no

trap al monitor del sistema operativo – errore di indirizzamento

base

CPU

indirizzo

memoria

(10)

Confinamento del programma utente

Dispositivi I/O

Sistema Operativo

Programma utente

F i l e S y s t e m System call (SVC)

Pagina 10

(11)

Esecuzione delle operazioni di I/O

read

trap al (1) monitor

system call n

(2) esecuzione dell’operazione di I/O

(3) rientro nel programma utente case n

Programma utente

Le istruzioni di I/O sono privilegiate. Il programma utente richiede

al S.O.

,

tramite una

system call,

di eseguire l'operazione di I/O.

(12)

System call

• Tipicamente l'operando dell’istruzione di system call ne specifica il tipo (INT n), mentre il passaggio degli eventuali parametri avviene tramite registri o per

indirizzo.

• Passaggio dei parametri mediante tabella:

X: parametri per la chiamata

Load Address X SVC 13

X

Registro

Usa i parametri della tabella X

Codice per SVC 13

Pagina 12

Programma utente Sistema Operativo

(13)

System call (1)

• Costituiscono

l'interfaccia

tra un programma in esecuzione ed il S.O.

• Istruzioni

assembly

, procedure chiamabili da

linguaggi

high-level

. Nei linguaggi di alto livello sono tipicamente mascherate dal supporto, a tempo di

esecuzione.

(14)

System call (2)

• Categorie principali di system call:

a) controllo dei processi e dei job

b) manipolazione dei file e dei dispositivi c) gestione delle informazioni

d) comunicazione

Pagina 14

(15)

System call (3)

a) controllo dei processi e dei job

• end, abort

• load, execute

• create process, terminate process

• get, set process attributes

• wait for time, wait for event, signal event

• allocate, free memory

• dump, trace

(16)

System call (4)

b) manipolazione dei file e dei dispositivi

• create, delete file

• open, close

• read, write, reposition file or device

• get, set file or device attributes

• request, release device

Pagina 16

(17)

System call (5)

c) gestione delle informazioni

• get, set time or date

• get, set system data

• get, set attributes

d) comunicazione

• create, delete communication connection

• open, close communication

• send, receive message

(18)

Programmi di sistema

Di varia natura:

• manipolazione dei file (editor, cp, mv, rm, mkdir, ...)

• Informazioni di stato (date, time, who, df, ...)

• sviluppo software ed esecuzione (traduttori, linker e loaders, debuggers)

• comunicazione (rlogin, ftp, mail)

• applicativi (spreadsheet, latex, ...)

interprete dei comandi

: esegue i comandi realizzati come programmi di sistema speciali (unix)

Pagina 18

(19)

Struttura del S.O.

• Necessità di modularizzazione, date le dimensioni

• Sistema a

livelli

: il livello più interno è l'hw, quello più esterno l'interfaccia utente

• Affinché il livello Li possa richiedere i servizi al livello Li-1 deve conoscerlo precisamente, tuttavia

l'

implementazione

di tali servizi deve risultare totalmente nascosta.

(20)

Struttura del S.O.

Operazioni nascoste Nuove operazioni

Operazioni esistenti

Strato M

Strato M -1

Pagina 20

(21)

La struttura "a cipolla"

File System Periferiche virtuali Programmi di utilità

Interprete comandi Programmi utente

Gestore memoria virtuale

Nucleo

(22)

Struttura del S.O. (1)

• La stratificazione più opportuna può risultare non evidente; è dipendente dall'evoluzione tecnologica dell'hw.

• Sistema a

macchine virtuali

: usando lo

scheduling

della CPU e la tecnica della memoria virtuale, si possono creare macchine virtuali, una per ogni processo.

o Si consegue il massimo livello di protezione, a scapito dell'efficienza.

Pagina 22

(23)

Struttura del S.O. (2)

- Realizzazione in linguaggi ad alto livello

(UNIX BSD4.3: 3% assembly, il resto in C)

-

Nucleo

o

kernel

: mette a disposizione le system call ai programmi di sistema ed applicativi.

(24)

Nucleo di un S.O.

• Fornisce un meccanismo per la creazione e la distruzione dei processi

• Provvede allo

scheduling

della CPU, alla gestione della memoria e dei dispositivi di I/O

• Fornisce strumenti per la sincronizzazione dei processi

• Fornisce strumenti per la comunicazione tra processi

Pagina 24

(25)

Struttura gerarchica del S.O.

L0: bare machine

L1: processor management (lower module) / scheduler L2: memory management

L3: processor management (upper module)

[messaggi, creazione/distruzione processi]

L4: device management

L5: information management

Riferimenti

Documenti correlati

Operation Loads on the operand stack a reference from the variable table associated to the code frame being executed by the thread Format ASP VT LOAD table id index byte1 index

Questo lavoro si pone come obiettivo quello di esporre i passaggi nello sviluppo di un sistema per la realizzazione di tour virtuali, composto da un lato front-end per

Lavoro virtuale delle forze d’inerzia da energia

Passando ad analizzare lo schema, T em e T mp sono coppie fornite in ingresso direttamente dal motore e dalla pompa idraulica, T r `e la coppia trasmessa al ring tramite

Configurare Desktop LUbuntu 20.04.03 -Eliminare Barra superiore che occupa spazio inutilmente (2). • La barra è un pannello, lo si seleziona col mouse cliccando col tasto destro

Manipolando i risultati è possibile far eseguire al sistema reale (detto anche sistema host) le operazioni, mostrando poi ai processi interni della macchina virtuale (guest) effetti

A.5.6 Called/Calling Party Short Subscriber

La classe User Interface gestisce tutti gli aspetti legati all’interazione tra il sistema e gli utenti: in questo caso, dati che l’interfaccia utente deve supportare le attività