Che materia stai cercando?

Sistemi operativi

Appunti di Sistemi operativi basati su appunti personali del publisher presi alle lezioni del prof. Schifano dell’università degli Studi di Ferrara - Unife, facoltà di Scienze matematiche fisiche e naturali, Corso di laurea in informatica. Scarica il file in formato PDF!

Esame di Sistemi operativi docente Prof. F. Schifano

Anteprima

ESTRATTO DOCUMENTO

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 Scheduling FIFO

• I processi non hanno priorita’

• la coda dei processi e’ gestita con politica FIFO

I processi I/O bound sono penalizzati dai processi CPU bound perche’ i

tempi di attesa di I/O vengono allungati per la durata di esecuzione di un

processo CPU bound.

2.7.2 Scheduling SJF (Shortest Job First)

Vengono eseguiti per prima i processi con tempo di esecuzione minore. Fa-

vorendo i processi di tipo I/O bound, in questo modo viene migliorata

l’interazione con l’utente.

2.7.3 Scheduling Round Robin

I processi vengono eseguiti per un quanto di tempo, dopodiche’ viene ese-

guito un altro processo secondo la coda di prorita’. Questo algoritmo ha la

maggior interfaccia utente, infatti all’avvio di un nuovo processo, esso viene

eseguito dopo al minimo un quanto di tempo, al massimo ad un ciclo per

ogni processo della coda di produzione.

9


PAGINE

13

PESO

384.72 KB

PUBBLICATO

5 mesi fa


DETTAGLI
Corso di laurea: Corso di laurea in informatica
SSD:
Università: Ferrara - Unife
A.A.: 2018-2019

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à Ferrara - Unife o del prof Schifano Fabio.

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 Corso di laurea in informatica

Data mining
Appunto
Calcolo numerico
Appunto