prof. Nunzio Brugaletta |
atapSO |
EnneBi –
Computer Science
Avanti – Indietro – Inizio
Non esiste una definizione univoca di questo insieme di moduli software che pure rappresentano una presenza costante e discreta con cui qualsiasi utente di computer ha avuto a che fare. D'altra parte gestire un sistema di elaborazione senza l'aiuto di questo software, così come era la situazione nella preistoria dei computer, non sarebbe cosa agevole richiedendo un insieme di conoscenze tali da superare quelle di un solo individuo. E questo a maggior ragione quando si tratta di gestire la complessità di un computer dei nostri giorni.
In linea generale si può dire che il sistema operativo assolve a due funzioni:
Presentare una macchina virtuale più facile da programmare dell'hardware sottostante. Il linguaggio macchina, l'unico effettivamente comprensibile da un computer, fornisce istruzioni primitive e complesse da utilizzare. Per poter effettuare anche semplici operazioni è necessario tenere conto di tutti i dettagli di funzionamento delle parti interessate. Si pensi, per esempio, a cosa può voler dire rintracciare un insieme di dati in una memoria di massa: bisogna pensare a mettere in movimento la meccanica del disco, aspettare che raggiunga la velocità giusta, conoscere il numero dei blocchi in cui è suddiviso il disco, il numero delle tracce e dei settori, il modo in cui i dati sono conservati, ... Ammesso che si riesca una volta per tutte a esprimere in maniera corretta tutti i parametri che servono, c'è da aggiungere anche un altra osservazione: se si vuole utilizzare una stampante, ovviamente, bisogna cambiare tutto non appena la si sostituisce con un nuovo modello. Chiaramente è molto più pratico e agevole avere a che fare con una interfaccia ad alto livello che, nel caso degli esempi cui si è accennato prima, faccia vedere le informazioni conservate su disco come un insieme di file ognuno con il proprio nome e che si possano utilizzare istruzioni del tipo metti a disposizione quel tale file, leggi o scrivi, chiudi il file, oppure manda in stampa i dati senza preoccuparsi della posizione delle testine di lettura-scrittura del drive per dischi o delle specifiche tecniche del tipo di stampante: si tratti di una inkjet o di una laser, ci si deve preoccupare solo dei dati da stampare. In definitiva il compito del sistema operativo è quello di nascondere le complessità della macchina, fornire una macchina virtuale più semplice da programmare e una interfaccia amichevole.
Gestire le risorse hardware. Per espletare le funzioni richieste da un programma è necessario che tutte le risorse di un sistema di elaborazione agiscano in maniera coordinata. Si pensi ad una orchestra che deve riprodurre un brano musicale: se, per esempio, la sezione degli archi non agisce in maniera coordinata con la sezione degli ottoni non si avrà come risultato niente che assomigli a qualcosa di piacevole per l'udito. Per restare nell'ambito dell'esempio proposto si può affermare che il direttore (nel mondo del computer il sistema operativo) assume il ruolo fondamentale di coordinatore delle risorse disponibili: nel caso dell'esempio le diverse sezioni dell'orchestra, nel caso del sistema di elaborazione tutte le apparecchiature hardware disponibili. Oltre a coordinare l'intervento delle varie parti, il sistema operativo deve pure provvedere ad attribuire le varie risorse in maniera ordinata. Si pensi, a titolo di esempio, a due programmi che necessitano dell'uso della stampante. In questo caso il sistema operativo dovrà provvedere a fare in modo che le uscite di un programma non si mischino in modo caotico con le uscite dell'altro programma.
|
Alla base di un sistema operativo c'è il kernel, un insieme di programmi che controllano l'accesso, allocano le risorse, gestiscono l'input e l'output, la memoria centrale, stampanti e quanto altro faccia parte dell'insieme delle risorse disponibili. È la parte del sistema operativo cui si rivolgono i programmi per le loro esigenze. I programmi non accedono direttamente alle varie componenti hardware ma hanno a disposizione una serie di dispositivi logici messi a disposizione dal kernel. La shell è un programma che si interfaccia con l'utente: ne interpreta le richieste, permette l'esecuzione dei programmi richiesti. È un programma intermediario fra utente e kernel. |
I programmi di utilità sono un insieme di programmi per la manutenzione del sistema, l'editing di testi ecc.
http://ennebi.solira.org |
ennebi@solira.org |