Meccanismi Hardware (Rev. n°: 44) Sistemi Operativi Mattia Natali
1
Meccanismi Hardware
Le funzionalità del Sistema Operativo:
Gestione delle risorse fisiche del calcolatore (CPU, GPU, memoria, tastiera ecc):
Gestione del processore (CPU): per spostare il processore da un processo o thread all’altro.
Gestione memoria centrale: controlla che i vari processi non vadano ad intaccare regioni di memoria assegnate ad altri processi concorrenti.
Gestione delle periferiche: unità ottiche, periferiche esterne. Le gestisce come dei file finchè è possibile, ossia si può scrivere o leggere dei dati. Talvolta hanno dei comportamenti speciali a causa della natura delle stesse periferiche.
Gestione della memoria di massa.
Gestione processi, creazione macchine virtuali.
Disponibilità dei servizi di sistema per le applicazioni:
Per la gestione e realizzazione dei processi.
Per l’accesso ai file.
Per l’accesso ai file speciali che rappresentano le periferiche (terminale stampante e altre).
Linux:
Appartiene alla famiglia UNIX che esiste ormai da una quarantina d’anni.
Noi ci limitiamo al monoprocessore quindi la concorrenza è simulata, quindi ad ogni programma è associato un’unità di tempo (quanti di tempo) che varia da 1ms a 10ms in modo tale da gestire
“contemporaneamente” più processi.
Hardware:
CPU:
Legge le istruzioni macchina scritte in assembler e le legge in ordine sequenziale. Le varie istruzioni operano sulle varie variabili di basso livello (non come il C: un array intero è una variabile per il linguaggio macchina). Il dato è il contenuto di una cella di memoria (da 8, 16, 32, 64 bit), oppure interagisce sugli indirizzi. È possibile assegnare come indirizzo un intero perché sono molto simili (però è molto rischioso perché non si sa a che cella di memoria
effettivamente indirizza).
Pila e puntatore alla pila:
Pila (stack): zona della memoria centrale in cui la scrittura e lettura delle informazioni avviene in modalità LIFO (Last Input First Output). Nella pila si mettono le variabili locali. Il puntatore alla pila (Stack Pointer – SP) è il registro del processore che consente di gestire alla pila.
La pila cresce da indirizzi alti della memoria verso indirizzi bassi della memoria, SP punta alla prima parola libera della pila.
La scrittura avviene tramite PUSH(dato): il valore viene scritto nella parola di memoria indirizzata da SP e SP viene decrementato.
La lettura avviene tramite POP: SP viene incrementato e la parola di memoria indirizzata da SP viene letta.
Lo SP punta alla prima parola di memoria libera nel processore 68 000.
Meccanismi Hardware (Rev. n°: 44) Sistemi Operativi Mattia Natali
2
Sottoprogramma:
La pila viene utilizzata nel linguaccia C per gestire una chiamata ad un sottoprogramma. Viene creata un’area di attivazione che delimita l’area dei dati del sottoprogramma. Senza la pila sarebbe impossibile fare delle chiamate a dei sottoprogrammi.
Accesso alla periferica:
Accedere ad una periferica non è molto diverso da leggere e scrivere un dato in memoria. Ma possono essere in stato di occupato oppure non hanno dati da inviare oppure non sono in grado di poter scrivere i dati in ingresso, abbiamo un problema di sincronizzazione.
Interfaccia di periferica: è un complesso di registri, alcuni in lettura altri in scrittura oppure entrambi collegati al bus, più altri circuiti ausiliari. I registri non sono altro che celle di memorie isolate e possono essere:
Registro di Dato: se il processore scrive in questo registro i dati arrivano alla periferica.
Registro di Comando (o di controllo): contiene le modalità di funzionamento o le operazioni che la periferica deve eseguire.
Registro di Stato: contiene le informazioni sullo stato della periferica (esempio stato di errore, pronto, occupato ecc).
La sincronizzazione tra processore e periferica avviene attraverso dei meccanismi di accesso di periferica (gestione dell I/O) che sono:
Controllo di programma: è diventato desueto.
Interruzione: diventato tecnica principale per I/O attraverso numerosi raffinamenti.
Accesso diretto alla memoria (raffinamento tecnica interruzione).