Questions Flashcards

1
Q

Cosa sono le API?

A

Sono interfacce offerte dal SO ai programmi di alto livello per utilizzare le system call.
Le system call cambiano da SO a SO, quindi cambiano le implementazioni delle funzioni API per adattarle al SO, ma i nomi delle funzioni rimangono gli stessi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

A cosa serve in comando ‘strace’ da linea di comando?

A

Serve a vedere quali system call sono usate da un programma in esecuzione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Descrivere gli step del modello di compilazione per il C.

A

Preprocessor: processa le direttiva al preprocessore ed elimina i commenti.
Compiler: prende in input l’output del preprocessore e lo trasforma un modulo oggetto
Assembler: trasforma il codice assembly in codice oggetto.
Linker: prende in input i file oggetto e li collega per generare file eseguibile

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definire i vari tipi di variabile.

A

Locali: la durata di vita è pari alla durata di vita del blocco di istruzioni in cui è dichiarata.
Formali: variabili passate agli argomenti delle funzioni.
Globali: dichiarate fuori dalle funzioni, possono essere accedute da tutte le funzioni di quel file e da tutte quelle in altri file in cui esiste una dichiarazione extern per la stessa variabile.
Per proteggere la variabile da accessi esterni necessita di dichiarazione static

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cos’è una struttura dati pacchettizzata.

A

È una struttura che evita lo spreco in memoria di spazio, occupando solo lo spazio necessario per contenere i singoli membri della struttura e non a multipli di WORD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Una stessa struttura dati ha la stessa dimensione in tutti i processori?
Perché?

A

No, dipende, quanto sono grandi i tipi di dato di quel processore e da se è pacchettizzata o meno

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

In un programma C scrivo una funzione in cui dichiaro un vettore di elementi i cui elementi sono un tipo di struttura dati ‘struct A’.
Guardando come viene allocato in memoria quel vettore, può accadere che tra un elemento ed il successivo, dello stesso vettore, ci siano byte non occupati dalla struttura dati di tipo ‘struct A’? Perché?

A

Sì, se la sua dimensione è un multiplo di WORD, ovvero se la struttura dati non è pacchettizzata

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

In linguaggio C, se un programma è costituito da più moduli, è possibile che una stessa funzione sia implementata in due diversi moduli senza che provochi un errore nella generazione del programma eseguibile? Perché?

A

No, in fase di Linking viene segnalata una ridefinizione.
Lascia però compilare perché il modulo singolarmente è valido.
Però se in uno dei due moduli tale funzione è dichiarata static, non è una ridefinizione, poiché static rende la funzione invisibile agli altri moduli

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

A cosa serve l’opzione -I del preprocessore e -L e -l del compilatore?

A

-I specifica il percorso dei file.h.
-L specifica il percorso delle librerie fornite dall’utente.
-l ‘nomedellalibreria’ specifica di utilizzare la libreria indicata dal nome ristretto ‘nomedellalibreria’’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Differenza tra librerie statiche e librerie dinamiche.

A

Librerie statiche: collegate al programma prima della sua effettiva esecuzione, nella fase di preprocessing dove prendere il file.h e lo copia dove c’è l’include.
Librerie dinamiche: collegate in due fasi.
La prima controlla che si possano collegare le librerie richieste al programma (compiler time).
La seconda a run time, un programma dedicato le carica in memoria e le collega al programma in esecuzione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cos’è un target fittizio?

A

Un target fittizio, detto ‘.phony’, è un target che non è un file e ha come scopo solo l’esecuzione di una sequenza di azioni.
Bisogna indicarli in fondo al Makefile ed elencarli come:
.PHONY: nomi-target.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Organizzazione della memoria usata dalla parte utenti dei processi.

A

Stack: contiene i record ti attivazione delle chiamate a funzione
Heap: contiene la parte di memoria allocata dinamicamente.
Data: contiene le variabili globali.
Text: contiene il collegamento alle istruzioni macchina

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Che cos’è un task?

A

È il contesto in cui vengono eseguiti i processi.
Ogni processo ha un proprio task .
Un task mantiene in memoria lo stato di esecuzione di un processo, le informazioni sui segmenti di memoria utilizzati, e sul valore corrente dei registri principali.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Un task può avere più stack a sua disposizione?
Perché sì o perché no?

A

Sì, ogni livello di privilegio del SO gode di uno stack di esecuzione, in questo modo, ogni livello viene mantenuto come componente atomico che non influenza gli altri.
Perché ogni task viene differenziato nei vari livelli a cui opera. (così operazioni indipendenti non interferiscono tra loro)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Che differenza c’è un programma è un processo?

A

Un processo è l’istanzazione in memoria di un programma.
Un programma può essere:
-un file binario eseguibile
-un processo
-una applicazione
Inoltre un processo è un’entità attiva mentre un programma un’entità passiva

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quanti stack ha a disposizione un processo?

A

Ha a disposizione uno stack per ogni livello di privilegio del kernel(4) più uno per ogni thread del processo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Cos’è una system call?

A

È una chiamata a sistema, quando un processo deve effettuare una operazione per cui non ha i permessi effettuato una chiama al SO il quale prende il controllo, cambia i livelli di sicurezza del processore, effettua l’operazione, dopodiché ristabilisce il ring di sicurezza precedente e restituisce il controllo al processo che aveva effettuato la system call

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Descrivi il meccanismo delle system call.

A

Una system call è implementata nella routine di gestione di un certo interrupt n.
Viene invocata eseguendo una istruzione INT n.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Interrupt ed eccezioni

A

Le eccezioni sono sincrone rispetto alla CPU:
-TRAP: l’istruzione viene sospesa e portata a buon fine solo dopo la gestione del trap
-FAULT: l’istruzione viene interrotta, gestita l’eccezione e poi rieseguita l’istruzione dall’inizio.
-ABORT: viene causata da un errore irrimediabile, quindi l’istruzione viene abortita ed il processo killato.
Gli interrupt posso essere sincroni o asincroni (dovuti dall’hw), mascherabili e non mascherabili

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Differenza tra interrupt sincroni e asincroni.

A

Sincroni (sw) sono chiamati dalla CPU, gli asincroni (hw) sono scatenati da periferiche che mediante il BUS avvisa la CPU che è avvenuto qualcosa da gestire

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Disegnate il diagramma di stato dei processi.

A

Lo scheduler processa le richieste di accesso ad una risorsa condivisa, ossia stabilisce un ordine per l’esecuzione di tali richieste.
Lo scheduler a longo termine seleziona i processi che possono entrare nella ready queue.
Lo scheduler a breve termine seleziona quali processi posso passare dallo stato di ready allo stato di running.
New->(loader lo carica)->Ready->Esecuzione –>exit–>termina

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Nella bash, qual è la differenza tra variabili locali e variabili d’ambiente?

A

Le variabili locali sono visibili solo dalla Shell che le ha create, le variabili d’ambiente vengono ereditate dalle subshell, se la subshell le modifica non vengono modificata quelle del padre, ma solo la copie ereditate

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Nella bash qual è la differenza tra una variabile vuota ed una variabile che non esiste?
È possibile eliminare una variabile?

A

Variabile vuota, ovvero che non è inizializzata, se non esiste vuol dire che non è stata creata
Per eliminare una variabile con il comando ‘unset nomevariabile’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Cos’è la funzione di autocompletamento della bash?

A

Funzionalità per facilitare l’inserimento dei comandi.
Basta scrivere le prime lettere del comando e poi premere TAB.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Che cos’è un thread?

A

È un flusso di esecuzione all’interno di un processo che lo scheduler può fare eseguire separatamente e concorrentemente con il resto del processo.
Ogni thread di uno stesso processo condivide le risorse del processo.
(Es. Variabili globali)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Che cos’è l’errore errno?

A

È una variabile numerica(di un thread)
che contiene il tipo di errore che è stato provocato per ultimo/dall’ultima istruzione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Spiegare che cosa si intende quando si dice che una sequenza di istruzioni viene eseguita in maniera atomica.

A

Vuol dire che una sequenza di istruzioni viene eseguita per intero oppure non viene proprio eseguita.
Se avviene un errore durante l’esecuzione si riparte da capo.
Il GCC fornisce alcune estensioni di C che permettono di eseguire in forma atomica alcune operazioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Cosa vuol dire che una funzione è thread safe?

A

Se non causa problemi nella scrittura/lettura di strutture dati interne al so e condivise dai thread di uno stesso processo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Cosa si intende con Pthread?

A

È un thread conforme allo standard posix che si avvalgono di funzione mutex e condition variables

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

A cosa serve la funzione Pthread_join?

A

A liberare la memoria di un thread una volta che esso è terminato facendo sapere il proprio risultato.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Cos’è un pthread detached?

A

Un thread cmin gradi di liberare autonomamente la memoria una volta terminato, ma in questo modo non può fare sapere a nessuno il proprio risultato

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Definire il busy waiting.

A

Si intende al continuo controllo da parte di un thread che un evento si verifichi per permettergli di proseguire restando in fase di waiting e non in wait.
Comporta lo spreco di tempo e prestazioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Definire deadlock.

A

Avviene quando due processi si bloccano a vicenda.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Definire starvation.

A

È l’impossibilità perpetua da parte di un processo di accedere ad una risorsa di cui necessità per essere eseguito.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Definire liveness.

A

La capacità di un programma concorrente di fare vivere e progredire i propri thread fink al compimento delle operazioni relative, evitando condizioni che possano determinare un blocco.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Spiegare cosa si intende con Race Condition

A

Si verifica in un sistema con processi e/o thread quando questo non gestisce in modo adeguato la mutua esclusione.
Il risultato finale dipende quindi dall’ordine in cui sono state eseguite le istruzioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Definire cosa fa la funzione cmpxchg con e senza il prefisso lock.

A

È l’equivalente della funzione ‘sync_bool_compare_and_swap’ in linguaggio assembly.
Se la variabile è diversa dal valore che gli si vuole assegnare le si assegna il nuovo valore, altrimenti nulla.
Il prefisso lock garantisce che per tutta la durata dell’esecuzione dell’istruzione nessuno acceda al bus, in modo che nessuno vada a modificare i registri che servono per la comparazione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Cos’è la Futex?

A

Fast user Mutex, è una forma base della mutua esclusione e non è conforme a nessuno standard posix.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Quali sono i possibili formati eseguibili un ambiente Unix/Linux e Windows?

A

Sono a.out e ELF.
Su Windows PE(portable executable)

40
Q

Che cos’è il PCB?

A

Process Control Block, è una tabella dove vengono mantenute le informazioni sul processo e sul suo stato.
Ogni PCB si riferisce ad un unico processo ed è memorizzato in una struttura dati del kernel detta TABELLA DEI PROCESSI

41
Q

Che cos’è la tabella dei processi?

A

Una struttura dati con cui il kernel tiene traccia di tutti i processi attivi nel sistema.

42
Q

Differenza tra multithreading e multiprocessing.

A

I thread di uno stesso processo condividono la stessa area di memoria.
Mentre non c’è condivisione di memoria tra i processi.

43
Q

Come vengono creati i processi figli?

A

Un processo figlio viene creato dal processo padre mediante la funzione fork().
Il processo figlio ha uno spazio di memoria che è una copia esatta di quello del padre.

44
Q

Quando un processo esegue una fork(), le sue pagine in memoria vengono immediatamente duplicate?

A

No, viene mantenuto un riferimento alle pagine del processo padre.
Le sue pagine verrano duplicate nel momento in cui verrà fatta una modifica da uno dei due processi.

45
Q

Cosa sono i processi zombie?

A

Sono quei processi che pur essendo terminati continuano ad occupare memoria inutilmente.
Per questo il processo padre una volta che i processi figli terminano, deve deallocate la memoria da loro occupata, ossia ucciderli facendo una wait.
Se il processo padre termina senza eseguire una wait i suoi figli si dicono orfani. In tal caso vengono adottati dal processo ‘init’, che ogni tanto effettua delle wait.

46
Q

Che cosa si intende con IPC?

A

Inter-Process Comunication, sono meccanismi di comunicazione di cui necessitano i processi per scambiarsi dati e sincronizzazioni.
Ve ne sono di due tipi:
-A memoria condivisa: forniscono ai cooperanti una porzione di memoria in comune, in cui posso scrivere e leggere.
-A scambio di messaggi: fornisco ai processi la possibilità di inviare e ricevere messaggi con cui scambiarsi i dati di interesse.

47
Q

Che cos’è il biding addres o rilocazione?

A

È l’associazione di indirizzi di memoria fisica ai dati e alle istruzioni di un programma.
Può avvenire:
- durante la compilazione, allora gli indirizzi rimarranno invariati ad ogni esecuzione,
- durante il caricamento, il loader aggiorna tutti i riferimenti coerentemente al punto iniziale di caricamento,
-durante l’esecuzione, allora l’indirizzo di memoria effettivo viene calcolato durante l’esecuzione dell’MMU che prende in input un indirizzo logico e restituisce l’indirizzo fisico corrispondente

48
Q

Che cosa si intende per allocazione della memoria e che tipi di allocazione esistono?

A

Consiste nell’assegnare uno spazio di memoria fisica ad un programma.
Può essere:
-Contigua: se tutto lo spazio assegnato ad un programma deve essere formato da celle consecutive.
-non contigua: sé possibile assegnare aree di memoria separate,
-statica: il programma deve mantenere l’area di memoria che gli è stata assegnata per tutta la durata dell’esecuzione,
-dinamica: durante l’esecuzione un programma può essere spostato all’interno della memoria
-a partizioni fisse: la memoria viene divisa in partizione a dimensione prefissata e un processo viene allocato in partizione libera sufficientemente grande.(causa frammentazione interna)
-partizione dinamiche: la memoria non viene suddivisa ma viene assegnata ai processi che ne fanno richiesta, può causare frammentazione esterna.
Per questo esiste la compattazione, che significa spostate tutti i programmi in modo da riunire tutte le aree inutilizzate.

49
Q

Cos’è e a cosa serve la mappa di bit?

A

Serve ad identificare le unità di allocazione della memoria, ad ogni unità corrisponde un bit nella bitmap. 0 se l’unità è libera, 1 se occupata.

50
Q

Definisci i vari metodi di selezione dei blocchi liberi.

A

First fit, scorre la liste dei blocchi liberi dall’inizio fino a quando non trova il primo segmento vuoto grande abbastanza da contenere il processo.
Next fit, come first fit, ma al posto di partire dall’inizio parte dal punto dove si era fermato all’ultima allocazione.
Best fit, seleziona il più piccolo tra i blocchi liberi.
Worst fit, seleziona il più grande.

51
Q

Nell’ambito della paginazione per la memoria virtuale, cosa si intende con allocazione dei frame ai processi?

A

Si intende il processo di transizione da pagine a frame, ossia il passaggio delle pagine della memoria virtuale ai corrispondenti frame della memoria fisica

52
Q

Descrivi il metodo di allocazione dinamica attraverso l’uso della paginazione.

A

Con la paginazione la memoria virtuale viene divisa in blocchi di dimensione prefissata chiamati pagine, mentre la memoria fisica viene suddivisa in blocchi della stessa dimensione delle pagine chiamati frame.
Quando un processo deve essere eseguito vengono reperutu un numero sufficiente di frame per con contenere le pagine del processo.

53
Q

Come si sceglie la dimensione delle pagine?

A

La dimensione delle pagine deve essere una potenza di 2, per facilitare il passaggio da indirizzi virtuali a indirizzi fisici. In genere 4KB.

54
Q

Come funziona l’MMU nella paginazione?

A

Prende in input un indirizzo logico formato da una coppia di valori del tipo e restituisce un indirizzo fisico formato dalla coppia(frame,offset), avvalendosi della tabella delle pagine che si trova in memoria

55
Q

Che cos’è un Translation Lookside Buffer?

A

Un TLB è un insieme di registro formati da chiave(indice della pagine) e valore(l’elemento della tabella delle pagine ossia il frame corrispondente).
Se la chiave è presente nel registro allora si restituisce il valore corrispondente altrimenti lo si va a cercare nella tabella delle pagine in memoria.
In sostanza agisce come memoria cache per la tabella delle pagine.

56
Q

Come funziona l’MMU nella segmentazione?

A

L’MMU prende in input un indirizzo logico formato da una coppia(segmento,offset), ricerca nella tabella dei segmenti l’indirizzo di inizio del segmento e somma l’offset restituendo l’indirizzo fisico corrispondente.

57
Q

Come viene diviso la memoria in un sistema con segmentazione?

A

La memoria viene suddivisa in aree differenti dal punto di vista funzionale.
Un segmento è un area di memoria contenente informazioni omogenee e il suo riferimento in memoria è dato da una coppia (nome_segmento,offset).
A differenza della paginazione la divisione spetta al programmatore.

58
Q

Spiega brevemente la segmentazione paginata.

A

Ogni segmento viene suddiviso in pagine che vengono allocate in frame liberi della memoria, non necessariamente contigui.
L’indirizzo logico viene trasformato in indirizzo virtuale, successivamente nel reale indirizzo fisico.

59
Q

Spiegare a cosa serve il procedimento di sostituzione delle pagine nell’ambito della gestione della memoria virtuale.

A

Il procedimento di sostituzione delle pagine, serve ad avere a disposizione sempre le pagine in memoria virtuale, che servono ai processi in esecuzione .

60
Q

A cosa serve la memoria virtuale?

A

Permette l’esecuzione di processi che non sono completamente in memoria.
Permette di eseguire in concorrenza i processi che nel loro complesso hanno necessità di memoria maggiore di quella disponibile.

61
Q

Su cosa possono essere mappati gli indirizzi virtuali?

A

Possono essere mappati su indirizzi fisici della memoria principale ma anche sulla memoria secondaria.
In quest’ultimo caso i dati associati in menotia secondaria vengono trasferiti in memoria principale, se non c’è spazio si spostano in memoria secondaria i dati considerati meno utili

62
Q

Che cos’è la demand paging?

A

È la paginazione su richiesta che avviene quando un processo tenta di accedere ad una pagina in memoria principale ma non è presente, questo genera un Page fault che viene gestito dal pager che si occupa di mettere in memoria principale la pagina mancante e aggiornare la tabella delle pagine cambiando il bit di validità

63
Q

Che cos’è la swap area?

A

È l’area del disco utilizzata per ospitare le pagine in memoria secondaria non utilizzate al momento dei processi

64
Q

Che cosa sono gli algoritmi di rimpiazzamento o avvicendamento?

A

Algoritmi utilizzati per gestire la sostituzione delle pagine in memoria, ossia per scegliere la pagina “vittima” da rimpiazzare.

65
Q

Che cosa avviene con la virtualizzazione della memoria?

A

Non tutto il programma è nella memoria fisica(RAM). Viene virtualizzato uno spazio della memoria secondaria, su cui vengono mantenute parti dei processi che non sono indispensabili al processo.

66
Q

Che cos’è la mappatura della memoria?

A

Consente al sistema di allocare la memoria condivisa una sola volta e ai processu di vedere librerie caricate dinamicamente e memoria condivisa come parte del proprio spazio degli indirizzi, inserendo nello “spazio vuoto” tra stack e heap dei puntatori a tale area di memoria condivisa.

67
Q

Cos’è il bit di validità?

A

È un bit presente nella tabella delle pagine che assume 1 se il frame corrispondente è presente in memoria fisica, e allora l’indirizzo logico viene trasformato in fisico, se il bit è 0 allora genera un Page fault quindi si procede a caricare in memoria la pagina mancante

68
Q

Che cosa si intende con paginazione su richiesta pura?

A

È uno schema di esecuzione che avviene quando si avvia un processo senza alcuna pagina in memoria.
Alla prima istruzione genererà un page fault.

69
Q

Che cos’è il backing store?

A

È una parte del disco che viene utilizzata per la memorizzazione stabile delle pagine.
Sinonimo di swap area

70
Q

Quali sono gli effetti positivi della paginazione su richiesta?

A

Se un processo utilizza solo una parte delle pagine, tale procedura consente di eliminare i tempi di caricamento delle pagine che non verranno mai utilizzate

71
Q

Che cos’è la Copy on write(

A

Quando si genera un figlio, mediante la funzione fork(), le pagine del padre andrebbero copiate nell’ambiente di esecuzione del figlio.
Tale procedimento potrebbe risultare inutile, poiché se il figlio cambia il suo ambiente di esecuzione tutte le pagine copiate diventerebbero inutili.
Per evitare questo spreco di tempo si utilizza la tecnica di copiatura su scrittura. Le pagine del padre vengono prima condivise, duplicate solo quando il padre o il figlio necessitano di modificare qualcosa

72
Q

In che contesto si parla di dirty bit e a che cosa serve?

A

È un bit all’interno della pagina che indica se quest’ultima è stata modificata o meno.
Gli algoritmo di avvicendamento prediligono una pagina che non è stata modificata da scartare piuttosto che una modificata, in quanto il tempo di sostituzione si dimezza non dovendo modificare l’immagine su disco della pagina modificata

73
Q

Elenca e spiega i vari tipi di algoritmi di sostituzione delle pagine.

A

FIFO: necessita di swap-out si sceglie la pagina più vecchia.
LRU(Least Recently Used): scarica la pagina che non vieene acceduta da più tempo, utilizzando un bit di riferimento o un contatore di accessi.
Bit supplementari di riferimento: ogni N millisecondi viene salvato il bit di riferimento di tutte le pagine e si rialzeranno tutti i bit.
Nel momento di swap out la pagina usata meno di recente è quella con il byte di valore più basso.
Seconda chance: utilizza un solo bit per pagina le pagine sono tenute in una cosa circolare con un puntatore: se trova 0 sostituisce se lo trova ad 1 lo azzera.
Seconda chance migliorato: usa la coppia (bit di riferimento, dirty bit). Privilegia lo scaticamentsi di pagine non modificate per rendere più veloce lo swap out

74
Q

Che cos’è l’anomalia belady?

A

È ciò di cui può soffrire un algoritmo nel caso in cui aumentando il numero di frane disponibile i Page fault aumentano.

75
Q

Spiegare come dovrebbe funzionare l’algoritmo ottimale di sostituzione delle pagine

A

È l’algoritmo che risolve il problema nel modo migliore.
Il problema della sostituzione delle pagine mira a minimizzare il numero dei Page fault.
Conoscendo il la sequenza delle pagine le fa trovare sempre al momento giusto un memoria centrale(predice il futurooo)

76
Q

Differenza tra sostituzione globale e locale.

A

Quando la richiesta di sostituzione è soddisfatta prelevando un frame da un processo qualunque.
Locale invece quando viene prelevata dal processo che ha fatto la richiesta.

77
Q

Che cos’è il thrashing?

A

Si verifica quando un algoritmo di sostituzione scarta una pagina che dovrà essere utilizzata a breve.
Il processo si trova a dedicare più tempo alla sostituzione delle pagine che all’esecuzione di istruzioni.

78
Q

Che cos’è il working set?

A

È l’insieme delle pagine che contengono gli ultimi x riferimenti.

79
Q

Che cos’è e a cosa serve un file mappato in memoria?

A

È un file con riferimento ad un area di memoria.
I processi accedono in modo indiretto a tale area grazie ao file mappato su disco a cui possono accedere tutti.
È usato come salvataggio dell’area di memoria.

80
Q

Che cosa sono i registri STLR e STBR

A

STLR contiene l’indirizzo di inizio tabella dei segmenti del processo in esecuzione.
STBR contiene la dimensione della tabella.

81
Q

Quali indirizzi vengono specificati dalle istruzioni di un programma in esecuzione?

A

Virtuali

82
Q

Quali indirizzi vengono spediti dal bus degli indirizzi?

A

Fisici

83
Q

Se debuggo un programma che usa puntatori che indirizzi vedo nelle variabili puntatori?

A

Virtuali

84
Q

Che cos’è un exploit e a cosa serve l’addres space layout randomization?

A

Un exploit è un codice scritto per ottenere dei privilegi che non ti appartengono sfruttando una vulnerabilità.
L’ASLR è la tecnica tramite la quale il sistema operativo, quando carica un programma, per collocare i segmenti in memoria aggiunge una quantità casuale agli indirizzi base.

85
Q

Spiegare cosa sono i processi “I/O bound” e quelle “CPU bound”

A

I primi sono caratterizzati da un’alta richiesta di input/output, impiegano più tempo a richiedere i dati che ad elaborarli.
I secondi sono caratterizzati da un altissimo uso della CPU.

86
Q

Che cos’è la ready queue?

A

È la struttura dati in cui lo scheduler mantiene i PCB dei processi pronti ad essere eseguiti.

87
Q

Differenza scheduling preemptive e non.

A

Il preemptive nel momento in cui un momento entra in ready se ha una priorità maggiore rispetto a quello in esecuzione quest’ultimo viene interrotto per fare partire quello appena entrato.
Uno non preemptive anche se il processo entra in ready ha priorità maggiore esso dovrà aspettare.

88
Q

Che cos’è il dispatcher?

A

Parte del SO che passa il controllo della CPU al processo selezionato dallo scheduler a breve termine.

89
Q

Throughput e il tempo di turnaround, cosa sono.

A

Throughput è il numero di processi completati nell’unità di tempo.
Il tempo di turnaround è il tempo necessario per eseguire un determinato processo.

90
Q

Descrivere i vari algoritmi di scheduling.

A

FIFO: un processo entra in coda viene inserito in fondo.
SJF(shortest job first) seleziona il processo con tempi di esecuzione minore.
Priority scheduling: ogni processo ha un numero che rappresenta la sua priorità maggiore, più è alta la priorità prima viene eseguito il processo.
Round Robin: utilizza il metodo FCFS, però ogni volta che un processo viene messo in esecuzione lo scheduler imposta un timer, scaduto il quale viene interrotto e reinserito nella ready queue per dare l’impressione di una esecuzione simultanea

91
Q

Che cos’è il convoy effect?

A

Ciò che si verifica nello scheduling FCFS, ovvero un processo molto lungo potrebbe bloccare molti processi che sarebbero stati eseguiti in tempo minore

92
Q

È possibile adottare differenti politiche di scheduling?

A

Si, grazie a code multiple, ogni cosa implementa una politica differente

93
Q

La formattazione fisica e formattazione a basso livello cosa sono?

A

La formattazione fisica è la preparazione del disco, da vergine viene suddiviso in sezioni per ogni sezione viene predisposta un’area per il controllo degli errori.
Un disco formattato a basso livello è utilizzabile solo dalle macchine e non dall’utente poiché non è stato definito un file system utilizzabile.

94
Q

Boostrap

A

Avviene in due fasi.
Nella prima viene letto all’interno della ROM, il bootstrap loader, il quale avvia il boot che è il programma di avvio del SO che si trova nell’area di boot sul disco.

95
Q

Perché non parliamo di politiche di scheduling del disco quando abbiamo a che fare con dischi allo stato solido?

A

A differenza dei dischi meccanici possiamo leggere in tempo costante in ogni punto del disco

96
Q

A cosa serve il programma ln?

A

È un programma che consente di creare collegamenti simbolici o fisici a file e directory.