Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
COMPONENTI DEI S.O.
I s.o.,seppur diversi tra loro nella struttura, molti hanno scopi comuni che devono conseguire. Il s.o. deve gestire:
Un processo è del programma in esecuzione che ha bisogno di risorse per portarsi a
Gestione del processo:
termine,cioè di tempo di CPU, di memoria, di file e di dispositivi di I/O. Il s.o. è responsabile delle seguenti
attività: creazione e cancellazione di processi, sospensione e ripristino di processi, mettere a disposizione
meccanismi per la sincronizzazione e comunicazione fra processi.
La memoria, condivisa dalla CPU e dai dispositivi di I/O, è l'unico
Gestione della memoria principale:
dispositivo di memorizzazione che la CPU può indirizzare direttamente, di conseguenza le istruzioni possono
essere eseguite solo se si trovano effettivamente in memoria. Occorre quindi poter gestire più programmi in
memoria, per migliorare l'utilizzo della CPU e quindi le prestazioni del sistema. Esistono allora più schemi per
la sua gestione che dipendono dall'hardware.
Il s.o. è responsabile di: gestire lo spazio libero, allocare lo spazio, fare
Gestione della memoria secondaria:
lo scheduling del disco. Dato che l'uso del disco è molto frequente la gestione deve essere efficiente.
Lo scopo è nascondere l'hardware all'utente, per questo motivo si usano: sistemi
Gestione del sistema di I/O:
di buffer cathing, un'interfaccia generale per i driver dei dispositivi, driver per specifici dispositivi hardware.
Solo il driver conosce le caratteristiche dello specifico dispositivo a cui è assegnato.
Il s.o. ha una visione logica uniforme del processo di memorizzazione dell'informazione.
Gestione dei file:
Esiste un solo tipo di oggetto: il file, che è la sola unità logica di memoria. Il s.o. si occupa di: creazione e
cancellazione di file e directory, supporto di primitive per la manipolazione di file e directory, mapping dei file
sulla memoria secondaria e backup dei file su dispositivi di memorizzazione stabili.
SISTEMA DISTRIBUITO
Un sistema distribuito è un insieme di unita che non condividono la memoria, i dispositivi perifericio un clock.
Ogni unita dispone di una propria memoria locale.Le unita comunicano tra loro tramite reti e le comunicazioni
avvengono tramite protocolli. Dal punto di vista dell’utente, un sistema distribuito e un insieme di sistemi
fisicamente separati organizzato in modo tale da apparire come un unico sistema coerente, ovvero appare come
una singola memoria principale ed un unico spazio di memoria di massa. L’accesso ad una risorsa condivisa
permette di accelerare il calcolo, di aumentare la disponibilita di dati e di incrementare l’affidabilita.
Un s.o. con piu utenti consente che i processi vengano eseguiti in concorrenza. I
Gestione delle protezioni:
processi devono essere protetti dalle attivita di altri processi, occorrono quindi meccanismi di autorizzazione.
Protezione: e il meccanismo che controlla l'accesso da parte di programmi, processi o utenti alle risorse di un
sistema di calcolo (ad esempio una parte di memoria allocata per un processo non deve poter essere scrivibile da
parte di un altro processo). L'interprete dei comandi, ossia l’interfaccia fra utente e sistema può avere aspetti
diversi:
Istruzioni di controllo
・ Shell
・ Interfaccia grafica
・ IL SISTEMA OPERATIVO
Il suo compito e quello di accettare comandi da parte dell’utente. Un sistema operativo e costituito da nucleo
(kernel) e da una interfaccia verso l'utente. System call
L'interfaccia tra il Sistema Operativo e i programmi degli utenti e definita da un insieme di Istruzioni Estese,
ovvero System Call (chiamata di sistema). Esse creano, cancellano, usano oggetti software gestiti dal s.o..
La loro implementazione puo essere diversa a seconda del sistema operativo. Tipiche chiamate di sistema:
Controllo dei processi
• Gestione dei file
• Gestione dei dispositivi
• Gestione dell’informazione
• Comunicazioni
•
I programmi dell'utente comunicano con il s.o. e gli richiedono servizi per mezzo delle Chiamate di Sistema. A
ogni system call corrisponde una Procedura di Libreria (che il programma puo invocare) che ha i seguenti
compiti:
mette i parametri della system call in un sito predefinito (es. Registro)
• istanzia un'istruzione TRAP per mandare un interrupt al sistema operativo
• nasconde i dettagli dell'istruzione TRAP
• rende le system call come chiamate di procedura normali (es. da programmi in C)
•
I programmi di sistema offrono un ambiente per lo sviluppo e l’esecuzione dei programmi. Possono
essere classificati in programmi per:
Gestione dei file
• Informazioni di stato
• Modifica dei file
• Ambienti di sviluppo
• Caricamento ed esecuzione dei programmi
• Comunicazioni
• Programmi applicativi
•
Per l'utente la maggior parte delle operazioni è vista come esecuzione di programmi, non come chiamate di
sistema. Struttura di un sistema operativo
Il sistema operativo e costituito da una collezione di procedure ognuna delle quali puo
Sistemi monolitici:
chiamare qualsiasi altra. Unica struttura presente sono le system call che comportano il salvataggio dei
parametri e l'esecuzione di una trap speciale detta kernel call o supervisor call. Una chiamata di sistema e
realizzata cosi:
un programma utente esegue una trap verso il nucleo;
• il sistema operativo determina il numero del servizio richiesto;
• il sistema operativo individua e chiama la procedura di servizio;
• viene restituito il controllo al programma utente
•
Struttura di MS-DOS Vi e un duplice modo di funzionamento: i sistemi che condividono
risorse devono garantire che programmi non corretti non
interferiscano con gli altri processi in esecuzione.
L’hardware (mode bit) permette al sistema operativo di operare in
due modalita differenti
User mode: normale funzionamento dei programmi utent
– Monitor mode (o kernel mode o system mode): operazioni
– effettuate dal s.o.. Quando avviene un interrupt si passa al
kernel mode.
Alcune istruzioni (privileged instructions) possono essere eseguite solo in kernel mode:
• Tutte le istruzioni di I/O sono privileged instruction
• Occorre garantire che nessun programma possa essere eseguito in kernel mode
Struttura di UNIX
Struttura a tre strati:
1) Un programma principale che richiama la procedura di servizio richiesta
2) Un insieme di procedure di servizio che eseguono le chiamate di sistema
3) Un insieme di procedure di utilita che forniscono il supporto alle procedure di servizio
Il s.o. e organizzato in una gerarchia di livelli. Il 1° sistema con una struttura di
Sistemi multilivello:
questo tipo fu THE, realizzato alla Technische Hogelschool Eindhoven in Olanda da Dijkstra nel
1968 per il computer Electrologica X8 (32k di parole di 27 bit ed un tamburo 512k parole usato per
memorizzare parti di programma). THE ha 6 livelli.
Strato Funzionalità
5 Operatore
4 Programmi utente
3 Gestione I/O
2 Comunicazione processo-console
1 Gestione della memoria e del tamburo
0 Allocazione della CPU e multiprogrammazione
Si sposta quanto possibile dal kernel allo spazio utente. Le comunicazioni avvengono
Struttura a microkernel:
tramite messaggi.
Vantaggi:
Estendere un microkernel e piu facile
•
• Maggiore portabilita del sistema operativo
• Piu affidabilita (il codice critico nel kernel e minore)
• Piu sicuro
•
Svantaggi:
Vi e un overhead dovuto alle comunicazioni fra spazio utente e kernel
• In origine, il termine virtual machine veniva usato per indicare la creazione di una molteplicità
Virtual machine:
di ambienti di esecuzione identici in un unico computer, ciascuno con il proprio s.o.. Lo scopo di questa tecnica
era di dividere tra più utenti l'uso di un singolo computer dando ad ognuno l'impressione di esserne gli unici
utilizzatori, oltre ad avere vantaggi che le macchine reali non hanno (poniamo il caso di dover riavviare la
macchina ad esempio, con macchine virtuali questa operazione è più veloce anche perché c'è la possibilità di
scegliere quali componenti attivare e quali no). Il software che rende possibile questa divisione viene chiamato
virtual machine monitor o hypervisor.
Vi sono gli hypervisor di tipo 1 che sono quelli che vengono attivati al momento del boot (modilità kernel), la cui
funzione è quella di attivare un certo numero di macchine virtuali, le quali possono eseguire anche s.o. diversi.
Gli hypervisor di tipo 2 sono invece quelli che vengono attivati in user mode e permettono l'utilizzo di una
macchina virtuale. Vi è la possibilità di “passare” da un sistema all'altro e avere piu macchine virtuali che
lavorano contemporaneamente
-Vantaggi: ogni parte è più semplice, più flessibile e più facile da mantenere; una macchina virtuale
permette una completa protezione delle risorse di sistema; rende facile lo sviluppo di un
sistema operativo (le normali operazioni non vengono bloccate).
-Svantaggi: l'isolamento delle macchine virtuali rende complessa la condivisione di risorse; il concetto di
macchina virtuale è spesso difficile da realizzare.
I Requisiti per la virtualizzazione sono:
1) Le istruzioni vengono divise in tre gruppi:
Istruzioni privilegiate (generano una trap solo se si è in user mode)
• Istruzioni di controllo (modificano le risorse di sistema, p.e. I/O)
• Istruzioni il cui risultato dipende dalla configurazione del sistema.
•
2)Devono essere verificate le condizioni sufficienti perché una architettura possa essere virtualizzata (condizioni
di Popek e Goldberg). Le istruzioni di controllo devono essere un sottoinsieme delle istruzioni privilegiate cioè:
Tutte le istruzioni che possono influenzare l’esecuzione del Virtual Machine Monitor devono generare una trap ed
essere gestite dal VMM stesso e le istruzioni non privilegiate possono essere eseguite nativamente.
La virtualizzazione può essere di 3 tipologie
Emulazione : la macchina virtuale simula completamente l'hardware, utilizzando un s.o. reale che poi
• viene eseguito per la CPU virtuale; questa virtualizzazione è poco efficiente.
Paravirtualizzazione : il s.o. ospite deve essere modificato. La macchina virtuale non simula un hardware
• ma offre speciali API che richiedono modifiche nel s.o.;Concettualmente simile al binary rewriting, ma il
rewriting avviene a tempo di compilazione.Quando un’applicazione genera una systemcall, questa viene
intercetta dal SO guest.Quando quest'ultimo prova ad eseguire istruzioni privilegiate, il VMM
“intrappola” (traps) l’operazione e le eseg