cerca
Sistemi Operativi - Riassunto capitolo 1
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Sistemi Operativi - Riassunto capitolo 1

 :: Sistemi Operativi - Riassunto capitolo 1::

Torna alla pagina di Sistemi Operativi

Introduzione

Sistema operativo = insieme di programmi che gestiscono l'hw del computer. Fornisce una base agli applicativi e fa da intermediario tra utente e hw.

1.1 Che cosa fanno i SO?

Elaborazione dell'info = divisibile in 4 parti:

  1. hardware
    • cpu
    • memoria
    • I/O
  2. Sistema Operativo
  3. Programmi applicativi
  4. Utenti

Sistema Operativo = non agisce per sé, ma crea un ambiente utile agli altri per lavorare.

1.1.1 Il punto di vista dell'utente

PC: Scopo del SO = facilitare l'uso del computer. Non si tiene in genere conto dell'utilizzo delle risorse, perché sebbene le prestazioni contino, per l'utente, le richieste inviate al computer sono limitate.

Mainframe o minicomputer: Scopo del SO = massimizzare l'uso delle risorse, così ogni utente al terminale è trattato equamente.

Workstation: Scopo del SO = compromesso tra uso di risorse individuali e condivise.

Palmare: Scopo del SO = utilizzo individuale; risparmiare batteria.

Embedded: Scopo del SO = fare il suo mestiere, non c'è intervento dell'utente.

1.1.2 Il pdv del computer

SO = distributore di risorse.

SO = programma di controllo che gestisce i dispositivi di I/O e controlla che i programmi non vengano eseguiti in modo improprio.

1.1.3 Definizione di sistema operativo

In generale, non c'è una definizione totalmente adeguata.

Hardware = costruito per risolvere problemi. Non è facile da usare direttamente => il SO controlla e distribuisce le risorse hw.

Altra definizione: SO = l'unico programma che è sempre in funzione (il kernel, e non aMule). Tutto il resto sono programmi di sistema o applicativi.

1.1.4 Scopi di un sistema operativo

Scopo primario:

  • PC: essere conveniente per l'utente
  • Sistemi condivisi: far operare efficientemente il computer.

Nel passato contava di più l'efficienza => la maggior parte della teoria sui SO riguarda l'efficienza e non l'usabilità.

1.2 Sistemi mainframe

Primi sistemi informatici per gestire appli commerciali e scientifiche.

1.2.1 Sistemi a lotti

Utente = non interagisce, ma prepara un lavoro (job) composto da programma + dati, e lo invia all'operatore (eg schede perforate). Dopo un po' arrivava l'esito.

=> SO semplice: deve solo trasferire il controllo da un job all'altro.

Per velocizzare sto trasferimento, si organizzano i job in lotti (batch) => programmi con esigenze simili nello stesso lotto.

La CPU riposa spesso perché è più veloce dell'I/O meccanico.

1.2.2 Sistemi multiprogrammati

Multiprogrammazione = mantenere più job in memoria. Se uno attende, il SO commuta e usa un altro job.

Primo caso in cui il SO deve decidere qualcosa al posto dell'utente.

Tanti job => organizzarli = scheduling dei job, eg quelli lunghi di notte.

Tanti job già pronti => quale eseguire? => CPU scheduling.

1.2.3 Sistemi time-sharing

Sistemi a lotti = 0 interazione con l'utente.

Multitasking = far evolvere in apparente simultaneità più programmi

=> Time-sharing = la CPU esegue parecchi programmi commutando tra di essi molto velocemente, e a noi sembrano paralleli.

Time-sharing:

  • occorre sistema operativo interattivo per far comunicare computer e utente => tempo di risposta tra comando e risultato.
  • più utenti possono usare contemporaneamente il computer: ognuno ha il suo processo. Il SO commuta processi quando accade in I/O perché è lento rispetto alla CPU
  • più complessi rispetto ai sistemi multiprogrammati => eg ricorso a memoria virtuale
  • devono fornire un filesystem
  • devono sincronizzare e far comunicare processi

1.3 Sistemi desktop

...

1.4 Sistemi multiprocessore

Vantaggi:

  1. Più elaborazione (N processori non vuol dire però che sono N volte più veloci di 1, perché vanno sincronizzati)
  2. Economia di scala: tanti processori costano meno di tanti computer
  3. Aumento di affidabilità: ne muore uno, gli altri in teoria vanno avanti => degradazione progressiva = tolleranza ai guasti

SMP = sistema multiprocessore simmetrico, tutti i processori sono equivalenti tra loro. Asimmetrico = processori che fanno robe diverse.

1.5 Sistemi distribuiti

Reti di computer => processori che non condividono né memoria né orologio.

Collegati con linee di comunicazione, eg bus ad alta velocità o linee telefoniche.

1.5.1 Reti di computer

Rete = struttura di comunicazione tra due o più sistemi.

I mezzi fisici usati sono vari.

1.5.2 Sistemi client-server

Server = erogano servizi Client = fanno richieste ai server e ne ricevono i risultati

Tipi di server:

  • server di calcolo = eseguono le richieste di computazione che i client fanno (basi di dati)
  • server per i file = interfaccia per gestire i file da parte dei client (web)

1.5.3 Sistemi punto-a-punto

Peer 2 Peer: client e server non sono distinguibili.

Nei sistemi client-server, il server è collo di bottiglia. Qui invece i servizi sono offerti da tutti.

Per partecipare ad un sistema distribuito P2P occorre associarsi a quella rete, e poi scoprire quali servizi essa eroga. Per scoprire servizi, 2 modi:

  1. ogni client nuovo che si connetti comunica i suoi servizi al registro centralizzato. Se voglio un servizio, consulto questo registro.
  2. il client nuovo deve scoprire chi fornisce il servizio facendo domanda a tutti i nodi della rete => occorre un protocollo di scoperta per scoprire i servizi che i nodi offrono.

Nota mnemonica: sostituite "servizi" con "mp3".

1.5.4 Sistemi operativi distribuiti

Sistema operativo di rete = ha uno schema di comunicazione che permette a processi su computer differenti di scambiarsi messaggi.

I SO dei vari computer comunicano abbastanza strettamente, per dare l'illusione che un solo sistema operativo controlli la rete.

1.6 Sistemi cluster

Come i sistemi paralleli, usano contemporaneamente diverse CPU, ma in computer diversi. Condividono memoria di massa e sono strettamente collegati tramite LAN.

Cluster = servizio ad alta disponibilità: se qualcuno viene a mancare, gli altri suppliscono.

Cluster asimmetrico = uno esegue, l'altro è in attesa a caldo, e sostituisce chi viene a mancare.

Cluster simmetrico = 2 macchine eseguono le appli e si controllano a vicenda (più efficiente).

Accesso condiviso ai dati => gestore del blocco distribuito per lock etc.

1.7 Sistemi in tempo reale

Vincoli di tempo: il processo deve essere completato entro i termini imposti, se no fallisce. Risultato corretto entro il tempo stabilito.

SO hard real-time: garantisce che i compiti critici siano eseguiti in tempo => tutti i processi sono limitati nel tempo.

SO soft real-time: ci sono processi critici e processi normali, e quelli critici hanno la priorità. Non hanno tempo massimo entro cui eseguire processi, pena il fallimento.

1.8 Sistemi palmari

PDA, telefoni cellulari. Piccoli => processori piccolo e lenti; schermi piccoli. Appli e SO non devono penalizzare il processore, e non usare troppo le batterie.

1.9 Migrazione delle caratteristiche

Le caratteristiche che solo i mainframe di una volta avevano sono arrivate fino ai PC di adesso.

1.10 Ambienti di elaborazione

Come i sistemi appena visti vengono usati in diversi ambienti di elaborazione.

1.10.1 Elaborazione tradizionale

Una volta: ufficio con pochi PC in rete; server centrale con files e stampanti.

Ora: portali di accesso, computer di rete, palmari, wireless.

1.10.2 Elaborazione basata sul Web

Web = ubiquo, c'è dappertutto => un computer è client e server contemporaneamente.

1.10.3 Elaborazione embedded

Lettori DVD, macchine del caffé, lavatrici, centraline delle macchine.

1.10.4 Elaborazione multimediale

MP3, video, webcam etc. => vincoli di potenza di elaborazione (eg. riprodurre ad un certo frame rate) e di trasmissione in rete (banda).

Appli multimediali: eseguite ormai dappertutto.

Torna alla pagina di Sistemi Operativi