La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione. 1.2 Sistemi Operativi a.a. 2007-08 Introduzione Cosè un sistema operativo Organizzazione del sistema di calcolo Architettura degli elaboratori.

Presentazioni simili


Presentazione sul tema: "Introduzione. 1.2 Sistemi Operativi a.a. 2007-08 Introduzione Cosè un sistema operativo Organizzazione del sistema di calcolo Architettura degli elaboratori."— Transcript della presentazione:

1 Introduzione

2 1.2 Sistemi Operativi a.a Introduzione Cosè un sistema operativo Organizzazione del sistema di calcolo Architettura degli elaboratori Struttura del sistema operativo Attività del sistema operativo Gestione dei processi Gestione della memoria Gestione dei file Protezione e sicurezza Sistemi distribuiti

3 1.3 Sistemi Operativi a.a Cosè un sistema operativo? Un software che agisce da intermediario tra lutente e lhardware del computer Scopi del sistema operativo: Eseguire i programmi, supportando lutente nel risolvere problemi Rendere agevole linterfaccia fra luomo e la macchina il sistema di calcolo è conveniente da usare Gestire in modo efficiente le risorse del sistema di calcolo

4 1.4 Sistemi Operativi a.a Organizzazione del sistema di calcolo Il sistema di calcolo si suddivide in quattro componenti principali: Hardware Hardware fornisce le risorse fondamentali di calcolo CPU, memoria, device di I/O Sistema operativo Controlla e coordina lutilizzo delle risorse hardware da parte dei diversi programmi di sistema e applicativi Programmi applicativi Programmi applicativi definiscono le modalità di utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti Word processor, compilatori, web browser, sistemi per basi di dati, video gameUtenti Persone, altri macchinari, altri elaboratori

5 1.5 Sistemi Operativi a.a Le componenti del sistema di calcolo

6 1.6 Sistemi Operativi a.a Definizione di sistema operativo allocatore di risorse Il Sistema Operativo (SO) funge da allocatore di risorse Gestisce tutte le risorse hardware/software del sistema di calcolo Arbitra i conflitti per lallocazione di risorse in base ad una politica equa ed efficiente programma di controllo Il SO è un programma di controllo Controlla lesecuzione dei programmi utente per prevenire errori e/o uso improprio delle risorse del sistema

7 1.7 Sistemi Operativi a.a Si consideri un ristorante con un capo–cuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti: I clienti scelgono un piatto dal menù Un cameriere prende lordine e lo consegna al capo– cuoco Il capo–cuoco riceve lordine e assegna uno o più aiutanti alla preparazione del piatto Ogni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverse Il capo–cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili Esempio: il SO come gestore risorse – 1

8 1.8 Sistemi Operativi a.a Il capo–cuoco è il sistema operativo! I clienti sono gli utenti Le ricette associate ai piatti sono i programmi Il menù ed il cameriere costituiscono linterfaccia verso il sistema operativo (grafica e non) Gli aiutanti sono i processi La cucina è il computer; pentole, fornelli, etc., sono le componenti hardware Esempio: il SO come gestore risorse – 2

9 1.9 Sistemi Operativi a.a Problemi del capo–cuoco: Esecuzione fedele delle ricette Allocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.) Coordinamento efficiente degli aiutanti Licenziamento degli aiutanti che non si comportano secondo le regole Problemi del sistema operativo: Efficienza nelluso delle risorse (processori, memoria, dischi, etc.) Protezione nelluso delle risorse Coordinamento dei processi Esempio: il SO come gestore risorse – 3

10 1.10 Sistemi Operativi a.a Definizione di sistema operativo (Cont.) Non esiste una definizione universalmente accettata di sistema operativo, tuttavia… kernel Il sistema operativo o meglio, il kernel del SO è lunico programma sempre in esecuzione quando il computer è acceso Gli altri programmi sono software di sistema o applicativi

11 1.11 Sistemi Operativi a.a La fase di startup programma di bootstrap reboot Il programma di bootstrap viene caricato in RAM in fase di accensione del computer (o di reboot ) boostrap loader firmware Normalmente, un boostrap loader è memorizzato nella ROM o nella EPROM, e viene identificato con il termine di firmware Inizializza (e controlla) tutte le componenti del sistema Procede al caricamento del kernel del SO e ne lancia lesecuzione Quando si accende un elaboratore, occorre attendere alcuni istanti per poter iniziare a lavorare: durante questa pausa il computer carica il kernel, che fornisce i servizi fondamentali per lesecuzione dei programmi utente

12 1.12 Sistemi Operativi a.a Architettura del sistema di calcolo Una o più CPU e diversi controllori di device connessi ad un bus comune che permette laccesso ad una memoria condivisa Esecuzione concorrente nelle CPU e nei controllori di device, che competono per garantirsi cicli di memoria

13 1.13 Sistemi Operativi a.a Operatività del sistema di calcolo La CPU e i device di I/O possono eseguire operazioni concorrenti Ciascun controllore gestisce un particolare tipo di periferica Ciascun controllore gestisce un buffer locale La CPU sposta i dati da/verso la memoria principale verso/da i buffer locali LI/O avviene effettivamente sui dati contenuti nei buffer delle periferiche interrupt Il controllore informa la CPU quando ha portato a termine loperazione di I/O, causando un interrupt

14 1.14 Sistemi Operativi a.a Gli interrupt Al verificarsi di un interrupt, il controllo viene trasferito allopportuna routine di gestione utilizzando il vettore degli interrupt, che contiene gli indirizzi di tutte le routine di servizio Si salva inoltre lindirizzo dellistruzione interrotta e lo stato della CPU dalla quale dovrà riprendere lesecuzione al termine della gestione dellinterruzione Durante la gestione di un interrupt, altri eventuali interrupt giunti al sistema sono disabilitati trapeccezione Una trap (o eccezione) è un interrupt generato via software, causato da un errore o da una richiesta utente interrupt driven Il SO è interrupt driven

15 1.15 Sistemi Operativi a.a Interrupt timeline

16 1.16 Sistemi Operativi a.a Interrupt di I/O In seguito ad una richiesta di I/O da parte di un processo utente, si verifica uninterruzione Dopo linizio delloperazione di I/O, il flusso di esecuzione può seguire due percorsi distinti I/O sincrono Nel caso più semplice, si restituisce il controllo al processo utente solo dopo il completamento delloperazione di I/O (I/O sincrono ) I/O asincrono Altrimenti, si può prevedere la restituzione immediata del controllo al processo utente: in questo modo lI/O può proseguire mentre il sistema esegue altre operazioni (I/O asincrono )

17 1.17 Sistemi Operativi a.a Metodi di I/O Sincrono Asincrono

18 1.18 Sistemi Operativi a.a Accesso diretto alla memoria DMADirect Memory Access DMA Direct Memory Access utilizzato per dispositivi di I/O ad alte prestazioni, con velocità di trasferimento comparabili alla velocità di accesso alla memoria centrale Il controllore di device trasferisce blocchi di dati dal buffer locale direttamente nella memoria principale, senza intervento della CPU Viene generato un solo interrupt per regolare il trasferimento di ciascun blocco (invece di un interrupt per byte)

19 1.19 Sistemi Operativi a.a Struttura della memoria Memoria principale Memoria principale – lunico dispositivo di memoria cui la CPU può accedere direttamente Memorie di massa Memorie di massa – un estensione della memoria principale, che fornisce notevole capacità di memorizzazione non volatile Dischi magnetici Dischi magnetici – piatti rigidi di metallo o in fibra di vetro, ricoperti di materiale magnetico traccesettori La superficie del disco è logicamente suddivisa in tracce, a loro volta suddivise in settori controllore del disco Il controllore del disco determina linterazione logica fra device e memoria centrale

20 1.20 Sistemi Operativi a.a Gerarchia dei dispositivi di memoria 1 I dispositivi di memoria sono organizzati gerarchicamente in base a… Velocità di accesso Costo (al byte) Volatilità Caching cache Caching – produzione di una copia dellinformazione in un dispositivo di memoria più veloce (situato più in alto nella gerarchia delle memorie); la memoria principale costituisce una cache per le memorie secondarie

21 1.21 Sistemi Operativi a.a Gerarchia dei dispositivi di memoria 2

22 1.22 Sistemi Operativi a.a Caching 1 Principio informatore fondamentale dei moderni sistemi di calcolo, attuato a vari livelli (hardware, SO, software) Linformazione in uso viene copiata temporaneamente da un dispositivo di memoria più lento ad uno più veloce Il dispositivo più veloce, che funge da cache, viene controllato per verificare se linformazione dinteresse è già presente, nel qual caso… …linformazione viene reperita direttamente dalla cache Altrimenti, i dati vengono preventivamente copiati nella cache e quindi acceduti

23 1.23 Sistemi Operativi a.a Caching 2 La cache ha dimensioni inferiori rispetto al supporto di memoria sul quale si effettua il caching La gestione della cache, data la capacità limitata di questi dispositivi, rappresenta un problema di progettazione fondamentale Unappropriata selezione delle dimensioni e dei criteri di aggiornamento della cache può garantire che una percentuale variabile dall80% al 99% degli accessi si limiti alla cache, con un notevole incremento delle prestazioni del sistema

24 1.24 Sistemi Operativi a.a Performance dei diversi livelli di memoria

25 1.25 Sistemi Operativi a.a Struttura del sistema operativo 1 multiprogrammazione La multiprogrammazione è fondamentale per lefficienza del sistema Un singolo utente non può tenere occupati contemporaneamente la CPU ed i device di I/O Con la multiprogrammazione, più job (codice e dati) sono memorizzati contemporaneamente nella memoria principale, così da mantenere la CPU sempre occupata job scheduling Il job che verrà eseguito, ed otterrà quindi lutilizzo esclusivo della CPU, viene selezionato mediante un algoritmo di job scheduling Quando un job è in attesa di qualche evento (per esempio, un servizio di I/O), il SO seleziona un nuovo job da eseguire

26 1.26 Sistemi Operativi a.a Struttura del sistema operativo 2 timesharingmultitasking interactive computing Il timesharing (o multitasking) è lestensione logica della multiprogrammazione, nella quale la CPU passa così rapidamente dallesecuzione di un job a quella del successivo che gli utenti possono interagire con i loro job durante la fase di running interactive computing tempo di risposta Il tempo di risposta deve essere < 1 secondo processo Ciascun utente ha almeno un programma allocato in memoria centrale in esecuzione un processo scheduling della CPU Se più job sono pronti per essere eseguiti allo stesso istante, deve essere implementato un algoritmo per lo scheduling della CPU swapping Se la memoria non è sufficiente a contenere tutti i processi, mediante swapping, i processi vengono spostati fuori/dentro la memoria principale in base al loro stato di esecuzione effettivo memoria virtuale La metafora della memoria virtuale garantisce lesecuzione di processi non contenuti completamente nella memoria principale

27 1.27 Sistemi Operativi a.a Configurazione della memoria per un sistema multiprogrammato

28 1.28 Sistemi Operativi a.a Servizi del sistema operativo eccezione Errori nel software o richieste di servizi creano situazioni di eccezione o trap Divisioni per zero, richieste al SO per effettuare I/O, etc. Inoltre, i processi possono tentare di modificare lo spazio di memoria dedicato ad altri processi o al SO dual mode La modalità operativa dual mode permette al SO di proteggersi e di proteggere le varie componenti del sistema di calcolo User modekernel mode User mode e kernel mode Mode bit Mode bit cablato in hardware Il valore assunto dal mode bit distingue le due situazioni in cui il sistema esegue codice utente o codice kernel; le istruzioni privilegiate possono essere eseguite soltanto in modalità kernel system call Una system call effettua il passaggio in modalità kernel; il ritorno dalla chiamata riporta il sistema in modalità utente

29 1.29 Sistemi Operativi a.a Passaggio da modo utente a modo kernel

30 1.30 Sistemi Operativi a.a Gestione dei processi 1 Un processo è un programma in esecuzione entità passivaentità attiva Il programma è unentità passiva, il processo unentità attiva Il processo è lunità di lavoro di un sistema Un processo necessita di alcune risorse per assolvere al proprio compito: tempo di CPU, memoria, file, dispositivi di I/O e dati di inizializzazione La terminazione di un processo prevede il recupero di tutte le risorse riutilizzabili ad esso precedentemente allocate

31 1.31 Sistemi Operativi a.a Gestione dei processi 2 single threadprogram counter I processi single thread hanno un unico program counter, che indica la locazione in memoria della prossima istruzione da eseguire Le istruzioni di ogni processo vengono eseguite sequenzialmente, una dopo laltra, fino al termine del processo multi thread I processi multi thread hanno un program counter per ogni thread Normalmente, in un sistema vi sono molti processi di alcuni utenti, e alcuni sistemi operativi, che vengono eseguiti in concorrenza su una o più CPU multiplexing La concorrenza è ottenuta effettuando il multiplexing delle CPU fra i vari processi/thread

32 1.32 Sistemi Operativi a.a Il SO è responsabile delle seguenti attività relative alla gestione dei processi: Creazione e cancellazione di processi (utente e di sistema) Sospensione e riattivazione di processi Fornire meccanismi per la… …sincronizzazione di processi …comunicazione fra processi deadlock …gestione dei deadlock Gestione dei processi 3

33 1.33 Sistemi Operativi a.a Gestione della memoria centrale 1 La memoria centrale è un vettore di dimensioni che variano tra le centinaia di migliaia e i miliardi di parole, ciascuna con un proprio indirizzo È un deposito di dati rapidamente accessibili, condiviso dalla CPU e dai dispositivi di I/O fetch La CPU legge le istruzioni dalla memoria durante la fase di fetch, oltre a leggere e scrivere i dati Il modulo per la gestione della memoria determina cosa è in essa contenuto ad un certo istante, per… …ottimizzare lutilizzo della CPU ed il tempo di risposta del sistema agli utenti

34 1.34 Sistemi Operativi a.a Gestione della memoria centrale 2 Il sistema operativo è responsabile delle seguenti attività connesse alla gestione della memoria centrale: Tener traccia di quali parti della memoria sono attualmente usate e da chi Decidere quali processi caricare in memoria quando vi è spazio disponibile Allocare e deallocare lo spazio di memoria secondo necessità

35 1.35 Sistemi Operativi a.a Gestione della memoria secondaria Il SO garantisce una visione logica uniforme del processo di memorizzazione: file Astrae dalle caratteristiche fisiche dei dispositivi per definire ununità di memorizzazione logica il file Un file è lastrazione informatica di un archivio di dati Il concetto di file è indipendente dal mezzo sul quale viene memorizzato (che ha caratteristiche proprie e propria organizzazione fisica) Ciascuna periferica viene controllata dal relativo device driver, che nasconde allutente le caratteristiche fisiche variabili dellhardware Modalità e velocità di accesso, capacità, velocità di trasferimento

36 1.36 Sistemi Operativi a.a Gestione del file system Un file è una collezione di informazioni correlate I file contengono programmi e dati Gestione del File System I file vengono organizzati in directory Controlli di accesso per determinare quali utenti possono accedere a quali risorse (file) Il SO è responsabile delle seguenti attività per la gestione di file: Creazione e cancellazione di file e directory Supporto alle funzioni elementari per la manipolazione di file e directory Associazione dei file ai dispositivi di memoria secondaria Backup di file su dispositivi stabili di memorizzazione

37 1.37 Sistemi Operativi a.a Gestione del disco La memoria centrale è volatile e troppo piccola per contenere permanentemente tutti i dati: Il sistema di elaborazione deve consentire larchiviazione secondaria, per salvare i contenuti della memoria centrale La maggior parte dei moderni sistemi di elaborazione impiega i dischi come principale mezzo di memorizzazione La gestione efficiente della memoria secondaria è centrale per le prestazioni del sistema, che risentono fortemente della velocità del sottosistema di gestione dei dischi e della bontà degli algoritmi di scheduling Il SO è responsabile delle seguenti attività: Gestione dello spazio libero Allocazione dello spazio Scheduling del disco

38 1.38 Sistemi Operativi a.a Gestione della memoria terziaria Alcuni dispositivi di memoria (utilizzati tipicamente off line) non devono essere particolarmente veloci Le memorie terziarie includono i dischi ottici ed i nastri magnetici Devono comunque essere gestite in modo efficiente Variano tra memorie WORM (write once, read many) e RW (read write)

39 1.39 Sistemi Operativi a.a Il sottosistema di I/O Uno degli scopi del SO consiste nel nascondere allutente le caratteristiche dei dispositivi hardware Il sottosistema di I/O è formato da: Una componente di gestione della memoria che include il buffering (la memorizzazione temporanea di dati in memorie locali alle periferiche, durante il trasferimento), il caching (la memorizzazione parziale dei dati in memorie ad accesso rapido), lo spooling (per la realizzazione della memoria virtuale) Uninterfaccia generale per i driver dei dispositivi I driver per i dispositivi specifici presenti nel sistema di calcolo

40 1.40 Sistemi Operativi a.a Protezione e sicurezza Protezione Protezione – è il meccanismo usato per controllare laccesso da parte di processi o utenti a risorse del sistema di calcolo Sicurezza Sicurezza – è il meccanismo di difesa implementato dal sistema per proteggersi da attacchi interni ed esterni Denial of service, worm, virus, hacker In prima istanza, il sistema distingue gli utenti, per determinare chi può fare cosa user ID Lidentità utente (user ID ) include nome dellutente e numero associato uno per ciascun utente Luser ID garantisce lassociazione corretta di file e processi allutente e ne regola la manipolazione Lidentificativo di gruppo permette inoltre ad un insieme di utenti di accedere correttamente ad un gruppo di risorse comuni (file e processi)

41 1.41 Sistemi Operativi a.a Ambienti di calcolo 1 Elaborazione tradizionale Con levoluzione delle tecniche di elaborazione i confini tra i diversi ambienti di elaborazione tradizionali diventano sempre più sfumati Negli uffici… Fino a pochi anni fa: diversi PC connessi in rete, con server per servizi di accesso ai file e per stampa Ora: portali che permettono laccesso alla rete Internet ed a risorse allocate su server interni e sistemi remoti Nelle case… Fino a pochi anni fa: un PC connesso alla rete via modem firewall Ora: piccole reti locali, connessioni veloci ad Internet, barriere anti intrusione (firewall )

42 1.42 Sistemi Operativi a.a Sistemi distribuiti Un sistema distribuito è un insieme di processori che non condividono né la memoria né il clock; ciascun processore ha la sua propria memoria locale I processori nel sistema sono connessi attraverso una rete di comunicazione protocollo La comunicazione avviene secondo un dato protocollo Un sistema distribuito fornisce agli utenti laccesso a varie risorse di sistema Laccesso a risorse condivise consente di: Accelerare lelaborazione Aumentare la disponibilità di dati Migliorare laffidabilità Ambienti di calcolo 2

43 1.43 Sistemi Operativi a.a Modello Client Server Terminale e mainframe soppiantati da PC e server client I PC fungono da client e richiedono servizi a server server I server permettono laccesso a servizi e risorse (i.e., stampa, memorizzazione e reperimento di file, database, accesso alla rete Internet) Ambienti di calcolo 3

44 1.44 Sistemi Operativi a.a Ambienti di calcolo 4 Modello Peer to Peer Un modello diverso di sistema distribuito nodi equivalentipeer P2P non distingue client e server, ma è costituita da nodi equivalenti (peer, appunto) che fungono sia da client che da server verso altri nodi della rete NapsterGnutella Esempi famosi sono Napster e Gnutella


Scaricare ppt "Introduzione. 1.2 Sistemi Operativi a.a. 2007-08 Introduzione Cosè un sistema operativo Organizzazione del sistema di calcolo Architettura degli elaboratori."

Presentazioni simili


Annunci Google