Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Dr. Francesco Fabozzi Corso di Informatica
Software Dr. Francesco Fabozzi Corso di Informatica
2
Tipologie del software
Un programma è una sequenza di istruzioni elementari eseguite dall’elaboratore Un programma in esecuzione si chiama processo (job) Il software è l’insieme dei programmi che possono essere eseguiti su un elaboratore Software di base Gestisce le funzioni elementari dell’elaboratore Lavora direttamente sul livello hardware Software applicativo Software dedicato per particolari esigenze Agisce sull’elaboratore mediante il software di base
3
Software di base e applicativo
Software applicativo Software di base (S.O. / Firmware) Hardware
4
Firmware Programma residente nella ROM
Ex.: BIOS Esegue l’avvio della macchina (bootstrap) Carica in memoria il Sistema Operativo Verifica integrità componenti interne Verifica collegamenti con periferiche esterne
5
Sistema operativo Il sistema operativo è il componente principale del software di base Gestisce le risorse del sistema CPU, memoria, periferiche Fornisce l’interfaccia uomo-macchina Costituisce il supporto per il software applicativo Gestisce errori del sistema
6
Processi Si definisce processo un programma in esecuzione
Un processo possiede: Parte statica Istruzioni del programma Parte dinamica Dati e stato di avanzamento del programma Uno stesso programma può essere diviso in più porzioni eseguibili separatamente; ogni porzione costituisce un processo
7
Stati di un processo In esecuzione Pronto (Ready) In attesa
Il processo occupa la risorsa processore Solo un processo per volta può essere in questo stato Può essere sospeso da un evento (interruzione) e andare in un altro stato Pronto (Ready) Il processo è pronto per andare in esecuzione ma la CPU non è ancora libera In attesa Il processo è sospeso perché ha richiesto un’operazione di I/O
8
Interruzioni di un processo
Un processo viene interrotto per cause interne o esterne al processo stesso Quindi distinguiamo due tipi di interruzioni (interrupt) Interrupt interni Quando il programma richiede un’operazione di I/O Interrupt esterni Quando finisce la slice temporale assegnata al processo (nei sistemi multitasking) Quando c’e’ un processo con priorità più alta
9
Sistemi operativi monotasking
In un sistema monotasking il processore esegue un solo processo per volta Ex.: sistema operativo DOS Un sistema monotasking è poco efficiente quando ci sono operazioni di I/O Un’operazione di I/O non coinvolge la CPU che rimane ferma durante input/output dei dati Ricorda: tempi di I/O >> tempi di elaborazione
10
Sistemi operativi multitasking
In un sistema multitasking il processore esegue più processi contemporaneamente Ex.: sistema operativo Windows, Linux In realtà sono eseguiti a rotazione pezzi di processi “Timesharing” dei processi Il tempo di lavoro della CPU è suddiviso tra i vari processi Poiché gli intervalli di tempo (time-slice) dedicati a un processo sono molto piccoli (circa msec) l’utente ha l’impressione che i processi sono eseguiti contemporanemente In uno stesso istante coesistono un processo attivo e più processi sospesi
11
Sistemi mono e multitasking
Esecuzione di processi in un sistema monotasking input output S.O. input output S.O. Job 1 Job 2 Esecuzione di processi in time sharing Processo P1 ready time slice t Processo P2 ready time slice t Processo P3 ready I/O t1 t2 t1+t2 = t
12
Interfacce utente L’interfaccia utente di un sistema operativo è ciò che permette all’utente di interagire con la macchina Interfaccia testuale I comandi sono forniti tramite stringhe di caratteri In pratica delle parole chiave S.O. con interfaccia testuale: MS-DOS, Unix, Linux Di elevata velocità Necessita di poca memoria Difficoltà per l’utente di ricordare i comandi
13
Interfacce utente Interfaccia grafica (Graphical User Interface, GUI)
I comandi sono forniti selezionando un’apposita immagine (“icona”) S.O. con interfaccia grafica: Windows “User-friendly” (facilità d’uso) E’ meno veloce e necessita di più memoria Un comando complesso deve essere eseguito con più passaggi
14
Interfacce utente Interfaccia fisica
I comandi sono forniti tramite movimenti di componenti fisiche del sistema Sono usate in elaboratori interni a macchine più complesse (embedded computer) Ex.: robot impiegati nelle fabbriche Svantaggio: l’interfaccia non è standard
15
Software applicativo Il software applicativo è l’insieme dei programmi necessari a risolvere specifici problemi degli utenti Linguaggi di programmazione Software personale Strumenti di produttività Programmi verticali
16
Software applicativo Linguaggi di programmazione (ambienti di sviluppo dei linguaggi) L’insieme degli strumenti per lo sviluppo di programmi e per la verifica della loro correttezza (debugging) Scarsa dipendenza dall’hardware della macchina Portabilità da un sistema a un altro Software personale Programmi di uso semplice e quotidiano Videoscrittura, agende elettroniche, gestione posta elettronica
17
Software applicativo Strumenti di produttività Programmi verticali
Programmi che svolgono in maniera semplice ed efficiente compiti di calcolo o di elaborazione Fogli elettronici (spreadsheet) Gestione di database Programmi verticali Risolvono problematriche altamente specialistiche Gestione biblioteca o controllo di un impianto
18
Macchine virtuali Il software crea una struttura a più livelli che si innestano sul livello base costituito dall’hardware Ogni livello costituisce una macchina virtuale Gli utenti del sistema si collocano in diversi livelli Un utente può utilizzare solo le risorse della macchina virtuale sottostante al livello in cui si trova
19
Gerarchie di macchine virtuali
L’utente finale non interagisce direttamente con l’hardware Il sistema appare come un insieme di comandi messi a disposizione del programma applicativo L’implementazione concreta dei comandi è delegata al livello inferiore Utenti finali Software applicativo S.O. Hardware
20
Funzionalità del sistema operativo
Anche il sistema operativo è organizzato secondo una gerarchia di macchine virtuali Programmi applicativi Interprete dei comandi File system Gestore delle periferiche Gestore della memoria Gestore dei processi (kernel) Macchina fisica
21
Gestore dei processi Il gestore dei processi sovrintende all’esecuzione dei vari programmi residenti in memoria centrale per ottimizzare la risorsa processore E’ il gestore della CPU Gestisce anche sincronizzazione di più processi concorrenti risoluzione contese tra processi
22
Gestore della memoria centrale
Gestisce la suddivisione della risorsa memoria centrale tra i vari programmi Solo una parte di ogni programma viene caricata di volta in volta in memoria centrale L’utente ha l’impressione di vedere una memoria centrale più grande di quella reale (memoria virtuale)
23
Gestore della memoria centrale
Modalità di suddivisione della memoria Segmentazione assegnazione di un segmento di memoria pari alla parte di programma da caricare Ogni segmento di memoria ha dimensioni variabili (fino a 64 KB) Problema: frammentazione della memoria Paginazione assegnazione di una pagina di dimensione fissa (4KB) alla parte di programma da caricare Problema: non efficiente utilizzo della memoria
24
Segmentazione e paginazione
memoria libera P4 frammento Paginazione P1 P1 pagina P2 P4 P3 P3
25
Gestione della memoria secondaria
L’unità astratta di memorizzazione prende il nome di file Un file è un insieme di byte associati ad un’unica entità logica Ex.: istruzioni di programma; testo di una lettera L’insieme dei programmi per la gestione logica e fisica della memoria secondaria prende il nome di file system
26
Gestione della memoria secondaria
Il file system Gestisce l’associazione di un file al suo nome logico Gestisce l’associazione del nome logico di un file alla sua posizione fisica nella memoria di massa Infatti un file viene memorizzato su disco in posti non necessariamente contigui Trasforma operazioni logiche su file in operazioni fisiche su blocchi di memoria di massa Gestisce la protezione dei dati Gestisce lo spazio libero conseguente alla cancellazione di un file
27
Organizzazione della memoria
La memoria può essere organizzata in contenitori di files (directory) secondo una dipendenza gerarchica
28
Organizzazione della memoria
Struttura ad albero root Directory principale (“radice”) lettere ricette foto laurea battesimo Foto1.jpg Foto2.jpg files
29
Identificazione di un file
Il nome completo di un file è dato dal path name Nome del file + percorso (path) per raggiungerlo a partire dalla directory radice (che si indica con / ) Il nome del file è seguito da un’estensione Gruppo di caratteri preceduti da un punto che specificano il tipo di file Ex.: /foto/laurea/foto1.jpg
30
Identificazione di un file
Estensione Tipo di file .exe, .com programmi eseguibili .doc Documenti Word .ppt Presentazioni PowerPoint .html, .htm Pagina web .jpg, .gif, .bmp immagini .mp3, .wav audio
31
Gestione delle periferiche
Le operazioni sulle periferiche sono gestite tramite programmi detti device driver Il driver è diverso per ogni dispositivo ed è fornito dalla casa costruttrice (driver per la tastiera, driver per il mouse, driver per la stampante, ecc.) I driver Gestiscono la comunicazione da/verso la periferica Coordinano le richieste contemporanee di accesso alla risorsa Gestiscono le condizioni di errore Ex.: Fine carta nella stampante
32
Interprete dei comandi
Riceve e interpreta i comandi formulati dall’utente e li traduce in richieste ai moduli sottostanti Fornisce l’interfaccia utente Sistemi a interfaccia grafica Seleziono comandi da menù a tendina Seleziono comandi tramite icone Sistemi a interfaccia testuale Utilizzo di apposito linguaggio per dare comandi Gestione di eventuali errori sintattici nella digitazione dei comandi
33
Il sistema operativo DOS
All’inizio degli anni ’80 l’IBM (produttrice di grossi calcolatori) entra nel mercato dei Personal Computer La scelta di IBM fu di produrre solo l’hardware e far sviluppare il sistema operativo a un esterno: Bill Gates Nacque così il DOS e la Microsoft (e la fortuna di Bill Gates) La Microsoft è attualmente la più grande azienda produttrice di software
34
Il sistema operativo DOS
MS-DOS MicroSoft Disk Operating System Il successo del DOS Sistema relativamente semplice nella gestione dei dati e della memoria Progenitore di Windows Sistema a interfaccia testuale I comandi sono una sequenza di lettere e numeri e sono inviati tramite la console La console di DOS può essere lanciata da Windows
35
Il sistema operativo DOS
Un programma viene lanciato scrivendo il suo nome e premendo il tasto INVIO Il sistema operativo cerca il programma sul disco, lo carica nella RAM e viene eseguito dalla CPU Il nome di un file è costituito da un nome di max 8 caratteri più l’estensione di 3 lettere separata da un punto Ex.: tesi.doc
36
Il sistema operativo DOS
La memoria può essere organizzata in cartelle (directory) secondo una gerarchia ad albero Esempio di pathname C:\TESTI\LAUREA\CAP1.DOC C: Indica l’unità hard disk A: Indica l’unità floppy disk
37
Il sistema operativo DOS
Qualche esempio di comando Per “formattare” il floppy-disk FORMAT A: NOTA: l’operazione di formattazione re-inizializza la memoria del dischetto (e cancella tutti i dati) Per mostrare i file nella directory LAUREA: DIR C:\TESTI\LAUREA Per copiare un file in un altro: COPY CAP1.DOC CAP1_NEW.DOC
38
Il sistema operativo Windows
Per rendere il sistema operativo più “user-friendly” (e allargare quindi il mercato dei PC) le case produttrici cominciarono a sviluppare interfacce grafiche La APPLE nel 1984 lancia il Macintosh Microsoft l’anno successivo lancia Windows 3.1 Inizialmente Windows si presentava come un programma lanciato da DOS A partire da Windows 95 esso appare come un sistema operativo autonomo (anche se la gestione della memoria è basata sempre su DOS) Versione ultima: Windows XP
39
Il sistema operativo Unix
Unix è uno dei sistemi operativi più antichi Sviluppato dall’AT&T nel 1969 Nato per dare la possibilità al personale dell’azienda di lavorare contemporaneamente sugli stessi dati e sullo stesso progetto Diffuso soprattutto nel mondo universitario E’ il sistema operativo delle workstation e dei computer di medie e grandi dimensioni Lo crescita delle performance dei PC e l’avvento di Linux lo sta soppiantando
40
Il sistema operativo Unix
Unix è un sistema a interfaccia testuale multitasking e multiutente Il multitasking non è solo tra programmi diversi ma anche all’interno dello stesso file Più utenti possono modificare/consultare i dati di un archivio nello stesso istante Questo permette a più persone di lavorare su uno stesso progetto A scopo di protezione dei dati un utente può accedere al sistema specificando un nome identificativo (username) e una parola segreta (password)
41
Il sistema operativo Linux
Nel 1990 Linus Torvalds, uno studente dell’università di Helsinki che si diletta a scrivere programmi per calcolatori, compra un PC con processore Intel 386 e sistema operativo DOS Il sistema DOS non gli permette però di sviluppare i suoi sofisticati programmi D’altra parte il costo di una workstation con Unix (circa 5000 $) è proibitivo Linus decide allora di scrivere un clone di Unix per PC Nel 1991 nasce la prima versione di Linux
42
Il sistema operativo Linux
Il file system è simile a quello di Unix e i comandi sono praticamente gli stessi Contiene inoltre una serie di driver per pilotare le periferiche tipiche di un PC La scelta vincente è stata quella di diffondere Linux su Internet gratuitamente Linux e’ a disposizione di tutti e tutti possono partecipare all’evoluzione del sistema
43
Il sistema operativo Linux
Linux è diffusissimo nel mondo universitario e della ricerca e si sta diffondendo anche in altri ambiti grazie allo sviluppo di interfacce grafiche Gran parte dei Web Server è basato su Linux Le distribuzioni più diffuse del sistema operativo sono la Red Hat e Mandrake
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.