Che materia stai cercando?

Domande di Teoria di Sistemi Operativi

Risposte alle domande di teoria più comuni fatte all'esame, segue il programma:

Conoscenze e abilità da conseguire
Conoscenza delle problematiche di progetto relative all'organizzazione di sistemi concorrenti. Modelli di riferimento per la sincronizzazione e comunicazione tra processi. Metodologie di analisi e sintesi di sistemi concorrenti.

Programma/Contenuti
1.Protezione... Vedi di più

Esame di Sistemi Operativi M docente Prof. A. Ciampolini

Anteprima

ESTRATTO DOCUMENTO

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


PAGINE

6

PESO

107.73 KB

PUBBLICATO

6 mesi fa


DESCRIZIONE APPUNTO

Risposte alle domande di teoria più comuni fatte all'esame, segue il programma:

Conoscenze e abilità da conseguire
Conoscenza delle problematiche di progetto relative all'organizzazione di sistemi concorrenti. Modelli di riferimento per la sincronizzazione e comunicazione tra processi. Metodologie di analisi e sintesi di sistemi concorrenti.

Programma/Contenuti
1.Protezione e sicurezza

Richiami sulla protezione: modelli, politiche e meccanismi
Sicurezza multilivello
Reference Monitor e sistemi fidati
2. Virtualizzazione

Virtualizzazione dell'hardware: finalità e soluzioni
Realizzazione di virtual machine monitor: virtualizzazione e paravirtualizzazione
Analisi e sperimentazione di tecnologie: il caso di xen
Virtualizzazione come supporto al cloud computing
3. Programmazione concorrente

Introduzione e definizioni
Processi non sequenziali.
Tipi di interazione
Architetture e linguaggi per la programmazione concorrente
4. Modello a memoria comune

Richiami su:

Mutua esclusione
Semafori
Monitor
Variabili condizione
Uso di linguaggi concorrenti nel modello a memoria comune: Java, c/pthread, Ada.

5. Modello a scambio di messaggi

Aspetti caratterizzanti
Richiami su canali e primitive
Primitive send e receive
Comandi con guardia
Rendez-vous e chiamata di procedura remota
Uso di Linguaggi concorrenti nel modello a scambio di messaggi: go, ada.

6. Nucleo di un sistema a processi basato sul modello a memoria comune:

Realizzazione dei meccanismi di gestione dei thread e di sincronizzazione all’interno del kernel di un sistema monoprocessore
Estensione al caso multiprocessore: Modello a nucleo condiviso SMP, Modello loosely-coupled.
7.Sistemi operativi distribuiti

caratteristiche dei sistemi operativi distribuiti
algoritmi per il controllo distribuito: mutua esclusione distribuita, algoritmi di elezione, gestione deadlock.
8.Azioni atomiche

Proprietà
Azioni atomiche multiprocesso
Azioni atomiche innestate
Uso di azioni atomiche nei sistemi distribuiti
Realizzazione dell'azione atomica nel modello a scambio di messaggi e nel modello a memoria comune


DETTAGLI
Corso di laurea: Corso di laurea magistrale in ingegneria informatica
SSD:
Università: Bologna - Unibo
A.A.: 2018-2019

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à Bologna - Unibo o del prof Ciampolini Anna.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Sistemi operativi m

Appunti di Sistemi Operativi
Appunto