Estratto del documento

Appunti di

Sistemi Operativi

Corso L.T. Ingegneria Informatica, Proff. Nanni e Moro

UniPD, 2° semestre A.A. 2017/2018

Indice

Indice .................................................................................................................................................................................................. 1

Introduzione................................................................................................................................................................................... 3

Sistema operativo ...................................................................................................................................................................... 3

Architettura e I/O ...................................................................................................................................................................... 4

Multiprocessore, multicore ................................................................................................................................................... 6

Processi .......................................................................................................................................................................................... 7

Gestione della memoria centrale ..................................................................................................................................... 10

Gestione del filesystem ........................................................................................................................................................ 11

Protezione ................................................................................................................................................................................. 11

Strutture dati del kernel ...................................................................................................................................................... 12

Reti di Petri .................................................................................................................................................................................. 14

Definizione ................................................................................................................................................................................ 14

Evoluzione ................................................................................................................................................................................. 14

Interazioni tra processi ........................................................................................................................................................ 15

Esempi di modelli rilevanti con le reti di Petri ........................................................................................................... 16

Reti di Petri estese (EPN) .................................................................................................................................................... 17

Hardware ...................................................................................................................................................................................... 19

Central Processing Unit........................................................................................................................................................ 19

Parallelismo .............................................................................................................................................................................. 22

Concorrenza ................................................................................................................................................................................ 25

Evoluzione dei processi ....................................................................................................................................................... 28

Semafori ..................................................................................................................................................................................... 32

Monitor ....................................................................................................................................................................................... 34

Scheduling CPU .......................................................................................................................................................................... 37

Introduzione ............................................................................................................................................................................. 37

Algoritmi di scheduling ........................................................................................................................................................ 39

Gestione della memoria ........................................................................................................................................................ 46

Introduzione ............................................................................................................................................................................. 46

Paginazione ............................................................................................................................................................................... 47

Segmentazione......................................................................................................................................................................... 49

Memoria virtuale .................................................................................................................................................................... 50

Gestione file ................................................................................................................................................................................. 57

File ................................................................................................................................................................................................ 57

Struttura logica del disco .................................................................................................................................................... 59

Strutture delle directory ...................................................................................................................................................... 59

- 1 -

Struttura fisica del disco ...................................................................................................................................................... 60

Scheduling disco ..................................................................................................................................................................... 62

Formattazione e correzione ............................................................................................................................................... 63

RAID ............................................................................................................................................................................................. 65

Realizzazione filesystem ..................................................................................................................................................... 67

Realizzazione directory ....................................................................................................................................................... 68

Nozioni finali sui file system .............................................................................................................................................. 70

Affidabilità .................................................................................................................................................................................... 73

Linguaggio C................................................................................................................................................................................. 74

Introduzione ............................................................................................................................................................................. 74

Sintassi ........................................................................................................................................................................................ 74

Funzioni ...................................................................................................................................................................................... 78

Questa dispensa contiene tutti gli appunti dalle lezioni del prof. Nanni, più gli appunti sulle reti di Petri

e sul linguaggio C tenuti dal prof. Moro.

Non sono comprese le lezioni sul linguaggio Java e UNIX (prof. Moro).

- 2 -

Introduzione

Slide 1-70 Nanni

Sistema operativo

Il sistema operativo è un software che agisce da

intermediario tra l’utente e l’hardware del computer. Deve

fornire servizi e caratteristiche presenti a tutti i suoi utenti.

Il SO perfetto è invisibile all’utente. Ogni utente pensa in

modo diverso all’utilizzo del computer: ha una propria

visione astratta del sistema di elaborazione, che tiene conto

solo di quelle caratteristiche che l’utente ritiene importanti.

Scopi del sistema operativo:

1. Eseguire i programmi, supportando l’utente nel “risolvere problemi”

2. Rendere agevole l’interfaccia fra l’uomo e la macchina

3. Gestire in modo efficiente le risorse (hardware/software) del sistema di calcolo

4. Prevenire le interferenze tra/con le attività degli utenti

Struttura

Il SO può essere descritto attraverso un modello a gusci

concentrici che circondano l’hardware, a contatto diretto

con il quale è il nucleo o kernel, che ingloba le funzioni più

elementari eseguibili direttamente dall’hardware stesso.

All’esterno c’è invece la cosiddetta shell, che consente

all’utente di accedere alle funzioni più evolute del sistema.

Gli utenti si aspettano un sistema facile da usare e dotato

di buone prestazioni. Non si preoccupano della gestione

delle risorse.

Nei tablet e gli smartphone le risorse vengono ottimizzate dal SO per fornire usabilità e basso

consumo energetico. Certi computer, come i sistemi embedded, presenti negli elettrodomestici o

nelle automobili, hanno SO che non dispongono neppure di una interfaccia utente.

Definizione

Il sistema operativo controlla e coordina l’utilizzo delle risorse hardware da parte dei diversi

programmi di sistema e applicativi. Arbitra i conflitti per l’allocazione di risorse in base ad

una politica equa ed efficiente. Controlla l’esecuzione dei programmi utente per prevenire

errori e/o uso improprio delle risorse del sistema.

Problemi:

1. Esecuzione dei programmi utente

2. Efficienza nell’uso delle risorse (processori, memoria, dischi, etc.)

3. Coordinamento dei processi

4. Protezione nell’uso delle risorse (e terminazione dei processi che ne abusano)

I SO per dispositivi mobili non sono costituiti esclusivamente da un kernel, ma anche dal

middleware, un insieme di programmi informatici che fungono da intermediari tra diverse

applicazioni e componenti software. - 3 -

Il middleware può considerarsi una collezione di ambienti software per gli sviluppatori di

applicazioni. Sia iOS di Apple che Android dispongono di un middleware che supporta lo sviluppo

di app multimediali, grafiche e database oriented

Bootstrap e BIOS

Il programma di bootstrap viene caricato all’accensione o riavvio del computer dal BIOS.

Bootstrap indica l'insieme dei processi che vengono eseguiti da un computer durante la fase

di avvio, dall'accensione fino al completo caricamento in memoria primaria del kernel del

sistema operativo a partire dalla memoria secondaria.

Il BIOS è tipicamente memorizzato nella ROM e viene identificato con il termine di

firmware. Normalmente, un boostrap loader è memorizzato su disco fisso (nel MBR). BIOS è

un insieme di routine software che fornisce una serie di funzioni di base per l'accesso

all'hardware; inizializza (e controlla) tutte le componenti del sistema; procede al caricamento

del kernel del SO e ne lancia l’esecuzione.

Architettura e I/O

Il sistema di calcolo è formato da una o più CPU e diversi controllori di device connessi ad

un bus comune, che permette l’accesso ad una memoria condivisa. CPU e controllori di

device sono eseguiti concorrenzialmente, e competono per garantirsi cicli di memoria; possono

inoltre eseguire operazioni concorrenti.

Ciascun controllore gestisce un particolare tipo di periferica e gestisce un buffer locale,

memoria usata temporaneamente per l'entrata o l'uscita dei dati; la CPU si occupa di

spostare i dati tra la memoria principale e i buffer locali, e l’I/O avviene effettivamente sui

dati contenuti nei buffer delle periferiche.

Interrupt

Il controllore informa la CPU quando ha portato a termine l’operazione di I/O, causando un

interrupt. Un interrupt è un segnale che indica il "bisogno di attenzione" da parte di una

periferica finalizzata ad una particolare richiesta di servizio, un evento che consente

l'interruzione di un processo qualora si verifichino determinate condizioni (gestione dei

processi) oppure più in generale una particolare richiesta al sistema operativo da parte di un

processo in esecuzione.

Al verificarsi di un interrupt, il controllo viene trasferito all’opportuna routine di gestione,

utilizzando il vettore degli interrupt (residente nella memoria) che contiene gli indirizzi di

tutte le routine di servizio. Si salva inoltre l’indirizzo dell’istruzione “interrotta” e lo “stato”

della CPU, dalla quale dovrà riprendere l’esecuzione al termine della gestione

dell’interruzione. Durante la gestione di un interrupt, altri eventuali interrupt giunti al

sistema sono momentaneamente “disabilitati”.

Una trap (o eccezione) è un interrupt generato via software, causato da un errore o da una

richiesta utente (effettuata tramite una system call). System call è un meccanismo, usato da

un processo a livello utente o livello applicativo, per richiedere un servizio a livello kernel.

Gestione dell’I/O

Una percentuale cospicua del codice del SO è dedicata alla gestione dell’I/O: l’interazione con

i dispositivi di I/O è fondamentale per il progetto di un sistema affidabile ed efficiente, e vi è

una grande variabilità nei dispositivi di ingresso/uscita. Ciascun controllore si occupa di un

particolare tipo di dispositivo (può gestire una o più unità ad esso connesse, e.g. più schede

video in SLI di NVIDIA). Il driver del dispositivo è il “sistema operativo” del controllore.

- 4 -

In seguito ad una richiesta di I/O, da parte di un processo utente, si verifica un’interruzione;

dopo l’inizio dell’operazione di I/O il flusso di esecuzione può seguire due percorsi distinti:

• I/O sincrono: si restituisce il controllo al processo utente solo dopo il completamento

dell’operazione di I/O. La CPU è mantenuta in stato idle da una wait (CPU

inattiva). Si può avere un solo I/O in esecuzione simultaneamente.

• I/O asincrono: altrimenti, si può prevedere la restituzione immediata del controllo: in

questo modo l’I/O può proseguire mentre il sistema esegue altre operazioni.

Dispositivi di memoria e caching

I dispositivi di memoria sono organizzati gerarchicamente in base a velocità di accesso, costo,

volatilità.

Il caching è la produzione di una copia dell’informazione in un dispositivo di memoria più

veloce (situato più in alto nella gerarchia delle memorie); la memoria principale costituisce

una cache per le memorie secondarie. La cache ha dimensioni inferiori rispetto al supporto di

memoria dal quale si effettua il caching. La gestione della cache, data la capacità limitata dei

dispositivi di caching, rappresenta un problema di progettazione fondamentale.

Un’appropriata selezione delle dimensioni e dei criteri di aggiornamento della cache può

garantire che una percentuale variabile dall’80% al 99% degli accessi si limiti alla cache, con

un notevole incremento delle prestazioni del sistema.

DMA

Il Direct Memory Access (DMA) è utilizzato per dispositivi di I/O ad alte prestazioni (SATA

controller, NIC, schede grafiche…), con velocità di trasferimento comparabili alla velocità di

accesso alla memoria centrale.

Il controllore di device trasferisce blocchi di dati dal buffer locale direttamente nella memoria

principale, senza intervento della CPU. Viene generato un solo interrupt per regolare il

trasferimento di ciascun blocco (invece di un interrupt per byte).

- 5 -

Multiprocessore, multicore

Fino a qualche anno fa molti sistemi utilizzavano un singolo processore general-purpose, pur

inglobando molti microprocessori special-purpose (e.g. per scheda video). Da qualche anno i

sistemi multiprocessore e multicore hanno iniziato a dominare il mondo della computazione:

1. Maggiore throughput (maggior numero di processi terminati nell’unità di tempo)

2. Migliore economia di scala (prezzi più bassi rispetto a più sistemi monoprocessore)

3. Incremento dell’affidabilità (i guasti non bloccano il sistema)

Multiprocessore Multicore

I sistemi multiprocessore attualmente in uso Nei sistemi multicore si raggruppano diverse

permettono la multielaborazione asimmetrica. unità di calcolo core in un singolo chip. Più

Ad ogni processore viene assegnato un compito efficienti, perché le comunicazioni, sul singolo

specifico; un processore principale sovrintende chip, sono più veloci. Un chip multicore usa

all’intero sistema. molta meno potenza di diversi chip single core.

Cluster

Simili ai sistemi multiprocessore, ma composti da due o più calcolatori completi, detti nodi,

collegati tra loro, normalmente collegati ad una memoria secondaria condivisa tramite una

SAN (storage area network). Presentano inerentemente una notevole fault tolerance.

Clustering asimmetrico: un calcolatore rimane

Anteprima
Vedrai una selezione di 10 pagine su 81
Appunti di Sistemi Operativi Pag. 1 Appunti di Sistemi Operativi Pag. 2
Anteprima di 10 pagg. su 81.
Scarica il documento per vederlo tutto.
Appunti di Sistemi Operativi Pag. 6
Anteprima di 10 pagg. su 81.
Scarica il documento per vederlo tutto.
Appunti di Sistemi Operativi Pag. 11
Anteprima di 10 pagg. su 81.
Scarica il documento per vederlo tutto.
Appunti di Sistemi Operativi Pag. 16
Anteprima di 10 pagg. su 81.
Scarica il documento per vederlo tutto.
Appunti di Sistemi Operativi Pag. 21
Anteprima di 10 pagg. su 81.
Scarica il documento per vederlo tutto.
Appunti di Sistemi Operativi Pag. 26
Anteprima di 10 pagg. su 81.
Scarica il documento per vederlo tutto.
Appunti di Sistemi Operativi Pag. 31
Anteprima di 10 pagg. su 81.
Scarica il documento per vederlo tutto.
Appunti di Sistemi Operativi Pag. 36
Anteprima di 10 pagg. su 81.
Scarica il documento per vederlo tutto.
Appunti di Sistemi Operativi Pag. 41
1 su 81
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher peckles 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 Padova o del prof Nanni Loris.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community