Sistemi operativi. HW Sistema Operativo 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.
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.
TEORIA DEI SISTEMI OPERATIVI
Sistemi Operativi Menù: 1) Introduzione al sistema operativo
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.
Elaboratore e Sistemi Operativo
12. Il Sistema Operativo Ing. Simona Colucci
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
I file l I File sono l unità base di informazione nellinterazione tra utente e sistema operativo l Un file e costituito da un insieme di byte attinenti.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Sistema Operativo e Compilatore
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
Laboratorio di Informatica
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
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
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
INFORMATICA Universita' degli Studi di Brescia
Il sistema operativo.
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Introduzione all'uso del PC
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.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
I FILE I File sono l’ unità base di informazione nell’interazione tra utente e sistema operativo I File sono l’ unità base di informazione nell’interazione.
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
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.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
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 7 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
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
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
3  L’hardware da solo non è sufficiente per il funzionamento dell’elaboratore ma è necessario introdurre il software  … ovvero un insieme di programmi.
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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – Ver. aggiornata al 19 Gennaio 2016.
Il computer RAM: Unità di misura MByte e GByte MHz Processore: Unità di misura Singolo o multiprocessore 32/64 bit velocità GHz Mouse tastiera video stampante.
 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.
Transcript della presentazione:

Sistemi operativi

HW Sistema Operativo Il sistema operativo

SW = Sistema Operativo + SW applicativo SW Applicativo Il sistema operativo HW Sistema Operativo

Il sistema operativo il sistema operativo fornisce dei servizi ai programmi applicativi e agli utenti rendendo utilizzabili le risorse fisiche presenti nel sistema il sistema operativo può essere inteso come uno strumento che virtualizza le caratteristiche dell’hardware sottostante, offrendo di esso la visione di una macchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile

Il sistema operativo: funzioni Il S.O. deve svolgere delle funzioni di base: –esecuzione di applicazioni –accesso ai dispositivi di ingresso/uscita –archiviazione di dati e programmi –controllo di accesso –gestione dei tempi di utilizzo del sistema –gestione dei malfunzionamenti

Il sistema operativo: elementi Un S.O. tipico è costituito dai seguenti elementi –Sistema di gestione del processore –Sistema di gestione della memoria –Sistema di gestione delle periferiche (I/O) –Sistema di gestione dei file (file system) –Sistema di gestione degli utenti e dei relativi comandi (interprete comandi o shell) –Sistema di gestione della rete.

Il sistema operativo: tipologie varie tipologie di S.O.: –sistemi batch (esecuzione non interattiva di task) –sistemi interattivi (interazione con l’utente) –sistemi uniprogrammati e monoutente (1 solo l’utente, 1 solo programma utente per volta in esecuzione) –sistemi time-sharing: interattivi, multiprogrammati e multiutente (più utenti e più programmi utente in esecuzione)

Struttura di un sistema operativo Un classico modello di organizzazione del S.O. è quello a “strati”, detto anche a “buccia di cipolla”: –determina una gerarchia di macchine virtuali (mv) –la mv al livello N è determinata dall’hardware e dagli strati del S.O. fino a quel livello macchina virtuale: software che emula il comportamento di una macchina fisica

User interface permette all'utente di interagire con il sistema operativo e quindi con il computer due principali tipi di user interface: –Command Line Interface (CLI) cmd.exe (Windows), terminal (Linux) –Graphic User Interface (GUI) Windows Aero Linux Gnome, KDE

Command Line Interface si scrivono singoli comandi per far svolgere al computer un certo compito: –cd /home/Downloads (spostamento nella cartella Downloads) –vi esempio.txt (avvio dell'editor "vi" e caricamento di un file)

Graphic User Interface permette una comunicazione col computer attraverso finestre, icone e menù –WIMP (Windows, Icons, Menus, Pointing devices)

File management system permette di organizzare i dati contenuti nella memoria secondaria in forma strutturata i dati sono raccolti in strutture logiche dette files, identificate da un nome (filename) i files sono organizzati in più contenitori logici (cartelle o directory) secondo una struttura ad albero ciascun file è individuato mediante il suo percorso (path) assoluto, ottenuto giustapponendo i nomi dei nodi che si incontrano dalla radice al file (separati da un carattere apposito, in Linux /, in Windows \) Esempio: /uno/alfa/f1

File system permette all’utente di: –operare sui file mediante opportune operazioni –effettuare l'accesso alle informazioni grazie ad operazione di alto livello, che non tengono conto del tipo di memorizzazione per esempio, si deve accedere allo stesso modo ad un file memorizzato sul disco rigido oppure su un CD-ROM –proteggere i propri file in un sistema multi-utente, ossia per impedire ad altri utenti di leggerli, scriverli o cancellarli

File system i file vengono utilizzati come supporto per la memorizzazione dei programmi e dei dati –un file può corrispondere ad un programma, o ad un insieme di dati omogenee –diversi tipi di file contengono diversi tipi di informazione –un file deve avere un nome logico è meglio usare nomi significativi mio.doc, a.txt tesi.doc, inf_lezione9.ppt è meglio non usare caratteri speciali e lo spazio bianco prima pagina.html, mia foto.jpg index.html, montagne.gif

File system Un file ha anche una estensione Esempi:.doc.txt.html.jpg.gif.pdf Le estensioni sono importanti perché di solito indicano il tipo del file (quindi danno informazioni sul programma applicativo in grado di manipolarlo)

Organizzazione gerarchica dei file Un unico spazio (“contenitore”) di file è scomodo –La scelta dei nomi diventa difficile perché non è possibile avere due file con lo stesso nome nella stessa contenitore –Le operazioni di ricerca dei file diventano onerose L’idea è quella di raggruppare i file in sottoinsiemi Questi sottoinsiemi di file vengono memorizzati all’interno di contenitori dette cartelle (directory) I nomi dei file sono locali alle directory –Si possono avere due file con lo stesso nome perché siano in due directory diverse

Organizzazione gerarchica dei file

Applicazioni Biblioteca Utenti Indice Elab_imm Elab_testi Narrativa-Fra Narrativa-Ing Narrativa-Ita Bianchi … Rossi … Pautasso … Photoshop.exe Winword.exe libro1.pdf libro2.pdf libro1.pdf libro2.pdf Premiere.exe A: Questa struttura viene chiamata albero foglie radice dell’albero

Organizzazione fisica dei file esempio: FAT (File Allocation Table) file system –il disco è diviso in cluster di lunghezza fissa (64 KB) –ogni file è una catena di cluster (anche non consecutivi, vedere esempio in basso) –ogni cartella è un file speciale che include i numeri dei primi cluster dei file in essa contenuti –la FAT contiene il tipo di ogni cluster del disco: Unused (0x0000), Cluster in use by a file, Bad cluster (0xFFF7), Last cluster in a file (0xFFF8-0xFFFF)

Input/Output gestisce la comunicazione con dispositivi esterni –hard disk, tastiera, stampante, monitor, ecc. fornisce una visione del sistema in cui i processi possono operare mediante periferiche astratte maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscita mette a disposizione di ogni processo delle periferiche virtuali –esempio: spooling della stampante

Memory management consente ai programmi di lavorare in un proprio spazio di indirizzamento virtuale e di ignorare quindi le effettive zone di memoria fisica occupata. fornisce alle macchine virtuali di livello superiore la possibilità di lavorare come se esse avessero a disposizione una memoria dedicata, di capacità anche maggiore di quella fisicamente disponibile –esempio: memoria virtuale

Kernel Per la gestione dei processi il S.O. deve : –Interagire direttamente con l’hardware –Occuparsi dell’esecuzione dei programmi e della risposta agli eventi esterni generati dalle unità periferiche di I/O –Gestire i processi corrispondenti ai programmi che sono contemporaneamente attivi –Gestire il contesto di esecuzione dei vari processi –Attuare una politica di alternanza (time-sharing) nell'accesso alla CPU da parte dei processi in esecuzione

Time-sharing attesa per operazioni di I/O elaborazione Tempo Progr. 3 Progr. 2 Progr. 1 P1P3P2P1P3P2P1P3P2

Processi Un programma è un insieme di istruzioni da eseguire (entità statica). Un processo è un’istanza di un programma in esecuzione (entità dinamica). Un processo è costituito dal programma e dal contesto di esecuzione (program counter, registri, memoria, etc.). In un S.O. multiprogrammato (o multitasking o multiprocesso) possono esistere più processi in esecuzione I processi possono essere eseguiti in kernel mode (ad es. i servizi forniti dal sistema operativo) o user mode (ad es. i programmi applicativi)

Gestione dei processi compiti del s.o. per la gestione dei processi –creazione/terminazione dei processi –sospensione/ripristino dei processi –sincronizzazione/comunicazione tra processi –gestione di situazioni di stallo (blocco critico o deadlock) –esempio di diagramma di stato dei processi Selezione primo processo pronto e sua esecuzione Processo in esecuzione Processi pronti Inizio esecuzione (accodamento ai processi pronti) Termine quanto di tempo Termine elaborazione Processi in attesa Richiesta operazione di I/O Completamento operazione di I/O (evento esterno atteso)

Gestione dei processi Il SO multiprogrammato e multiutente si occupa di gestire l’esecuzione concorrente di più programmi utente La CPU del calcolatore (o le CPU nei sistemi multiprocessore) deve essere distribuita in maniera opportuna fra i programmi da eseguire Ogni programma eseguito ha a disposizione una macchina virtuale realizzata dal SO che ne consente l’esecuzione come se la CPU del calcolatore fosse interamente dedicata a esso 26

Lo stato di un processo Lo stato del processo può essere distinto fra stato interno e stato esterno. Lo stato interno indica: –la prossima istruzione del programma che deve essere eseguita; –i valori delle variabili e dei registri utilizzati dal processo. Lo stato esterno indica se il processo è: –in attesa di un evento, ad es. la lettura da disco o l’inserimento di dati da tastiera; –in esecuzione; –pronto per l’esecuzione, e quindi in attesa di accedere alla CPU. 27

Stato di un processo 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 28 Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore

Chiamata di funzioni un processo può chiamare (cioè avviare l'esecuzione di) più funzioni che a loro volta chiamano altre funzioni in una sequenza di chiamate di funzioni, l’ultima chiamata è la prima a terminare la zona di memoria di lavoro che contiene l’ambiente di esecuzione di una funzione è gestita con la logica di una pila (stack) 29

Record di attivazione al momento della chiamata di una funzione: –si riserva uno spazio di memoria (record di attivazione) in cima allo stack per contenere i parametri formali e le variabili locali –lo spazio viene rilasciato quando la funzione termina il record di attivazione contiene: –l'ambiente di esecuzione –l'indirizzo di ritorno al chiamante 30

Lo stack di esecuzione nello stack, i record di attivazione vengono allocati "uno sopra l’altro"; il primo record dello stack è relativo all’ultima funzione attivata e non ancora terminata Stack Pointer: registro della CPU che contiene l’indirizzo della cima della pila una parte della RAM è destinata a contenere lo stack –Stack Overflow: quando l’area della RAM destinata allo stack viene superata operazione di inserimento: -incremento SP -scrittura in cella indirizzata da SP operazione di estrazione: -lettura da cella indirizzata da SP -decremento SP SP

Stato di un processo (2) I processi appena creati sono messi in stato di pronto Il kernel decide quale processo pronto mettere in stato di esecuzione Il kernel assegna il processore a un processo per un quanto di tempo –Coda dei processi pronti –Round-robin –Priorità dei processi 32 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 P1P2

Stato di un processo (3) Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna) –Corrisponde alla esecuzione dell’istruzione “chiamata supervisore” (SuperVisor Call, SVC) 33 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 P1P2

Stato di un processo: cambio contesto  Cambiamento di contesto: Salvare il contesto di P1 nel suo descrittore di processo  Il processore è ora libero, un altro processo passerà in esecuzione 34 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 P1P2

Stati di un processo (5)  Quando l’operazione di I/O è finita viene generata una interruzione esterna  Il processo in esecuzione viene interrotto  Il kernel esegue il gestore delle interruzioni che esegue le azioni opportune  P1 può tornare pronto  Il kernel sceglie quale processo mandare in esecuzione 35 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 P1P2

Stato di un processo: Preemption  Preemption: quando il quanto di tempo è scaduto, il kernel interrompe il processo in esecuzione  Si cerca di garantire un uso equo della CPU a tutti i processi 36 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 P1P2

Che cosa è un processo per il SO? Processo ≠ programma ! Processo = esecuzione di un programma, composto da: –codice eseguibile (il programma stesso) –dati Lo stesso programma può essere associato a più processi: –Un programma può essere scomposto in varie parti e ognuna di esse può essere associata a un diverso processo –Lo stesso programma può essere associato a diversi processi quando esso viene eseguito più volte, anche simultaneamente 37

Processi e strutture dati Ad un processo sono associate le seguenti strutture dati: –Uno o più segmenti di codice –Uno o più segmenti di memoria dati –I descrittori di eventuali risorse in uso (file, finestre, periferiche, ecc.) –Uno o più thread Un processo consta di tre zone di memoria chiamate regioni: dati, codice e stack 38

La gestione del file system Il gestore del file system fornisce i servizi di base per –La creazione/cancellazione di file e cartelle. –La manipolazione di file e cartelle esistenti. –La copia e lo spostamento di dati su supporti diversi. –L’associazione tra file e dispositivi di memorizzazione secondaria (memorie di massa). –La gestione di collegamenti (link o alias) tra file e cartelle. Un collegamento è un riferimento a un oggetto (file o cartella) presente nel file system.

L’interprete di comandi E’ un modulo del S.O. direttamente accessibile dall’utente. Ha la funzione di interpretare i comandi che gli giungono e di attivare i programmi corrispondenti. Svolge operazioni di lettura della memoria centrale dei programmi da eseguire. Alloca la memoria necessaria e vi carica programmi e dati. Crea e attiva il processo relativo ad un programma.

Gestione delle periferiche Sono meccanismi software a cui è affidato il compito di trasferire dati da e verso le periferiche Consentono ai programmi applicativi di leggere o scrivere i dati con primitive di alto livello che nascondono la struttura fisica delle periferiche –e.g., nel sistema Unix le periferiche sono viste come file speciali 41