Sei sulla pagina 1di 11

Sistema Operativo

prof.ssa Elisa Scarafile

1) Definizione di Sistema Operativo .................................................................................................... 1


2) Organizzazione a strati di un Sistema Operativo ............................................................................. 3
Kernel (Nucleo o gestore di processi) .............................................................................................. 4
Tecnica del time sharing ............................................................................................................. 4
Stati di un processo ...................................................................................................................... 4
Gestore della Memoria .................................................................................................................... 6
Gestore delle periferiche .................................................................................................................. 8
File System ....................................................................................................................................... 8
Interprete comandi ......................................................................................................................... 11

1) Definizione di Sistema Operativo


In informatica, un sistema operativo (abbreviato in SO, o all'inglese OS, operating
system) il programma responsabile del diretto controllo e gestione dell'hardware che
costituisce un computer e delle operazioni di base. Compito del sistema operativo
quello di fare da interfaccia tra le risorse hardware e i programmi applicativi.

Principali S.O. sviluppati dalla Microsoft:

MS-DOS (sviluppato con IBM, versioni dalla 1.0 alla 8.0)

Windows 3.0

Windows 3.1 prima versione con un volume di vendite elevato

Windows 95 (versione 4.0)

Windows 98 (versione 4.1)

Windows Me (versione 4.9)


OS/2 (sviluppato dalla IBM poi congiuntamente con Microsoft, poi solo da IBM)
Windows NT versioni multiple per ogni rilascio

Windows NT 3.1

Windows NT 3.5

Ultima revisione:20/04/2013

1/11

Sistema Operativo

prof.ssa Elisa Scarafile

Windows NT 3.51

Windows NT 4.0

Windows 2000 (versione 5.0)

Windows XP (versione 5.1)

Windows Server 2003 e Windows XP Professional x64 Edition (versione 5.2)

Windows Vista e Windows Server 2008 (versione 6.0)

Windows 7 Successore di Vista. (versione 6.1)

Windows Server 2008 R2 Successore di Server 2008.

Windows Azure Sistema operativo Microsoft per il cloud computing basato su Windows Server.

Windows 8 (autunno 2012). (versione 6.2)

Principali S.O. Open source Unix-like


GNU/Linux
Arch Linux
CentOS
Chrome OS
Debian GNU/Linux
Edubuntu
Fedora Core
Gentoo Linux
Knoppix
Kubuntu
Mandriva Linux, fino al 2004 nota con il nome "Mandrake Linux"
Mepis
Slackware
SUSE Linux
Ubuntu Linux
Xubuntu
OpenSolaris
Solaris Express
BeleniX
marTux
NexentaOS
Schillix
GNU Hurd
SSS-PC sviluppato dall'Universit di Tokyo

Ultima revisione:20/04/2013

2/11

Sistema Operativo

prof.ssa Elisa Scarafile

2) Organizzazione a strati di un Sistema Operativo


Il Sistema operativo un insieme di programmi che regola il funzionamento delle
apparecchiature che
costituiscono
il
sistema
di
elaborazione.
Le richieste dell'utente vengono acquisite e gestite dal sistema operativo in modo
coordinato, rispettando le politiche di gestione, ovvero le regole scelte per realizzare i
meccanismi desiderati, stabilendo gerarchie e priorit.
Il modello "onion skin" (buccia di cipolla) rappresenta il sistema come una
successione di strati costruiti sopra la macchina hardware, ciascuno dei quali
rappresenta un livello di macchina virtuale. Ogni livello all'interno del modello, viene
visto come un oggetto unico, che non corrisponde alla macchina fisica ma che in
grado di svolgere le funzioni richieste indipendentemente dagli altri livelli; come
notiamo dall'immagine, i livelli pi bassi sono vicini all'hardware al contrario quelli
pi
esterni
che
sono
vicini
all'utente.
Ciascuno strato costituisce un modulo, ovvero una collezione di routine che attiva i
meccanismi fisici necessari per risolvere problemi logici di uno stesso tipo.
Se un sistema operativo costruito con criteri di modularit, pu essere usato su
macchine diverse; l'attitudine di un sistema operativo a essere eseguito su macchine
diverse definisce il grado di portabilit.

Ultima revisione:20/04/2013

3/11

Sistema Operativo

prof.ssa Elisa Scarafile

Kernel (Nucleo o gestore di processi)

Il kernel il cuore di un sistema operativo. Si tratta di un software che ha il compito


di fornire ai moduli che compongono il sistema operativo e ai programmi in
esecuzione sul computer le funzioni fondamentali ed un accesso controllato
all'hardware, sollevandoli dai dettagli della sua gestione. Si occupa dellesecuzione
dei programmi e della risposta agli eventi esterni generati dalle periferiche. Scopo
principale quello di gestire i processi corrispondenti ai programmi che sono
contemporaneamente attivi, attuando una politica di alternanza (scheduling)
nellaccesso alla CPU da parte dei processi in esecuzione.
Fra quest'ultime la pi semplice viene chiamata round robin, la quale prevede una
coda di processi pronti e una serie di processi in attesa.

Tecnica del time sharing


Permette la condivisione della CPU tra pi processi, assegnando ad ogni
processo un quanto di tempo di utilizzo della CPU, al termine del quale viene
sospeso per lasciare il posto ad un altro processo in attesa di esecuzione.

Stati di un processo

Pronto->Esecuzione
Dalla coda (struttura di tipo FIFO (First In First Out)) dei processi pronti, il
kernel, prende il processo e lo manda in esecuzione
Esecuzione->Attesa
Ultima revisione:20/04/2013

4/11

Sistema Operativo

prof.ssa Elisa Scarafile

Il processo in esecuzione chiede delle risorse di Input /Output, e quindi passa


nella coda dei processi in attesa.
Attesa -> Pronto
Quando loperazione di Input/Output terminata, il Kernel sposta il processo
nella coda dei processi pronti.
Esecuzione -> Pronto
Quando termina il quanto di tempo, il processo viene spostato nella coda dei
processi pronti, e contemporaneamente un altro processo passa da pronto a
esecuzione.
Quindi riassumendo:
Il processo viene creato e viene posto nella coda dei processi pronti;
2. il primo processo tra i processi pronti viene posto in esecuzione;
3. il processo in esecuzione dispone delle risorse del sistema fino a:
a. il termine del quanto di tempo
il nucleo interrompe il processo e lo mette in coda ai processi
pronti;
quando arriva in cima alla coda dei processi pronti, il processo
torna in stato in esecuzione, proseguendo con lelaborazione
dellistruzione successiva a quella su cui era stato interrotto;
b. la richiesta di unoperazione di ingresso/ uscita il nucleo sposta il
processo attivo nello stato di attesa;
quando loperazione di ingresso/ uscita si completa il processo
pu proseguire lelaborazione e viene messo in fondo alla coda dei
processi in pronti e prosegue come nel punto precedente;
c. il termine delle propria esecuzione (istruzione finale)
il processo viene eliminato e rimosso dallelenco dei processi
esistenti;
In ogni caso il nucleo provvede a sostituirlo con il primo dei processi pronti.
Si pu raffinare questa politica organizzando i processi pronti su diverse code,
corrispondenti alle diverse priorit. I processi in attesa vengono posti su code
corrispondenti alle diverse priorit assegnate a ciascuno: al momento di scegliere il
processo da mandare in esecuzione vengono favoriti quelli a priorit pi elevata.
Il gestore dei processi (scheduler), che anch'esso un processo, ha la priorit
massima, cos come il processo che si occupa della gestione delle interruzioni
( interrupt handler) deve avere la priorit maggiore rispetto a qualunque altro
processo.

Ultima revisione:20/04/2013

5/11

Sistema Operativo

prof.ssa Elisa Scarafile

Gestore della Memoria


Un programma per essere eseguito, deve risiedere in memoria centrale. Il gestore
della memoria linsieme dei programmi che gestiscono lallocazione in memoria
centrale del programma da eseguire, al fine di risolvere le relative esigenze dei vari
processi, in modo trasparente ed efficiente.
Consente ai programmi di lavorare in un proprio spazio di indirizzamento virtuale e
di ignorare quindi le effettive zone di memoria fisica occupata.
Il gestore della memoria deve allocare la memoria e partizionarla tra i processi che la
richiedono.
Ci sono varie tecniche di gestione della memoria:
-

Metodo a partizioni fisse


Metodo a partizioni variabili
la paginazione
la segmentazione

Metodo a partizioni fisse:


il metodo a partizioni fisse il pi semplice da realizzare in quanto suddivide la
memoria centrale in parti di uguali dimensioni. I programmi che risiedono in
memoria devono corrispondere al numero di partizioni fisse.
Svantaggi:
Il numero massimo di processi che possono essere allocati in memoria prefissato
Si ha uno spreco di memoria perch un programma di solito ha dimensioni minori di
quelle della partizione e lo spazio avanzato non pu per essere utilizzata da un altro
programma
Il programma pu essere di dimensioni maggiori della partizione
Vantaggi:
Il carico di lavoro svolto dal sistema operativo minore.
Metodo a partizioni variabili:
Con il metodo a partizioni variabili mentre un programma viene eseguito vengono
create le partizioni.
Se si libera una partizione di dimensione inferiore rispetto al programma che deve
essere caricato tale programma deve aspettare lo spazio. Se si liberano due partizioni
vicine possono essere occupate entrambe dallo stesso programma anche se non viene
occupato tutto lo spazio.
Ultima revisione:20/04/2013

6/11

Sistema Operativo

prof.ssa Elisa Scarafile

Man mano che si inseriscono i programmi si crea una deframmentazione cio


periodicamente i programmi presenti in memoria centrale devono essere portati verso
lalto per non avere troppi spazi liberi.
Svantaggi:
Il carico di lavoro svolto dal sistema operativo maggiore
Vantaggi:
Non c un numero fisso di partizioni
Ogni partizione ha dimensioni uguali al programma. Dunque non c uno spreco di
memoria.
Nel caso di programmi di dimensioni paragonabili con quelle della memoria centrale
la loro allocazione sarebbe problematica e in caso di programmi di dimensioni
superiori non sarebbe possibile. Per questo motivo si possono utilizzare due diverse
tecniche di suddivisione dei programmi in blocchi:

la paginazione

la segmentazione.

La paginazione suddivide la memoria centrale e i programmi in pagine (o segmenti).


In tal modo possibile eseguire un programma di dimensioni maggiori della memoria
centrale, partizionando il programma e caricandone in memoria centrale una parte
alla volta (quella correntemente in esecuzione). Eseguendo contemporaneamente pi
programmi, se la somma delle dimensioni supera la dimensione della memoria
centrale si utilizza la tecnica della memoria virtuale. Questultima trova lo spazio
necessario, utilizzando una memoria che ha pi spazio ma che risulta pi lenta, e
cio lhard disk.
La Segmentazione: questa tecnica di gestione suddivide la memoria disponibile in
blocchi di lunghezza fissa o variabile detti segmenti. Un programma pu essere
diviso in 2 segmenti principali uno che contiene i dati e uno che contiene il codice da
eseguire. La segmentazione aumenta lefficienza e il risparmio della memoria e un
risparmio del tempo di gestione della memoria ma comporta anche due conseguenze
negative cio la frammentazione della memoria e la diminuzione della semplicit del
sistema operativo.

Ultima revisione:20/04/2013

7/11

Sistema Operativo

prof.ssa Elisa Scarafile

Gestore delle periferiche


Il gestore delle periferiche maschera le caratteristiche fisiche delle periferiche e le
specifiche operazioni di ingresso/uscita, permettendo una pi semplice
comunicazione tra lambiente CPU/RAM e i dispositivi esterni.
I SO comprendono i driver per la gestione delle periferiche pi comuni. Ogni
aggiunta o modifica alla configurazione standard comporta linstallazione di software
addizionali (driver aggiuntivi).
I SO pi recenti sono dotati di funzioni Plug&Play (PnP) che permettono di
aggiungere (plug) nuove periferiche al sistema che quindi, possono essere utilizzate
(play) senza lintervento dellutente per la selezione e linstallazione del driver.

File System (Gestore dei file)


Il file system il modo in cui i file sono immagazzinati e organizzati su un
dispositivo di archiviazione (memorie di massa), come un hard disk o un CD-ROM.
Esistono molti tipi di file system, creati per diversi sistemi operativi, per diverse unit
di memorizzazione e per diversi usi. Si possono identificare due grandi classi di file
system: quelli per unit locali, destinate ad organizzare fisicamente i dati su un disco
(FAT32 [file allocation table], NTFS [NT File System]) , e i file system distribuiti
(NFS [Network File System, SAMBA]), nati per condividere i dati fra pi computer
collegati attraverso una rete, superando le differenze fra sistemi operativi e file
system locali delle varie macchine.
I suoi compiti sono:
- Gestire i dati in memoria di massa.
- Strutturare i dati in modo gerarchico utilizzando file e directory.
- Fornire operazioni di alto livello per la gestione di file, ad esempio creare
un nuovo documento, directory ecc.
- Proteggere i dati da accessi esterni.
- Garantire la condivisione sicura dei dati.
Il file system, per gestire le informazioni, mette a disposizione dellutente il file come
strumento di base, che rappresenta dunque lunit minima archiviabile .
Il file un contenitore con le seguenti caratteristiche:

Nome (filename)
Contenuto (informazione che voglio memorizzare)
Attributi (dimensioni,data creazione,diritti daccesso)

Ultima revisione:20/04/2013

8/11

Sistema Operativo

prof.ssa Elisa Scarafile

In particolare il nome di un file costituito generalmente da due componenti separate


da un punto:
nome.suffisso

Nome: scelto dallutente, solitamente in modo da evocare il contenuto


Suffisso o Estensione: automaticamente aggiunto dallapplicazione con cui
si sta usando o generando il file e ne indica il tipo di contenuto; per es .DOC,
.XLS, .TXT, .CPP

Una directory un contenitore logico che pu contenere file ma anche altre


cartelle.

Con i pathname, ovvero il nome del file espresso attraverso un percorso,


possibile individuare ogni entit del file system.
Si definisce pathname ASSOLUTO, quando il nome del file viene descritto
elencando tutti i nodi che occorre attraversare a partire dalla root(dicesi radice, la
directory di livello maggiore) fino ad arrivare al file.
Bens si parla di pathname RELATIVO, quando laccesso inizia dalla directory
corrente.
Struttura ad albero nella gestione dei file, da parte del File System

Ultima revisione:20/04/2013

9/11

Sistema Operativo

prof.ssa Elisa Scarafile

Un ulteriore servizio quello di collegamento o link o shortcut. Il collegamento un


riferimento ad un altro oggetto presente nel file system (sia esso file o directory). Ci
consente di avere lo stesso file presente in pi directory, ma di risparmiare in termini
di occupazione del file, in quanto non necessario effettuare il duplicato del file .

Root

Ultima revisione:20/04/2013

10/11

Sistema Operativo

prof.ssa Elisa Scarafile

Interprete comandi
E il modulo del SO direttamente accessibile dallutente.
Consente allutente di attivare i programmi tramite un click (interfaccia grafica)
oppure da tastiera.
Le operazioni che svolge sono:
- cercare in memoria di massa il programma da eseguire.
- allocare la memoria centrale richiesta dal programma.
- caricare nello spazio allocato in memoria centrale, il programma e i relativi
dati.
- creazione e attivazione del processo corrispondente.

Ultima revisione:20/04/2013

11/11