Materia:Sistemi operativi

Da Wikiversità, l'università aperta.

Crystal Clear action view bottom.png
Crystal Clear app kedit.svg

Questa materia è incompleta
Tutti i contributi sono ben accetti perché sono state scritte poche (o nessuna) lezioni di questa materia.

Nuvola apps package utilities.png

Questa pagina contiene il testo delle lezioni legate alla materia generale, per una più agevole lettura necessita di essere divisa in lezioni.
Per una lista completa delle materie da suddividere in lezioni, consulta la relativa categoria.

Sistemi operativi
Gnome-applications.svgFacoltà di Ingegneria
Nuvola apps edu mathematics-p.svgFacoltà di Scienze matematiche, fisiche e naturali

Questa materia non ha ancora un dipartimento di riferimento.

Gnome-fs-directory.svg Tutte le lezioni in ordine alfabetico

SSD = ING-INF/05

Nuvola apps bookcase.svgCorso di Informatica
Nuvola apps bookcase.svgCorso di Ingegneria informatica

Presentazione

Secondo quanto descritto dalla tabella dei Livelli architetturali di un computer, il livello del Sistema Operativo é il terzo. Subito sopra questo livello troviamo l'ASSEMBLY ed il livello dei Liguaggi orientati alla risoluzione di problemi (la comune programmazione); subito sotto il Livello ISA della macchina (vedi Corso di Architetture).

Un sistema operativo è un insieme di programmi ed istruzioni che controllano le funzionalità della macchina fisica in modo tale da offrire una base ai programmi applicativi. Senza di esso i programmi applicativi non potrebbero trovare il modo di comunicare con l'hardware del pc, perché normalmente vengono scritti ad alto livello. I programmi applicativi accedono quindi alle risorse hardware mediante opportuni componenti del sistema operativo. Alcuni sistemi operativi offrono un'interfaccia visuale all'utente, in modo da facilitare l'uso del pc anche ai più distaccati da questo mondo. La gestione dell'hardware viene diviso in genere in 5 parti:

Un altro aspetto importante è quello della comunicazione. Il sistema operativo si occupa di codificare tutti i messaggi dei programmi applicativi e prepara le periferiche per l'invio dei dati. Allo stesso modo quando riceve dati deve decodificarli ed eventualmente inviarli ai programmi applicativi che ne faranno uso. Questa funzionalità è importantissima quando si ha un sistema multi-tasking perché se ogni programma applicativo dovesse gestire il suo traffico si verrebbero a formare moltissime richieste diminuendo notevolmente la velocità di elaborazione e trasmissione.

La supervisione

I sistemi operativi si distinguono anche dal tipo di supervisione adottata. La supervisione è la parte del sistema operativo che consente o nega un'azione (normalmente sulle periferiche) allo stato utente.

Livello servizi (Monolitica)

Lo stato utente permette di accedere senza autorizzazione a poche risorse e nega l'accesso diretto alla memoria principale. La richiesta per accedere (ad esempio al gestore del processore) viene inviata al supervisore (anche chimato kernel) attraverso una chiamata di sistema (system call). Il kernel decide se e quando mandare in esecuzione il processo (chiamato servizio) e in caso di risposta affermativa il kernel invia il segnale al processo utente che l'azione è stata eseguuita correttamente, quindi può continuare la sua esecuzione.

Livello macchina (Server)

Il sistema operativo avvia i processi necessari in modo totalmente autonomo. Il processo utente per effettuare un azione invia la richiesta allo specifico server (esempio per stampare una pagina, invierà la richiesta al server stampa), attraverso una send. Il server, ricevuto il messaggio, chiede a tutti altri server se può eseguire l'azione richiesta e in caso affermativo esegue l'azione e invia al processo utente l'ok per continuare l'esecuzione.

Quale la migliore?

  • Monolitica:
    • Integrato nella maggior parte dei SO (tra cui unix, linux e windows)
    • Molto veloce
    • Studiato molto
  • Server:
    • Poco diffuso
    • Lento
    • Sicurezza Elevata
    • Ideale per i sistemi operativi di rete

Processi e Thread

Come già spiegato nella gestione della memoria, ogni processo è indipendente dall'altro, sia come istruzioni sia come memoria. Pensate se creando un programma avete la necessità di eseguire due azioni contemporaneamente, è impossibile per un processo, quindi dovreste creare due processi, ma avendo memoria separata, dovrete inviarvi dati, perdendo tempo passando dal kernel. Uno schema simile farebbe diminuire drasticamente le prestazioni della macchina e l'esecuzione in contemporanea diventerebbe impossibile. E' qui che vengono in aiuto i thread, dei sottoprocessi chiamati anche flussi di controllo. I thread hanno i vantaggi:

  • Poco costo (in termini di risorse) per l'attivazione
  • Condivisione della memoria in comune
  • Possibilità di utilizzare memoria separata
  • Controllo e chiusura di essi relativamente semplice

Ogni thread possiede inoltre un suo stato che può essere: pronto, in esecuzione, bloccato. Un processo che non utilizza thread, in realtà la funzione principale (in c main()) costituisce da se un thread. Un esempio molto comune di utilizzo dei thread è un server multi-client. Il server (ad esempio uno di chat) deve interagire con più client (ad esempio se il client 1 invia il testo "ciao" il server lo deve inviare a tutti gli altri client). Per fare questo ha bisogna di attivare un thread per ogni utente connesso che gestisce la comunicazione con quel client. Una volta che il client si disconnette il thread termina.

Gestione del software

I sistemi operativi più diffusi

I sistemi operativi principali e quelli più diffusi (anche in passato) sono (in ordine alfabetico):

  • AmigaOS
  • BeOS
  • DOS
  • GNU/Linux
  • Mac OS
  • OS/2
  • OS/390
  • OSE
  • UNIX
  • QNX
  • VMS
  • Windows

Programma

Gnome-applications.svg

Risorse

Verifiche d'apprendimento

Crystal Clear app kghostview.png
È possibile, e fortemente consigliato, integrare le lezioni e valutare la propria preparazione attraverso queste esercitazioni. È possibile verificare la conoscenza di un argomento specifico o dell'intero programma.

Utenti interessati

Crystal Clear kdm user male.png

Modifica

  • ...


Strumenti personali