Sistemi Operativi - C Susanna Pelagatti

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Meccanismi di IPC Problemi classici di IPC
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.
Introduzione Cosa è un Sistema Operativo? Una breve storia
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.
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:
File System Cos’è un File System File e Directory
Massa Laura Mela Enrica
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
eliana minicozzi linguaggi1a.a lezione2
Struttura dei sistemi operativi (panoramica)
I Thread.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Laboratorio di Informatica
1 Gestione del processore Il modello a processi sequenziali.
Informatica Generale Susanna Pelagatti
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Università di Trieste Calcolatori Elettronici a.a Omero TuzziL01, Basi 1 Sommario: 1. Concetto di bit. 2. Indirizzi di memoria. 3. Ordinamento.
Sistemi Operativi GESTIONE DEI PROCESSI.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Il sistema operativo Vito Perrone
Informatica per medici
LEZIONI SUI SISTEMI OPERATIVI Ing. Ciro Riccio
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il Sistema Operativo (1)
Threads.
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Gestione della Memoria
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.
1 Le applicazioni. 2 Quali sono tipici programmi applicativi ? Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Gestione del processore (Scheduler)
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
1 Laboratorio di Programmazione di Sistema - C Susanna Pelagatti Ricevimento: Me ,
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.
Cos’è un sistema operativo ?
1 System Call ancora Vediamo passo passo come funziona una SC.
Informatica Generale Marzia Buscemi
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.
Le basi di dati.
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:

Sistemi Operativi - C Susanna Pelagatti susanna@di.unipi.it Ricevimento: Me 14.30-17.30 http://www.di.unipi.it/~susanna/SO/

Struttura del corso Lezioni in aula (E) Esame Lunedì 11-13 Mercoledì 11-13 Esame scritto (ammissione >= 15) + orale

Struttura del corso (2) Compitini se superati con voto >= 15, sostituiscono lo scritto e permettono di sostenere la prova orale in un qualsiasi appello (fino a Febbraio 2005) è possibile ripetere uno dei due compitini o durante lo scritto dei normali appelli di esame

Programma di massima Introduzione ai SO (2h) Processi e Thread (10h) Gestione di Risorse (4h) Gestione dei Dispositivi (4h) File system (6h) Gestione della Memoria (8h) Casi di studio (8h) : Unix/Linux e Windows 2000

Libri di Testo Testo Principale Approfondimenti per i casi di studio A.S. Tanenbaum, I moderni sistemi operativi (2 ed), Jackson 2002 A.S. Tanenbaum, Modern Operating Systems (2 ed), Prentice-Hall 2002 Approfondimenti per i casi di studio U. Vahalia, Unix Internals Bovet, Casati, Understanding the Linux Kernel Solomon Russinovich, Inside Windows 2000

Cos’è un sistema operativo ? Introduzione Cos’è un sistema operativo ?

Cos’è un sistema operativo ? È il livello di SW con cui interagisce l’utente e comprende programmi quali : Compilatori Editori di testi Fogli elettronici Sistemi bancari Navigatori per Web ….. Applicazioni Software Sistema Operativo Hardware gcc, Word, PowerPoint Excel, Explorer Fotoshop, Gimp È il livello di SW che interagisce direttamente con l’hw e che si occupa di una uso corretto ed efficiente delle risorse fisiche (processore, memorie, periferiche etc.) Windows Unix/Linux Mac OS

Quali sono le funzioni di un SO ? Esegue applicazioni : carica il programma binario prodotto della compilazione (e residente su disco) nella RAM, cede il processore all’applicazione da eseguire Facilita l’accesso alle periferiche/dispositivi interagisce con le periferiche facendosi carico di tutti i dettagli fisici (es. modem, hard disc, video…) mette a disposizione operazioni di lettura/scrittura, invio/ricezione dati ad alto livello che possono essere usate senza conoscere i dettagli tecnici della periferica

Quali sono le funzioni di un SO ? (2) Archivia dati e programmi : mette a disposizione dell’utente una visione astratta della memoria secondaria (il file system basato sulle astrazioni : file/archivi e folder/cartelle) gestisce la realizzazione di queste astrazioni sul supporto fisico (disco) gestendo tutti i dettagli legati alla lettura/scrittura dei settori

Quali sono le funzioni di un SO ? (3) Gestisce le risorse ripartisce le risorse disponibili (processore, RAM, periferiche) fra le varie applicazioni/ utenti evita che ci siano malfunzionamenti dovuti all’uso contemporaneo di risorse es: un word processor e un web browser che inviano contemporaneamente dati alla stampante provocano una stampa erronea ottimizza le prestazioni scegliendo delle politiche che permettano di sfruttare al meglio tutte le parti del computer

Quali sono le funzioni di un SO ? (4) Gestisce malfunzionamenti del sistema rileva e gestisce situazioni anomale es: (1) se il disco ha un settore difettoso, il SO può ricopiare le informazioni residenti su quel settore da un’altra parte (in modo trasparente all’utente) es: (2) se un’applicazione cerca di effettuare una operazione non permessa (come leggere i dati di un’altra applicazione) il SO può bloccare l’applicazione segnalando all’utente la situazione erronea

Quali sono le parti di un SO ? Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/ dispositivi File system Hw

Stato utente e stato supervisore modalità di funzionamento dell’hw che permette l’accesso solo a un sottinsieme delle risorse disponibili es : un sottoinsieme delle istruzioni assembler (non si può accedere alle istruzioni che istruiscono le interfacce di I/O), una sola parte della RAM etc. Stato supervisore o kernel : modalità che permette l’accesso a tutte le risorse

Organizzazione Monolitica (tipica di Unix, Linux,Windows) Eseguiti in stato utente Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore/ Scheduler(s) Gestore della memoria Gestore delle periferiche/ dispositivi File system Eseguiti in stato supervisore Hw

Organizzazione Monolitica (2) I programmi che girano in stato utente richiedono servizi al SO tramite invocazione di funzioni ‘speciali’ system call o chiamate di sistema Le SC portano il sistema in stato kernel e mandano in esecuzione il SO Il sistema operativo decide come e quando effettuare il servizio

Organizzazione Monolitica (3) Il programma utente può essere riattivato con due politiche : alla fine del servizio : si parla di system call bloccanti perché l’esecuzione del processo viene bloccata in attesa della fine della gestione della richiesta alla fine della richiesta : quando la richiesta è stata accettata dal SO il processo può continuare a fare altre cose è necassario un meccanismo aggiuntivo per decidere quando la richiesta è stata servita

Organizzazione Monolitica (4) Unix, Linux, Windows tipicamente usano SC bloccanti Il sistema operativo può interrompere l’esecuzione di un programma utente per effettuare operazioni di gestione questo avviene attraverso il meccanismo delle interruzioni hw Organizzazione del sw del SO : insieme di procedure compilate in un unico oggetto ogni procedura può chiamare tutte le altre/ha visibilità delle SD globali

Organizzazione Client-Server (a nucleo minimo o microkernel) Eseguiti in stato utente Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Scheduler ad alto livello (Proc server) Memory server File Server Server delle periferiche/ dispositivi Nucleo/kernel : Scheduler a basso livello + meccanismi IPC Eseguito in stato supervisore Hw

Organizzazione Client-Server (2) (a nucleo minimo o microkernel) I vari processi server non hanno SD a comune e comunicano fra di lori con i normali meccanismi di IPC usati dai processi utenti (es. send-receive) Scheduler ad alto livello Server della memoria File Server Server delle periferiche/ dispositivi Nucleo/Kernel : Scheduler a basso livello + meccanismi IPC Hw

Organizzazione Client-Server (3) Minimizza le funzioni del SO che girano in modo kernel Molte funzioni sono realizzate da processi server che girano in modo utente Nucleo minimo (Microkernel) : funzioni base per la gestione dei processi e comunicazione fra processi (IPC) comunicazione con i dispositivi vista come messaggi “speciali”

Organizzazione Client-Server (4) Quando un processo richiede un servizio comunica con uno dei processi server es: effettua una send al file server per richiedere la lettura da un file L’attesa della terminazione di una servizio avviene come attesa di una comunicazione es: effettua una receive al file server per ottenere le informazioni lette

Client-server vs modello monolitico Più sicuro Meno efficiente Si adatta bene ai sistemi operativi di rete Windows NT 3.0 adottava un modello ispirato al client/server (ibrido) scartato perché troppo lento Studiato in ambito accademico es: MACH, Minix, sono versioni di Unix a microkernel

Nel resto del corso ci concentreremo sui sistemi operativi monolitici !

Organizzazione di un SO monolitico Applicazioni Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/ dispositivi File system Hw

La gestione del processore Prologo : (1) Come avviene l’esecuzione di un programma ? (2) Che problemi sorgono se più programmi sono attivi contemporaneamente?

Esecuzione di un programma Passo 1 : compilazione e creazione del file eseguibile Compilatore Eseguibile È un file binario che * contiene tutte le informazioni necessarie all’esecuzione del programma da parte del processore * ha un formato che dipende dal SO che deve curarne l’esecuzione * è memorizzato su disco

Formato del file eseguibile Un esempio : il formato ELF di Linux Text segment I-Data segment Ampiezza BSS Altre info Magic number File a.out Variabili globali inizializzate Ampiezza area di memoria occupata dalle variabili globali NON inizializzate Numero che contraddistingue il file come eseguibile Codice del programma (assemblato)

Esecuzione di un programma (2) Eseguibile Passo 2 : creazione dello spazio di indirizzamento e caricamento di tale spazio in memoria centrale Loader Spazio di indirizzamento È l’immagine della memoria visibile al programma durante la sua esecuzione

Spazio di indirizzamento Come è organizzata la memoria accessibile ad un programma in esecuzione ? Pila di FRAME, uno per ogni chiamata di funzione da cui non abbiamo ancora fatto ritorno 232 - 1 Stack Area vuota Variabili globali Data Traduzione in assembler delle funzioni che compongono il programma Text

Spazio di indirizzamento (2.1) Spazio di indirizzamento tipico (caso del linguaggio C) 232 - 1 Stack Direzione di crescita dello stack Area vuota Contenuti tipici di un FRAME : - variabili locali della funzione - indirizzo di ritorno (indirizzo dell’istruzione successiva a quella che ha effettuato la chiamata alla funzione) - copia dei parametri di chiamata Data Text

Spazio di indirizzamento (2.2) Spazio di indirizzamento tipico (caso del linguaggio C) All’inizio dell’esecuzione lo Stack contiene solo il FRAME per la funzione main Successivamente : * ogni volta che viene chiamata una nuova funzione viene inserito un nuovo frame nello stack * ogni volta che una funzione termina viene eliminato il frame in cima dello stack e l’esecuzione viene continuata a partire dall’indirizzo di ritorno 232 - 1 Stack Area vuota Data Text

Spazio di indirizzamento (2.3) Spazio di indirizzamento tipico (caso del linguaggio C) 232 - 1 Stack Area vuota Direzione di crescita dello heap heap Data Spazio di memoria dedicato ai dati globali a tutte le funzioni. Diviso in statico per i dati la cui dimensione è nota a tempo di compilazione e dinamico (heap) Text

Spazio di Indirizzamento (3) L’eseguibile contiene tutte le informazioni per creare la configurazione iniziale dello spazio di indirizzamento (loading) FRAME per la funzione main File a.out 232 - 1 Stack Area vuota Magic number Altre info BSS-segment Data Ampiezza BSS I-Data segment I-Data segment Text segment Text

Esecuzione di un programma (3) Passo 3 : attivazione del programma, ovvero caricamento nel PC dell’indirizzo della prima istruzione da eseguire nell’area testo A questo punto il programma ha il controllo del processore Il Sistema Operativo potrà tornare in esecuzione solo se si verifica uno dei seguenti eventi : -- arrivo di una interruzione hw -- terminazione del programma -- invocazione esplicita di un servizio tramite una System Call

Esecuzione di un programma (4) Processo (Def.) : programma in esecuzione completo del suo stato (spazio di indirizzamento, contenuto dei registri, file aperti…) Il concetto di processo è centrale nella organizzazione di ogni SO Tipicamente ad ogni istante ci sono molti processi attivi contemporaneamente I processi non interattivi sono anche detti JOB

Condivisione della RAM Tipicamente la RAM contiene lo spazio di indirizzamento di più processi : es. organizzazione tipica della memoria negli SO degli anni ‘70 (es IBM 360) AmpiezzaRAM - 1 Spazio processo 3 Spazio processo 2 Una possibile organizzazione della RAM con più processi attivi contemporaneamente Spazio processo 1 Area riservata, non accessibile in modalità utente Sistema Operativo

Condivisione della RAM (2) Problemi legati alla condivisione della RAM : (1) protezione dello spazio di indirizzamento di processi diversi Spazio processo 3 Il processo 2 non deve poter accedere agli indirizzi di RAM al di fuori della sua area Spazio processo 2 Spazio processo 1 Sistema Operativo

Condivisione della RAM (2) Problemi legati alla condivisione della RAM : (2) problema della rilocazione Il compilatore/linker assume che lo spazio di indirizzamento parta dall’indirizzo 0 Ma, P2 è caricato ad un indirizzo base2 != 0 Spazio processo 3 Stack max Area vuota Spazio processo 2 base2 Spazio processo 1 Data Sistema Operativo Text

Condivisione della RAM (3) Problemi legati alla condivisione della RAM : (2) problema della rilocazione (cont.) Indirizzi di istruzioni e dati devono essere incrementati (rilocazione) di base2 Spazio processo 3 max Stack Area vuota base2 + X Spazio processo 2 base2 X Spazio processo 1 Data Sistema Operativo Text

Condivisione della RAM (4) Indirizzo iniziale del programma in RAM base Addizionatore + PC + Indirizzo (alla memoria) Ampiezza dello spazio di indirizzamento Confrontatore Fault (accesso oltre il limite) limite È necessario dell’Hw aggiuntivo Una possibile soluzione (usata nella serie IBM360)

Condivisione della RAM (5) Risolve il problema della rilocazione Indirizzo iniziale del programma in RAM base Addizionatore + PC + Indirizzo (alla memoria) Confrontatore Fault (accesso oltre il limite) limite Ampiezza dello spazio di indirizzamento

Condivisione della RAM (6) Indirizzo iniziale del programma in RAM base Addizionatore + PC + Indirizzo (alla memoria) Confrontatore Fault (accesso oltre il limite) limite Ampiezza dello spazio di indirizzamento Risolve il problema della protezione