IL SOFTWARE TIPI DI SOFTWARE MACCHINE VIRTUALI SISTEMA

IL SOFTWARE
⇒ L’HARDWARE da solo non è sufficiente a far funzionare un computer
⇒ Servono dei PROGRAMMI (SOFTWARE) per:
o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro
o Sfruttare le risorse e potenzialità di calcolo e di memorizzazione
o Facilitare le interazioni tra uomo e macchina
⇒ SOFTWARE è l’insieme dei programmi presenti in un computer;
⇒ Un PROGRAMMA è una sequenza di istruzioni elementari;
⇒ Un PROCESSO è un programma in esecuzione sul calcolatore;
TIPI DI SOFTWARE
⇒ Il Software di BASE (SISTEMA OPERATIVO) si interfaccia e lavora direttamente con
l’Hardware gestendo le risorse e fornendo le funzionalità essenziali al software
applicativo;
⇒ Il software APPLICATIVO sta tra il SOFTWARE DI BASE e l’UTENTE FINALE
interfacciandosi con il software di base e con l’utente per soddisfarne le esigenze;
MACCHINE VIRTUALI
Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L’ACCESSO
ALLE RISORSE e consentono di NASCONDERE LE FUNZIONALITÀ NON NECESSARIE.
Si possono identificare 5 strati (funzionalità) tra macchina fisica ed utente:
⇒ Gestore dei processi;
⇒ Gestore della memoria;
⇒ File system (gestore della memoria secondaria);
⇒ Gestore delle periferiche;
⇒ Interprete dei comandi.
SISTEMA OPERATIVO
⇒ Software di base con 3 funzioni principali:
o Controlla tutti i processi in atto;
o Gestisce tutte le risorse fisiche (HARDWARE) quali MEMORIA e PERIFERICHE;
o Mette a disposizione un’interfaccia per l’utente.
Data Ultimazione: 02/03/2008
pag. 1/6
Autore: M.Ansaloni
AVVIO DI UN CALCOLATORE
Ma come avviene l’avvio di un calcolatore?
Come fa una componentistica Hardware a caricare in memoria il sistema operativo che
poi a sua volta consentirà l’esecuzione di software applicativo di varia natura?
Esiste allo scopo un componente Hardware, una memoria ROM, precaricata dal
produttore dell’HARDWARE con un software minimale indispensabile per:
⇒ Caricare il Sistema Operativo in RAM
⇒ Controllare l’integrità della componentistica hardware interna;
⇒ Verificare le periferiche (anche quelle plug & play) collegate al computer.
TIPI DI SISTEMI OPERATIVI
⇒ S.O. MONOTASKING: consentono l’esecuzione di un solo processo per volta (ex.
MS-DOS non più usato);
⇒ S.O. MULTITASKING: consentono l’esecuzione di più processi in contemporanea,
in parallelo (ex. Windows)
⇒ S.O. REAL-TIME: che offrono, oltre all’esecuzione di processi in parallelo anche
notevoli garanzie di esecuzione in tempo reale.
Attualmente i sistemi multitasking sono:
⇒ tra i più diffusi ed usati (Windows, Linux, Mac OS X, …)
⇒ sfruttano la tecnica del TIME-SHARING (CONDIVISIONE DEL TEMPO); la CPU provvede
alla suddivisione/distribuzione dei tempi di esecuzione dei diversi programmi in base
a priorità dando l’impressione all’utente di una fluidità di esecuzione esclusiva del
programma in uso;
⇒ gestiscono in modo più efficiente le periferiche più lente rispetto la CPU.
I SISTEMI OPERATIVI POSSONO AVERE INTERFACCE:
⇒ A CARATTERI (MS-DOS, UNIX,…..) dove per poter interagire con il S.O. occorre
conoscere i comandi (come stringhe di testo) da impartire;
o Sono complessi e difficili da usare;
o Veloci e flessibili e richiedono poche risorse
⇒ GRAFICHE (WINDOWS, MAC OS X,….) che sfruttano metafore grafiche e contesti
(ICONE) per agevolare l’intuitività delle operazioni.
o Richiedono molte risorse e sono poco flessibili;
o Sono facili, intuitivi e più trasparenti (slegati) rispetto l’hardware.
Data Ultimazione: 02/03/2008
pag. 2/6
Autore: M.Ansaloni
SOFTWARE APPLICATIVO
⇒ È costruito con l’uso di interfacce amichevoli ed intuitive e può costituire:
o ambienti di sviluppo (programmazione);
o produttività personale (ex. word, excel, Power Point,…);
o applicazioni verticali specializzate (gestionali, biblioteche, diagnostica,….)
GESTORE DEI PROCESSI
⇒ gestisce l’esecuzione dei programmi (processi);
⇒ mantiene il processo attivo nella CPU;
⇒ decide a quale processo assegnare la CPU;
⇒ coordina l’esecuzione di più processi mediante i seguenti stati:
o in esecuzione;
o pronto;
o in attesa di risorse o dati.
LO STALLO
Definizione: Un insieme di processi è in stallo se ogni processo nell’insieme sta
aspettando un evento che solo un altro processo nello stesso insieme può generare.
Lo stallo quindi è lo stato di blocco che si verifica tra due processi che il gestore dei
processi mantiene nello stato di attesa di ricevere risorse o dati.
Supponiamo che:
un 1° processo occupi la risorsa A e richieda la risorsa B
e che nello stesso istante
un 2° processo occupi la risorsa B e richieda la risorsa A
risultato entrambi i processi restano bloccati
In windows il gestore dei processi è un programma chiamato Task Manager attivabile
mediante la combinazione di tasti CTRL+ALT+CANC
Tra tutti i processi in esecuzione quelli di sistema (del sistema operativo), il kernel, deve:
⇒ essere sempre attiva;
⇒ avere la priorità assoluta in esecuzione
in quanto:
⇒ è fondamentale per il corretto funzionamento del computer;
⇒ se provoca un errore il calcolatore deve essere riavviato.
Data Ultimazione: 02/03/2008
pag. 3/6
Autore: M.Ansaloni
GESTORE DELLA MEMORIA CENTRALE (RAM)
In un sistema operativo multitasking, i processi debbono condividere la RAM, per tale
ragione si dice che vi deve essere un indirizzamento dei processi nella RAM per:
⇒ garantire l’esecuzione del S.O. al fine della sua protezione
⇒ evitare il danneggiamento/perdita dei dati conclusivi o da elaborare che vi
risiedono.
In tale modo sembra che i vari processi in esecuzione abbiano l’uso dedicato della RAM.
Accanto alla RAM, al fine di aumentare le performance dell’intero sistema, si utilizza una
MEMORIA VIRTUALE che risiede sul disco rigido e serve a:
⇒ aumentare virtualmente la stessa RAM disponibile riservando sul disco rigido uno
spazio dedicato pari circa a 1,5 volta la RAM;
⇒ isolare i processi non attivi ed in uso in quel momento;
⇒ salvaguardare i processi del KERNEL in RAM cercando appunto di mantenere
sempre libera la quantità di RAM indispensabile per il S.O. e dare comunque
maggiore disponibilità di RAM anche ai programmi in esecuzione.
GESTORE DELLA MEMORIA SECONDARIA
(file system)
Viene fatta un’astrazione dell’organizzazione fisica dei dati che vengono organizzati,
all’interno della memoria secondaria (HD), in FILE; in definitiva:
⇒ Gestione dei dati nella memoria di massa (HD);
⇒ Struttura i dati in modo gerarchico utilizzando file e directory;
⇒ Fornisce operazioni di alto livello per la gestione di file (creazione di un nuovo
documento, directory ecc);
⇒ Protegge i dati da accessi esterni;
⇒ Garantisce la condivisione sicura dei dati.
I files:
⇒ Sono unità di aggregazione di informazioni (importanza del contesto ex. documento,
foglio di calcolo, presentazione, immagine);
⇒ Si misurano in byte;
⇒ Hanno un nome univoco (con alcune limitazioni ex.: lunghezza, caratteri ammessi)
⇒ Hanno: dimensione, tipo, date, permessi di lettura/scrittura ecc…
Data Ultimazione: 02/03/2008
pag. 4/6
Autore: M.Ansaloni
Vi sono diversi tipi di FILESYSTEM che determinano in quale modo il disco fisso viene
formattato (preparato per le operazioni di lettura/scrittura).
Un HD infatti viene formattato con suddivisione
⇒ FISICA in tracce e settori
⇒ LOGICA in partizioni di diverso tipo (ex. in windows tali partizioni vengono identificate
poi con una lettera seguita dai 2 punti C: D: ecc…)
I FILES vengono organizzati in modo logico e non fisico all’interno di cartelle (DIRECTORY)
e sono individuati da un percorso ben definito (percorso del file)
I FILES sono classificabili in base al contenuto e per fare ciò vi sono diversi metodi:
⇒ aggiungere una proprietà al file;
⇒ riconoscerne la struttura;
⇒ aggiungere una estensione convenzionalmente definita al nome del file
In windows il sistema utilizzato è proprio quest’ultimo (ex. DOC = documento, XSL =
foglio di calcolo, PPT = presentazione, ecc….)
INTEGRAZIONE E FRAMMENTAZIONE
I dischi fissi sono maggiormente soggetti ad usura e le operazioni sui files tendono a
disperderli in pezzetti sempre più piccoli; per tali ragioni si rendono necessari
rispettivamente:
⇒ i controlli di integrità sui file
⇒ la deframmentazione del disco rigido
GESTORE DELLE PERIFERICHE
La sua funzione è quella di
⇒ nasconderne ed uniformarne il funzionamento in modo che il loro uso sia
trasparente all’utente che non deve preoccuparsi di sapere come funzionano ed in
che modo il sistema le gestisce;
⇒ gestire gli errori (ex. disco pieno, carta mancante, ecc…) e gli accessi alle
periferiche in modo da evitare conflitti;
⇒ utilizzare al meglio degli specifici programmi (DRIVER) diversi per ogni periferica,
forniti solitamente dal produttore della periferica stessa.
Data Ultimazione: 02/03/2008
pag. 5/6
Autore: M.Ansaloni
STAMPA E CODA DI STAMPA
Le stampanti sono alcune delle periferiche più lente presenti nel sistema; per ovviare
almeno in parte a questa lentezza viene usato lo SPOOLER che:
⇒ costruisce una coda di richieste di stampa, un elenco dei documenti da stampare;
⇒ invia i documenti, uno alla volta, alla periferica;
⇒ consente ai programmi di continuare il proprio lavoro ed essere eventualmente
avvertiti quando il documento è pronto.
Data Ultimazione: 02/03/2008
pag. 6/6
Autore: M.Ansaloni