Anteprima
Vedrai una selezione di 3 pagine su 6
Domande di Teoria di Sistemi Operativi Pag. 1 Domande di Teoria di Sistemi Operativi Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Domande di Teoria di Sistemi Operativi Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Protezione e sicurezza. Dettagliatamente: come capisco quale

politica sto usando? Bell-La Padula e Biba.

modello

Un sistema definisce un per rappresentare le risorse/oggetti/file e gli utenti che posso-

no agire su queste, ogni utente avrà un dominio che contiene tutti le operazione che gli sono con-

cesse e su quali oggetti. Dato che ogni processo esegue per un determinato utente e può cam-

biare quest’associazione dinamicamente (per meglio implementare il principio del minimo privile-

gio) l’associazione tra processo e dominio è dinamica mentre tra utente e dominio è statica.

politica

L’utente del sistema deve poter specificare una che determini come le entità del model-

lo interagiscano tra loro, solitamente si ha: DAC, MAC e RBAC.

meccanismi

Il sistema infine offre dei per imporre una determinata politica, devono quindi esse-

re flessibili per supportare diverse politiche e al contempo essere distinti dalla politiche stesse.

I domini degli utenti possono essere rappresentati in maniera astratta da una matrice degli ac-

cessi che ha nelle righe ogni singolo utente e una colonna per ogni oggetto (o altro utente): ogni

2 di 6

cella mantiene l’elenco dei permessi per quell’utente relativamente a quell’oggetto. Tra i diritti tro-

copy flag

viamo il che permette di passare il diritto ad altri utenti (per copia o per trasferimento) e

owner

il diritto per gestire i permessi di tutti gli utenti per un determinato oggetto, tipici di una po-

control

litica DAC. Il diritto è invece tipico di una politica MAC e permette di gestire i permessi di

un determinato utente per qualunque oggetto.

La matrice degli accessi è sparsa quindi conviene memorizzarla per colonne (Access Control

List) o per righe (Capability List). Quest’ultime sono più efficienti nella gestione dei permessi in

quanto centralizzano i permessi di ogni utente in un singolo posto ma le ACL sono più performanti

nella gestione dei permessi di un certo oggetto per tutti gli utenti, si predilige quindi un sistema

misto che salva su disco le ACL e man mano che vengono accedute costruisce la CL in memoria

centrale.

In sistemi con politica MAC si ricorre solitamente a due modelli. Il modello Bell-La Padula è in-

centrato sul mantenimento dei segreti a scapito dell’integrità, tipico di un ambiente militare. Ven-

gono definiti 4 livelli di appartenenza per file e utenti. La proprietà di semplice sicurezza impone

che sia possibile leggere solo al proprio livello o inferiori, la proprietà * che sia possibile scrivere

solo al proprio o superiori. Il modello Biba invece è incentrato sulla collaborazione e funziona al

contrario: la proprietà di semplice sicurezza permette una scrittura solo al proprio livello o inferiori

mentre la proprietà di integrità * permette di leggere solo al proprio livello o superiori.

Nel caso di sistemi fidati in cui occorre un controllo a ogni accesso (e non solo al primo) si ricor-

re ai Reference Monitor che sfruttando una Trusted Computing Base (che contiene i permessi ed

è protetta da modifiche non autorizzate) si occupa di eseguire i controlli e tenere traccia in un file

audit file

di log detto di tentativi di violazione dell’accesso e modifiche autorizzate alla TCB.

Semafori nella memoria comune: descrizione generale, rela-

zione d’invarianza e dimostrazioni.

Un semaforo può essere visto come una variabile intera non negativa su cui eseguire due sole

operazioni: P e V. Una P su un semaforo a 0 sospende il processo, altrimenti decrementa di 1 il

semaforo, una V su un semaforo risveglia uno dei processi sospesi se presenti, altrimenti lo in-

crementa di 1. Un semaforo ha:

val

• : valore corrente

I ≥ 0

• : valore iniziale

n

• : numero di P eseguite

P

n

• : numero di V eseguite

V

Varrà quindi sempre la relazione val = I + n − n

V P

Che dà luogo alla relazione d’invarianza n ≤ I + n

P V

I = 1

Nel caso di un semaforo di mutua esclusione si ha con il vincolo che ogni operazione

esegua prima la P poi la V per avere tre proprietà: N = n − n

A. Sezioni critiche della stessa classe sono mutuamente esclusive, cioè vale 1

sez P V

o 0, dimostrabile facilmente sfruttando la relazione d’invarianza e imponendo che P preceda

n ≤ n

sempre V, da cui segue .

V P N = 0 ∧ val = 0

B. Non si può avere deadlock, cioè che sia una situazione impossibile, so-

sez

stituendo nella relazione iniziale infatti risulta che non sia verificata.

C. Se i processi sono fuori dalla sezione critica l’accesso deve essere possibile e immediato,

N = 0 val = 1 I N

cioè se deve valere , come si può verificare facilmente sostituendo e

sez sez

all’interno della relazione iniziale.

Azioni atomiche: cosa sono, su cosa sono fatte, cosa vuol dire

stato consistente. Stati di un’azione monoprocesso e memoria

stabile.

Parzialmente risposta in precedenza

Un’azione atomica è uno strumento di alto livello per modellare programmi tolleranti ai malfun-

zionamenti facendo sì che ogni oggetto transiti sempre da uno stato consistente ad un altro. Dato

3 di 6

relazione invariate,

un tipo, questo definisce una se per un oggetto la relazione invariate del suo

tipo è verificata si dice che è in uno stato consistente.

Per garantire che gli oggetti rimangano sempre consistenti occorre garantire l’atomicità nei con-

o niente),

fronti della concorrenza (serializzabilità) e dei malfunzionamenti (tutto cioè che gli stati

intermedi dell’azione non siano visibili ad altri processi e che in caso di crash lo stato intermedio

degeneri nello stato iniziale (niente) o in quello finale (tutto).

Durante l’esecuzione di un’azione atomica mono processo si possono avere 3 stati:

• Working: gli oggetti sono in stati intermedi inconsistenti che non devono essere visibili ad altri

processi ed un eventuale malfunzionamento deve portare al ripristino dei valori iniziali (abort).

• Aborting: gli oggetti manipolati dall’azione stanno venendo ripristinati al valore iniziale e in

caso di crash deve essere garantito il completamento del ripristino.

• Committing: l’azione ha terminato la sua esecuzione ed è stata eseguita la commit garanten-

do che tutti gli oggetti siano in uno stato finale consistente, in caso di crash deve essere garan-

tito il salvataggio dello stato finale in memoria stabile.

La memoria stabile è un’astrazione che permette operazioni di scrittura e lettura atomiche grazie

all’uso di due dischi permanenti per replicare i dati:

• Se si ha un errore nella scrittura sul primo si ha l’effetto niente perché rimane valido il secon-

do;

• Se si ha un errore nella scrittura sul secondo si ha l’effetto tutto perché rimane valido il primo;

• Se si ha un errore tra la scrittura sui due blocchi entrambi saranno validi e si ha l’effetto tutto

completando l’operazione con la copia del primo nel secondo.

Un disco permanente è un’astrazione ottenuta eliminando ogni disturbo temporaneo come erro-

ri in lettura o scrittura.

Capability list: cosa sono, da cosa derivano e confronto con

ACL.

Le CL derivano dalla matrice degli accessi quando viene rappresentata per righe associando ad

ogni utente un elenco di oggetti e le relative operazioni permesse. Mentre le CL sono più perfor-

manti per controllare i permessi dei singoli utenti le ACL risultano più efficaci nella gestione dei

permessi di un determinato oggetto per tutti gli utenti, operazione molto comune.

Modello a scambio di messaggi: differenze tra comunicazioni

simmetriche e asimmetriche, sincrone e asincrone, con sintas-

si, differenza tra send sincrona e asincrona, perché sono utili le

guardie e sintassi delle guardie.

La comunicazione può avvenire lungo canali simmetrici 1-1 (link) in cui un solo processo comu-

nica con un solo altro, oppure asimmetrici in cui più processi comunicano con uno (port) o più

(mailbox) processi dall’altro lato.

La comunicazione avviene attraverso le primitive send e receive: definito il canale per accettare

messaggi di un certo tipo si usa la send per inviare un messaggio dello stesso tipo lungo un cana-

le di un altro processo, questo processo potrà quindi eseguire la receive per salvare in una varia-

bile il messaggio e ricevere un riferimento al processo mittente, se non ci sono messaggi sul ca-

nale la receive risulta bloccante fino all’arrivo del primo messaggio.

La send può essere asincrona in cui dopo l’esecuzione della send il processo continua ad ese-

guire, in questo modo il messaggio non può contenere informazioni sullo stato del processo al

momento della send ma garantisce un maggior grado di parallelismo, oppure sincrona con ren-

dezvous semplice in cui il processo che esegue la send si sospende fino all’esecuzione della re-

ceive permettendo quindi di inviare informazioni sullo stato e di semplificare la verifica dei pro-

grammi a scapito del parallelismo, si ha anche la variante con rendezvous esteso in cui il mittente

si sospende fintanto che il ricevente non ha completato l’operazione in maniera analoga a una

chiamata a funzione, questo riduce ancora di più il parallelismo ma semplifica ancora di più la ve-

rificabilità.

Le sintassi con guardia vengono in aiuto per evitare l’attesa attiva con una receive non bloccan-

te quando si vuole ricevere contemporaneamente da più canali (guardia alternativa) o implemen-

tare in maniera semplice un server che deve fare quest’operazione a ripetizione (guardia ripetitiva).

4 di 6

Virtualizzazione: schema della virtualizzazione di sistema e

ospitata, ring deprivileging e compression, possibili problema-

tiche nella comunicazione tra VMM e SO guest in architetture

non virtualizzabili. Differenza tra fast binary translation e para-

virtualizzazione.

Parzialmente risposta in precedenza

Nel caso non si abbia a disposizione un processore con supporto nativo alla virtualizzazione oc-

corre adottare tecniche software:

• Fast binary translation: prima dell’esecuzione del codice questo viene scansionato e analizza-

to per individuare le istruzioni privilegiate che sono quindi sostitute con opportuni blocchi di

codice poi conservati in una cache, questa soluzione è molto costosa.

• Paravirtualizzazione: viene offerta un’interfaccia virtuale diversa da quella fisica attraverso le

hypercall API in cui le istruzioni privilegiate vengono richieste al VMM, questa soluzione ha pre-

stazioni migliori e permette la realizzazione di un VMM semplificato ma richiede la ricompilazio-

ne e il porting dei sistemi guest.

Azioni atomiche: effetto domino

Dettagli
Publisher
A.A. 2017-2018
6 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher piscoTech di informazioni apprese con la frequenza delle lezioni di Sistemi Operativi M e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Ciampolini Anna.