Please enable JavaScript.
Coggle requires JavaScript to display documents.
IL MODELLO A RING CON USER MODE E KERNEL MODE, Il sistema operativo è…
-
- Il sistema operativo è formato da moduli, cioè gruppi di programmi con funzioni specifiche.
- I moduli sono organizzati in 4 anelli (ring), dal più interno al più esterno.
- Questo modello è chiamato anche buccia di cipolla.
- Ogni anello utilizza le funzioni degli anelli più interni.
1) KERNEL (NUCLEO)
- È la parte più interna del sistema operativo.
- Comunica direttamente con l'hardware.
- Gestisce: il tempo di utilizzo della CPU; le interruzioni; i processi in esecuzione; il funzionamento delle periferiche.
2) MEMORY MANAGEMENT SYSTEM (GESTIONE DELLA MEMORIA)
- Gestisce la memoria centrale (RAM).
- Controlla quali parti della memoria sono occupate o libere.
- Decide quanta memoria assegnare ai processi.
- Assegna la memoria e registra i dati.
- Libera la memoria quando un processo termina.
- Traduce gli indirizzi logici in indirizzi fisici.
3) DEVICE MANAGEMENT SYSTEM (GESTIONE DELLE PERIFERICHE)
- Gestisce le periferiche del computer.
- Controlla quali periferiche sono disponibili o occupate.
- Decide a quale processo assegnarle.
- Gestisce lo scambio di dati tra computer e periferiche.
- Libera le periferiche quando non servono più.
4) FILE MANAGEMENT SYSTEM (GESTIONE DEI FILE)
- Gestisce i dati salvati nelle memorie secondarie (HDD, SSD, USB, CD, DVD).
- Controlla lo stato e l'utilizzo dei dispositivi.
- Gestisce la lettura e la scrittura dei dati.
- Permette di creare ed eliminare file e cartelle.
- Assegna e libera le risorse necessarie.
- Permette di effettuare il backup (copia di sicurezza dei dati).
5) ORGANIZZAZIONE DEGLI ANELLI
- Hardware: parte fisica del computer, al centro del modello.
- Kernel: anello più interno, a contatto con l'hardware.
- Ring 1: gestione della memoria.
- Ring 2: gestione delle periferiche.
- Ring 3: gestione dei file.
- Ring 4: anello più esterno del modello.
- Shell: permette all'utente di comunicare con il sistema operativo.
- User: utente che utilizza il computer.
6) VANTAGGI DEL MODELLO A RING
- Ogni anello svolge funzioni specifiche.
- Gli anelli esterni comunicano con l'hardware attraverso quelli interni.
- È possibile modificare un modulo senza cambiare tutto il sistema operativo.
- I driver permettono al sistema operativo di comunicare con le periferiche.
- I nuovi driver vengono caricati durante l'avvio del sistema (bootstrap).
SISTEMI PER L'ELABORAZIONE A LOTTI (BATCH)
- L'elaborazione batch è tipica dei sistemi centralizzati.
- Permette di eseguire più programmi automaticamente, uno dopo l'altro.
- I programmi vengono raccolti ed elaborati a intervalli prestabiliti.
1) FUNZIONAMENTO DEL SISTEMA BATCH
- Ogni programma da eseguire prende il nome di job (lavoro).
- Più job vengono raggruppati in un batch (lotto).
- Programmi e dati vengono conservati in una memoria ausiliaria.
- I job vengono messi in coda ed eseguiti in sequenza.
- L'elaborazione continua fino all'esaurimento della coda.
2) CARATTERISTICHE
- Tutti i dati devono essere disponibili prima dell'elaborazione.
- L'utente non può interagire con il programma durante l'esecuzione.
- Il sistema operativo decide quando eseguire i programmi.
- Non tutte le applicazioni sono adatte a questo sistema.
3) VANTAGGI
- Sistema operativo più semplice: non deve gestire l'interazione con l'utente durante l'esecuzione.
- Costi ridotti: il funzionamento del sistema è meno complesso.
- CPU efficiente: le risorse vengono sfruttate in modo ottimizzato.
- Obiettivo: i programmi vengono eseguiti senza interventi continui dell'utente.
-
5) ESEMPIO PRATICO (Elaborazione delle buste paga)
- Durante il mese vengono raccolti i dati dei dipendenti: ore di straordinario, giorni di ferie, permessi.
- Alla fine del mese tutti i dati vengono elaborati insieme.
- Il sistema produce automaticamente i cedolini paga.
6) FILE BATCH (.BAT)
- Sono file di testo utilizzati in DOS e Windows.
- Contengono una sequenza di comandi.
- I comandi vengono eseguiti automaticamente dalla shell.
- Vengono eseguiti nello stesso ordine in cui sono scritti.
LA GESTIONE DELLA MEMORIA FISICA E VIRTUALE
- Il sistema operativo gestisce la memoria centrale (RAM) insieme alla CPU.
- La RAM è divisa in gruppi di byte, ognuno con un proprio indirizzo.
- La memoria virtuale permette di superare i limiti della memoria fisica.
1) SPAZIO DEGLI INDIRIZZI DI MEMORIA
- Prima di essere eseguito, un programma deve essere caricato nella RAM.
- La memoria assegnata contiene:
Zona dati: contiene le variabili e i loro valori.
Zona istruzioni: contiene le istruzioni del programma.
- L'insieme delle due zone forma lo spazio degli indirizzi.
- Un programma caricato in RAM è pronto a diventare un processo.
2) TIPI DI INDIRIZZI
- Indirizzi simbolici: nomi utilizzati dai programmatori per identificare variabili, procedure e altri elementi.
- Indirizzi logici: indirizzi numerici generati durante l'assemblaggio, non ancora collegati alla posizione fisica nella RAM.
- Indirizzi virtuali: indirizzi logici utilizzati con la virtualizzazione della memoria.
- Indirizzi fisici: indicano le posizioni effettive dei dati nella RAM.
3) RILOCAZIONE DEGLI INDIRIZZI
La rilocazione trasforma gli indirizzi logici o virtuali in indirizzi fisici.
-
-
6) VANTAGGI DELLA MEMORIA VIRTUALE
- Permette di eseguire programmi più grandi della memoria fisica disponibile.
- Aumenta il livello di multiprogrammazione.
- Consente di sfruttare meglio le risorse del computer.
- Limite: il sistema operativo deve gestire frequenti operazioni di swapping e ricalcolare gli indirizzi fisici.
L'ALLOCAZIONE CONTIGUA A PARTIZIONI
- La memoria centrale viene divisa in sezioni chiamate partizioni.
- Ogni processo occupa una partizione.
- Il numero di processi presenti in memoria dipende dal numero di partizioni.
1) LE PARTIZIONI
La dimensione delle partizioni può creare problemi:
- Partizioni troppo piccole: non possono contenere processi di grandi dimensioni.
- Partizioni troppo grandi: provocano spreco di memoria.
2) PARTIZIONI DINAMICHE
- Le partizioni non hanno dimensioni prestabilite.
- Vengono create in base alla dimensione del processo (su misura).
- Il numero e la dimensione delle partizioni cambiano nel tempo.
- All'avvio esiste un'unica grande partizione disponibile.
- La memoria non utilizzata può essere assegnata ad altri processi.
- Questa tecnica riduce la frammentazione, ma non la elimina.
3) GESTIONE DELLA MEMORIA
Il Memory Management System utilizza due tabelle:
- Tabella delle partizioni: contiene identificativo, dimensione, indirizzo e processo assegnato.
- Tabella delle aree libere: contiene identificativo, dimensione e indirizzo delle zone disponibili.
Problema della frammentazione esterna:
- Si creano tante piccole aree libere.
- Queste aree possono rimanere inutilizzate.
- Un programma potrebbe non trovare un'area libera abbastanza grande.
-
5) COMPATTAMENTO
- Serve a recuperare le piccole aree libere (frammenti esterni).
- Riunisce queste aree in un'unica grande partizione disponibile.
- Può essere effettuato periodicamente grazie all'allocazione dinamica.
LA GESTIONE DELLA CPU: I PROCESSI
- La CPU è la componente principale dell'elaboratore.
- È una risorsa condivisa tra più programmi.
- Il sistema operativo gestisce l'utilizzo della CPU da parte dei processi.
1) PROGRAMMI E PROCESSI
- Programma: insieme di istruzioni da eseguire. È un'entità passiva.
- Processo (task): programma in esecuzione. È un'entità attiva.
- Ogni processo riceve: tempo di utilizzo della CPU e memoria necessaria per eseguire le istruzioni.
- Il multitasking permette di gestire più programmi contemporaneamente, riducendo i tempi di attesa.
MODULI DEL KERNEL
Gestiscono l'assegnazione della CPU ai processi.
- Schedulatore dei lavori: sceglie quali programmi caricare nella memoria centrale.
- Schedulatore dei processi: decide a quale processo assegnare la CPU.
- Controllore del traffico: controlla l'avanzamento dei processi e i cambiamenti di stato.
- Gestore delle interruzioni: gestisce i diversi tipi di interrupt.
- Gestore della sincronizzazione e comunicazione: permette lo scambio di dati e informazioni tra processi.
3) THREAD
- Sono sottoprocessi che possono essere eseguiti in modo indipendente.
- Servono a ottimizzare l'utilizzo delle risorse.
- Ogni processo contiene almeno un thread.
- I thread dello stesso processo condividono: memoria, informazioni sul processo e altre risorse del sistema.
- I processi, invece, hanno ciascuno il proprio spazio di memoria.
- La gestione dei thread è più efficiente perché non richiede di assegnare nuova memoria o gestire cambiamenti di stato come per i processi.
4) STATI DI UN PROCESSO
Un processo può trovarsi in 5 stati:
- HOLD: il programma attende di essere eseguito e si trova nella memoria secondaria.
- READY: il processo è nella memoria centrale, pronto per essere eseguito.
- RUN: il processo è in esecuzione e utilizza la CPU.
- WAIT: il processo è in attesa, per esempio della fine di un'operazione di I/O.
- END: il processo è terminato.
-
Macchina astratta
- Semplifica l'utilizzo del computer.
- Nasconde all'utente la complessità dell'hardware.
- Ogni anello crea un livello di funzionamento più semplice per quello esterno.
System call
- Sono chiamate al sistema operativo.
- Permettono ai programmi di richiedere servizi al sistema operativo.
- Evitano al programmatore di gestire direttamente l'hardware.
5) TRANSIZIONI DI STATO
- Accettazione: HOLD -> READY.
- Selezione: READY -> RUN.
- Interruzione: RUN -> READY.
- Sospensione: RUN -> WAIT.
- Riattivazione: WAIT -> READY.
- Terminazione: RUN -> END.
-
6) CONTROLLO DEI PROCESSI
- Il sistema operativo decide quando assegnare la CPU a un processo.
- Riprende il controllo della CPU quando il processo termina o viene sospeso.
- A ogni stato è associata una lista con le informazioni sui processi che si trovano in quello stato.
Rilocazione statica
- Avviene prima dell'esecuzione del programma.
- Trasforma tutti gli indirizzi in indirizzi fisici.
- Richiede più tempo iniziale, ma rende l'esecuzione più rapida.
Rilocazione dinamica
- Avviene durante l'esecuzione del programma.
- Utilizza un registro base che contiene l'indirizzo fisico iniziale.
- Calcola gli indirizzi fisici durante l'esecuzione.
Allocazione statica
- Il calcolo degli indirizzi fisici avviene una sola volta.
- Il processo rimane in memoria fino al termine dell'esecuzione.
Allocazione dinamica
- Il calcolo degli indirizzi fisici può avvenire più volte.
- Il processo può essere caricato e scaricato dalla RAM più volte.
Località temporale
- I dati usati recentemente potrebbero essere riutilizzati presto.
- Conviene mantenerli nella RAM.
Località spaziale
- Le posizioni di memoria vicine a quella utilizzata potrebbero servire presto.
- Conviene caricare nella RAM anche le celle adiacenti.
Tecniche di overlay
- Permettono di caricare singole parti di un programma.
- Sono gestite dai programmatori, che stabiliscono come e quando caricarle.
Tipi di partizionamento
- Partizioni statiche.
- Partizioni dinamiche.
Best fit
- Esamina tutte le aree libere.
- Sceglie l'area più piccola che possa contenere il processo.
- Evita di frammentare le aree più grandi.
- Limite comune: nessuna delle due strategie elimina completamente la frammentazione.
First fit
- Sceglie la prima area libera abbastanza grande per il processo.
- Se la tabella è ordinata per indirizzo, favorisce l'utilizzo delle zone iniziali della memoria.
- Può lasciare una grande area libera verso la fine della memoria.
-