Concetti Fondamentali dei Sistemi Operativi: Macchine Virtuali, Shell e Processi
Classificato in Informatica
Scritto il in
italiano con una dimensione di 3,16 KB
Introduzione alle Macchine Virtuali
Una macchina virtuale è un software che emula un computer e può eseguire programmi come un computer reale. Questo software è stato inizialmente definito come "un efficiente, isolato duplicato di una macchina fisica". Il significato del termine include ora le macchine virtuali che non hanno un'equivalenza diretta con alcun hardware reale.
Interfacce Utente: La Shell
Una shell è un componente software che fornisce un'interfaccia per gli utenti. Di solito, il termine si riferisce alla shell del sistema operativo che fornisce l'accesso ai servizi del kernel. Le shell del sistema operativo rientrano generalmente in due categorie a seconda della loro interfaccia:
- CLI (Command Line Interface): riga di comando.
- GUI (Graphical User Interface): interfaccia grafica.
Gestione dei Processi e Programmazione
- Multiprogrammazione: gestione di due o più processi nella stessa unità di memoria principale in esecuzione contemporanea.
- Programmazione monoprogrammata: esecuzione di un solo programma alla volta; non è possibile avviare un altro processo fino al termine del precedente.
Sistemi Operativi Batch
I sistemi operativi batch elaborano una grande quantità di lavoro con poca o nessuna interazione tra utenti e programmi in esecuzione. Questi sistemi raggruppano il lavoro comune da eseguire nello stesso momento, evitando l'attesa di singoli job. Introdotti intorno al 1956, rappresentano una tecnologia tradizionale volta ad aumentare la capacità di elaborazione dei programmi.
Time-Sharing e Sistemi Real-Time
Time-Sharing
Il time-sharing si riferisce alla condivisione di una risorsa informatica tra molti utenti tramite il multitasking. Consentendo a un numero elevato di utenti di interagire simultaneamente su un singolo computer, si sono drasticamente abbassati i costi del servizio di calcolo, migliorando al contempo l'interattività dell'esperienza di elaborazione.
Sistemi Real-Time
I sistemi real-time (in tempo reale) riguardano hardware e software limitati da vincoli temporali. Il software real-time deve necessariamente garantire un tempo di risposta critico, basandosi su:
- Determinismo
- Sensibilità
- Controllo utente
- Affidabilità
- Tolleranza ai guasti
Chiamate di Sistema (System Calls)
Quando una chiamata di sistema viene richiamata, l'esecuzione del programma chiamante viene interrotta e i dati vengono memorizzati, solitamente nel PCB (Process Control Block), per permetterne la ripresa successiva. Il processore inizia quindi l'esecuzione di istruzioni con privilegi di alto livello per svolgere il compito richiesto. Al termine, il controllo torna al processo originale. Il ritorno al processo chiamante non è necessariamente immediato, poiché dipende dal runtime della chiamata di sistema e dall'algoritmo di scheduling.