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

Vantaggio: riduzione del tempo globale dei processi

Svantaggio: aumento del tempo di risposta per un singolo programma

2

1.3.1 Sistemi Multiprogrammati con Spooling

Lo spooling permette di gestire task di tipo differente (I/O), cosi’ da creare

una sorta di pipeline e quindi velocizzare l’esecuzione dei processi.Lo spool-

ing sovrappone le istruzioni di I/O con quelle di calcolo.

1.4 Time-Sharing

Per ogni processo il S.O. assegna ciclicamente un intervallo di tempo della

CPU per cui quel processo viene eseguito.

Vantaggio: maggior interattivita’, il processo viene eseguito circa la chia-

mata di quel processo, favorisce i tempi I/O bound

Svantaggio: ogni processo preso singolarmente richieder molto pi tempo di

risposta, penaliza i tempi CPU bound

Nota:

• I/O bound sono i processi che richiedono interazione con l’utente, pro-

cessi che richiedono risosrse di input o output (esempio word)

• CPU bound sono i processi che richiedono un lavoro da parte della

CPU (esempio calcoli matematici)

1.5 Overhead per la gestione del multi-tasking

L’overhead e’ il tempo necessario che richiede un processo per far eseguire

il processo successivo. Esso gestisce

• Il cambio di contesto, cioe’ l’esecuzione di un nuovo processo che

richiede quindi nuove risorse di memoria, e di aggiornare quelle vecchie

(in pratica pulisce la RAM)

• Il time-slice

• Le interruzioni (esempio il timer)

Cambio di contesto

Un processo in esecuzione deve essere interrotto dal sistema operativo (che

pero’ per essere eseguito richiede la CPU gia’ in esecuzione dal processo

stesso), questo viene risolto dagli interrupt, il quale setta ad 1 un bit nel

processo che deve essere interrotto. La CPU prima di fare il fetch, fa un check

interrputs, se ne vede uno carica nel program counter l’indirizzo di memoria

associato a quell’interrput e lo aggiorna ad un indirizzo di memoria per

l’esecuzione del sistema operativo (in pratica chiamo la funzione interrput).

3

Mentre vengono eseguiti i processi primitivi (di servizio) gli interrput

sono disabilitate. Questo e’ l’unico caso in cui gli interrput sono disabilitati,

altrimenti il time sharing non avrebbe piu’ senso.

1.6 Sistemi in tempo reale

Sono particolari sistemi, per cui il processo deve essere eseguito entro brevi

istanti temporali.

Sistema in tempo reale -¿ Attuatori -¿ Ambiente Operativo -¿ Sensori

e da ”Sensori” ancora all’inizio.

1.7 Architettura di un sistema di elaborazione

Ogni risorsa puo’ essere caricata in un tipo di memoria differente. Ogni dato

viene trasmesso da una memoria all’altra attraverso il bus

1.8 Funzionamento del Meccanismo di Interruzione

L’hardware riconosce gli interrupt se abilitati. La gestione degli interrupt e’

strutturata in quattro fasi:

1. Salvare il contesto

2. Eseguire la routine del S.O.

3. Ripristinare il contesto

4. Esegue l’IRET, cioe’ ricarica in PC e in PS gli indirizzi di memoria

corretti (precedenti alla chiamata di interrupt)

4

Ad ogni interruzione corrisponde un vettore di interruzione. Quando il pro-

cessore salva il PS in memoria, allora esegue un interrupt e passa dallo stato

utente al supervisore. Finita la routine di interrupt, e eseguito l’IRET il

bit di interrupt viene azzerato (clear interrupt).

Nota:

• PS: registro che contiene i condition code (risultati JEQ...) un bit che

dice se gli interrupt sono abilitati (l’informazioni relative al programma

utente) lo stato del processore

• PC: registro program counter che contiene l’indirizzo di memoria dell’istruzione

da eseguire. Registri 0 PC | PSW

generali 1 PC | PSW

2 PC | PSW

PC 3 PC | PSW

4 PC | PSW

PS 5 PC | PSW

6 PC | PSW

7 PC | PSW

CPU

Vettore di Interrupt

0 1 2 3 4 5 6 7

1 | 0 | 0 | 1 | 0 | 0 | 0 | 0

1.9 Meccanismi di Protezione

L’esecuzioni di piu’ programmi in memoria puo’ creare problemi di pro-

tezione, sia dalla parte dell’utente che del S.O. e’ quindi essenziale garan-

tire l’integrita’ dei dati utente.

1.9.1 Stato utente

Usato per l’esecuzione di programmi critici, non vengono eseguite istruzioni

privilegiate e l’accesso alle risorse e’ limitato dal sistema di protezione

(memoria o dispositivi I/O)

1.9.2 Supervisore (Kernel Mode)

Vengono eseguite solo istruzioni privilegiate, come modificare i registri PS e

PC per servire gli interrupt, l’accesso alle risorse e’ illimitato

5

1.9.3 Transazione Stato Utente - Supervisore

La transizione da stato utente a stato supervisore e’ attivata da inter-

ruzioni di tipo:

• Esterne o hardware (periferiche esterne)

• Eccezioni

• Interruzioni interne o software (istruzioni INT o SVC)

• Effetto: salvataggio della PSW (Program Status Word) del modo

utente e caricamento nella modo supervisore.

La transizione da stato supervisore a stato utente e’ attivata dall’istruzione

IRET:

• Ripristina la PS del modo utente, precedentemente salvata

Le istruzioni STI (Set-Interrupt) (interruzioni software) e CLI (Clear-

Interrupt) vengono eseguite in modo privilegiato.

L’istruzione INT e’ l’istruzione per l’interrupt, l’SVC e’ l’istruzione Super-

visorCall

2 Gestione dei processi

2.1 Direct Memory Access (DMA)

Attivato mediante registri puntatore, il dispositivo opera in parallelo alla

CPU. Alla fine del trasferimento viene generato un interrupt.

Il Cycle Stealing e’ il dispositivo che sottrae alla CPU i cicli di accesso alla

memoria.

I dispositivo I/O e CPU accedono alla stessa memoria, sono cioe’ in con-

correnza.

2.2 Struttura dei Sistemi Operativi

• Sistema Monolitico: il S.O. e’ compsto da un unico programma

contenente un insieme di procedure. Le applicazioni richiedono i servizi

S.O. che attivano le modalita’ utente o supervisore

• Sistemi Modulari: ogni modulo gestisce una funzione. Ciascun

corpo e’ composto da un corpo (funzioni non visibili dall’esterno) e

una interfaccia (funzioni offerte dal modulo).

• Struttura di un Sistema Modulare: composto da una parte hard-

ware, un’interfaccia hardware, le relative API ed infine i programmi

applicativi. 6

• Struttura a livelli gerarchici: le funzioni del S.O. sono organizzate

a livelli gerarchici. I livelli vanno a complessita’ crescente (Unix e’

gestito in questo modo).

• Stuttura a microkernel: i componenti del S.O. sono divisi in due

parti: meccanismi per la gestione (esempio time sharing) e politiche di

gestione della risorsa (esempio come fare il content switch). Questa

struttura e’ poco utilizzata.

2.3 Processi concorrenti

• Processi indipendenti: due processi sono indipendenti se il processo P1

non influenza l’esecuzione di P2 = proprieta’ della riproducibilita’

• Processi interagenti: due processi sono interagenti se l’esecuzione di P1

influenza l’esecuzione di P2. Un esempio e’ l’uso della stessa risorsa

(stampante).

2.4 Tipi di interazione tra Processi

• Competizione: un solo processo alla volta deve avere accesso all’oggetto

condiviso, al fine di evitare interferenze tra processi (mutua esclusione)

= sincronizzazione diretta

• Cooperazione: due processi comunicano tra loro per scambiarsi infor-

mazioni (come utilizzo di una risorsa) = sincronizzazione indiretta

o implicita

2.5 Sincronizzazione

Se due processi non ammettono l’utilizzo della stessa risorsa, allora devono

comunicare per utilizzare correttamente la risorsa in modo sincronizzato. I

vincoli sono dovuti dalla competizione e la cooperazione visti prima.

Esempio Modello produttore-costruttore (cooperazione):

Il produttore e il costruttore collaborano per uno scopo comune. Essi condi-

vidono le stesse informazioni attraverso un buffer. Il produttore P1 fornisce

attraverso al buffer le informazioni a P2 (l’inofrmazione e’ unidirezionale).

I processi si sincronizzano per scambiarsi correttamente nel tempo le infor-

mazioni.

Per esempio P1 inserisce l’informazione, P2 la preleva, P1 inserisce e P2

preleva di nuovo e’ un informazione corretta e sincronizzata. Diverso invece

se P1 fornisce due informazioni e P2 ne preleva solo una, in questo caso si ha

l’overflow cioe una perdita di dati. Si ha invece underflow se P2 preleva

due volte, ma P1 ha fornito un solo dati, l’interazione tra i dati e’ errata,

infatti P2 non riesce a prelevare correttamente due dati.

7

Esempio Modello produttore-costruttore (competizione):

Due processi condividono la stessa informazione, per esempio l’istruzione

incremento

contatore=contatore + 1

i processi condividono la variabile contatore. La variabile contatore per

essere incrementata deve essere eseguita mutualmente cioe’ in modo coor-

dinato, sincronizzato nel tempo tra i due processi.

2.6 Nucleo di un sistema a processi

il kernel e’ il componente di un S.O., e’ una CPU virtuale. Esso

• Gestisce le interruzioni

• Gestisce il cambio di contesto

• Foscnisce le primitive (System Call)

• Fornisce le PCB (strutture dati dei processi)

2.7 Scheduling

Esso si occupa di effettuare la scelta dei processi che vengono eseguiti.

1. Assegna/revoca i processi alla CPU (scheduling a breve termine)::

sceglie tra i processi pronti quale assegnare alla CPU, e’ il pi frequente.

2. Include un processo nel sistema (scheduling a medio termine): questo

swapping trasferisce temporaneamente i processi nella memoria secon-

daria e/o nella memoria principale.

3. Esclusione di un processo dal sistema (scheduling a lungo termine)

Lo scheduling puo’ essere:

• non-preemptive: lo scheduler interviene se un processo viene inter-

rotto a causa di un SVC o per un evento esterno.

• preemptive: lo scheduler interviene se un processo viene interrotto a

causa di un SVC, per un evento esterno, I/O o timer.

Parametri di valutazione degli algoritmi di scheduling

• Equita’: processi dello stesso tipo vengono trattati allo stesso modo

(priorita’ uguale)

• Balancing: 8

• Proporzionalita’:

Per sistemi Batch

• Utilizzo della CPU: percentuale di utilizzo della CPU

• Tempo di completamento

• Tempo medio di completamento

• Produttivita’

Per sistemi interattivi

• Tempo di risposta

• Tepo di attesa

E’ importante quindi minimizzare il tempo di risposta e di attesa e

rispettare la proporzionalita’.

Alcuni algoritmi importanti: FCFS, SJF, SRTF, RR, Schedulazione su base

prioritaria e Schedulazione ”a code multiple”.

2.7.1 Sch

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

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher alan.bimbati di informazioni apprese con la frequenza delle lezioni di Sistemi operativi 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 Ferrara o del prof Schifano Fabio.