vuoi
o PayPal
tutte le volte che vuoi
DIFFERENZA TRA MUTEX E SEMAFORO BINARIO
Mutexes are used for controlling exclusive access to resources / data. If you take a mutex
protecting the resource / data, you must give it back when you have finished, otherwise you will
permanently block the resource. Mutexes also allow for priority inheritance.
Binary Semaphores on the other hand are used for task synchronization purposes. You do not
give a give the semaphore back once you have taken it.
CIFRATURA SIMMETRICA E ASIMMETRICA
In ambito sicurezza informatica, cifratura simmetrica e asimmetrica sono due metodi diversi di
crittografia attraverso i quali vengono codificati e decodificati i messaggi.
CIFRATURA SIMMETRICA: utilizza chiavi private. Negli schemi di cifratura simmetrica la sicurezza del
processo risiede nella lunghezza della chiave utilizzata e nella capacità di mantenerla segreta.
CIFRATURA ASIMMETRICA: anche nota come crittografia a chiave pubblica/privata, è un tipo di
crittografia in cui a ciascuna entità è associata una coppia di chiavi:
Una chiave pubblica accessibile a tutti coloro che necessitano di scambiare informazioni con
l’entità proprietaria.
Una chiave privata, custodita e tenuta segreta dal legittimo proprietario.
In un processo di crittografia asimmetrica, qualsiasi messaggio crittografato con una chiave privata
potrà essere decifrato solo utilizzando la chiave pubblica corrispondente. Il processo svincola quindi
l’utente dalla necessità di dover scambiare le chiavi prima di qualunque comunicazione.
Cifratura simmetrica Cifratura asimmetrica
Velocità Veloce Lento
Complessità computazionale Alta Bassa
richiesta Chiave pubblica condivisa tra
Necessario scambio sicuro della tutti coloro che intendono
Condivisione chiave chiave unica di cifratura tra gli scambiare informazioni con il
interlocutori. proprietario.
Cifratura, Verifica Autenticità,
Possibili utilizzi Cifratura Verifica Integrità, Firma Digitale
DES, Triple-DES (3DES), IDEA,
Algoritmi RSA, DSA, ELGAMAL
CAST5, BLOWFISH, TWOFISH.
Cifratura simmetrica Cifratura asimmetrica
- Distribuzione delle chiavi non
Pro Veloce impegnativa
- Presenza della sola chiave privata, a rischio - Impegnativa dal punto di vista
Contr vulnerabilità; computazionale
o - Difficoltà della distribuzione delle chiavi private in -Serve un garante per accertare la
un sistema multiutente. affidabilità della chiave pubblica
COME FUNZIONA RSA
L’RSA (Rivest, Shamir e Adleman) è un cifrario a chiave pubblica che permette di cifrare un messaggio
sfruttando alcune proprietà elementari dei numeri primi. La loro idea fu quella di sfruttare la difficoltà di
fattorizzare un numero intero. Di fatti la chiave pubblica è un numero N ottenuto moltiplicando due
numeri primi molto grandi che restano segreti.
Poiché RSA è molto più lento della cifratura simmetrica, quello che succede tipicamente è che i dati
vengono cifrati con un algoritmo simmetrico, e poi che la comparativamente corta chiave simmetrica è
cifrata utilizzando RSA. Ciò permette alla chiave necessaria per decifrare i dati di essere spedita in
modo sicuro ad altre parti, assieme ai dati cifrati con la metodologia simmetrica.
PASSI DI RSA:
-Bob deve creare una chiave pubblica kpb = (N, e) ed una privata ksb = (N, d) stando attento a non
divulgare d, Bob trasmette (N, e) ad Alice;
Come crea Bob la chiave pubblica e privata?
-Bob sceglie due numeri primi p e q, molto grandi e li moltiplica N = p · q ;
e,
-Bob sceglie un numero coprimo con N e più piccolo di ϕ(N) = (p − 1) · (q − 1) ;
-Bob calcola d tale che e · d ≡ 1 mod (p − 1) · (q − 1) d è l’inverso moltiplicativo di e solo Bob conosce
la chiave segreta (N, d) mentre (N, e) è pubblica;
Come avviene la cifratura e decifratura?
-Alice calcola c = me mod N
-Alice trasmette c a Bob
-Bob riceve c e lo decripta calcolando: c d ≡ m mod N
La forza di questo algoritmo sta nel fatto che calcolare d, conoscendo la chiave (N, e), è un problema
difficile. Questo non esclude che ci sia un modo semplice di calcolarlo, ma al momento non si conosce.
È vero o falso che un processo può uscire autonomamente dallo stato di ready?
No, bisogna che il processo passi dallo short term scheduler.
Cosa vuol dire che uno scheduler è di tipo preemptive?
Uno scheduler preemptive può interrompere momentaneamente un processo e rimuoverlo dalla CPU
senza alcun consenso da parte di esso, per far eseguire un altro processo con priorità maggiore.
Definite i concetti di deadlock e starvation, quale di questi due fenomeni è più grave
secondo voi e perché? (n>1)
Il deadlock è una situazione in cui processi sono fermi in attesa che si verifichi un evento che può
n
essere provocato solo da un altro degli processi.
La starvation è una situazione in cui un processo non riesce mai ad entrare in possesso di una risorsa
per poter proseguire la propria computazione.
Il più grave è il deadlock perché coinvolge più processi.
In un sistema a paginazione cos’è la tabella delle pagine? Come si usa? Dov’è memorizzata?
-La paginazione è un metodo di gestione della memoria che permette che lo spazio degli indirizzi fisici
di un processo non sia contiguo. Il metodo per implementare la paginazione consiste nel suddividere la
memoria fisica in blocchi di dimensione costante, detti frame, e suddividere la memoria logica in
blocchi di pari dimensione detti pagine. La tabella delle pagine contiene l’indirizzo di base in memoria
fisica di ogni pagina. Il numero di pagina serve come indice per la tabella delle pagine.
-Ogni volta che un programma invia una richiesta di memoria, il sistema operativo alloca un sufficiente
numero di pagine al programma e mantiene una lista della pagine allocate.
-La page table risiede nella memoria virtuale.
Che cos’è la tabella delle pagine di un processo? E cosa contiene?
E’ un array in cui ogni entry corrisponde ad una delle pagine in cui è stata suddivisa l’immagine del
processo, e contiene il numero del frame in RAM nel quale è stata memorizzata la pagina
corrispondente.
Come fa il sistema operativo ad impedire il monopolio del processore da parte di un
processo (cioè il caso in cui tale processo resta in stato di running per un tempo molto
lungo)?
Tramite l’utilizzo di algoritmi di scheduling di tipo preemptive.
In un sistema operativo moderno è molto importante il response time? Perché?
Il response time è il tempo totale necessario alla risposta per una richiesta di un servizio.
È molto importante perché un sistema che da risposte più brevi è più performante.
Quale politica permette di avere migliore response time fra FCFS, SJF e RR?
RR, perché essendo un algoritmo preemptive e tramite l’utilizzo del quanto di tempo assicura che tutti i
processi vengano eseguiti nell’ordine ottimale.
Perché aumentare le dimensioni delle pagine diminuisce la dimensione della PT dei
processi?
Poiché solitamente abbiamo una PT per ogni processo, verrebbero allocati centinaia di Mb di memoria
solo per le PT. Avere le pagine di dimensione grande fa si che un processo sia composto da meno
pagine e quindi, siccome la PT ha lo stesso numero di entry rispetto il numero di pagine del processo, vi
sono meno pagine da caricare nella PT.
Quali sono i possibili inconvenienti?
Pagine più grandi permettono uno spreco di memoria maggiore, per via di questo aumenteremo la
possibilità di frammentazione interna.
Cos’è un context swtich? Quali sono le sue fasi? Perché è importante che un sistema
operativo minimizzi il tempo di context switch?
- Il context switch è il processo di memorizzazione dello stato di un processo o di un thread, in modo
che possa essere ripristinato e l'esecuzione riprenda dallo stesso punto. Questo avviene all'occorrenza
di una qualsiasi interruzione dovuta allo scheduler, ma anche a interruzioni dovute a errori di altri
processi o segnali.
Permette a più processi di condividere una stessa CPU, ed è utile quindi sia nei sistemi
monoprocessore, perché consente di eseguire più programmi contemporaneamente, sia nell'ambito
del calcolo parallelo, perché consente un migliore bilanciamento del carico.
- Vi è una fase di salvataggio nel PCB del processo al momento dell’interrupt, e una seconda fase di
ripristino nel momento in cui viene ripresa l’esecuzione.
-Il context switch introduce una quantità significativa di overhead per il tempo di esecuzione
complessivo del task, poiché il trasferimento di contenuti tra processore e memoria richiede un po’ di
tempo. Questo overhead deve essere ridotto al minimo, riducendo il tempo di context switch.
Quale strategia per memorizzare un file su memoria secondaria tra: contiguous, linked,
indexed soffre di frammentazione esterna?
L’allocazione Contigua.
Quale tra queste tre è la peggiore per implementare l’accesso diretto al file?
L’allocazione linked.
Perché ha senso avere un “Multilevel Queue Scheduling”?
Perché questa configurazione ha il vantaggio di diminuire il sovraccarico di low scheduling.
Nella politica RR quali sono i possibili pro e contro che emergono al variare della
dimensione del quanto di tempo? Che tipo di processi sarebbero
avvantaggiati/svantaggiati?
Il pro nel RR è che prima o poi tutti i processi verranno eseguiti, il contro è che vengono avvantaggiati i
processi con basso burst time.
La politica LRU, per page replacement, non è utilizzabile in pratica, e deve essere
approssimata. Perché?
Il problema principale riguarda la realizzazione della sostituzione stessa. Un algoritmo LRU richiede una
notevole assistenza da parte dell’architettura del sistema di calcolo. Il problema consiste nel
determinare un ordine per i frame definito secondo il momento dell’ultimo uso.
COS’È IL PRINCIPIO LOCALITÀ DEI PROGRAMMI?
Durante l'esecuzione di una data istruzione presente in memoria, con molta probabilità le successive
istruzioni saranno ubicate nelle vicinanze di quella in corso. Nell'arco di esecuzione di un programma si
tende a fare riferimenti continui alle stesse istruzioni.
ESEMPI hardware sono: cache e tlb - ESEMPI sofware sono: LRU e SJF
PERCHÉ IN QUESTI ALGORITMI È IMPORTANTE IL PRINCIPIO DI LOCALITÀ?
Per ridurre i tempi, il sistema operativo sfrutta il principio di località per ridurre gli accessi al disco.
Nell’algoritmo di scheduling RR cosa succede se il quanto di tempo usato diventa
arbitrariamente gra