Il Sistema Operativo

 

Una definizione esemplificativa del sistema operativo può essere la seguente:

il sistema operativo è una sorta di strato che si pone sopra la macchina fisica e permette di fare richieste ad una macchina virtuale ma che l’utente crede vera, inoltre il compito del sistema operativo, oltre a quello di controllare l’esecuzione degli altri programmi, consiste nell’impedire alle applicazioni di eseguire dei comandi che potrebbero rivelarsi dannosi

Senza Sistema Operativo (SO) un computer è solo un “macchinario inutile”.  Il SO rende possibile la gestione, l'elaborazione e l'immagazinamento dell'INFORMAZIONE.

• L’hw fornisce potenza di calcolo, il SO la rende disponibile agli utenti, gestendo l’hw in modo efficiente.

• Il SO controlla l’esecuzione di tutti gli altri programmi.

• Il SO è l’intermediario tra l’utente/i e la macchina.

 

Il SO è il software che gestisce le risorse (hardware e software) della macchina.

 

Struttura del Sistema Operativo

 

Il SO permette alle applicazioni di astrarre dal dettaglio hardware e di operare in termini di richieste di servizi al SO stesso.

 

 

Funzioni del Sistema Operativo

 

La descrizione precisa di cosa faccia parte o meno del SO non è universalmente definita (vedi caso IE)

• Gestione dei Processi (multitasking)

• Gestione della memoria (scheduler)

• Gestione dei files (file system)

• Gestione degli utenti (multiutenza)

• Gestione dell’ I/O (stampanti, video, tastiera, ...)

• Gestione servizi di Rete

• Protezione del sistema

• Interprete di comandi

• ...

  

 

Tipologie di Sistemi Operativi

 

• Singolo utente / Multi utente

• Real time

• Sistemi distribuiti

• Embedded

• ...

 

Processi

 

Processo: è un programma in esecuzione.

programma => statico dinamico <= processo

Un processo incorpora le istruzioni, i dati da elaborare, lo stato dell’elaborazione (context)

 

Abbiamo due famiglie di sistemi:

-        MULTITASKING: processo tramite il quale il sistema operativo può realizzare più operazioni che sembrano contemporanee ma che in realtà avvengono in tempi diversi. Questo lasso di tempo, grazie alla velocità del processore è minimo, per tanto si ha la sensazione che le operazioni si effettuino nello stesso istante.

-         SCHEDULER: dispositivo che si prefigge di sostituire un processo,      finito o meno, sostituendolo con un altro poiché il sistema operativo permette di lavorare con un solo processo alla volta.

-         INTERRUPTS: è un segnale di avvertimento che viene mandato al processore per indicare che qualcosa è avvenuto

 

Modalità operative:

Lo scopo delle modalità operative è quello di proteggere l’hardware dal malfunzionamento di applicazioni software (crash). Per evitare questo possibile inconveniente esistono dei modi operativi distinti dalla CPU.

Problema: evitare blocchi del sistema hardware a causa del malfunzionamento di applicazioni software (crash).

Soluzione: modi operativi distinti della CPU

-USER MODE (esecuzione di operazioni per un utente. Es. applicativi). La user mode gestisce i vari processi attribuendo ad ognuno di essi un determinato periodo di tempo oltre il quale non possono operare.

-KERNEL MODE (esecuzione di operazioni per il sistema operativo). E’ una modalità protetta nella quale il processore non interrompe e non esclude il processo che sta operando.

 

ESEMPIO DI FUNZIONAMENTO DELLE MODALITA’ OPERATIVE

       

CPU Kernel Mode Kernel Mode User Mode Kernel Mode User Mode
Processo 1 Waiting Ready Ready Waiting Ready
Processo 2 Waiting Waiting Waiting Waiting Waiting
Sistema Operativo Ready Ready - Ready -

 

 

Multitasking

• 1 cpu <–> molti processi

– Come è possibile?

• Il controllo della CPU viene passato, a turno, da un processo ad un altro: poiché questo avviene in modo molto rapido, gli utenti hanno una “illusione” di concorrenza.

 

• Il turno dipende anche dalla priorità assegnata al processo.

 

 

Stati di un processo

 

– Le transizioni tra lo stato “running” e gli altri stati comportano un “context switch” della CPU.

 

Files:

 

• Un file è una collezione di dati con un nome.

• Un file è una sequenza di byte terminata da un carattere di EOF (End Of File)

• Il file system è l’insieme dei files, della loro organizzazione in directory e dei metodi di gestione e di accesso.

• I files risiedono nella memoria secondaria (dischi)

• Esistono comandi per creare, distruggere, aprire, chiudere, leggere, scrivere files

• In un sistema multiutente è necessario proteggere i files ci possono essere più livelli di protezione per diverse tipologie di utenti

 

Linguaggi di programmazione

Linguaggio di programmazione: una serie di termini e regole per comporre istruzioni che descrivono un problema o la soluzione di un problema al calcolatore

Es: JavaScript,Visual Basic, Assembler, C, Pascal, C++, Java, SQL, COBOL, Fortran, …

  

• Si differenziano per:

– potenza espressiva (livello di astrazione)

– tipo di approccio (dichiarativo, imperativo, ...)

– paradigma di programmazione (oggetti, ...)

– piattaforme di utilizzo

 

Traduzione

• Per essere eseguito dal processore, un programma deve essere tradotto in una serie di istruzioni eseguibili (linguaggio macchina)

Compilazione: la traduzione da linguaggio ad alto livello a linguaggio macchina viene effettuata da un apposito programma preesistente (il compilatore)

Interpretazione: il programma nel linguaggio ad alto livello viene letto una (o poche) istruzione alla volta e vengono eseguiti le corrispondenti istruzioni in linguaggio macchina. Questa operazione viene effettuata da un programma chiamato interprete

 

 

 

 

  Per scaricare il file zippato clicca qui!!!!