Sei sulla pagina 1di 5

Gli obbiettivi fondamentali di un Sistema Operativo sono astrazione ed efficienza Nei sistemi BATCH il tempo di attesa un parametro fondamentale

e I sistemi batch puntano pi alla mole di lavoro che al tempo di risposta! "#Automatic $ob Se%uencin& un modulo dei moderni Sistemi Operativi per &estire i processi Il bufferin& serve per sovrapporre operazioni di C'( e I)O dello stesso *ob Il bufferin& risolve il problema dello spoolin&! "o spoolin& serve per sovrapporre C'( e I)O dello stesso *ob 'ollin& e interrupt sono meccanismi alternativi per la &estione delle operazioni di I)O +,A e interrupt sono meccanismi alternativi per la &estione delle operazioni di I)O Il +,A stato inventato per risolvere i problemi di pollin&! -il +,A stato inventato per risolvere i
problemi dell#interrupt e l#interrupt per il pollin& .

V F V F V F F F V V F F F F V V F V F V F V V V F F F V V F

Il meccanismo di &estione I)O tramite interrupt stato introdotto per eliminare &li svanta&&i del +,A Il +,A la parte di memoria fisica che viene usata dalla C'( Il multitas/in& la versione moderna del timesharin& (n sistema multitas/in& funziona solo su architetture multiprocessore! Tutte le operazioni di I)O sono ese&uite in modalit0 protetta Tutte le operazioni di I)O sono ese&uite in modalit0 /ernel "e s1stem call posso essere usate solo in modalit0 utente "e s1stem call forniscono un#interfaccia all#utente per l#h2 con il passa&&io da user a /ernel! "a virtual machine un particolare sistema operativo che permette di usare istruzioni assembl1 che non apparten&ono all#ISS della macchina ospitante -perch non un S3O3. (na 43,3 permette di ese&uire contemporaneamente pi copie dello stesso S3O3 nella stessa macchina "a 43,3 sistema monolitico! -sistemi monolitici 5 non &erarchia6 componenti tutti allo stesso livello6 ora
le viertual machine sono cos7 composte 8 9:h2 ;:so <:vm =:so

,ultipro&rammazione e ,ultitas/in& NON sono sinonimi per rappresentare lo stesso concetto V

"a 43,3 favorisce timesharin&! -pensata per offrire un timesharin& >multiplo?. In un sistema multipro&rammato i processi evolvono sempre in modo concorrente In un sistema multipro&rammato i processi ven&ono ese&uiti se%uenzialmente! -evolvono in
modo concorrente ma ven&ono ese&uiti in modo se%uenziale.

I processi non sempre sono ese&uiti in modo se%uenziale -sempre ven&ono ese&uiti in modo
se%uenziale ma possono evolvere in modo concorrente@.

"e variabili &lobali sono salvate nello stac/! -nella sezione dati. "#imma&ine in memoria di un processo costituita dalle sezioni 'CB6 Stac/6 Codice6 +ati6 4ariabili6 Istruzioni "#imma&ine in memoria di un processo costituita dalle sezioni Attributi6 Stac/6 +ati e Codice Il 'CB di un processo contiene il nome del file dell#ese&uibile Il 'CB contiene il puntatore allo stato di indirizzamento delle thread associate al processo
-allo stato di esecuzione delle thread.

(n processo durante la sua esecuzione puA essere interrotto solo %uando ese&ue operazioni di I)O -perch ci sono anche8 %uanto di tempo6 fi&li6 attesa di un#unterruzione. Gli stati di un processo sono8 attesa di IO6 esecuzione nell#area di s2ap -vedi domanda sopra.
'COCDSSI6 processi indipendenti 8 deterministico Edipende solo dal proprio input@ e riproducibili.

F F

"#esecuzione di due processi indipendenti deterministica ma non riproducibile - pa& 9B capitolo F +ue processi indipendenti sono deterministici e non riproducibili! F

I moduli del /ernel di un sistema operativo sono ese&uiti sempre come processi utente ma in modalit0 protetta -perch non sempre6 possono essere ese&uiti come processi3 I noduli sono /ernel stac/ e F
spazio di indirizzamento condiviso F vanta&&io mode s2itch E%uindi modalit0 protetta@.

I moduli del /ernel di un sistema operativo possono essere ese&uiti come processi individuali in modalit0 protetta -pa&ina ;= capitolo 'COCDSSI. "o stac/ dell#imma&ine del processo ese&uito in modalit0 /ernel! -pa& ;; capitolo 'COCDSSI6
imma&ine dei processi prevede 8 9. /ernel stac/ per &estire il funzionamento di un processo in modalit0 protetta ;. 333.

V V V F F F V F F V V F V F

"e Thread in cui un processo puA essere suddiviso condividono lo stesso spazio di indirizzamento "e thread in cui un processo puA essere suddiviso non condividono lo stesso spazio di indirizzamento a meno che non siano implementate a livello utente +ue processi possono condividere una thread Se si usano thread a livello utente non necessario passare in modalit0 utente per passare dall#esecuzione di una thread all#altra %uando %ueste apparten&ono allo stesso processo
-passare in modalit0 /ernel non in modalit0 utente.

Se si blocca una thread a livello utente blocca tutto il processo! "e thread a livello Gernel hanno &li stessi stati del 'rocesso a cui apparten&ono -perch le
thread hanno solo < stati 8 pronta6 in esecuzione e in attesa.

Se si usano Thread a livello /ernel il blocco di una Thread blocca l#intero processo - una
thread a livello utente che se viene bloccata bloca l#intero processo.

"o scheduler a lun&o termine controlla il &rado di multipro&rammazione Il dispatcher un modulo del sistema operativo che ese&ue il cambio di contesto Il throu&hput dato dalla somma di C'( burst e tempo di risposta -perch il numero di processi
completati per unit0 di tempo.

"#al&oritmo HCCN calcola la priorit0 secondo la formula ' 5 9H-TIattesa)TIburst. Juando si usa l#al&oritmo round robin6 l#aumento del %uanto di tempo direttamente proporzionale alla diminuzione del tempo di risposta dei processi -perch se il %uanto ti tempo
e%uivale a ; secondi e i processi entrano nel sistema o&ni K3L secondi6 il tempo di risposta Eovvero %uanto tempo aspettano nella memoria fino alla loro prima esecuzione@ cresce.

Time sharin& e multitas/in& richiedono la presenza di un al&oritmo di schedulin& di tipo Cound Cobin M possibile avere multipro&rammazione se non si usa un al&oritmo di schedulin& di tipo : manca parola : 'ossono accedere due processi alla mutua esclusione! "e soluzioni HN al problema della sincronizzazione dei processi si basano su componenti HN invocati ad hoc dalla C'( per &arantire la mutua esclusione tra processi "a funzione TestOSet puA essere usata per implementare un semaforo

F F F V V

"#implementazione dei semafori tramite l#istruzione swap elimina il problema del bus1 2aitin&
-test and set e lo s2ap sono basati sul bus1 2atin&.

F V F V F V

Juando un processo bloccato su un semaforo chiama la primitiva Signal -ovvero 4.6 il processo si sblocca se il valore del semaforo diventa positivo "a variabile associata ad un semaforo puA essere incrementata o decrementata tramite opportuni asse&namenti solo usando un meccanismo di mutua esclusione -primitive atomiche. "a primitiva 4 serve per incrementare la variabile di un semaforo I semafori interi non hanno lo stesso potere espressivo dei semafori binari I semafori ven&ono inizializzati a 9 per &aratire la muta esclusione tra processi concorrenti6 a K per permettere l#attesa di un evento prima di far avanzare l#esecuzione di un processo Si considerino ; processi8 '-9. '-;. 2ait-A. 2ait-A. 2ait-B. 2ait-B. Il sistema non va mai in deadloc/ (sando i semafori possibile che si &eneri un deadloc/ P

"e procedure definite dentro un monitor sono utilizzabili solo in mutua esclusione se il monitor F contiene variabili condition -procedure del monitor accedono solo alle variabili definite nel monitor. I ,onitor &arantiscono implicitamente ,utua Dsclusione -un solo processo attivo in un monitor %uindi V
il pro&rammatore non deve codificare esplicitamente la mutua esclusione.

Juando o&ni processo in attesa di un evento che puA essere causato da un processo dello stesso insieme in deadloc/! Affinch si verifichi un +DA+"OCG sufficiente che sia vera almeno una delle se&uenti condizioni8 ,utua Dsclusione6 'ossesso e Attesa6 Non 'relazione e Attesa Cirolare Affinch si verifichi un deadloc/ devono essere vere contemporaneamente le condizioni di8 mutua esclusione6 possesso e attesa6 prelazione e attesa circolare In un ra& %uando c# un ciclo c# sempre deadloc/! -se ci sono pi istanze dipende6 dallo schema di
allocazione.

V F F F

"e tecniche per la prevenzione statica dei +DA+"OCG &arantiscono sempre un uso delle risorse ma&&iore rispetto a&li al&oritmi di rilevazione6 ma rallentano il sistema -sia la prevenzione F
statica che dinamica rallenta il sistema ma la rivelazione e ripristino che si ha un uso ma&&iore delle risorse.

"e tecniche di prevenzione statica per i deadloc/ &arantiscono sempre un uso delle risorse ma&&iore rispetto a&li al&oritmo di rilevazione6 ma possono portare a starvation -starvetion si ha
%uando cerco di impedire il verificarsi della seconda condizione6 hold and 2ait6 per l#uso delle risorse vedi sopra.

F V F F V F V F

"e tecniche di prevenzione statica e dinamica per la &estione dei deadloc/ riducono eccessivamente l#uso delle risorse (n processo nella prevenzione statica puA richiedere risorse solo in ordine crescente)decrescente di priorit0! -attesa circolare6 puA richiedere risorse solo in ordine crescente. D# vero che tutte le situazioni di unsafe sono deadloc/! In un CAG &li archi di reclamo e &li archi di richiesta hanno lo stesso verso In un CAG &li archi di reclamo indicano %uali risorse sono asse&nate ai processi -vorrebbe. In un CAG &li archi di reclamo sono indicati con freccia tratte&&iata! In un CAG &li archi di reclamo colle&ano risorse con risorse!

In un CAG &li archi di reclamo colle&ano processi con processi! "#Al&oritmo del Banchiere mantiene sempre il sistema in uno stato SAQD tranne %uando si verifica deadloc/ "#al&oritmo del banchiere mantiene sempre il sistema in uno stato SAQD

F F V

"#Al&oritmo del Banchiere rileva la presenza di un deadloc/ indipendentemente dal numero di F istanze di risorse usate dai processi -rileva deadloc/ &razie al numero di istanza di risorse usate. "#al&ortimo del banchiere una tecnica di prevenzione dei deadloc/ statica -dinamica. "#al&oritmo del banchiere necessita di conoscere NDD+ I processi '9 e '; richiedono al banchiere una risorsa senza ottenerla e poi '< ne richiede ; o < puA ottenerla! -perch '< lascia il sistema in uno stato safe &razie alla sua terminazione. "#al&oritmo del banchiere &arantisce che un sistema possa passare da uno stato safe a unsafe senza cadere in deadloc/ "#al&oritmo del banchiere pi efficiente dell#al&oritmo di detenction! -nessuno superire a&li altri6
in fin dei conti8 I deadloc/ si verificano poche volte6 la prevenzione costosa6 il recover1 costoso e &li al&oritmi sono spesso sba&liati.

F V V F F F V

Juando uso &li al&oritmi del banchiere e detection c# un#eccessivo spreco di risorse!
-solo detection.

Il BIN+ING de&li indirizzi puA essere effettuato dal compilatore per associare indirizzi lo&ici a indirizzi fisici -compile time.

"a rilocazione dinamica permette ad un processo di essere caricato su locazioni diverse della V memoria dopo o&ni operazione di s2ap "a presenza di un meccanismo di s2appin& impedisce di effettuare caricamento statico dei processi -pa&ina 9= capitolo GDSTIOND +D""A ,D,OCIA. "a rilocazione dinamica de&li indirizzi puA essere fatta solo con la pa&inazione -anche tranite
se&mentazione e se&mentazione pa&inata.

V F V V V F? V V

"#imma&ine di un processo creato con bindin& statico contiene tutto il codice delle librerie usate Se la traduzione tra indirizzo simbolico e indirizzo fisico avviene a tempo di caricamento si parla di bindin& de&li indirizzi statico Nel bindin& a runtime l#indirizzo fisico e lo&ico potrebbero essere diversi! (n processo che fa un lin/ statico alle librerie impie&a pi tempo a caricarsi in memoria rispetto ad un processo che fa un lin/ dinamico! "#,,( utIlizza il re&istro di rilocazione per passare da&li indirizzi lo&ici a %uelli fisici! Nella frammentazione esterna esiste lo spazio disponibile in memoria ma non conti&uo!

"a tecnica di allocazione conti&ua della memoria con partizione fisse vanta&&iosa solo se si F usa con la strate&ia best fit -best:fit:onl16 il best fit si ha nelle partizioni variabili. "a tecnica delle partizioni variabili risolve il problema della frammentazione interna Best fit mi&liore di first fit perch ottimizza l#utilizzo della memoria! "a compattazione della memoria viene usata per eliminare il problema della Qrammentazione Interna -esterna. "a tecnica del B(++R SRSTD, elimina il problema della frammentazione interna Il Budd1 S1stem necessita di tabella delle pa&ine per effettuare il mappin& tra memoria lo&ica V V F F F

e memoria fisica Il budd1 s1stem elimina la frammentazione interna ma non %uella esterna! -l#opposto. "a pa&inazione permette che lo spazio di indirizzamento lo&ico di un processo sia non conti&uo! l numero di pa&ine della memoria lo&ica sempre superiore al numero di frame della memoria fisica "a memoria lo&ica puA essere minore della memoria fisica! -pa&inazione spazio di indirizzamento
virtuale SS spazio fisico6 poi la memoria lo&ica 5 memoria virtuale SS memoria fisica.

F V F F F F F V V V F ?

"a pa&inazione mi&liora i tempi di accesso alla memoria solo se si usa la tabella delle pa&ine invertite e il T"B -perch c# anche la pa&inazione multilivello. "a pa&inazione mi&liora i tempi di accesso alla memoria rispetto alla allocazione conti&ua se lo hit ratio del T"B ma&&iore del TKU -la pa&inazione con T"B mi&liora I tempi di accesso alla
memoria Edoppio accesso@ rispetto alla pa&inazione senza T"B.

"a presenza di un meccanismo di s2appin& elimina la necessit0 di usare la pa&inazione Il sistema operativo memorizza una sola tabella delle pa&ine invertita anche se sono in esecuzione contemporaneamente due o pi processi "a se&mentazione una tecnica di &estione della memoria che non elimina il problema della frammentazione esterna <; bit sono suffiecienti per indirizzare =&b di memoria! "a memoria "o&ica e Qisica hanno la stessa dimensione se si usa la 'a&inazione ma non se si usa Se&mentazione 'a&inata (n processo che crea un processo fi&lio non puA creare thread fi&lie

* Un semaforo con coda d#attesa puA &enerare delle situazioni di stallo -deadlock.6 ossia di attesa indefinita di un evento es3 P0 wait(S); wait(Q); . . . signal(S); signal(Q); P1 wait(Q); wait(S); . . . signal(Q); signal(S);

Il processo 'K ese&ue 2ait-S.6 %uindi '9 deve aspettare si&nal-S. prima di entrare nella sezione criticaV d#altro canto '9 ese&ue 2ait-J.6 %uindi 'K deve aspettare si&nal-J. prima di poter ese&uire la sua sezione critica e6 in se&uito6 si&nal-S.V ciA comporta una situazione di stallo -5 deadloc/.3 "o stallo si puA anche presentare come starvation6 ad esempio se la coda dei processi in attesa &estita con un al&oritmo "IQO3