Documento dall'Università degli Studi di Brescia su Appunti di Sistemi Operativi A. Il Pdf, utile per studenti universitari di Informatica, esplora la gestione della memoria, i processi, la comunicazione inter-processo, il dual mode, l'input/output, i thread e lo scheduling, con sezioni dedicate alla protezione e sicurezza.
Mostra di più65 pagine


Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA APPUNTI DI SISTEMI OPERATIVI A
Paolo Bellagente AA 2006/2007 bgkerion@yahoo.it
1 - Materiale aggiuntivo e introduzione: 3
2 - Il Sistema Operativo. 3
2.1 - Caratteristiche del SO 4
2.2 - Classificazione. "
2.3 - Il DUAL MODE "
2.3.1 - Bootstrap "
2.3.2 - Shutdown )
2.3.3 - Funzionamento Normale. )
2.3.4 - Process Switch -
2.3.5 - Gestione degli interrupt. -
2.4 - Architetture dei SO /
2.4.1 - Esempio: Microsoft Windows NT 2
3 - Input/Output. 12
3.1 - I/O con l'utente 13
3.1.1 - Tastiera con video alfanumerico 13
3.1.2 -Grafica. 13
4 - Processi 14
4.1 - Ciclo di vita di un Processo. 15
4.2 - Struttura in memoria di un Processo 16
4.2.1 - Process Control Block (PCB). 16
4.3 - Thread. 17
4.3.1 - Ciclo di vita di un ULT. 19
4.3.2 -Stati di un KLT 19
4.4 - Generazione di processi figli in UNIX 20
4.5 - Scheduling (a breve termine) 20
4.5.1 - Algoritmi. 21
4.6 - Sistemi Real-Time. 25
4.6.1 -Scheduling Real Time. 26
4.6.2 - Caratteristiche dei sistemi Real Time. 27
4.6.3 - Struttura generale interna dei SO Real Time. 27
4.7 - Comunicazione tra Processi. 28
4.7.1 - Comunicazione con memoria condivisa. 28
4.7.2 - L'algoritmo di Peterson 31
4.7.3 - Istruzioni HW ad atomicità estesa 31
4.7.3 - I Semafori. 33
2 1Appunti di Sistemi Operativi A
4.7.4- I Monitor. 34
4.7.5 - Comunicazione con scambio di messaggi. 36
4.7.6 - Deadlock. 38
5 - Gestione della Memoria 40
5.1 - Binding degli indirizzi 40
5.2 - La Memoria Virtuale. 40
5.2.1 - Allocazione contigua 40
5.2.2 - La Paginazione. 42
5.3.3. - Segmentazione. 44
5.3.4 - Gestione dei page fault. .46
5.3.5 - Il Working Set. 50
5.3.6 - Principio di località 51
5.3.6 - Gestione dello spazio Libero 51
5.3.6 - Riassumendo 52
5 - Il File System 53
5.1 - Implementazione: da Nome a riferimento fisico 55
5.1.1 - FAT: File Allocation Table. 56Appunti di Sistemi Operativi A
5.1.2 - Allocazione in UNIX: gli inode. 57
5.1.3 - NTFS: NT File System. 58
5.1.4 -implementazione su disco 59
5.1.4 - Accorgimenti fisici per migliorare le prestazioni. 60
5.1.5 - Scheduling del disco. 62
6 - Protezione e Sicurezza. 63
6.1 - La Matrice d'accesso. 63
6.2 - Politiche d'acesso: ACL e Capability. .64
6.2 - Revoca dei permessi .64
2 1 - Materiale aggiuntivo e introduzione: Oltre ai presenti appunti è possibile trovare uteriore materiale:
Lo scopo del corso è quello di dare una panoramica generale sull'architettura e il funzionamento dei sistemi operativi.
2 - Il Sistema Operativo Come detto sopra in questo corso si parlerà di Sistemi operativi, ma cosa vuol dire sistema operativo (SO da qui in poi)? Il nome in sè non dice molto; andando a leggere alcuni libri di informatici teorici molto famosi si nota che anche loro fanno fatica a definire un concetto così astratto; mettiamoci allora d'accordo su cosa intendiamo quando parliamo di SO: "Definizione": un SO è un software che fa da intermediario tra l'hardware (HW di seguito) e il Software (SW di seguito) il cui scopo è rendere possibile il passaggio da Programmi a Processi. La differenza tra Programma e processo è abbastanza immediata:
APPLICAZIONI COMPILATORI INTERPRETI ETC ..
Diamo un'occhiata all'architettura generale, essa presenta una struttura a livelli:
SO
ISTRUZIONI NORMALI ISTRUZIONI PRIVILEGIATE
INSTRUCTION SET ARCHITECTURE (ISA)
Questa struttura presenta grossi vantaggi in termini di: facilità ed efficienza: istruzioni complesse e delicate già risolte ed ottimizzate dai prgrammatori del SO
HARDWARE
Processo: Programma in esecuzione su un esecutore; è un'entità concreta, dinamica e collocata nel tempo. Le applicazioni utente vengono tradotte dai compilatori (interpreti etc .. ) in un linguaggio più vicino alla macchina ma non prendono mai il controllo completo dell'hardware. Il SO maschera parzialmente l'ISA (insieme delle istruzioni tipiche di ogni processore) che viene così diviso in due parti: le istruzioni poco delicate e semplici vengono eseguite direttamente mentre quelle più complesse o più delicate vengono eseguite dal SO.
3Appunti di Sistemi Operativi A Riassumendo, un'applicazione utente per accedere al disco lo chiede al sistema operativo (tramite una Chiamata di Sistema o System Call. syscall da ora in poi) il quale eseguirà la lettura e restituirà il dato all'applicazione. (operazione molto delicata: individua la traccia poi il settore, muovi la testina, leggi il dato .... se ogni volta il programmatore deve pensare a tutto questo ... ) Oltre all'interfaccia con l'HW il SO gestisce anche la convivenza tra programmi diversi ed utenti diversi. il problema risulta dalla necessità di suddividere e condividere le risorse in maniera regolata evitando le interferenza dannose e permettendo le comunicazioni utili. Se esistono utenti diversi, essi vanno identificati per poter poi assegnare a ciascuno gli opportuni diritti d'accesso. Visto in quest'ottica il SO è fondamentalmente un:
definizione unitaria: VIRTUALIZZATORE. Maschera una realtà facendo credere all'entità di livello superiore che ne esiste un'altra diversa.
FRUITORE DELLA VIRTUALIZZAZIONE
VIRTUALIZZATORE
REALTÀ VIRTUALE
REALTÀ "VERA"
Uomo
LSD
mondi fantastici
reazioni chimiche (dannose) nel cervello
Uomo
Sistemi di realtà virtuale
scenari 3D
caschi, guanti, ...
Uomo
SO
macchina dedicata
macchina condivisa
Processi
SO
CPU dedicata
CPU condivisa
Processi
SO
Spazio in memoria continuo e dedicato (memoria virtuale)
memoria allocata a pezzi ed in parte su disco
Processi
SO
File
dispositivi HW diversi
grazie a questo ci si può concentrare su concetti astratti (processi, file) ignorando la più complessa relatà.
2.1 - Caratteristiche del SO
fruitore
virtualizzatore
realtà "vera"
realtà virtuale
virtualizzatore
realtà
Vediamo di stilare una rapida "Carta d'identità" di un SO:
4Appunti di Sistemi Operativi A creando più macchine virtuali sulle quali si può fare tutto (es. JVM Java Virtual Machine)
2.2 - Classificazione I SO possono essere suddivisi in 5 categorie a seconda delle loro caratteristiche:
2.3 - Il DUAL MODE Come dice il nome il dual mode è un doppio modo di funzionamento:
Nei processori moderni esiste un flag che tiene memoria del modo corrente. Il passaggio da un modo ad un'altro è regolamentato dalle mode switch; la vita di un calcolatore può quindi essere rappresentata come una sequenza di mode switch:
|bootstrap U K U 8 K U K U shutdown OFF accensione
2.3.1 - Bootstrap Il bootstrap è la sequenza di accensione di un calcolatore. La CPU è programmata per copiare un po' di codice da una ROM (Read Only Memory), chiamata BIOS (Basic Input Outpu System) nei PC, in memoria centrale. Questo codice effettua in ordine una fase di diagnostica e di rilevamento dell'HW (lettura di informazioni sui dispositivi), un'inizializzazione dell'HW e la preparazione delle routine di interrupt. Tutto questo non ha ancora nulla a che vedere con il SO. A questo punto viene identificato il dispositivo di Boot dal quale viene letta una locazione fissata dello stesso. Questa locazione fissata contiene un programmino di boot (bootloader) diverso a seconda del SO il quale può leggere altre parti del disco, inoltre contiene le informazioni sulle partizioni del disco. É possibile avere installati più sitemi operativi, in questo caso il bootloader chiederà al'utente quale SO vuole venga caricato, una volta scelto per un processo "a valanga" verrà caricato tutto il SO, verranno avviati processi di sistema e processi utente utili (es: login&password). "Appunti di Sistemi Operativi A Se il processo di Boot si blocca con il SO esiste una modalità provvisoria (un boot semplificato) che carica meno cose possibili (per es. invece del driver di accelerazione grafica avvierà il driver grafico più smplice che conosce) sperando di escludere la parte che genera l'errore consegnando all'utente una macchina brutta ma funzionale per correggere gli errori.
2.3.2 - Shutdown Procedura di spegnimento, salva le informazioni sullo stato del SO e termina ordinatamente i processi per evitare la perdita di dati.
2.3.3 - Funzionamento Normale
interrupt disabilitati
start
fetch
execute
check for interrupt
halt
interrupt abilitati
Nella figura a sx viene rappresentato il normale ciclo di funzionamento di un calcolatore elettronico. Ogni volta che avviene un interrupt il SO deve intervenire per gestire l'eccezione, avviene quindi un mode switch. Esistono circa 3 categorie di eventi che possono causare un mode switch:
Quando avviene un mode switch vengono eseguite alcune azioni HW:
ed alcune azioni SW:
tutto questo ad ogni mode switch. )