Download - Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Transcript
Page 1: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Il Sistema Operativo

Page 2: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Sistema Operativo (Software di base)

Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso indici

I sistemi operativi sono organizzati a strati

Strato = macchina virtuale che maschera la macchina fisica (hardware)

Page 3: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Sistema operativo

Hardware

Sistema operativo

Interfaccia utenteutente

Page 4: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Funzionalità Possiamo identificare 5 strati tra

macchina fisica e utente Gestore dei processi Gestore della memoria Gestore delle periferiche File system Interprete dei comandi

Page 5: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Gestore dei processi Gestisce l’esecuzione dei programmi Le unità di esecuzione vengono chiamate

processi Per eseguire un programma occorre

mantenere il corrispondente processo attivo nella CPU

In ambiente multi-utente il gestore deve decidere a quale processo assegnare la CPU

Inoltre deve reagire agli eventi esterni (le interruzioni provenienti dalle periferiche)

Page 6: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Cos’e’ un processo? Programma = lista di istruzioni = nozione

statica Processo = programma in esecuzione

= programma + stato corrente variabili = nozione dinamica

Stato corrente= valori in memoria centrale valori nei registri della CPU

In un PC un solo processo in esecuzione alla volta

Page 7: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Gestore della memoria Il gestore della memoria deve

allocare la memoria partizionarla tra i processi che la richiedono

Grazie al gestore della memoria gli strati superiori hanno l’illusione che ogni processo abbia una memoria dedicata

Page 8: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Gestore delle periferiche Maschera le caratteristiche hardware

delle periferiche Gestisce le operazioni di input e output Fornisce procedure ad alto livello

ad esempio per la lettura, scrittura di dati su memorie secondarie

scrittura su stampanti, ecc

Page 9: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

File System Gestisce i dati in memoria di massa Struttura i dati in modo gerarchico

utilizzando file e directory Fornisce operazioni di alto livello per la

gestione di file ad esempio creazione di un nuovo

documento, directory ecc Protegge i dati da accessi esterni Garantisce la condivisione sicura dei

dati

Page 10: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Interprete dei comandi Consente all’utente di attivare i

programmi Sfrutta le funzionalità degli strati

inferiori per cercare in memoria il programma invocato allocare la memoria richiesta dal

programma attivare un processo per eseguire il

programma

Page 11: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Evoluzione dei Sistemi Operativi Sistemi batch con schede (50’s-60’s) System/360 IBM compatibili (65-70’s) Sistemi operativi UNIX e DOS (80’s) WINDOWS (90’s)

Page 12: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Uno sguardo da vicino

Gestione dei Processi Gestione della Memoria Centrale File System Gestione delle Periferiche

Page 13: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Ciclo di vita dei processi L’esecuzione di un programma può comportare

l’alternarsi di processi utente e di sistema all’interno della CPU

Processo utente: deriva da un programma applicativo

Processo di sistema: deriva da un programma del sistema operativo

Processi kernel (nucleo) Gestori interruzioni

L’esecuzione di un processo puo’ essere interrotta!

Ricordate sempre che un processo corrisponde ad un programma + stato corrente della memoria centrale e dei registri

Page 14: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Interruzione interna L’esecuzione di un processo attivo si

interrompe ad es. per operazioni di input/output (operazioni costose in termini di tempo)

Lo stato corrente (contenuto registri ecc) del processo interrotto viene salvato in memoria

Il processo passa allo stato in attesa Il controllo passa ad un processo di sistema

che assegna la CPU ad un altro processo (per poter ottimizzare l’utilizzo della CPU)

Page 15: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Interruzioni interne

attivo pronto

attesa

Salvastato

Ripristinastato

Fine

Inizio

Acknowledg. operazione

Page 16: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Interruzioni esterne Una periferica segnala la fine di un operazione L’esecuzione del processo corrente viene interrotta (il processo passa allo stato pronto) e passa al

gestore delle interruzioni Quindi interruzioe esterna perche’ riguarda le operazioni di

un’altro processo! Il gestore delle interruzioni provvede a trasferire

dati in memoria e risvegliare il processo in attesa che passa allo stato pronto

Il controllo passa poi al nucleo che manda in esecuzione uno dei processi in stato pronto

Il gestore lavora con interruzioni disabilitate

Page 17: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Interruzioni esterne

attivo pronto

Salvastato

Ripristinastato

Fine

Inizio

Page 18: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Scheduling dei processi Il sistema operativo può interrompere i processi

per assicurare una politica equa (fair) di esecuzione

Scheduler = quella parte del sistema operativo che seleziona il processo da mandare in esecuzione

Due possibili politiche di scheduling: Round robin Con Priorità

Criteri di valutazione: efficienza, tempi di risposta, fairness, ecc

Page 19: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Round Robin Gestione dei processi in attesa tramite

coda Cioe’ FIFO = first-in first-out

Ogni processo ha un quanto di tempo di esecuzione dopo il quale torna in attesa Quanto >> Tempo per salvare/ripristinare

stato (context switching) Quanto << Tempo di esecuzione del

programma (per assicurare fairness)

Page 20: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Priorità Si assegna una priorità ad ogni processo e si

manda in esecuzione il processo con priorità più alta

La priorità può essere assegnata staticamente ed essere ridotta durante

l’esecuzione: se risulta più bassa di un processo in attesa si

effettua la fase di context switching dinamicamente:

a seconda delle operazioni effettuate dal processo (ad es. seleziona subito processi con operazioni I/O)

Page 21: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Gestione Memoria Centrale I processi si alternano durante l’esecuzione

nella CPU Per ragioni di efficienza dobbiamo

mantenere più programmi in memoria centrale

Cio’ comporta il partizionamento della memoria centrale e del suo spazio di indirizzi.

Possibili tecniche: Segmentazione paginazione

Page 22: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Il Problema della Rilocazione Supponiamo che la memoria venga

assegnata dinamicamente (con qualche strategia) ai programmi in esecuzione

Come possiamo trasformare gli indirizzi logici contenuti all’interno del programma (ad es in linguaggio macchina) in indirizzi fisici (cioe’ indirizzi della RAM)?

Questo problema e’ chiamato: rilocazione dei programmi

Page 23: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Compilatore, linker e loader

Compilatore e Linker Traducono programmi scritti in linguaggio ad alto

livello in programmi in linguaggio macchina che accedono dati (variabili ecc) utilizzando indirizzi logici indipendenti dalla posizione in memoria centrale

(Linker: si utilizza per compilare programmi divisi in moduli)

Loader carica il programma compilato in memoria centrale.

Page 24: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Rilocazione Statica

il loader trasforma indirizzi logici in indirizzi assoluti durante il caricamento in memoria centrale

Dinamica il loader carica il programma con indirizzi logici.

Il programma compilato deve pero gestire l’indirizzamento tramite un registro speciale chiamato registro base

Il Registro base mantiene l’indirizzo assoluto della parte di memoria dove si trova il programma

Page 25: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Come opera il loader sulla RAM?

Segmentazione dello spazio di indirizzamento della RAM

Paginazione Memoria virtuale

Page 26: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Segmentazione La memoria centrale viene suddivisa in segmenti

di lunghezza variabile contenenti i programmi Registro base

indirizzo della prima cella del segmento contenente il programma in esecuzione

Registro frontiero ultima cella contenente il programma in esecuzione

Rilocazione:indirizzo assoluto = indirizzo logico + cont. reg.

base Problema = frammentazione della memoria

Page 27: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Paginazione La memoria centrale e i programmi

vengono suddivisi in pagine di lunghezza fissa I programmi vengono caricati in memoria anche

in pagine non contigue La tabella delle pagine mantiene la

corrispondenza tra pagine dei programmi e pagine in memoria centrale

Problema= ridurre il numero di caricamenti di pagine

Page 28: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Paginazione: rilocazione Se il registro indirizzi ha k bit e una pagina ha 2**p

celle, vi sono q=k-p pagine in memoria centrale I primi q bit di indirizzo logico indicano una pagina

(logica) nella tabella (la tabella mappa pag. logiche in pag. fisiche)

Gli ultimi p bit indicano l’indirizzo relativo all’interno della pagina

Rilocazione: tramite i primi q bit si recupera l’indirizzo della pagina

fisica poi lo si concatena con gli ultimi p bit in modo da

ottenere l’indirizzo assoluto su k bit!

Page 29: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Memoria Virtuale Con la suddivisone del programma in pagine

non è necessario mantenere tutto il programma in memoria centrale

Paginazione a richiesta: Se la pagina del programma che contiene la

prossima esecuzione da eseguire non è in memoria si carica da disco (page swapping)

occorre trovare spazio in memoria e nella tabella (dobbiamo uccidere altre pagine)

Indirizzi nei programmi diventano virtuali infatti la tabella può contenere le pagine in ordine sparso

Page 30: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Gestione della Memoria Secondaria

Il File System

Page 31: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Gestione della Memoria Secondaria

La memoria di massa serve per gestire grandi quantità di dati Persistentenza Sicurezza Classificazione

Soluzione I dati vengono organizzati logicamente in file e gestiti dal sistema operativo

Page 32: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

File Nome:

Identifica il file spesso con una estensione che indica il tipo di file

es. Tesi.doc oppure somma.exe Struttura:

Sequenza di byte Sequenza di blocchi (record) di byte

Tipo: File di caratteri e binari (eseguibili) Directory

Attributi: nome, diritti di accesso,proprietario

Page 33: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Operazioni su File Il file system consente di effettuare le

seguenti operazioni: creare, cancellare, spostare,

recuperare, modificare documenti in memoria di massa (memoria persistente)

Modificare gli attributi di un file Ridenominare i file

Page 34: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Directory E’ un file di tipo speciale che mantiene

informazioni su altri file permette di strutturare insiemi di file (dati) in

maniera gerarchica contiene la lista dei nomi e attributi dei file e

directory al suo interno Quindi: il file system ha una struttura ad

albero Radice = radice del’intero file system Nodi interni = directory Foglie = documenti/programmi

Page 35: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

File System in DOS/Windows Esistono delle directory predefinite

che corrispondono alle unità di memoria secondaria Disco fisso indicato con C: Dischetto indicato con A:

Page 36: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Struttura ad albero

Page 37: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Struttura ad albero

Floppy da 3.5 A:

Applicazioni Biblioteca

Elab_imm Elab_suoni

Photoshop.exe file

directory

radice

Hard Disk C:

Page 38: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Path names In un’organizzazione ad albero i nomi devono

contenere informazioni sui cammini sui quali si trovano i corrispondenti file

Nomi relativi: relativi ad una particolare directory

Nomi assoluti: specificano il cammino a partire dalla radice (root) del

file system (mai ambigui) Nei path names si possono utilizzare I due

simboli speciali Il punto (.) rappresenta la directory corrente I due punti (..) rappresentano la directory

immediatamente superiore nel’albero

Page 39: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Esempio cammini

Floppy da 3.5 A:

Applicazioni

Elab_imm

Elab_suoni

Photoshop.exe A:\Applicazioni\Elab_imm\Photoshop.execammino assoluto

..\Elab_suoni

cammino relativo da Elab_imm

Page 40: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Gestione File System File possono venire memorizzati con

Allocazione continua di blocchi di byte Allocazione collegata (un blocco contiene

l’indirizzo del prossimo) Allocazione con indice (si mantiene una

tabella in memoria per recuperare i blocchi) – DOS -

I-node: tabella con puntatori ad altre tabelle (combina le ultime due) – UNIX –

Page 41: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Gestione delle periferiche Driver fisici (hardware)

per trasferire e manipolare dati (stampante, lettore floppy, ecc)

Driver logici (software) parte del sistema operativo che fornisce

funzionalità ad alto livello che riguardano le periferiche

Page 42: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Driver fisico Il device controller controlla i meccanismi fisici

dell’apparecchiatura (es. unità di lettura di floppy disk)

Il device controller dialoga con la CPU attraverso registri e attraverso una memoria dedicata alle operazioni I/O chiamata DMA (Memoria ad accesso diretto)

La DMA memorizza informazioni che il device controller puo usare per scrivere in memoria direttamente senza passare attraverso la CPU

Page 43: Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità

Driver logico Software che maschera i device fisici

Gestisce gli errori in lettura/scrittura Gestisce i nomi del device driver Gestisce i demoni per code di attesa per

l’utilizzo di device ad es code di stampa