Software di base e software applicativo
Il computer è praticamente inutilizzabile se non è presente un apposito software
che ne gestisca tutti i componenti HardWare.
Esistono due tipologie fondamentali di software:
•
DI BASE: Programmi necessari per il funzionamento del computer:
•
•
•
SISTEMA OPERATIVO
PROGRAMMI DI UTILITÀ
TRADUTTORI DI LINGUAGGIO
APPLICATIVO: Programmi che hanno il compito di risolvere specifici problemi
•
•
•
•
•
•
•
•
dell’utente, come nel caso di:
PROGRAMMI DI TRATTAMENTO DEI TESTI: consentono di scrivere
o lavorare con dati già esistenti per realizzare operazioni di correzione e
formattazione di documenti di qualsiasi dimensione o complessità,
stampando infine il tutto(è il caso di Microsoft Word, ad esempio).
FOGLI ELETTRONICI: consentono di realizzare operazioni matematiche
con netta propensione per quelle finanziarie,contabili e commerciali
(Excel)
PROGRAMMI DI PRESENTAZIONE: servono a creare schermate (dette
slide) contenenti testo, immagini, diagrammi, suoni e filmati da usarsi in
ambito aziendale per comunicare concetti ed informazioni (Powerpoint)
PROGRAMMI DI GRAFICA (Photoshop, Flash)
SOFTWARE DI GESTIONE CONTABILE
SOFTWARE MULTIMEDIALE per visualizzare immagini, filmati ….
BROWSERS per la navigazione in INTERNET
Altro ….
Sistema Operativo
Il sistema operativo rappresenta l'”intelligenza” del computer ed è l’unica
porzione di software che non può mancare in nessuna macchina.
Il Sistema Operativo si assume il compito di interpretare i comandi (input)
provenienti dall'esterno e di tradurli in un linguaggio (macchina) comprensibile
al computer (ovvero in ISTRUZIONI PER IL PROCESSORE); allo stesso
modo funziona anche al contrario, traducendo gli output della macchina in un
linguaggio a noi comprensibile. Il S.O. ha, in sostanza, il compito di gestire tutte
le componenti del computer e di consentire la comunicazione tra utente e
calcolatore.
Il Sistema operativo è un programma, o meglio, un insieme di programmi e di
moduli software, scritti allo scopo di rendere disponibili all'uso le risorse di
calcolo e i dispositivi collegati al computer; racchiude livelli di organizzazione e
rende disponibile il computer per l'esecuzione di azioni complesse.
L'organizzazione modulare
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 qui a fianco 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.
I moduli devono:
- Mantenere un alto grado di indipendenza
- Comunicare attraverso le primitivo da essi implementati
- Far in modo che la sua struttura interna deve poter essere modificata senza
che gli altri moduli che se ne accorgano
- Essere visibili solo attraverso le proprie primitive
Per primitiva si intende ogni procedura standard per mezzo della quale si
possono utilizzare i servizi di un modulo.
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à.
Secondo il suddetto modello, nel sistema operativo si distinguono i seguenti
moduli dal livello più basso al più alto:
Classificazioni dei sistemi operativi
Interfaccia utente del sistema operativo:
L’utilizzatore interagisce col sistema operativo attraverso un'interfaccia, che può
essere di tre tipi:
Grafica
ovvero :GUI (GRAPHIC USER INTERFACE) tipica di Windows, Mac OS-X
Questi sistemi operativi per comunicare con l’utente utilizzano elementi
grafici quali ICONE, Puntatore del mouse, Finestre con pulsanti …
Alcuni esempi
A menu
Sistemi IBM AS400 o alcuni programi di utilità di DOS
Questi sistemi operativi per comunicare con l’utente utilizzano delle liste
(menù) e l’utente invia i comandi effettuando la sua scelta. Ad esempio
A linea di comando
CLI (Command Line Interface) o a caratteri, tipica di MS-DOS e dei primi
sistemi Unix
In questi sistemi operativi per comunicare con l’utente si utilizzano solo i
caratteri, l’utente deve conoscere i comandi per poter usare il sistema.
Prima dell'avvento di Windows, i computer all'accensione visualizzavano il
prompt del DOS (Disk Operating System) cioè l'avviso che la macchina era
pronta a ricevere dei comandi (tutto ciò era rappresentato, nel caso dell’MSDOS, dalla scritta C:\> ).
Ora la situazione è cambiata grazie alla nascita delle interfacce grafiche che non
sono altro che la traduzione in termini grafici della stessa situazione precedente,
inserita in un contesto molto più accattivante. L'interfaccia grafica (GUI) è una
rappresentazione grafica sullo schermo di file, dati, dispositivi e programmi
memorizzati sul computer. L’utente può impartire comandi all’elaboratore
interagendo con queste immagini grafiche. I più moderni e importanti Sistemi
Operativi sono: OS/2, Unix, Win98/XP, WindowsNT/2000, MacOS, Linux.
In base al numero di utenti:
• Mono-utente (mono-user): un solo utente alla volta può utilizzare il sistema
• Multi-utente (multi-user): più utenti possono interagire contemporaneamente
con la macchina.
Nel caso di più utenti contemporanei, il Sistema Operativo deve fornire a
ciascuno l'astrazione di un sistema “dedicato”.
VANTAGGI:
L’utente opera come se disponesse di un sistema dedicato.
SVANTAGGI
Risorse accessorie richieste rispetto a quelle strettamente necessarie (overhead).
In base al numero di programmi gestiti dal processore:
• Mono-programmato (mono-tasking): si può eseguire un solo programma
per volta
• Multi-programmato (multi-tasking): il S.O. è in grado di portare avanti
contemporaneamente più programmi.
Funzionamento MONO-TASKING E MULTI-TASKING
I primi sistemi operativi adottavano una modalità mono-tasking che consisteva nel caricare tutti i
dati necessari a far eseguire completamente un programma senza interventi dall’esterno ed attendere
la sua fine prima di poter preparare il sistema per un nuovo lavoro. Supponiamo di avere 3
programmi (A, B, C) avviati :
momento fine dei 3
programmi
in esecuzione (E)
in attesa di I/O (A)
pronto (P)
C
B
A
Mentre se il processore, quando il programma in esecuzione attende un input, potesse
eseguire un altro programma, avremo:
Tempo risparmiato
C
B
A
Per ottenere un comportamento simile sono nati i sistemi operativi multitasking che, pur eseguendo
un processo per volta, ottimizzano il tempo di utilizzo del processore dando all’utente l’impressione
di vedersi dedicate tutte le risorse del sistema per il proprio lavoro. Il risultato è ottenuto eseguendo,
a rotazione, piccole porzioni di tutti i processi in attesa di essere eseguiti infatti Il tempo è
diviso in unità molto piccole dette TIME SLICE (quanto di tempo). Ciascun
processo in esecuzione usa il processore e lo libera in 2 casi:
1. Quando scade il quanto di tempo si salva lo stato e il processo viene
posto in coda in stato di pronto (il processo viene “revocato”).
2. Se un lavoro richiede una lunga operazione sui dispositivi periferici si salva lo stato e
il processo viene posto in coda in stato di blocco (il processo viene
“sospeso”). quando l’operazione di input/output è terminata viene posto in coda
in stato di pronto
Qaundo il processore si “libera” di un processo si ripristina l’esecuzione
del processo in prima posizione nella coda, partendo dallo stato che era
stato salvato quando il processo era stato messo in attesa l’ultima volta.
(Coda dei
processi)
(Coda dei
processi)
In tal
modo si crea l’illusione che più processi siano eseguiti simultaneamente e si
risparmia il tempo totale di esecuzione come si evince dal grafico.
in esecuzione (E)
in attesa di I/O (A)
pronto (P)
C
B
A