Informatica Generale Software. Il software Lhardware da solo non è sufficiente per il funzionamento...

Post on 02-May-2015

213 views 0 download

Transcript of Informatica Generale Software. Il software Lhardware da solo non è sufficiente per il funzionamento...

Informatica Generale

Software

Il software

L’hardware da solo non è sufficiente per il

funzionamento dell’elaboratore ma è

necessario introdurre il software

… ovvero un insieme di programmi che

permettono di trasformare un insieme di

circuiti elettronici in un oggetto in grado di

svolgere varie funzioni

Il software

Una programmazione diretta della macchinahardware da parte degli utenti è davvero difficilel’utente dovrebbe conoscere l’organizzazionefisica dell'elaboratore e il suo linguaggiomacchina. Ogni programma dovrebbe essere scrittoutilizzando delle sequenze di bit ed ogni piccoladifferenza hardware comporterebbe una riscritturadel programma stesso

Il software: perché?

L’utente deve:

usare nello stesso modo, o in modo molto simile, macchine diverse dal punto di vista hardware

avere un semplice linguaggio di interazione con la macchina

avere un insieme di programmi applicativi per svolgere compiti diversi

Macchina VirtualeSi dice virtuale in quanto non esiste fisicamente maviene realizzata mediante il software (software dibase)

L'utente interagisce con la macchina virtuale grazie ad un opportuno linguaggio di comandi (semplice).

La macchina virtuale si preoccupa della traduzione di ogni comando impartito dall’utente nella sequenza di comandi riconosciuti dalla macchina fisica sottostante che realizzano la stessa funzione

Linguaggio di comandi Il processore è in grado di eseguire istruzioni

scritte in un insieme di codici binari, detto linguaggio macchina

Codice Istruzione | Argomento 1 | Argomento 2

Usare direttamente il linguaggio macchina per programmare è estremamente difficile

L’interfaccia del sistema operativo permette un livello di programmazione molto semplice

Passaggio di informazioni L’interfaccia del sistema operativo

permette un ……………….

Interfaccia =

1. Elemento di collegamento tra l’elaboratore e un’entità esterna che consente il passaggio delle informazioni da uno all’altra

2. Elemento di contatto o di intermediazione fra entità, sistemi, cose, persone ecc ..

Software:: Classi

Conosciamo due classi di software:

Programmi Applicativi

Sistemi Operativi

Software: Programmi applicativi

programmi di video-scrittura (es. Microsoft Word) browser, usati per “navigare il Web” e spedire posta

elettronica (es. MS Explorer, Netscape Communicator) fogli elettronici, usati per manipolare e analizzare

numeri e dati (es. Microsoft Excel) programmi per la gestione di banche di dati (database),

utilizzati per conservare ed elaborare dati strutturati programmi per creare applicazioni

multimediali/grafiche, manipolare foto, fare presentazioni con audio/video, ecc.

videogiochi

Software: Sistemi Operativi

Dos Windows 95, 98, 2000, XP … sVista …

Windows 7 Linux/Unix BeOs Mac Os(Cheetah , Puma, Leopard) FreeBSD

Cosa è un Sistema OperativoÈ il componente software fondamentale di un

sistema di calcolo.

È formato da un insieme di programmi che

interagiscono tra loro per realizzare due obiettivi:

1. Gestire efficientemente l’elaboratore e i suoi dispositivi

2. Creare un ambiente virtuale per l’interazione con l’utente

Classi di sistemi

I sistemi di elaborazione li possiamo

vedere come:

Calcolatori Organizzatori di informazioni Strumenti di comunicazione

Classi di sistemi I Calcolatori: un sistema di elaborazione è un

dispositivo di calcolo molto veloce; il concetto centrale è quello di algoritmo; lo strumento principale di accesso ai servizi è il linguaggio di programmazione

Ordinatori di informazioni: un sistema di elaborazione è capace di archiviare, elaborare e accedere a tanti dati; un sistema operativo è il gestore del servizio di archiviazione; lo strumento principale di accesso è l’interfaccia del sistema operativo

Classi di sistemi II Strumenti di comunicazione: un sistema di

elaborazione è capace di comunicare con altri sistemi collegati in rete, trasportando quantità di dati ad una certa velocità; il concetto centrale è quello di servizio di comunicazione (posta elettronica, WWW); lo strumento principale di accesso ai servizi di comunicazione è il browser

Nota: ricordiamo anche che in molti casi i sistemi di

elaborazione si usano come giocattoli

Il sistema operativoDal punto di vista strutturale il sistema operativo

è formato da un insieme di livelli, che formano la

cosiddetta

struttura a cipolla

Idealmente l’utente è ignaro di tutti i dettagli delle

operazioni svolte ai livelli inferiori e conosce solo le

operazioni del livello più alto

Sistemi documento-centrici L'utente di un computer di solito è interessato a

"manipolare" un documento mediante un programma applicativo.

I sistemi operativi moderni ( Windows, MacOS, Linux ) sono “documento-centrici”, cioè offrono servizi di gestione per documenti di varia natura (testi, grafica, audio, video, programmi)

I documenti vengono conservati da un servizio chiamato “file system”, che contiene, organizza e classifica i documenti.

Servizi documento-centrici

I servizi che un utente chiede al sistema operativo riguardano tutti in ultima analisi la manipolazione di archivi

Archivi di dati (.xsl)Archivi "documenti" ( .html, .doc)Archivi programmi (.exe)Archivi di archivi

Esempi  Strumenti di creazione e modifica di documenti

editor: wordpad, MS Word, staroffice Visualizzatori: Acroread Reader, ghostview Strumenti di formattazione e stampa di documenti

Acrobat distiller TeX, MS Frontpage

Strumenti di programmazione Strumenti di archiviazione e compressione

WinZip, tar, compress, gzip  Clienti di servizi di comunicazione

Outlook Express, Eudora, Internet Explorer, Netscape, Konqueror, Mozilla

Funzionalità OS

Avvio dell’elaboratore Bootstrap (caricamento in memoria centrale di

una parte del SO) Gestione dei servizi Gestione dei dispositivi Interazione con l’utente (Interfaccia)

Servizi e funzioni Comunicazione e gestione dell’informazione remota

gestione di messaggi di posta elettronica remote login (telnet) remote file transfer (ftp) accesso servizi news (USENET) accesso servizi WWW

Funzioni Allocazione di risorse (processore, memoria,

dispositivi) Ottimizzazione della gestione (politiche) Soluzione dei conflitti di uso di risorse indivisibili

Esempi di Servizi

Il pannello di controllo di Windows

è una funzione chiave del sistema operativo

Windows che permette di configurare una serie di

comportamenti dei principali servizi del sistema

operativo

Servizi Interfaccia amichevole: Nei sistemi più primitivi

(es. MSDOS) l’interfaccia utente è il terminale è grafico si usano le interfacce grafiche e le loro librerie (MacOS, Windows, X-Window di Linux)

Multiprogrammazione I primi sistemi operativi per PC erano monoprogrammati; dagli anni ’90 è normale avere la funzione di multi-programmazione, per cui in memoria centrale si possono caricare simultaneamente più programmi

Interfaccia OS

Quando c’è un’interfaccia testuale il sistema operativo sollecita un comando testuale dal video (shell DOS)

Quando c’è un’interfaccia grafica il s.o. facilita l’utente proponendo sullo schermo un menu di comandi selezionabili mediante mouse , che permette anche di manipolare icone disposte su una scrivania virtuale (desktop)

Esempio Interfaccia Grafica L'interfaccia utente rappresenta il piano di una

scrivania (desktop) su cui alcune icone rappresentano documenti, programmi o cassetti (folders) apribili cliccando col mouse

Un sistema di menù definisce i principali servizi, tra cui:come spegnere il computercome creare o cancellare un archiviocome visualizzare il contenuto di un archiviocome proteggere un archivio

Interfaccia dentro interfaccia

La nozione di macchina astratta permette di costruire software molto complessi, per esempio sistemi operativi emulati: in questo modo un Macintosh può eseguire applicazioni Windows, o Playstation

Lo screenshot seguente (www.uk.research.att.com/vnc)

mostra l’interfaccia di Windows emulata entro l’interfaccia

di un Macintosh

I processi del SO Un sistema operativo è una macchina astratta

complessa. Viene di solito descritta definendo un insieme di agenti chiamati processi processi di interfaccia utente (shell e finestre) processi delle applicazioni processi di servizio (serventi)

Un processo, o agente, è un’attività controllata da un programma, che si svolge su un processore, ed è capace di interagire con i vari dispositivi

OS Multiprogrammato Un sistema operativo multiprogrammato include

parecchie distinte attività chiamate processi

Queste attività si alternano sul processore (multitasking): quando un processo P1 si sospende per una lettura o una scrittura, il processore viene utilizzato da un altro processo P2

I processi dunque non avanzano con continuità; le loro attività sono interrotte per brevi intervalli di tempo dato che condividono tra loro risorse (processori, dispositivi)

Esempio

Processore utilizzato per eseguire un programma utente

Processore utilizzato dai programmi che controllano i dispositivi

Processo 1

Processo 2

Processo 3

Stati di un processo

Ogni processo durante la sua “vita” alterna gli stati di pronto, esecuzione, e attesa passando attraverso transizioni di stato

Attesa

Pronto Esecuzione

assegnazione

prerilascio

Stati di avanzamento dei processi

Transizioni di stato I Transizione da esecuzione ad attesa:

sospensione avviene per esplicita azione del processo in

esecuzione; il processo che si sospende si pone in attesa di un

evento E

Per esempio,un processo Pi si sospende in attesa di: interruzione da parte di un dispositivo, sincronizzazione con un altro processo, ricezione di un messaggio

Transizioni di stato II Transizione da stato di attesa a stato di pronto:

riattivazione. Schema tipico: Pi sospeso in attesa di evento E,

viene riattivato da Pj che segnala E. Esempi di eventi: interruzione, sincronizzazione, arrivo di un messaggio

Transizione da pronto a esecuzione: assegnazione del processore (da parte dello scheduler)

Transizione da esecuzione a pronto: prerilascio del processore (da parte dello scheduler)

Gestione dei processi L’avanzamento dei processi è determinato dalla

disponibilità del processore e dalla politica con la quale l’uso del processore è ripartito tra i processi

Le politiche di assegnazione del processore ai processi pronti hanno come obiettivo un uso efficiente del processore. Alcune politiche:

consiste nel fare avanzare i processi in ordine di arrivo (FIFO: first in first out)

consiste nel fare avanzare i processi con velocità dipendenti dalla loro priorità

Multiprogrammazione e risorse

In caso di multitasking lo scheduler sceglie di volta in volta il processo da fare avanzare tra quelli pronti

I processi che controllano i dispositivi (driver) hanno la precedenza sui processi normali [ Dipendente anche dal tipo di dispositivo controllato]

L’avanzamento “contemporaneo” di più processi è possibile perché la memoria centrale è ripartita tra i programmi. Ripartizione effetttuata dal gestore della memoria del sistema operativo

La nozione di File

Su cosa operano i sistemi operativi? Sui

documenti immagazzinati nei dischi volatili o fissi.

Operano sugli archivi, o f i l e

Definizione.

Un file (o archivio, o documento elettronico) è

sequenza di caratteri (byte) identificata da un

nome

L’organizzazione dei file

Si usano “contenitori” di file detti directory

(che sono essi stessi file)

Definizione.

Un folder (o directory) è un archivio contenitore di

file.

Folder è il meccanismo di base per strutturare

l’insieme dei file di un sistema detto file system.

File System Directory principale

Studenti

Mario LeonardoGino

Facoltà

Prof.Rossi Prof.Verdi Prof. Bianchi

Corsi

Corso A Corso B

documenti SeminariBorse

SOSP COST-11

File

Descrittori

Ad ogni file è associato un descrittore che ne descrive le proprietà e ne definisce la struttura logica e la struttura fisica

Mediante il descrittore le operazioni definite sulla struttura logica possono essere tradotte in operazioni sulla struttura fisica, eseguite a cura del s.o.

Esempio

Nome del file Tipo del file Dimensione del file Proprietario Informazioni sulla protezione Contatore d’uso Tempo di creazione Tempo dell’ultima modifica Lista dei blocchi di disco usati

Informazioni su ogni file

Directory

Elemento

Elemento

Elemento

Elemento

File Allocation Table

Tutte le informazioni sui file vengono gestite

e immagazzinate nei sistemi operativi.

Ad esempio

Nei sistemi operativi della classe Windows la struttura detta FAT (File Allocation Table) ricorda dove sono allocati i vari file

FAT Table0

1

2

3

4

5

6

7

8

10

11

12

13

9

14

15

X

X

EOF

13

2

9

8

4

FREE

12

3

FREE

EOF

FREE

EOF

BAD

Dimensione del disco

6 8 4 2

5 9 12

10 3 13

File A:

File B:

File C:

Questo blocco è marcato come blocco rotto

FAT

File: Interfaccia Grafica Il sistema operativo fornisce un servizio (di

solito una interfaccia grafica) che mostra i file in forma di icona; e alcune proprietà di ciascun file tipo: se è un documento o un programma o

una cartella la data (e l’ora) di ultima modifica la dimensione su disco l’applicazione che l’ha creato, ecc.

Nomi dei DocumentiL’attributo più importante di un file è il suo nome;

Quando un file system viene organizzato ad albero

esistono due metodi per specificare in modo

testuale il nome del file: Nel primo metodo, ogni file viene identificato da

un cammino assoluto che consiste della sequenza di directory contenute una entro l’altra dalla radice del file system al file

L’altro tipo di nome è il cammino relativo, che presuppone il concetto di directory di riferimento

Cammini Relativi Nota: Esistono due simboli importanti per

riferire directory in modo implicito:~ directory home .. directory superiore . directory corrente

Cammini relativi ~/sdc/lucidi.ps (il cammino parte dalla

home) ../../lucidi.ps (il cammino parte da 2 dir in su)

Esempio Esempio di cammino assolutoC:\Documents and Settings\studenteCP\MyDocuments\DIDATTICA\IG1

Esempio di cammino relativo

.\MyDocuments\DIDATTICA\IG1

Directory corrente

Attributi dei files Nei sistemi multi-utente, per ogni archivio sono

definiti un proprietario e alcuni diritti di accesso, di lettura, scrittura o esecuzione

Un altro attributo importante è il tipo del file, che descrive la struttura del contenuto.

La maggior parte dei sistemi operativi supporta molti tipi di file, si distinguono per l’estensione (suffisso che si appende al nome).

Formati

Esistono parecchi formati diversi di file spesso distinguibilidall’estensione:

.txt o .asc file in formato ASCII .doc file in formato MS Word .rtf file in Rich Text Format .htm o .html file in formato HTML .zip file compresso .gz file compresso .tar archivio TAR .tar.z archivio TAR e poi compresso .tgz archivio TAR e poi compresso

Formati

.gif file immagine in formato GIF .jpg file immagine in formato JPEG .pic file immagine in formato PIC .wav file audio .au file audio .mpg file filmato MPEG .mov file filmato QuickTime .ps file in formato PostScript .eps file in formato Encapsulated PostScript .pdf file Portable Document Format

Formati Molte applicazioni definiscono in modo

particolare, privato, di solito binario, il formato dei documenti che tipicamente creano

Formato .doc per Microsoft Word L’uso di un formato proprietario è di solito

giustificato con ragioni di efficienza, ma l’unica vera ragione è commerciale: il formato proprietario protegge il mercato dell’applicazione che è l’unica che può gestire quel formato

La richiesta di interoperabilità tra le applicazioni giustifica l’introduzione di formati di interscambio

Formato di interscambio Formato di documenti, solitamente testuale e

quindi leggibile, riconosciuto da applicazioni di diversi produttori

Lo scambio di documenti in rete rinforza la necessità di formati interscambiabili tra diversi computer e tra diverse applicazioni: nasce la nozione di formato aperto, indipendente sia dalle applicazioni che dall’hardware (ASCII non è sufficiente perché troppo elementare)

HTML è un formato “aperto”, non proprietario, e leggibile;

PDF è un formato “chiuso”, proprietà di Adobe, e binario

Esempio: MS Office

Word – elaborazione di testi PowerPoint – sistema di preparazione di

presentazioni Excel – foglio elettronico FrontPage – sistema di creazione di documenti

Web Outlook – agenda elettronica e cliente email Access – sistema gestione di banche di dati

Esempio: Adobe

Framemaker – elaborazione di testi su canali multipli Pagemaker - business publishing, small offices InDesign - progettazione struttura grafica dei

documenti Acrobat – creazione di documenti digitali Illustrator - creazione di grafica Photoshop – ritocco fotografico GoLive – creazione di documenti Web

Esempio: Macromedia

Director – creazione presentazioni multimediali su CD

Dreamweaver - creazione di documenti Web Fireworks - progettazione struttura grafica

dei documenti Flash – creazione presentazioni multimediali

per il Web

Il MercatoNel mercato mondiale si sono affermati alcunisistemi operativi che oggi sono più popolari di altriper alcuni compiti specifici; Il sistema più popolare su personal computer è

Windows, che detiene oltre il 95% (da aggiornare) di questo mercato;

Il sistema più popolare per server di Internet è Linux/Unix;

Il sistema più popolare per handheld computer è PalmOS, fortemente insidiato da una variante di Windows chiamata Windows CE

Installazione Il sistema operativo arriva di solito già installato

su una macchina appena comprata Ogni sistema operativo è un programma

complesso fatto da molti componenti, e talvolta uno di questi componenti “si guasta”: occorre allora reinstallare il sistema da una copia integra del sistema operativo

Nel corso del tempo inoltre vengono pubblicate nuove versioni del sistema operativo

L’installazione del sistema operativo è una procedura complessa