52
1 Sistemi operativi Laboratorio di Informatica Elisa Mori [email protected]

1 Sistemi operativi Laboratorio di Informatica Elisa Mori [email protected]

Embed Size (px)

Citation preview

Page 1: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

1

Sistemi operativi

Laboratorio di InformaticaElisa Mori

[email protected]

Page 2: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

2

Il Sistema Operativo opera come intermediariointermediario tra

l’hardware del sistema e uno o più utenti.

All’avvio del computer, terminate le verifiche del BIOS, il controllo passa al

sistema operativosistema operativo.

Sistemi Operativi: avvioSistemi Operativi: avvio

Page 3: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

3

• gestione delle risorse hardware

• interfaccia verso l’utente

Due sono le funzioni principalisvolte da un sistema operativo:

Sistema Operativo: funzioniSistema Operativo: funzioni

Come tali funzioni vengano svolte, e se sia interamente il sistema operativo ad occuparsene, dipende dal dispositivo in questione.

Page 4: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

4

Esistono diversi dispositivi elettronici la cui complessità ha reso necessario dotarli di un sistema operativo.

DispositiviDispositivi

Tra questi, agende elettroniche e telefoni cellulari sono esempi comuni.

Palm m505

Sendo z100

Nokia 7650

Page 5: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

5

La gestione dell’hardware è un aspetto di secondaria importanza per gli utenti di questi dispositivi.

DispositiviDispositivi

L’interfaccia ha un’importanza maggiore, ed è sia fisica che virtuale (software).

Page 6: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

6

Sistemi Sistemi operativi:operativi:

un po’ di un po’ di storiastoria

Page 7: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

7

I primi sistemi operativi sono stati progettati negli anni ’50 per i calcolatori allora disponibili.

Consistevano in poche centinaia di istruzioni per il caricamento del programma in memoria centrale e per la produzione, su un dispositivo di output, dei risultati dell’elaborazione.

L’interfaccia era quella comune allora – interruttori e spie luminose.

I comandi venivano impartiti in codice binario.

Sistemi operativi: storiaSistemi operativi: storia

Page 8: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

8

Nella seconda metà degli anni ’60, la AT&T abbandona il progetto MULTICS – un sistema a time-sharing – rivelatosi deludente.

Ken Thompson, allora ai Bell Labs dellaAT&T, scrive un sistema operativo inassembler e lo battezza,

UNICS (Uniplexed Information andComputing Services).

Nasceva così UNIXUNIX, capostipite di una numerosa e varia famiglia di sistemi operativi. Era il 1969.

Sistemi operativi: storia Sistemi operativi: storia (UNIX)(UNIX)

Page 9: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

9

Nel frattempo Dennis Ritchie, checollaborava con Thompson, sviluppail linguaggio di programmazione “C”.

Nel 1972 UNIX viene riscritto in C,aprendo la strada all’utilizzo sualtre piattaforme hardware.

Dal 1975 in poi, UNIX inizia a diffondersi nelle università – negli Stati Uniti, in Giappone, Australia, Europa…

Sistemi operativi: storia Sistemi operativi: storia (UNIX)(UNIX)

Page 10: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

10

Sistemi operativi: storia Sistemi operativi: storia (UNIX)(UNIX)

La ramificazione delle versioni di UNIX diventerà poi inarrestabile.

Il grafico qui riportato è aggiornato a fine 2001, e non è che la punta di un iceberg: molte varianti sono poco diffuse, e non vengono riportate.

fonte: http://perso.wanadoo.fr/levenez/unix/

Page 11: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

11

Negli anni ’70, iniziano a diffondersi iprimi personal computer. Gary Kildallsviluppa, nel 1972, il CP/M (ControlProgram for Microprocessors), unsistema operativo funzionante su unodei primi processori Intel (il 4004).

Il primo BIOS fu scritto da Kildall come modulo per il proprio CP/M, in modo da rendere il sistema meno dipendente dall’hardware.

Sistemi operativi: storia Sistemi operativi: storia (DOS)(DOS)

Page 12: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

12

Nel 1980 Tim Patterson, della Seattle Computer Products, sviluppò un proprio sistema operativo basato sul CP/M. Impiegò due mesi, e lo battezzò QDOS (Quick and Dirty Operating System).

Dopo quattro mesi, un’altra ditta di Seattle, la Microsoft di Bill Gates, acquista dalla SCP i diritti per rivendere il DOS ad un cliente non menzionato.

Il cliente è l’IBMl’IBM, che nel 1981 lancerà il primo PC, dando il via alla rivoluzione dei personal computer.

Sistemi operativi: storia Sistemi operativi: storia (DOS)(DOS)

Page 13: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

13

La Apple Computer, negli stessi anni, sta portando avanti diversi progetti, e sperimenta diversi sistemi operativi. Nel 1984, con il lancio (e il successo) dell’Apple Macintosh, si focalizzerà sul suo sistema operativo, il SystemSystem – allora alla versione 1.0.

Al contrario del DOS, nelle sue varie incarnazioni, il System ha un’interfaccia grafica.

L’anno successivo, il 1985, la Microsoft lancia la prima versione di Windows.

Sistemi operativi: storia Sistemi operativi: storia (Win & Mac)(Win & Mac)

Page 14: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

14

Dal 1984-85 ad oggi, sia la Apple che la Microsoft hanno aggiornato più volte i propri sistemi operativi.

L’interfaccia Apple è rimasta simile (perché molto funzionale), mentre la Microsoft ha via via abbandonato il DOS, e nel 1995 ha introdotto, con Windows 95, un’interfaccia grafica più curata ed efficiente.

Sistemi operativi: storia Sistemi operativi: storia (Win & Mac)(Win & Mac)

Page 15: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

15

Nel 1991 uno studente finlandese, Linus Torvalds, sviluppò il kernel per un sistema operativo basato su una variante di UNIX.

Lo distribuì in rete secondo la GNUGeneral Public License, una licenza che ne consentiva l’uso, la redistribuzione e la modifica (a certe condizioni).

Iniziò a ricevere da subito contributi da altri sviluppatori.

Sistemi operativi: storia Sistemi operativi: storia (Linux)(Linux)

Page 16: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

16

Nasceva così LinuxLinux, una delle varianti UNIX oggi più diffuse. Il kernel di Linux è continuamente aggiornato, e disponibile anche gratuitamente.

Uno dei punti di forza di questo sistema è la comunitàcomunità che lo supporta, e la filosofia su cui si basa, quella del software liberosoftware libero.

Sistemi operativi: storia Sistemi operativi: storia (Linux)(Linux)

Page 17: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

17

Sistemi Sistemi operativi:operativi:

struttura struttura internainterna

Page 18: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

18

La strutturastruttura di un sistema operativo, tipicamente, è quella a cipolla:

LivelliLivelli

Page 19: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

19

LivelliLivelli

Ciascun livello:

– usa le funzionalitàfunzionalità di quello sottostante

– fornisce serviziservizi al livello che segue nella gerarchia

– gestisce delle risorserisorse mediante politiche invisibili ai livelli superiori

L’hardware è dunque “ricoperto” da una serie di strati di software.

Page 20: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

20

Macchine virtualiMacchine virtuali

• l’esperto che scrive un sistema operativo vede il sistema come un insieme di risorse fisiche da comandare direttamente;

• colui che progetta un ambiente di programmazione vede la macchina come l’insieme delle funzioni messe a disposizione dal sistema operativo;

Si crea, in questo modo, una gerarchia di “macchine virtuali”.

Page 21: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

21

Macchine virtualiMacchine virtuali

• l’utente che usa un linguaggio di alto livello per progettare un programma applicativo vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ambiente di programmazione;

• per l’utilizzatore di un programma applicativo, infine, il sistema appare virtualmente come l’insieme dei comandi che può fornire alla macchina per soddisfare le sue esigenze.

Page 22: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

22

Macchine virtualiMacchine virtuali

Riassumendo: l’utente finale del sistema interagisce solo con il livello più esterno della gerarchia.

Idealmente, l’utente finale è ignaro di tutti i dettagli delle operazioni svolte dai livelli inferiori.

Potrebbe (sempre idealmente) essere a conoscenza solo delle operazioni che è interessato ad effettuare.

Page 23: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

23

Il livello più basso è quello del kernel (nucleo). Questa parte del sistema operativo si occupa di gestire l’esecuzione dei programmi.

Gestione CPUGestione CPU

Un programma in esecuzione è detto processo.

Il kernel distribuisce le risorse di calcolo tra i vari processi attivi.

Page 24: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

24

Una prima distinzione è dunque tra quei sistemi che eseguono un processo per volta e quelli in grado di gestirne diversi “contemporaneamente”.

Questi ultimi sono detti multitaskingmultitasking.

Gestione CPUGestione CPU

Page 25: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

25

La memoria è una risorsa essenziale e limitata.

EssenzialeEssenziale, perché ogni programma in esecuzione (processo) deve essere “caricato” in memoria, e così i dati su cui opera.

Gestione memoriaGestione memoria

LimitataLimitata, perché nei sistemi moderni possono essere attivi più processi nello stesso tempo.

Page 26: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

26

Dal momento che la memoria di sistema (RAM) è una risorsa finita, nell’allocarla ai vari processi il sistema operativo deve risolvere vari problemi:

Gestione memoriaGestione memoria

• trovare spazio per i vari processi;

• “rilocare” il codice caricato in memoria;

• ridurre la frammentazione.

Page 27: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

27

Gestione memoriaGestione memoria

AA

BBAA

BB

CC

In memoria sonocaricati i processi A e B.

CC

Anche C viene caricato in memoria.

Il processo B termina, e libera la memoria.

AA

CC

DD

Il processo D non trova spazio in cui inserirsi, anche se la memoria libera complessiva sarebbe sufficiente.

Page 28: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

31

L’accessoaccesso alle periferiche di I/O viene gestito dal sistema operativo insieme ai driver di periferica.

Gestione Input/OutputGestione Input/Output

Questi sono programmi specificiper ciascun dispositivo che sicolleghi all’elaboratore(stampanti, scannerdischi…).

Page 29: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

32

L’interazione tra un programma e una periferica è standardizzata. Un programma di elaborazione testi, ad esempio, può inviare un comando di stampa senza curarsi del tipo di stampante collegata al computer.

Gestione Input/OutputGestione Input/Output

Spetta al sistema operativo smistare la richiesta al driver della stampante.

Page 30: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

33

A questo livello è implementato anche un sistema di gestione degli errori di I/O errori di I/O (ad es. dischetto mancante o danneggiato, carta esaurita, ecc.).

Gestione Input/OutputGestione Input/Output

Anche il controllo dell’ordine di accesso ai dispositivi è cruciale. Il sistema operativo deve prevenire, o risolvere, eventuali conflitti.

Page 31: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

34

Il file systemfile system è il modo in cui il sistema operativo organizza i file (documenti) sulle unità di memorizzazione.

Gestione fileGestione file

Un file è un’astrazioneche rappresenta un insieme di byte logicamente collegati.

Page 32: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

35

Il file systemfile system deve mettere a disposizione diverse funzioni per la manipolazione dei file:

• creazione/eliminazione

• lettura/scrittura/esecuzione

• coordinamento accessi contemporanei

• controllo degli accessi (nei sistemimultiutente)

Gestione file: funzioniGestione file: funzioni

Page 33: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

36

L’interprete dei comandiinterprete dei comandi è quella parte del sistema operativo che riceve ed elabora le istruzioni impartite da un utente.

Inteprete dei comandi Inteprete dei comandi (shell)(shell)

E’ possibile utilizzare lo stesso sistema operativo con shellshell differenti. Questo può rendere molto diverso il modo di impartire comandi.

Page 34: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

37

La shell è dunque lo strato più esterno di un sistema operativo. Di fatto, rappresenta l’interfacciainterfaccia tra utente e sistema.

Inteprete dei comandi Inteprete dei comandi (shell)(shell)

MacOS X Windows XP Linux – KDE 3.0

Page 35: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

40

Che differenza c’è tra “interprete dei interprete dei comandicomandi”, “shellshell”, e “interfaccia interfaccia

utenteutente”?

I primi due termini sono sinonimi.“Shell” vuol dire “guscio”, in riferimento al fatto che si tratta dello strato più esterno di

un sistema operativo.

Inteprete dei comandi Inteprete dei comandi (shell) e interfaccia(shell) e interfaccia

Page 36: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

41

L’interfaccia è il mezzomezzo attraverso il quale l’utente invia comandi alla shell.

Esistono diverse interfacce possibili per l’interazione uomo-macchina. Il loro

successo dipende, oltre che da un’accurata progettazione, dal tipo di utentetipo di utente cui sono

rivolte.

InterfacciaInterfaccia

Page 37: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

42

Due sono i tipi di interfaccia più diffusi per interagire con un computer:

• Interfacce a caratteria caratteri, anche dette a riga di comandoriga di comando (CLI, command line

interfaces)

• Interfacce grafichegrafiche (GUI, graphical user

interfaces), in particolare di tipo WIMP (Windows, Icons, Menus, Pointing device)

InterfacceInterfacce

Page 38: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

43

Storicamente, per motivi legati all’hardware, le interfacce a caratteri

vengono prima delle altre.

Il CP/M, il DOS, alcuni sistemi operativi in uso sui mainframe negli anni ’60, UNIX.. Hanno tutti un’interfaccia a

caratteri.

Interfacce a caratteriInterfacce a caratteri

Page 39: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

44

Interfacce a caratteriInterfacce a caratteri

DOS shellDOS shell

Page 40: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

45

Unix shellUnix shell(linux (linux console)console)

Interfacce a caratteriInterfacce a caratteri

Page 41: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

47

Cosa rende diverse le interfacce grafiche le une dalle altre?

Evidenziamo due aspetti:

• il tipo di metaforametafora usata;

• gli elementi costitutivielementi costitutivi che l’utente può manipolare.

Interfacce graficheInterfacce grafiche

Page 42: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

48

La metafora più utilizzata nei personal computer, oggi, è quella della “scrivania”(in inglese, desktop).

Dalla sua introduzione ad oggi sono state introdotte interfacce alternative, allo scopo di superarne le limitazioni, ma ancora senza successo.

MetaforeMetafore

Page 43: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

49

Xerox StarXerox Star

Page 44: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

50

Magic Cap, della General

Magic

Interfacce grafiche: Interfacce grafiche: Magic CapMagic Cap

Page 45: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

51

Interfacce grafiche: BOBInterfacce grafiche: BOB

Microsoft BOB (1995).

Page 46: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

52

L’interfaccia grafica dell’Apple Macintosh: il Finder (ver. 0.97)

Interfacce grafiche: Interfacce grafiche: MacintoshMacintosh

Page 47: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

53

Un’interfaccia per il DOS: Windows 1.0

Interfacce grafiche: Interfacce grafiche: Windows 1.0Windows 1.0

Page 48: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

54

Un’interfaccia per il DOS: Windows 3.1

Interfacce grafiche: Interfacce grafiche: Windows 3.1Windows 3.1

Page 49: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

55

Windows

95

Interfacce grafiche: Interfacce grafiche: Windows 95Windows 95

Page 50: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

57

Si tratta di un’interfaccia a manipolazione diretta: esistono degli oggetti discreti sui quali l’utente può compiere delle azioni (spostarli, trascinarli, gettarli nel cestino..).

La metafora associa questi oggetti ai loro corrispettivi nel mondo reale; l’utente ha già un’idea di quali azioni è possibile compiere.

Interfacce grafiche: il Interfacce grafiche: il desktopdesktop

Page 51: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

60

Esempi di widget sono le icone, i menu, i pulsanti, le finestre, le barre di scorrimento, le caselle di testo…

Solitamente è il sistema operativo a mettere a disposizione un insieme di widget.

Interfacce graficheInterfacce grafiche

Page 52: 1 Sistemi operativi Laboratorio di Informatica Elisa Mori morie@unisi.it

Laboratorio di Informatica – Reti di calcolatori

61

Interfacce graficheInterfacce grafiche

Macintosh

Windows

Linux (KDE)