La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sistemi Operativi: avvio

Presentazioni simili


Presentazione sul tema: "Sistemi Operativi: avvio"— Transcript della presentazione:

1 Sistemi Operativi: avvio
All’avvio del computer, il BIOS (Basic Input-Output System) esegue una serie di test diagnostici per controllare lo stato di funzionamento dell'hardware e segnalare eventuali guasti rilevati tramite un codice sonoro (beep code); Fornire una interfaccia software per l'accesso alle periferiche e all'hardware del PC.

2 Il S.O. viene “caricato” dall’hard disk sulla memoria RAM, solo in quel momento sul monitor comparirà lo sfondo di windows Boot

3 Sistema Operativo: funzioni
Due sono le funzioni principali svolte da un sistema operativo: gestione delle risorse hardware interfaccia verso l’utente

4 Dispositivi Esistono diversi dispositivi elettronici che per gestire la loro complessità si sono dotati di un sistema operativo. Tra questi, agende elettroniche e telefoni cellulari sono alcuni esempi. Palm m505 Sendo z100 Nokia 7650

5 Sistemi operativi: un po’ di storia

6 Sistemi operativi: storia
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.

7 Sistemi operativi: storia
Anni ’60, alla AT&T nasce UNIX, capostipite di una numerosa e varia famiglia di sistemi operativi. Anni ’70, iniziano a diffondersi i primi micro computer. Anni ‘80, a Seattle venne sviluppato il sistema operativo QDOS (Quick and Dirty Operating System). AT&T: American Telephone & Telegraph Corporation. Prima di sviluppare UNICS, Thompson dovette anche scriversi l’assembler.. Meno male che lui e Dennis Ritchie avevano trovato un PDP-7 inutilizzato (?).

8 Sistemi operativi: storia (DOS)
Dopo pochi mesi, un’altra ditta di Seattle, la Microsoft di Bill Gates, ne acquista i diritti per rivendere il DOS ad un cliente importante. Il cliente è l’IBM, che nel 1981 lancerà il primo PC, dando il via alla rivoluzione dei personal computer.

9 Sistemi operativi: storia (Win & Mac)
1984, lancio dell’Apple Macintosh, e del suo sistema operativo a interfaccia grafica, il System 1.0 L’anno successivo, il 1985, la Microsoft lancia la prima versione di Windows. dows Nota: già dal 1985 la Microsoft aveva un modo particolare di inserirsi nel mercato: le interfacce grafiche (Xerox, Apple, X-Window) erano di tipo WIMP (Windows, Icons, Menus, Pointing Device). Di conseguenza la Microsoft pensò bene di battezzare il proprio sistema operativo con un nome che la legasse per sempre a un’interfaccia che non aveva inventato.

10 Sistemi operativi: storia (Linux)
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 GNU General 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.

11 Sistemi operativi: storia (Linux)
Nasceva così Linux, 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à che lo supporta, e la filosofia su cui si basa, quella del software libero. Su Linux, aggiungere altre informazioni: che è stabile, che è uno dei sistemi più usati sui web server in combinazione con Apache, e così ia.

12 Sistemi operativi: struttura interna

13 Livelli La struttura di un sistema operativo, tipicamente, è quella a cipolla:

14 Livelli L’hardware è dunque “ricoperto” da una serie di strati di software. Ciascun livello: – usa le funzionalità di quello sottostante – fornisce servizi al livello che segue nella gerarchia – gestisce delle risorse mediante politiche invisibili ai livelli superiori

15 Si crea, in questo modo, una gerarchia di “macchine 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;

16 Macchine 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.

17 Macchine 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.

18 Gestione CPU Il livello più basso è quello del kernel (nucleo). Questa parte del sistema operativo si occupa di gestire l’esecuzione dei programmi. Un programma in esecuzione è detto processo. Per analogia, si può considerare un programma come una ricetta e il processore come cuoco. L’esecuzione della ricetta, che comprende la lettura, la selezione degli ingredienti, la disposizione degli stessi a portata di mano in attesa di usarli, e così via, è il processo. Per risorse di calcolo, si intende il tempo che la CPU dedica ad un particolare processo. Il kernel distribuisce le risorse di calcolo tra i vari processi attivi.

19 Gestione CPU 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 multitasking. Analogia del barista come processore, che può essere adattata sia per i sistemi a task singolo che per quelli multitasking.

20 Gestione memoria La memoria è una risorsa essenziale e limitata.
Essenziale, perché ogni programma in esecuzione (processo) deve essere “caricato” in memoria, e così i dati su cui opera. Limitata, perché nei sistemi moderni possono essere attivi più processi nello stesso tempo. In effetti non è necessario caricare per intero un programma in memoria, ma solo quelle sue parti che si stanno effettivamente utilizzando.

21 Gestione memoria Dal momento che la memoria di sistema (RAM) è una risorsa finita, nell’allocarla ai vari processi il sistema operativo deve risolvere vari problemi: trovare spazio per i vari processi; “rilocare” il codice caricato in memoria; ridurre la frammentazione.

22 Memoria virtuale L’elaboratore può disporre, in apparenza, di una quantità di memoria maggiore di quella fisica installata. L’utilizzo di una memoria secondaria (su disco) per estendere la memoria di sistema consente di parlare di memoria virtuale.

23 Gestione memoria: swapping
Il sistema operativo può riservare un’area di un disco per lo swapping. C A A B B D D C C D viene caricato in memoria. In memoria sono presenti A, B, e C. D non trova spazio. C viene copiato su un disco dal gestore della memoria.

24 Gestione Input/Output
L’accesso alle periferiche di I/O viene gestito dal sistema operativo insieme ai driver di periferica. Questi sono programmi specifici per ciascun dispositivo che si colleghi all’elaboratore (stampanti, scanner dischi…).

25 Gestione Input/Output
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. Spetta al sistema operativo smistare la richiesta al driver della stampante. L’interazione è standardizzata in questo senso: un programma di scrittura, ad esempio, può inviare un comando di stampa senza curarsi del tipo di stampante collegata al computer. Spetta al SO, insieme al driver della stampante, provvedere all’esecuzione dell’operazione.

26 Gestione Input/Output
A questo livello è implementato anche un sistema di gestione degli errori di I/O (ad es. dischetto mancante o danneggiato, carta esaurita, ecc.). Anche il controllo dell’ordine di accesso ai dispositivi è cruciale. Il sistema operativo deve prevenire, o risolvere, eventuali conflitti. Il SO deve inoltre curarsi della gestione degli errori di I/O (dischetto mancante o danneggiato, carta esaurita) così come della corretta gestione della coda di accesso ai dispositivi stessi (se il programma P1, che sta usando la risorsa R1, vuole accedere anche alla risorsa R1, e il programma P2 sta usando la risorsa R2, allora P1 viene messo in attesa. Ma se P2 richiede la risorsa R1 per usarla contemporaneamente a R2, allora ci si può trovare potenzialmente in una fase di stallo – è il SO a doverla risolvere, o a doverla prevenire).

27 Gestione file Il file system è il modo in cui il sistema operativo organizza i file (documenti) sulle unità di memorizzazione. Un file è un’astrazione che rappresenta un insieme di byte logicamente collegati. Con “protezione” intendo la caratteristica per cui nei SO multiutente possono essere impostati dei permessi di accesso ai file basati su utenti e gruppi. I file e le directory sono in tal modo protetti da accessi non autorizzati.

28 Gestione file: funzioni
Il file system deve mettere a disposizione diverse funzioni per la manipolazione dei file: creazione/eliminazione lettura/scrittura/esecuzione coordinamento accessi contemporanei controllo degli accessi (nei sistemi multiutente) Chiaramente la combinazione delle operazioni sopra elencate consente di compierne altre: leggere un file, crearne uno vuoto, scrivere in questo il contenuto letto in quello precedente equivale a copiare il file…

29 Inteprete dei comandi (shell)
L’interprete dei comandi è quella parte del sistema operativo che riceve ed elabora le istruzioni impartite da un utente. E’ possibile utilizzare lo stesso sistema operativo con shell differenti. Questo può rendere molto diverso il modo di impartire comandi.

30 Inteprete dei comandi (shell)
La shell è dunque lo strato più esterno di un sistema operativo. Di fatto, rappresenta l’interfaccia tra utente e sistema. MacOS X Windows XP Linux – KDE 3.0

31 Sistemi operativi: implicazioni
La scelta di un sistema operativo ha un’importanza sia teorica che culturale. Un sistema operativo non è solo una realizzazione ingegneristica, ma rispecchia in qualche misura la filosofia che scegliamo di adottare nel nostro rapporto con il computer. Bisogna dunque guardarsi dal considerare il sistema operativo come una sorta di “dato” tecnologico: si tratta, piuttosto, del risultato di un processo che ha anche fondamentali aspetti culturali e comunicativi. Tale scelta non è sempre possibile. Vedi fallimento della Be, Inc. e questioni sulle licenze Microsoft per i rivenditori.

32 Inteprete dei comandi (shell)
L’interprete dei comandi è quella parte del sistema operativo che riceve ed elabora le istruzioni impartite da un utente. Nota: sul modo di impartire comandi, cominciano a vedersi i primi timidi tentativi di implementare comandi basati su “gesti”, gesti fatti con il mouse: un gioco uscito nel 2001, Black & White, funzionava in questo modo (ed il cursore era in effetti una mano) e una libreria di Litestep fa la stessa cosa.

33 Inteprete dei comandi (shell) e interfaccia
L’interprete dei comandi” o “shell” (letteralmente “guscio”), rappresenta lo strato più esterno di un sistema operativo. Shell vuol dire “guscio”. Il nome deriva dall’interprete dei comandi utilizzata nel sistema Multics.

34 Interfaccia L’interfaccia è il mezzo 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 utente cui sono rivolte. In effetti, gli utenti sono in generale di bocca buona. Se effettivamente l’usabilità dell’interfaccia ne potesse decretare il successo, Windows non reggerebbe il confronto con altri sistemi più funzionali. La curva di apprendimento per interfacce poco intuitive può essere alta, ma la produttività, una volta “addestrati”, ne risente solo in minima parte – anche perché l’utente impara ad aggirare i lati negativi dell’interfaccia. Le interfacce a riga di comando, ad esempio, vanno benissimo per il tipo di comunità al cui interno sono state sviluppate: programmatori, o comunque persone dotate delle competenze, dell’interesse e del tempo necessari ad apprendere una sintassi e dei comandi, e il modo di combinarli.

35 Interfacce Due sono i tipi di interfaccia più diffusi per interagire con un computer: Interfacce a caratteri, dette “a riga di comando” (CLI, command line interfaces) Interfacce grafiche (GUI, graphical user interfaces), in particolare di tipo WIMP (Windows, Icons, Menus, Pointing device) Altri tipi di interfacce grafiche: Microsoft BOB, per restare nell’ambito dei sistemi operativi, o quelle fornite dai giochi per computer, spesso innovative (due esempi: Black & White [2001] e Monkey Island III [1997]).

36 Metafore 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. Da più parti si sente affermare che la metafora della scrivania, per quanto funzionante, è obsoleta. C’è del vero: è una metafora pensata per permettere di usare il computer ad utenti che avevano familiarità con un certo tipo di lavoro da ufficio, e il computer rappresentava un elemento nuovo in quel contesto. Tuttavia oggi il computer è uno strumento presente in molti contesti, lavorativi e non; il vantaggio che si aveva utilizzando una metafora basata su un contesto che gli utenti già padroneggiavano non c’è più; il computer non è, inoltre, un elemento sconosciuto. Molte attività sono state ormai ristrutturate profondamente attraverso l’uso del computer (le comunicazioni e il flusso dei documenti, ad esempio), e rimanere legati ad una metafora antiquata limita i potenziali sviluppi dell’interfaccia.

37 Xerox Star Da più parti si sente affermare che la metafora della scrivania, per quanto funzionante, è obsoleta. C’è del vero: è una metafora pensata per permettere di usare il computer ad utenti che avevano familiarità con un certo tipo di lavoro da ufficio, e il computer rappresentava un elemento nuovo in quel contesto. Tuttavia oggi il computer è uno strumento presente in molti contesti, lavorativi e non; il vantaggio che si aveva utilizzando una metafora basata su un contesto che gli utenti già padroneggiavano non c’è più; il computer non è, inoltre, un elemento sconosciuto. Molte attività sono state ormai ristrutturate profondamente attraverso l’uso del computer (le comunicazioni e il flusso dei documenti, ad esempio), e rimanere legati ad una metafora antiquata limita i potenziali sviluppi dell’interfaccia.

38 Interfacce grafiche: Magic Cap
Magic Cap, della General Magic

39 Interfacce grafiche: BOB
Microsoft BOB (1995).

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

41 Interfacce grafiche: Windows 1.0
Un’interfaccia per il DOS: Windows 1.0

42 Interfacce grafiche: Windows 3.1
Un’interfaccia per il DOS: Windows 3.1

43 Interfacce grafiche: Windows 95
Confronto tra il primo sistema operativo Microsoft *realmente* dotato di interfaccia grafica e il Finder del Mac. Barra dei menu in alto nel Mac, Barra delle applicazioni in basso in Windows. Icone in alto a destra nel Mac, in alto a sinistra nel PC. Cestino sotto le icone principali nel PC, cestino in basso a destra, isolato, nel Mac. L’interfaccia del Mac è costruita secondo dei criteri precisi; la priorità data dalla disposizione delle icone è voluta, così come la barra dei menu (centralizzata per tutte le applicazioni, in modo da risparmiare spazio) in alto. E via dicendo… (per riferimenti:

44 Interfacce grafiche: Windows vista
Confronto tra il primo sistema operativo Microsoft *realmente* dotato di interfaccia grafica e il Finder del Mac. Barra dei menu in alto nel Mac, Barra delle applicazioni in basso in Windows. Icone in alto a destra nel Mac, in alto a sinistra nel PC. Cestino sotto le icone principali nel PC, cestino in basso a destra, isolato, nel Mac. L’interfaccia del Mac è costruita secondo dei criteri precisi; la priorità data dalla disposizione delle icone è voluta, così come la barra dei menu (centralizzata per tutte le applicazioni, in modo da risparmiare spazio) in alto. E via dicendo… (per riferimenti:

45 Elementi grafici Come abbiamo visto le interfacce attuali, basate sulla metafora della scrivania, sono di tipo WIMP. Gli elementi che le compongono vengono detti widget (a small gadget) Una “widget” è un elemento che fornisce informazioni all’utente o gli permette di interagire con il sistema operativo o con un’applicazione.

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

47 Interfacce grafiche Macintosh Windows Linux (KDE)
Citare la possibilità, in ambiente Unix, di avere Desktop multipli – e dunque la necessità di poter rendere visibile una finestra in ciascuno di essi, e non solo in quello in cui è stata creata. In Windows XP le widget sono diverse, ma la disposizione è la stessa. Linux (KDE)


Scaricare ppt "Sistemi Operativi: avvio"

Presentazioni simili


Annunci Google