Il sistema operativo.

Slides:



Advertisements
Presentazioni simili
STRUTTURA DEL SISTEMA OPERATIVO
Advertisements

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Il Software.
Gestione della memoria centrale
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
STRUTTURA DEL PERSONAL COMPUTER
TEORIA DEI SISTEMI OPERATIVI
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
Il Sistema Operativo.
Orario definitivo Martedì Aula 2 Polo Mercoledì Aula 1 Fondi Palazzina delle Scienze Giovedì 9-11 Aula 1 Fondi Palazzina delle Scienze Nota:
Elaboratore e Sistemi Operativo
12. Il Sistema Operativo Ing. Simona Colucci
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Il sistema operativo.
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Struttura dei sistemi operativi (panoramica)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Sistemi Operativi GESTIONE DEI PROCESSI.
Introduzione Cosa è un Sistema Operativo ?
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Il sistema operativo Vito Perrone
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Informatica per medici
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Il Software Una programmazione diretta della macchina hardware da parte degli utenti è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica.
STRUTTURA GENERALE DI UN ELABORATORE
SISTEMA OPERATIVO..
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
La schedulazione dei processi
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Il Sistema Operativo (1)
Il Sistema Operativo: il File System
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Sistema Operativo (Software di base)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
I processi.
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
Il nucleo del Sistema Operativo
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione del processore (Scheduler)
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
“Uso del computer e gestione dei file”
Sistema operativo Il sistema operativo è un insieme di programmi che gestiscono tutte le componenti hardware e software di un calcolatore. Spesso si può.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Il software di base Stefano Cagnoni e Monica Mordonini.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
I primi elaboratori Anni ‘50 Rigidamente sequenziali
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Sistemi operativi. HW Sistema Operativo Il sistema operativo.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
10. Il Sistema Operativo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Il sistema operativo

Sistema operativo Insieme di programmi per la gestione del funzionamento del computer. Interfaccia tra utente e hardware, ambiente per l’esecuzione dei programmi. Un sistema operativo viene caricato nella memoria RAM all’accensione della macchina (programma di boot) e rimane attivo fino allo spegnimento.

Sistema operativo Il sistema operativo: è un insieme di moduli software; controlla le risorse hardware del sistema; mette a disposizione dell’utente una macchina virtuale, in grado di eseguire comandi dati dall’utente, utilizzando la macchina “reale”.

Sistema operativo Il sistema operativo:presenta all’utente una macchina virtuale che nasconde tutti i dettagli hardware che sarebbero troppo complicati da gestire per la maggior parte degli utenti.

Sistema operativo Le richieste dell'utente al SO, fatte digitando dei comandi nelle interfacce a carattere (Character User Interface) o selezionando oggetti con il mouse nelle interfacce grafiche (Graphic User Interface), sono intercettate dall'interprete dei comandi (shell), il quale attiva i moduli programma che agiscono nei componenti del nucleo (kernel). Questi attivano i dispositivi hardware quali il processore, la memoria, i controller di I/O, ecc., che svolgono la richiesta dell'utente.

Sistema operativo E’ uno strato software che opera direttamente sull’hardware Isola gli utenti dai dettagli dell’hardware E’ organizzato a strati: Architettura a buccia di cipolla Ogni strato costituisce una macchina virtuale Programmi utente Interprete comandi attivazione programmi d’utente o di sistema File system controllo e gestione degli accessi a file Gestione delle periferiche gestione di ingresso/uscita da periferica Gestione della memoria allocazione e gestione della memoria Gestione dei processi (nucleo) gestione dei processi e delle interruzioni Macchina fisica Kernel

Funzioni del sistema operativo Il gestore dei processi (o nucleo) è responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione Il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi I driver sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche Il file system è responsabile della gestione dei file in memoria di massa L’interprete comandi consente all’utente di attivare i programmi

Gestione dei processi Funzioni: Interazione diretta con l’Hardware Esecuzione dei programmi come processi

Gestione dei processi Un processo e’ correlato alla esecuzione di un programma Definizione: Un processo P e’ una coppia di elementi (E, S) che comprende il codice eseguibile E del programma e lo stato S del processo Un programma puo’ essere associato a piu’ processi: Un programma puo’ essere scomposto in varie parti e ognuna di esse puo’ essere associata ad un processo separato Un programma puo’ essere associato a vari processi quando diverse copie del processo sono eseguite Un calcolatore puo’ avere piu’ processori (un processore e’ un unita’ di elaborazione che esegue i processi)

Gestione dei processi I processi hanno sempre aree dati disgiunte (sebbene possano, a richiesta, condividere parte dei dati oppure scambiarsi dei messaggi).

Gli stati di un processo Nuovo: il processo viene creato In esecuzione: assegnato al processore ed eseguito da esso Pronto: può andare in esecuzione, se il gestore dei processi lo decide In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto Terminato: il processo ha terminato l’esecuzione, ma non è stato ancora fisicamente cancellato dalla memoria centrale. Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore

Gli stati di un processo I processi appena creati si mettono in stato di pronto Il kernel (nucleo) decide quale processo pronto eseguire (mettere in stato di esecuzione) Il kernel assegna il processore ad un processo per un intervallo (quanto) di tempo L’assegnazione di un processo al processore tiene conto della coda dei processi pronti, della priorita’ dei processi e della politica round-robin

Gli stati di un processo Un processo in esecuzione passa in stato di attesa se: Richiede operazioni di I/O (interruzione interna) e per non lasciare il sistema inattivo, il processo attivo viene interrotto e posto in stato di attesa Si verificano richieste di interruzioni esterne Se il tempo allocato al processo e’ scaduto (); il processore cerca di garantire un uso equo della CPU a tutti i processi; il nucleo interrompe l’esecuzione del processo attivo per non penalizzare gli altri processi esistenti; quando il processo torna in stato attivo prosegue con l’elaborazione dell’istruzione successiva a quella su cui era stato precedentemente interrotto al termine delle propria esecuzione ed è rimosso dall’elenco dei processi esistenti Quando un processo viene interrotto si verifica un cambiamento di contesto: si salva il contesto del processo appena interrotto nel suo descrittore di processo, dopodiche’ il processore diventa libero e un altro processo pronto pasa in esecuzione

Gli stati di un processo Quando un processo richiede un’operazione di I/O esso passa dalla stato in esecuzione allo stato in attesa Quando l’operazione di I/O finisce, viene generato un’interruzione esterna e quindi il processo in esecuzione viene interrotto e quindi passa dallo stato di esecuzione allo stato pronto Il kernel esegue il gestore delle interruzioni per risolvere l’interruzione In processo in attesa del I/O diventa pronto

Gli stati di un processo Quando un processo viene fatto transitare di stato, si dice che avviene una commutazione di contesto (context switch).

Cambiamento di contesto Contesto: insieme delle informazioni che caratterizzano lo stato di un processo Se il processo è fisicamente in esecuzione parte del contesto si trova nei registri della CPU (Program Counter, registri utente) Se il processo non è in esecuzione il contesto è in memoria. Cambiamento di contesto: operazione che avviene quando il sistema operativo decide di mandare in esecuzione un altro processo Il sistema operativo deve salvare tutte le informazioni necessarie a ripristinare esattamente lo stato del processo in esecuzione nel futuro.

Sistema operativo Per descrivere gli stati del processo e per gestire le commutazioni di contesto subite dal processo, al processo va associata un’opportuna struttura dati, chiamata area dati di nucleo (process control block). L’area dati di nucleo del processo è creata e gestita direttamente dal sistema operativo; non è direttamente visibile da parte del processo.

Esempio di commutazione di contesto

Classificazione dei SO In base alla modalita’ di gestione dei programmi: Monoprogrammazione (esegue un solo programma alla volta) Multiprogrammazione (esegue piu’ programmi apparentemente conteporaneamente, in realta’ in time- sharing, suddividendo il tempo di esecuzione in intervalli molto piccoli e assegnando a turno le risorse ai diversi programmi) In base al tipo di accesso fornito agli utenti: Monoutente (un solo utente puo’ usare la macchina) Multiutente (piu’ utenti possono contemporaneamente interagire con la stessa macchina)

Classificazione dei SO I concetti di mono e multi-programmazione sono indipendenti sa quelli di SO mono e multi-utente I SO attuali operano tutti in multiprogrammazione Windows nasce come sistema monoutente, anche se le versioni evolute (NT, 2000, XP) hanno alcune funzioni che possono essere utilizzate in modo concorrente da piu’ utenti contemporaneamente UNIX e’ un sistema multiutente che opera in multiprogrammazione

Classificazione dei SO In base al tipo di schell utilizzato: Shell alfanumerici (MS-DOS, UNIX, …) i comandi vengono inseriti come stringhe di caratteri e impartiti tramite la tastiera Shell grafici - Graphic User Interface (GUI) i comandi e gli oggetti vengono rappresentati in modo grafico e possono essere impartiti, eseguiti o manipolati attraverso l’uso congiunto di mouse e tastiera

Sistema operativo Quando si parla di multiprogrammazione si parla anche di time‑sharing: il sistema operativo che fa sì che le risorse del calcolatore siano assegnate per prefissati intervalli di tempo, in successione, ai diversi programmi: gli intervalli di tempo possono essere più o meno lunghi l’uno rispetto all’altro, a seconda della priorità di cui gode il programma che l'utente utilizza, ma comunque sono di brevissima durata.

Sistema operativo in time sharing Permette la condivisione della CPU tra più processi Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CPU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione.

Sistema operativo - scheduling

Sistema operativo e macchine virtuali In una macchina multiprogrammata il sistema operativo gestisce più processi contemporaneamente, rendendo visibile ad ogni processo una macchina “virtuale” ad esso interamente dedicata e quindi con risorse proprie.

Sistema operativo e macchine reali

Sistema operativo Lo schedulatore (scheduler) è la componente del sistema operativo che si occupa di spostare i processi tra le varie code di attesa.

Sincronizzazione dei processi A volte, i processi devono sincronizzarsi, ovvero coordinare le loro attività Il coordinamento sequenziale: un processo termina invocando l’attivazione di un altro processo La competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica)

Gestione della memoria centrale Il sistema operativo permette l’esecuzione contemporanea di più processi e tutti i processi pronti dovrebbero avere tutto il programma o almeno le prossime istruzioni caricate nella memoria. Se lo spazio totale occupato dai processi supera la dimensione della memoria centrale, non tutti i processi possono risiedere per intero nella memoria centrale Normalmente la quantità di memoria non è sufficiente a contenere tutti le istruzioni e tutti i dati di tutti i processi gestiti.

Gestione della memoria centrale La memoria deve essere gestita con molta attenzione ed efficienza caricando solo i dati e le istruzioni che devono essere modificate ed eseguite. Le altre parti devono essere spostate sul disco per poter essere caricate quando necessario. La memoria virtuale e’ un sistema per aumentare lo spazio di memoria disponibile

Gestione della memoria centrale Partizionamento della memoria e del suo spazio di indirizzi. Tecniche di partizionamento: Segmentazione: suddivide la memoria centrale in segmenti di lunghezza variabili contenenti parti di un programma logicamente correlati tra di loro Paginazione: suddivide memoria e programmi in pagine di lunghezza fissa; i programmi vengono caricati in memoria anche in pagine non contigue NON sono tecniche alternative. Spesso sono applicate contemporaneamente Sia nel caso della partizione, sia in quello della segmentazione, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale

Gestione della memoria centrale Ad ogni processo viene assegnata nella fase di partenza una tabella detta tabella delle pagine dove per ogni pagina usata dal processo viene scritto dove si trova la pagina fisica. La memoria virtuale è maggiore di quella fisica La gestione della memoria è coordinata con la gestione dei processi

File System – il gestore dei file Un file è un insieme di dati omogenei fra loro e raggruppati ai fini di archiviazione, di successiva elaborazione o di esecuzione. Possono contenere dati (file dati), programmi in linguaggio macchina (file eseguibili) o sequenze di comandi del sistema operativo (script o file batch). Un sistema operativo fornisce dei formati standard con cui organizzare i dati nella memoria di massa e i comandi per manipolare i file (file system). Ogni file è caratterizzato da un nome e da una estensione, che serve ad identificarne il tipo. Es. i file eseguibili sotto MSDOS/Windows hanno estensione .EXE, quindi il file prova.exe è un file che contiene codice direttamente eseguibile dalla CPU.

File System – il gestore dei file L'oggetto elementare su cui opera il file system è il FILE, ossia una raccolta di dati registrati su memoria di massa (il file è visto dal SO come una sequenza di byte) Tipi di file: testo (ASCII): una sequenza di caratteri, ad esempio un programma sorgente (es. in linguaggio C) o un editor di testo semplice binari: una sequenza di byte eseguibili (programmi) e non eseguibili (es. immagini, documenti creati con word processor)

File System – il gestore dei file Sul disco rigido i file sono organizzati in modo gerarchico e possono essere inseriti in opportuni “contenitori” (cartelle o directory: sono anch’essi file! Una directory contiene una lista dei nomi e attributi dei file e directory al suo interno). Il disco può essere considerato come un archivio che contiene varie cartelle. Ogni cartella contiene documenti (file) o altre cartelle, che a loro volta contengono file o cartelle, realizzando una struttura ad albero. Ogni file è quindi identificato da un percorso, che rappresenta la sequenza delle cartelle che bisogna aprire per raggiungerlo.

File System – il gestore dei file Il percorso di un file individua le directory che devono essere percorse per raggiungere quella che contiene il file. Il percorso e il nome del file individuano l’oggetto e ne specificano la collocazione nella struttura gerarchica: c:/Didat/esami/iscrmar.doc

File System – il gestore dei file Funzioni principali: Creazione di file Copiatura di file Spostamento (da una cartella ad un’altra) di file Ridenominazione di file Cancellazione di file Strutturazione dei dischi (e dei nastri) come insiemi di file. ... Per ognuna di queste operazioni esiste un opportuno comando (interfaccia utente alfanumerica) o una azione corrispondente con mouse e tastiera (GUI).

Gestione delle periferiche Funzioni principali: Indirizzamento dei segnali da e verso le periferiche Sincronizzazione delle periferiche Gestione del sistema di Ingresso/Uscita Sistema di tamponamento dei flussi di dati (buffer- caching). Interfaccia generale per i programmi di controllo (driver) delle periferiche (device). Collezione di programmi di controllo (driver) specifici per le varie periferiche (device) collegabili al calcolatore.

Driver - Gestione delle periferiche I driver sono meccanismi software cui è affidato il compito di comunicare dati da e verso le periferiche Garantiscono ai programmi che li usano una visione di alto livello E’ possibile leggere o scrivere tramite primitive indipendenti dalla struttura hardware delle periferiche Si distingue fra: Driver fisici (hardware). Vengono attivati direttamente dal gestore delle interruzioni Driver logici (software). Fanno parte del sistema operativo e forniscono una gerarchia di operazioni, con un’organizzazione a strati