Anteprima
Vedrai una selezione di 20 pagine su 120
Corso di Sistemi operativi - modulo I Pag. 1 Corso di Sistemi operativi - modulo I Pag. 2
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 6
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 11
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 16
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 21
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 26
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 31
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 36
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 41
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 46
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 51
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 56
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 61
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 66
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 71
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 76
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 81
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 86
Anteprima di 20 pagg. su 120.
Scarica il documento per vederlo tutto.
Corso di Sistemi operativi - modulo I Pag. 91
1 su 120
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Thread kernel e utente 25

Gli ULT vengono gestiti mediante delle apposite librerie, e il kernel non

sa proprio della loro esistenza; se si blocca un thread, si bloccano tutti

gli altri thread del processo.

I KLT vengono gestiti dal kernel come i semplici processi e creati tramite

delle chiamate al kernel, se si blocca un thread, non si bloccano anche

gli altri del processo. 26

Scheduling dei processi

I processi nella loro fase di esecuzione necessitano di risorse e di

tempo.

Le risorse possono essere dati presenti in memoria o anche risorse

fisiche come ad esempio una stampante ecc.., ma una risorsa che tutti i

processi utilizzano è il processore, la CPU.

Il tutto prende il nome di scheduling.

Ciò che si cerca di ottimizzare è:

• Il throughput, ovvero quanti processi vengono svolti in un

lasso di tempo

• Tempo di risposta

• Efficienza del processore

Durante lo scheduling, si cercherà di evitare sempre la starvation,

ovvero il tempo in cui il processo è in attesa perché non ha risorse

disponibili per essere eseguito 27

Tipologie di scheduling 28

1. Long-term Scheduling (Scheduling di Lungo Termine):

Questo tipo di scheduling decide quali processi dovrebbero

• essere aggiunti alla coda dei processi pronti per l'esecuzione.

Molto spesso viene utilizzato l’algoritmo FIFO, first in first out,

• dando priorità ai processi con priorità maggiore.

Più processi ci sono e meno tempo di CPU viene assegnato

• loro

2. Medium-term Scheduling (Scheduling di Medio Termine):

Questo tipo di scheduling decide quali processi in esecuzione

• dovrebbero essere spostati dalla memoria principale alla

memoria secondaria o viceversa.

• È coinvolto nel rilascio della memoria principale per fare

• spazio a nuovi processi e nel riportare i processi dalla

memoria secondaria quando sono pronti per essere eseguiti.

3. Short-term Scheduling (Scheduling di Breve Termine):

Questo tipo di scheduling decide quale processo, tra quelli

• che sono pronti per l'esecuzione (solitamente nella memoria

principale), dovrebbe avere accesso al processore (CPU).

Noto anche come dispatcher

• È responsabile della selezione rapida e frequente dei processi

• da eseguire per migliorare l'efficienza della CPU. 29

In oltre, in questa tipologia di scheduling abbiamo due tipologie di

criteri che vengono seguiti:

• Criteri utente

• Criteri sistema

Dove: • Turnaround time è il tempo dalla creazione del processo al

suo completamento

• Response time è il tempo di sottomissione di una richiesta e

la sua risposta 30

Dove: • Troughput è il numero di processi svolti in un lasso di tempo 31

Funzione di scheduling

Sceglie quale processo mandare in esecuzione.

Dipende da tre fattori:

• W il tempo trascorso in attesa

• E il tempo trascorso in esecuzione

• S il tempo totale richiesto

Viene invocata in due istanze di tempo:

• Preemptive

• Non preemptive 32

Esempi di esercizi con vari algoritmi di scheduling

Ovviamente, questo algoritmo penalizza i processi che hanno un tempo

di esecuzione piccolo che devono attendere la fine dell’esecuzione dei

processi con tempi lunghi. 33

Il round robin concede un lasso di tempo nei quali i processi possono

essere eseguiti, finito questo lasso di tempo si passa al processo

successivo.

Il tutto viene svolto tramite il clock. 34

Un aspetto negativo è che in questo caso, i processi con tempo di

esecuzione minore hanno la priorità sui processi con tempo maggiore e

potrebbero soffrire di starvation. 35

36

Scheduling su architetture multiprocessore

Queste sono alcune principali architetture multiprocessore

Il modo in cui possono essere assegnati i processori ai processi sono

due:

• Assegnamento statico

• Assegnamento dinamico 37

38

Gestione della memoria

Questi sono gli argomenti che verranno trattati in questo capitolo. 39

Requisiti di base e introduzione

Ad oggi giorno il costo delle memorie è in calo, questo corrisposto ad

un aumento di richiesta di memoria da parte di programmi e

applicazione.

Perché gestire la memoria?

perché ogni processo, se dovesse gestire arbitrariamente la memoria,

la utilizzerebbe tutta, e questo non permetterebbe più la

multiprogrammazione.

I requisiti per gestire la memoria sono:

• Rilocazione

• Protezione

• Condivisione

• Organizzazione fisica

• Organizzazione logica

Rilocazione

Chi usa il computer non deve sapere dove si trova il programma, anche

perché la sua posizione può non essere statica.

I riferimenti alla memoria devono essere tradotti in indirizzi fisici, sui

quali operare e prendere i dati dei programmi. 40

Il linker si occupa di generare il codice eseguibile a partire dai file

oggetto del programma. 41

Gli indirizzi di memoria possono essere di tre tipologie diverse:

• Logici

• Relativi

• Fisici o assoluti

L’indirizzo logico non corrisponde ad un indirizzo vero e proprio in

memoria, è utilizzato all’interno di un’astrazione della memoria virtuale

e corrisponde ad un indirizzo di questa memoria virtuale, più o meno

grande della RAM.

L’indirizzo relativo corrisponde ad un indirizzo che fa riferimento a

posizioni in memoria rispetto ad un punto specifico, è espresso come

uno spiazzamento da quel punto. Utilizzati per accedere a dati

all’interno di strutture dati.

L’indirizzo fisico/assoluto è l’effettivo indirizzo della posizione fisica in

memoria 42

La rilocazione degli indirizzi può avvenire in due modi differenti.

La soluzione più vecchia, il CTTS, quando l’indirizzo assoluto/fisico viene

determinato nel momento in cui il programma viene caricato in

memoria.

Una soluzione più nuova invece è quella di determinare gli indirizzi nel

momento in cui ci si riferisce alla memoria, per fare ciò però c’è bisogno

dell’hardware apposito

Per calcolare il nuovo indirizzo fisico/assoluto, viene utilizzato un

hardware e 2 registri:

1. Base register, indirizzo di partenza del processo sommato con

l’indirizzo relativo per avere quello assoluto

2. Bounds register, indirizzo limite utilizzato nel confronto tra la

somma di 1), nel caso in cui il risultato > Bounds Register,

genera un interrupt

Questi registri sono contenuti nel PCB del processo

Alcuni requisiti di base fondamentali per la gestione della memoria

sono: 43

44

45

Partizionamento della memoria

Il partizionamento è uno dei primi metodi utilizzati per gestire la

memoria e prevede diverse tecniche che sono:

1. Partizionamento fisso

2. Partizionamento dinamico

all’interno del partizionamento della memoria in generale poi

includiamo anche:

• Paginazione semplice

• Segmentazione semplice

• Paginazione con memoria virtuale

• Segmentazione con memoria virtuale 46

Partizionamento fisso

Il partizionamento fisso consiste nella suddivisione della memoria in

aree di egual grandezza, cosicché un processo <= può essere inserito.

I problemi però sono deducibili subito:

• un processo più grande non rientrerebbe nel partizionamento

• un processo piccolo occuperebbe una singola intera area e si

avrebbe una frammentazione interna, ovvero spreco di memoria

non utilizzata

per ovviare a questi problemi si è pensato al Partizionamento Fisso

Variabile, ovvero aree di memoria di diversa grandezza ma che non

cambiano, una volta decise all’inizio restano tali. 47

Per decidere quali processi assegnare alle diverse aree di memoria

partizionate, viene utilizzato un algoritmo di posizionamento 48

Partizionamento dinamico 49

Con il partizionamento dinamico però comporta a spazi di memoria che

non vengono utilizzati dai processi, creando così la frammentazione

esterna.

per poter scegliere dove allocare in memoria il processo, vengono

utilizzati 3 algoritmi di posizionamento e sono:

• best-fit

• first-fit

• next-fit 50

51

B uddy system è una tecnica di gestione della memoria utilizzata

nei sistemi operativi per affrontare il problema della

frammentazione esterna, in particolare in contesti di allocazione

dinamica della memoria.

In questo sistema, la memoria è organizzata in blocchi di dimensioni di

potenze di 2, e ogni blocco ha un "compagno" o "buddy" con la stessa

dimensione.

Quando un processo richiede una certa quantità di memoria, il sistema

cerca un blocco libero di dimensioni adeguate. Se non trova un blocco

esattamente della dimensione richiesta, cerca un blocco il cui buddy

può essere diviso per ottenere il blocco richiesto.

Quando un blocco viene assegnato a un processo, il suo buddy diventa

libero. Se entrambi i blocchi adiacenti sono liberi, possono essere

combinati per formare un blocco di dimensioni superiori. Questo

processo di "fusione" o "coalescenza" aiuta a prevenire la

frammentazione esterna, consentendo di riutilizzare la memoria in

maniera più efficiente. 52

Paginazione

Nella paginazione, la memoria fisica e virtuale è divisa in pagine di

dimensioni uguali. La memoria virtuale di un processo è suddivisa in

pagine, e lo stesso avviene per la memoria fisica.

Paginazione semplice

Non usata, ma importante per introdurre la memoria virtuale.

• La memoria viene partizionata in pezzi di grandezza uguale e

piccola (frame)

• Lo stesso trattamento viene riservato ai processi (pagine)

Ogni pagina, per essere usata, dev’essere collocata in un frame

pagine contigue possono essere messe in frame distanti

in generale, una pagina può essere messa in un qualunque frame

ovviamente, una pagina ed un frame hanno la stessa dimensione.

Ogni processo ha una propria page table, la tabella delle pagine, e

questa tabella ci dice ogni pagina del processo dove si trova.

Un indirizzo di memoria può essere visto come un numero di pagina e

uno spiazzamento al suo interno. 53

Adesso vedremo un esempio con le memorie:

Per il processo D ad esempio, all’interno della sua page table abbiamo:

la posizione delle sue pagine che è data dai valori delle celle della

tabella, e il numero di pagina dato dall’indice della tabella.

Ad esempio, la pagina 2, la troviamo in posizione 6 nella memoria. 54

Vediamo un esempio di traduzione di indirizzi: 55

Segmentazione

Un programma viene suddiviso in segmenti di dimensione variabile con

un limite massimo.

L’indirizzo di memoria è un numero d

Dettagli
A.A. 2023-2024
120 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher _Francesco_vl03 di informazioni apprese con la frequenza delle lezioni di Elaborazione delle immagini 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 Roma La Sapienza o del prof De Gaspari Fabio.