Sistemi Operativi: Funzioni, Processi e Gestione Avanzata della Memoria

Classificato in Informatica

Scritto il in italiano con una dimensione di 9,25 KB

Classificazione dei Programmi e Processi

I programmi o processi rilocabili sono quelli che, una volta caricati nella RAM per l'esecuzione, possono variare la loro posizione. Ad esempio, una parte della RAM potrebbe essere necessaria per un altro processo. Le posizioni di questi processi o programmi cambiano durante l'esecuzione di un'operazione sul computer, solitamente legata alla configurazione interna del computer stesso.

I programmi rientranti sono quelli che, anche se in esecuzione, non occupano memoria in modo esclusivo, lasciandola libera per altri processi. Quando questi processi vengono rilasciati, sono generalmente memorizzati sul disco rigido. Tali processi sono gestiti con la tecnica della memoria virtuale.

I processi o programmi residenti sono quelli che, una volta caricati in memoria, vi rimangono fino allo spegnimento del computer. Non modificano la loro posizione in alcun momento e possono essere trovati tra 1024 KB e 1088 KB di RAM.

Un'altra classificazione riguarda i programmi o processi riutilizzabili, ovvero programmi che di solito sono utilizzati da più utenti contemporaneamente in memoria. Ciò permette una migliore utilizzazione della memoria.

Interfacce del Sistema Operativo

Interfaccia Testuale

Se l'interfaccia del sistema operativo è di tipo testuale, tutti gli utenti inseriscono comandi e le risposte del sistema operativo vengono introdotte o visualizzate tramite stringhe di testo.

Esempio di sistema operativo di tipo testuale: DOS, UNIX. Tutti i comandi vengono inseriti tramite la tastiera e visualizzati sullo schermo. La schermata in modalità testo si compone di: 80 colonne * 24 righe, permettendo di visualizzare fino a 1920 caratteri (80 * 24) in una sola volta.

Interfaccia Grafica (GUI)

Attualmente, la maggior parte dei sistemi operativi utilizza un'interfaccia grafica (GUI) come mezzo di comunicazione tra l'utente e il computer. In questo tipo di interfaccia, l'utente utilizza il mouse. Le informazioni sullo schermo sono visualizzate in blocchi o schermate separate. Questi blocchi sono chiamati finestre e contengono numerosi componenti e oggetti utilizzati per inviare o ricevere informazioni senza dover digitare nulla.

Modalità di Elaborazione

Elaborazione Batch

Il sistema operativo batch è stato impiegato nella seconda generazione di computer. Il suo funzionamento è il seguente: prima si caricano i dati su un supporto di memorizzazione esterno per l'elaborazione. Successivamente, i dati vengono inseriti nel computer. Una volta elaborate le informazioni, i risultati vengono ricaricati su un'altra memoria esterna. Questo supporto, collegato al dispositivo di uscita corrispondente, è in grado di visualizzare i risultati.

Elaborazione in Tempo Reale

Questo tipo di utilizzo del computer è simile al precedente. La differenza è che l'utente che immette i dati è anche colui che avvia il programma per eseguire l'input dei dati e ottenere le informazioni elaborate, tutto all'interno di un unico sistema informatico e in un tempo relativamente breve. I computer attuali operano principalmente in tempo reale.

Tipologie di Sistemi Operativi per Utenti e Processi

  • Monoutente: Quando un singolo utente lavora con un computer. Tutti i dispositivi hardware sono disponibili esclusivamente per quell'utente e non possono essere utilizzati da altri fino a quando la sessione non è terminata.
  • Multiutente: Più utenti possono utilizzare le stesse risorse di sistema. È possibile condividere dispositivi di archiviazione esterni e, soprattutto, periferiche di output come le stampanti.
  • Monoprogrammazione o Single-tasking: In questo caso, il sistema può eseguire un solo programma o processo alla volta. Tutte le risorse di sistema saranno dedicate a quel programma in attesa della sua esecuzione.
  • Multiprogrammazione e Multitasking: Questo tipo di sistemi operativi può eseguire più programmi o processi contemporaneamente. Ciò è possibile quando il computer o sistema informatico contiene più di un microprocessore.
  • Monoprocessore: Il computer contiene un singolo microprocessore. Tutti i processi passano attraverso di esso.
  • Multiprocessore: Il computer è dotato di due o più processori. In questo modo, alcuni sistemi operativi possono sfruttare tale hardware.

Gestione Avanzata dei Processi

Tipi di Multiprocessing

  • Multiprocessing Simmetrico (SMP): Il sistema operativo utilizza le capacità dei processori in modo equo.
  • Multiprocessing Asimmetrico (AMP): Il sistema operativo assegna compiti specifici a ciascun processore per l'esecuzione, gestendo il carico di lavoro del sistema.

Gestione del Tempo

  • Tempo Reale: Il tempo di risposta è immediato (o quasi) dopo l'avvio del processo.
  • Time-Sharing: Ogni processo utilizza i cicli della CPU fino al completamento della sua quota di tempo.

Funzioni del Sistema Operativo

La funzione principale di un sistema operativo è coordinare l'uso dei programmi o delle applicazioni. Nella maggior parte dei casi, la scelta dei programmi o delle applicazioni da utilizzare è decisa dall'utente, ma a volte è il software stesso del sistema operativo che deve operare per consentire agli utenti di raggiungere i loro obiettivi.

Struttura del Sistema Informatico

Complessivamente, hardware, software e utente sono strutturati in termini di utilizzo di un computer o sistema informatico, e ciò richiede una precisazione iniziale.

Entrambe le strutture sono valide, ma la seconda è più completa, includendo i servizi e i componenti delle applicazioni che richiedono al sistema operativo di interagire con l'hardware.

I Servizi del Sistema Operativo

Un servizio è un tipo di applicazione che viene eseguita generalmente in background. I servizi forniscono agli utenti applicazioni che incorporano varie modalità di utilizzo delle risorse del sistema operativo, in alcuni casi anche in modalità multiutente. Alcuni servizi avviati dai sistemi operativi includono applicazioni di client/server, server Web, server di database e altre applicazioni basate su server, accessibili anche tramite una rete.

Questi servizi possono essere utilizzati per:

  • Creare programmi (editor, compilatori, debugger) ed eseguire questi programmi fornendo le risorse hardware e software necessarie.
  • Accedere in modo controllato e sicuro ai file.
  • Accedere in modo controllato ai dispositivi di I/O.
  • Accedere in modo controllato e sicuro alle informazioni.
  • Controllare e correggere gli errori causati da hardware o software.
  • Fornire informazioni statistiche, di sicurezza e registrare ciò che avviene nel sistema.

I servizi sono essenziali per il funzionamento di molte applicazioni e del sistema operativo stesso. Se questi programmi o servizi non fossero in esecuzione, molte applicazioni non funzionerebbero, e qualcosa di così comune come l'accesso a Internet sarebbe impossibile.

Gestione della Memoria: RAM e Memoria Virtuale

Come abbiamo visto, il computer dispone di memoria centrale o principale (RAM). Tuttavia, questa è molto limitata e insufficiente per sistemi di grandi dimensioni. Inizialmente, per risolvere questo problema, furono adottate tecniche come la divisione del programma in parti chiamate livelli. Ciascuno di questi livelli veniva caricato solo se necessario; in altre parole, inizialmente risiedeva sull'hard disk (o su altri supporti di memorizzazione). Quando era necessario utilizzare una parte del programma non presente nella memoria centrale o principale (RAM), si accedeva nuovamente al disco per caricare il livello successivo nella memoria principale.

Swapping

Lo swapping è una tecnica simile alla memoria virtuale. Quando più processi sono in esecuzione sullo stesso computer, il sistema è costretto a caricarli nella RAM. A seconda dello stato del programma per ciascun utente, la memoria verrà rilasciata dal suo processo utilizzando una tecnica chiamata swap-out. In questo modo, la memoria viene liberata per poter ospitare il processo di un altro utente o un altro processo.

Paging

Il paging è una tecnica che consiste nel dividere la memoria interna o RAM in zone di dimensioni fisse chiamate frame, e i programmi o parti di essi in blocchi delle stesse dimensioni chiamati pagine. Per individuare un programma in memoria, il sistema operativo cercherà nella memoria fisica i frame liberi. La dimensione di queste strutture è definita a livello hardware.

Segmentazione

La segmentazione è una tecnica simile al paging che definisce blocchi di memoria di dimensioni variabili. Ogni segmento può variare da 0 fino al massimo consentito. La particolarità è che questi segmenti possono variare a seconda delle esigenze del programma.

Voci correlate: