Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemi operativi - Coggle Diagram
Sistemi operativi
ARCHITETTURA DEI SO
un SO divide la sua architettura in3 livelli , ognuno di questi ha delle funzionalità specifiche e degli obiettivi
-Interfaccia dell'utente: a questo livello dell'Archiettura , l'obiettivo del SO a quel livello è quello di essere semplice e permettere di utilizzare le funzionalità del sistema in modo semplice per l'utente. a questo livello appartengono le APi e le librerie. l'itnerfaccia atraverso il quale l'utente si interfaccia con il sistema può essere grafica o testuale
-Interfaccia Hardware: questa è l'altra faccia della medaglia, qui si mettono in relazioni i processi utente con le risorse del calcolatore ,il sistema operativo è visto come un gestore e locatore di risorse
-Kernel : il kernel è il core del Sistema Opearativo. questo si occupa di assegnare le risorse ai processi che li richiedono , le richieste di asegnazione avvengono tramite le System Call che si basano sul concetto di interrupt.
STRUTTURA DEI SISTEMI
Struttura Semplice
qui l'intero sistema operativo è un mono-blocco che contiene tutte le componenti e le funzionalità di un SO (kernel , processi utente , driver dei dispositivi... convivono nello stesso ambiente) il problema è proprio questo , che se ad esempio un processo utente potrebbe allocarsi da solo una risorsa. non ci sono infatti controlli come il bit di modo. questo è un grande problema per tutti quei processi scritto in modo errato o malevoli che possono accedere direttamente alle risorse . esempi di So del genere sono l'MS-DOS
Struttura a Strati
Qui il Sistema Operativo è diviso in livelli, dove il più alto riguarda i processi utente e quello più baso è l'hardware del computer. qui si sono risolti tutti i problemi che abbiamo elencato prima , infatti ogni livello del SO può dialogare solo con il livello subito sottostante, evitando quindi che i processi utente possano accedere a ciò che non gli è permesso. inoltre vengono risolti anche problemi legati alla modifica del codice del SO in caso di Bug , dato che prima era tutto un mono-blocco ed ora è diviso in livelli rende più semplice manutenerlo e gestirlo
-
INTRODUZIONE
-
GESTIONE DELLE RISORSE
Per gestire le risorse e per capire quali risorse sono allocate e quali no , il sistema operativo utilizza delle strutture dati d'appoggio chiamate tabelle
tabella della memoria : definisce come è allocata la memoria dal sistema , e come quella principale e secondaria sia assegnata a processi e programmi in esecuzione
-
tabella dei processi in esecuzione , contiene gli identificatori dei processi
tabella della gestione del file system ,contiene l'elenco dei file aperti
PROCESSI
un processo è un istanza di un programma che viene caricato in memoria ed eseguito dal sistema oeprativo
un processo è composto da uno o più thread che rappresentano le varie linee di elaborazione concorrente
il programma vero e proprio residente in memoria secondaria è l'entità statica , mentre il processo è l'entitià dinamica
un processo si porta dietro alcuni dati:
- Codice da eseguire
-Dati sul quale eseguire il calcolo
-Descrittore e PCB
Stack di lavoro
Il PCB Process Control Block contiene diverse informazioni improtantissime per il processo e per la sua esecuzione
Stato del processo
- 1 more item...
-
-
INTERRUPT
Gli interrupt sono un segnale inviato da un programma (trap) oppure da un componente hw (interrupt) questi richiedono un attenzione immediata da parte del processore , che fermerà l'esecuzione del processo in corso per gestire quell'interrupt
i moderni SO sono detti interrupt Driven ovvero guidati dagli interrupt. le operazioni del so sono gestite appunto dagli itnerrupt. anche il kernel resta sempre in attesa degli interrupt e gestisce in modo efficiente i vari processi concorrenti alle risorse
come viene gestito un interrutpt:
1 il processore riceve un'interrupt
2 il processore ferma l'esecuzione e si prepara al salvataggio di contesto
- il salvataggio di contesto può avvenire in 2 modi:
- Scambio di contesto
-Salvataggio dei registri critici del processore
3 una volta avvenuto il salvataggio del contesto , viene fatto puntare il PC alla prima istruzione della routine di Interrupt Handler questo contiene l'interrupt Vector , una struttura dati che in base all'interrupt gli assegna la routine di gestione dell'interrupt (ISR) corretta
prima di far puntare il PC alla prima istruzione del ISR , viene finalizzato il salvataggio di contesto ,salvando i valori delle variabili e dei registri.
4 viene eseguita l'interrupt Service Routine
5 l'interrupt handler va a terminare la gestione dell'interrupt e va a riprstinare il processo interrotto prima.
durante la risoluzione di un'interrupt possono arrivare altri interrupt , questi possono essere gestiti in 2 modi:
- Sequenziale ( non gestisce quelli time-critical)
-Anndiato
-
I/O
L'accesso da parte della CPU alle risorse del calcolatore avviene tramite lo scambio di dati nel buffer del Controllore del componente di i/O
MEMORIE
-
-
-
Dischi fissi
sono organizzati in tracce , composte da settori su più dischi e letti e salvati "a cilindro"
IL BIT DI MODO
se impostato a user mode , non permette a istruzioni pericolose di essere esguite dalla CPU , l'unico modo per eseguirle è tramite System Call (controllate) dove viene fatto passare il bit di modo in kernel mode. in caso di software sospetto (non riconosciuto dalle firme del SO ) viene richiesot all'utente quando questo vuole fare delle operazioni (tramite syscall) al sistema.
-