:: 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:
- hardware
- Sistema Operativo
- Programmi applicativi
- 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:
- Più elaborazione (N processori non vuol dire però che sono N volte più veloci di 1, perché vanno sincronizzati)
- Economia di scala: tanti processori costano meno di tanti computer
- 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:
- ogni client nuovo che si connetti comunica i suoi servizi al registro centralizzato. Se voglio un servizio, consulto questo registro.
- 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