Sistemi Operativi - Lezione in semi-presenza

Lezione in semi-presenza

1. Introduzione

SlideSlide

slideSlide

Come facciamo a parlare con una macchina che parla un linguaggio così diverso dal nostro (un linguaggio L)? Usiamo un traduttore, per cui il linguaggio della macchina passa attraverso di esso e lo rende a noi comprensibile. Il Sistema Operativo (S.O.) ha appunto la funzione di traduttore, ci permette di costruire macchine virtuali diverse che poi S.O. renderà simili, garantisce che macchine diverse possano parlare un linguaggio simile, come ? facendo confusione tra Dati e Algoritmi (si ricorda che un Algoritmo è la rappresentazione dell'informazione). La macchina parla il linguaggio L, mentre il traduttore, che anch’esso è un programma, parla il linguaggio L’ (L primo). I dati del programma L’ sono L e L’. Per cui, per il programma traduttore, si sono confusi programmi e dati. Questa confusione determina la flessibilità che ci permette descrivere programmi per noi facili che poi il traduttore lo adatterà alla macchina sottostante. Si può dedurre che l’attività del sistema operativo è permettere di costruire delle macchine astratte che si poggiano su macchine reali attraverso diversi traduttori. L’elemento di traduzione può essere uno, ma possono essere anche molteplici. Servono principalmente per rendere simili macchine diverse. Tutto ciò ci permette di usare la "ricchezza espressiva" del linguaggio, come se esprimessimo lo stesso concetto con una serie di forme diverse. Modi che sempre più si avvicinano al linguaggio della macchina fisica; rimane comunque, di fatto, che il linguaggio non deve essere ambiguo altrimenti il traduttore non riuscirebbe ad operare.

Ricapitolando la CONFUSIONE TRA DATI E ALGORITMI, permette la costruzione di MACCHINE ASTRATTE cioè non esistenti fisicamente, paragonabili alle lingue astratte, una di queste è l’esperanto poiché, benché esso venne completamente specificato, non venne mai usato come lingua universale. Nelle macchine astratte a loro volta troviamo aspettative comuni oltre a elementi comuni tra cui MEMORIA e CPU oltre ai servizi con cui ci mostra cosa sta facendo: INPUT (con cui immettiamo informazioni o comandi) e OUTPUT(con cui vengono fuori i dati elaborati), elementi che permettono di svolgere diverse funzioni, oltre al S.O. Le suddette macchine astratte possono svolgere diverse funzioni: quelle di base e altre specifiche a seconda della diversa esigenza come scrivere in Word oppure di navigare attraverso il Browser. Esse rappresentano un insieme di programmi che realizza una funzionalità utilizzando i servizi forniti dalle macchine di livello inferiore. Impiantare un sistema operativo su una macchina, significa scegliere la famiglia di programmi alla quale ci si vuole rivolgere.

La macchina di Von Neumann è una macchina virtuale cioè solo una delle architetture possibili, ad esempio esiste un’altra architettura, simile per alcuni aspetti a quella di Von Neumann, che è l’architettura di Turing. Di fatto, l’architettura adottata è quella di Von Neumann. Appunto è un S.O. ed ha la funzione di confondere Dati e Algoritmi, quando l'Algoritmo Vitale osserva gli algoritmi come dati. Le macchine astratte per i servizi di base vengono chiamate Sistemi Operativi.

L’uomo riesce a fare più cose insieme perché è una macchina biologica con capacità parallele. L’uomo ha i neuroni che gli consentono di fare molte cose parallelamente, sono una rete di comunicazione e traduzione dei diversi segnali. Per ottenere lo stesso risultato da un Computer cioè come se ci fosse una sola CPU e tanti programmi che girano contemporaneamente, dobbiamo convincerlo che ogni programma abbia una sua CPU e una sua Memoria anche se in realtà ce n’è una sola. Coloro che usano il Sistema Operativo sono, in primo luogo, gli utenti, ma non sono gli unici, vi sono anche i programmi che usano il sistema operativo. E sono proprio i programmi ne sono i maggiori utilizzatori (esempio di utilizzo di programmi contraffatti, se in rete tutti ne scoprono l'utilizzo!).