29
Operating System Concepts Silberschatz and Galvin 1999 1.1 CAP. 1 - INTRODUZIONE

Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Embed Size (px)

Citation preview

Page 1: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.1

CAP. 1 - INTRODUZIONE

Page 2: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.2

Cos’è un Sistema Operativo (S.O.)

•Un sistema che agisce da intermediario tra l’utente e il computer

•Scopi del S.O.:– Rendere il computer più

conveniente all’uso (“user-friendly”)– Utilizzare l’hardware in maniera

efficiente

Page 3: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.3

Un semplice schema…

Page 4: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.4

… e un dettaglio delle sue componenti

1. Hardware – fornisce le risorse di base (CPU, memorie, dispositivi di I/O).

2. S.O. – controlla e coordina l’uso dell’hardware fra i vari programmi applicativi

3. Programmi di sistema – definiscono il modo in cui le risorse di sistema sono utilizzate per risolvere i problemi dell’utente (p.es., compilatori, database, fogli elettronici, ecc…)

4. Programmi applicativi – Applicazioni costruite per risolvere specifici problemi (p.es. sistema di prenotazione voli)

5. Utenti (persone, macchine o altri computer) – possono utilizzare il sistema com’è e/o costruire programmi applicativi

Page 5: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.5

I compiti del S.O.…

•Fa da interfaccia per l’utente (convenienza!!!)

•Gestisce ed alloca le risorse (efficienza!!!)

Kernel – quel programma che è sempre in esecuzione sul computer

… e i suoi “confini”

Page 6: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.6

convenienza

efficienza

kernel

Es.: driver di uno scanner

Page 7: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.7

attenzione: sottile è il confine tra programmi di

sistema e S.O. intero !

… e ancora sui confini

Page 8: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.8

Breve evoluzione dei sistemi di calcolo e dei

relativi S.O.• Prima generazione 1945 - 1955

– Condensatori, programmazione wired

• Seconda generazione 1955 - 1965– transistors, sistemi batch

• Terza generazione 1965 – 1980– Circuiti integrati, multiprogrammazione

• Quarta generazione 1980 – 1995– Personal computers

• Quinta generazione 1995 – oggi– Computer “tascabili” (wireless)

Page 9: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.9

1. Sistemi Batch

•Utente Operatore

•Schede perforate per I/O

•Primo rudimentale S.O. (sempre residente): il solo compito è quello di trasferire il controllo da un job a quello successivo

Page 10: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.10

Organizzazione di memoria di un sistema batch

Page 11: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.11

Schede perforate

•Schede speciali dicono al S.O. quale programma eseguire

$JOB$FTN$RUN$DATA$END

•Caratteri speciali distinguono schede di dati da schede di programmi

$ in column 1// in column 1 and 2709 in column 1

Gli errori erano molto costosi!

Page 12: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.12

Problemi dei sistemi batch

•Dispositivi I/O meccanici molto più lenti della CPU, quindi molti tempi morti per la CPU (lungo turnaround time)

2. Spooling e multiprogrammazio

ne•Assenza di interazione tra l’utente e la macchina

3. Sistemi interattivi e time-

sharing

Page 13: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.13

2. Spooling…

• Idea : sovrapporre operazioni di calcolo (CPU) con operazioni di I/O

• Prerequisito : possibilità di utilizzare un dispositivo di memoria ad accesso diretto (disco) come “appoggio”

Page 14: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.14

• Caricamento dei jobs in memoria dai nastri e dalle schede, stampa dei risultati : off-line

• Mentre esegue un job il S.O.:• può leggere il prossimo job e caricarlo in un’area predefinita del disco• può stampare risultati di job precedenti conservati sul disco

… in pratica

dispositiviinput

dispositivioutputCPU

disco

Page 15: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.15

Multiprogrammazione: organizzazione di memoria

Job pool – struttura dati che permette al S.O. di selezionare quale job eseguire per accrescere l’utilizzazione della CPU

Più job sono tenuti in memoria allo stesso tempo, e la CPU può essere

condivisa tra essi

S.O. delegato a

decidere !!!

Page 16: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.16

Compiti di un S.O. per multiprogrammazione

• Scheduling della CPU (al termine di ogni job)

• Gestione della memoria

• Routines di I/O

•Allocazione di dispositivi

Si condividono risorse, ma non c’è ancora interleaving di esecuzione

tra i job

Page 17: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.17

3. Sistemi interattivi e time-sharing…

• Idea : rimpiazzare il job che utilizza la CPU con un altro, per esempio quando il primo ha bisogno di I/O (context-switching)

• Prerequisito : strutture dati ed algoritmi più complessi per gestire il time-sharing

Page 18: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.18

• La CPU è condivisa tra un insieme di job tenuto in memoria

• Strategie per : scegliere il job che deve utilizzare la CPU, far entrare e uscire job da questo insieme

I concetti… INTERATTIVITA’

• Comunicazione tra l’utente e il sistema: quando il sistema finisce l’esecuzione di un comando passa il controllo all’utente

• Possibilità per l’utente di accedere a codice e dati

TIME_SHARING

Page 19: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.19

job1

job4

job2 job3

job6

Memoria

job5

CPU

SISTEMA DI CALCOLO

UTENTI

… e una rappresentazione grafica

Page 20: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.20

Caratteristiche di un S.O. per Interattività e Time-Sharing

• Scheduling della CPU (anche a intervalli di tempo, non solo quando ci sono operazioni di I/O!!!)

• Gestione della memoria (mantenere un insieme di job in memoria, non tutti quelli possibili)

•Allocazione di dispositivi in maniera consistente con il time-sharing

• File System accessibile dall’utente

Virtualizzazione della macchina

Page 21: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.21

4. Personal Computers

•Nuovi dispositivi di I/O – tastiera, mouse, schermi piccoli, piccole stampanti

•Maggiore necessità di conoscere S.O. da parte dell’utente (tradeoff!)

•Convenienza (facilità d’uso) per l’utente

•Diversa concezione delle protezioni e condivisioni rispetto a sistemi ad utenza multipla

Computers dedicati ad un singolo utente

Page 22: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.22

5. Sistemi paralleli…

•Le CPU condividono memoria e temporizzazione

•Vantaggi: – Maggiore throughput– Minore costo (più economico condividere un disco

tra n programmi che acquistare n PC !!!)– Maggiore affidabilità :

degradazione lenta fault tolerance

Sistemi con più di una CPU

in stretta collaborazione

job7

CPU2

job5

CPU1

job1

CPU3

Page 23: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.23

… e una semplice classificazione

•Symmetric multiprocessing – Ogni CPU ospita una copia identica del S.O.– Molti processi possono essere eseguiti allo

stesso tempo senza degradazione delle prestazioni

•Asymmetric multiprocessing– Ad ogni processore è assegnato uno specifico

compito– Viene allocato un master che schedula e alloca

lavoro per i processori slave

Page 24: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.24

6. Sistemi distribuiti

IDEA - Distribuire il lavoro su macchine:– fisicamente differenti – possibilmente non omogenee – che non condividono memoria e temporizzazione– che comunicano tra esse mediante buses e linee

telefoniche (in debole collaborazione)

PERCHE’ si decide di mettere queste macchine in comunicazione?

- Condivisione di risorse (clustering)- Distribuzione del carico di lavoro - Affidabilità- Comunicazioni tra utenti (es., email)

Page 25: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.25

Caratteristiche di un S.O. per sistemi distribuiti

• Condivisione di file

• Schemi di comunicazione

• Virtualizzazione della rete

• Indipendenza dagli altri S.O. nella rete

Page 26: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.26

7. Sistemi “tascabili” (handheld)

•Personal Digital Assistants (palmari)

•Telefonini cellulari con connessione a Internet

Memoria limitataCPU lenta (potenza limitata)

Schermo di piccole dimensioni

Piccola taglia

Page 27: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.27

Evoluzione dei concetti e delle caratteristiche dei S.O.

Page 28: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.28

A. Sistemi real-time

•Spesso usati sui dispositivi di controllo di applicazioni critiche, quali esperimenti scientifici, sistemi di controllo di aerei, etc.

•Prefissati vincoli di tempo

•Hard real-time system– Dati conservati in memorie veloci a breve termine– Conflitto con time-sharing, quindi non supportati da comuni S.O.

•Soft real-time system– Non tutti i vincoli devono necessariamente essere soddisfatti– Utili in applicazioni multimediali o di realtà virtuale

Page 29: Silberschatz and Galvin 1999 1.1 Operating System Concepts CAP. 1 - INTRODUZIONE

Operating System Concepts Silberschatz and Galvin 1999 1.29

B. Ambienti di elaborazione

•Elaborazione tradizionale (PC in configurazione da ufficio) : S.O. deve oggi fornire più modi per accedere a questi sistemi, ma sono necessarie protezioni

•Elaborazione basata su WEB (vari dispositivi per accedere) : necessari strumenti di S.O. che permettano il bilanciamento del carico tra vari server

•Elaborazione embedded (chip integrati in strumenti di uso comune, es. Computer di bordo dell’auto) : prevalentemente monitoraggio di congegni e segnalazione, quindi S.O. molto semplice