Gestione del processore

Slides:



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

Gestione della Memoria
Meccanismi di IPC Problemi classici di IPC
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
/ fax
1 Introduzione ai calcolatori Parte II Software di base.
Introduzione Cosa è un Sistema Operativo? Una breve storia
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.
Gestione dei processi A. Ferrari.
File System Cos’è un File System File e Directory
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 della Memoria
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
Sistemi Operativi - C Susanna Pelagatti
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Scheduling in Linux (Kernel 2.6)
I processi Concetto di processo Scheduling dei processi
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Processi Concetto di processo Scheduling dei processi
Scheduling della CPU Concetti di base Criteri di scheduling
Dipartimento di Ricerca Sociale - Università del Piemonte Orientale 1 Castelli Aperti giugno 2005 Castello di Camino (AL) IL PUBBLICO DI CASTELLI.
File.
1 Il servizio di prestito e fornitura documenti ILL-SBN una visione di insieme caratteristiche della procedura illustrazione delle funzionalità
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
eliana minicozzi linguaggi1a.a lezione2
Processi e Thread.
Struttura dei sistemi operativi (panoramica)
I Thread.
1 Gestione del processore Il modello a processi sequenziali.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
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.
Distributed File System Service Dario Agostinone.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Test Reti Informatiche A cura di Gaetano Vergara Se clicchi sulla risposta GIUSTA passi alla domanda successiva Se clicchi sulla risposta ERRATA passi.
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
File system distribuito transazionale con replicazione
I dati del questionario di autovalutazione dei docenti Prime rilevazioni.
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
Processi.
Threads.
USO DEL COMPUTER E GESTIONE DEI FILE
Gestione della Memoria
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
I processi.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Gestione del Processore (Scheduling)
Il nucleo del Sistema Operativo
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)
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Processi e Thread Processi e thread in Windows 2000.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Cos’è un sistema operativo ?
1 System Call ancora Vediamo passo passo come funziona una SC.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P.
Il Sistema Operativo Processi e Risorse
Transcript della presentazione:

Gestione del processore Il modello a thread

Il modello a thread : motivazioni Nel modello a processi, ogni processo ha il suo spazio di indirizzamento privato ed il modo per interagire è quello di utilizzare i meccanismi di IPC messi a disposizione dal sistema es : send, receive, synchronized di Java (monitor) Questo implica alti costi di interazione, se i dati da scambiare sono molti!

Scambio dati fra due processi Due processi diversi non hanno spazio di indirizzamento comune!!! Proc. P2 Proc. P1 Stack1 Stack2 dati2 dati1 testo2 testo1 Aree di memoria diverse!

Scambio dati fra due processi (2) Come posso passare informazioni fra P1 e P2 ? Proc. P2 Proc. P1 Stack1 Stack2 dati2 dati1 ???? ????? testo2 testo1

Esempio: send-receive Ci sono molti meccanismi (mecc. Di IPC Inter Processor Communication) es: send, receive Proc. P2 Proc. P1 Stack1 Stack2 snd rcv dati2 dati1 testo2 testo1

Esempio: send-receive (2) Una possibile implementazione : Il canale è una struttura dati del kernel snd e rcv sono due chiamate di sistema Proc. P2 Proc. P1 Stack1 Stack2 snd rcv dati2 dati1 testo2 testo1

Esempio: send-receive (3) Costi : Dati sono copiati almeno una volta dal processo mittente al processo destinatario Si paga : il cambio di contesto, l’overhead delle chiamate di sistema per snd e rcv Proc. P1 testo1 dati1 Stack1 testo2 dati2 Stack2 snd Proc. P2 rcv

Esempio: send-receive (4) Altra possibile implementazione : Il canale è un file ‘speciale’ accessibile ai due processi snd e rcv corrispondono a chiamate di sistema che effettuano letture/scritture su un file il costo non migliora!!!!!!!!!!!!! Proc. P1 testo1 dati1 Stack1 testo2 dati2 Stack2 snd Proc. P2 rcv

Quindi : se i dati da scambiare sono molti avere spazi di indirizzamento separati è estremamente costoso !

Il modello a thread : motivazioni (2) Nel modello a processi, l’attivazione di un processo, il cambio di contesto sono operazioni molto complesse che richiedono ingenti quantità di tempo per essere portate a termine Tuttavia a volte l’attività richiesta ha vita relativamente breve rispetto a questi tempi es : invio di una pagina html da parte di un server Web troppo ‘leggera’ per motivare un nuovo processo

Il modello a thread Idee di base dietro il modello a thread : permettere la definizione di attività ‘leggere’ (lightweight processes) con costo di attivazione terminazione limitato possibilità di condividere lo stesso spazio di indirizzamento Ogni processo racchiude più flussi di controllo (thread) che condividono le aree testo e dati

Struttura di un processo mutithreaded Stack del thread T1 Stack del thread T2 Stack del thread T3 T2 T1 T3 dati testo Processo P1 (Multithreaded)

Il modello a thread (2) Se un processo P1 ammette un singolo thread di controllo  lo stato di avanzamento della computazione di P1 è determinato univocamente da : valore del PC (prossima istruzione da eseguire) valore di SP/PSW e dei registri generali contenuto dello Stack (ovvero storia delle chiamate di funzione passate) stato del processo : pronto, in esecuzione, bloccato stato dell’area testo e dati stato dei file aperti e delle strutture di IPC utilizzate

Il modello a thread (3) Se un processo P1 più thread di controllo  lo stato di avanzamento della computazione di ogni thread è dato da : valore del PC (prossima istruzione da eseguire) valore di SP/PSW e dei registri generali contenuto dello Stack privato di quel thread stato del thread : pronto, in esecuzione, bloccato Sono invece comuni a tutti i thread : stato dell’area testo e dati stato dei file aperti e delle strutture di IPC utilizzate

Il modello a thread (4) Quindi, lo stato di avanzamento di un processo multithreaded è dato da lo stato di avanzamento di tutti i suoi thread stato dell’area testo e dati stato dei file aperti e delle strutture di IPC utilizzate

Uso dei thread (1) Applicazioni che : possono essere suddivise in più flussi di controllo interagiscono molto strettamente la condivisione dello spazio di indirizzamento e delle altre risorse permette di interagire senza pagare copie e cambi di contesto

Struttura di un word processor multithreaded StackT2 Formatta il testo StackT1 Legge i caratteri da tastiera e visualizza T2 T1 StackT3 T3 dati testo Salva periodicamente su disco

Struttura di un word processor multithreaded (2) Formatta il testo Legge i caratteri da tastiera e visualizza T2 disco T1 T3 dati tastiera testo Salva periodicamente su disco

Un web server multithreaded Dispatcher T1 Connessione di rete (Network) testo Cache (pagine richieste recentemente)

Un web server multithreaded (2) All’arrivo di una nuova richiesta dalla rete : - il dispatcher CREA un nuovo thread ‘worker’ che controlla se la pagina sta nella cache, e altrimenti va a leggere la pagina da disco Thread Dispatcher Connessione di rete (Network) testo WEB Cache (pagine richieste recentemente) Processo Web Server

Un web server multithreaded (3) Disco/i work1 Dispatcher work2 Connessione di rete (Network) testo WEB Cache (pagine richieste recentemente)

Un web server multithreaded (4) work1 Ogni worker 1) legge le informazioni su cache o disco 2) aggiorna la cache 3) risponde alla richiesta, 4) TERMINA Dispatcher work2 testo

Un web server multithreaded (5) Possibile struttura del codice del web server (a) dispatcher thread (b) worker thread

Implementazione dei thread Ogni thread è descritto da un descrittore di thread : thread identifier (tid) PC, SP, PCW, registri generali info sulla memoria occupata dallo stack privato del thread stato del thread (pronto, in esecuzione, bloccato) processo di appartenenza (pid, process identifier)

Implementazione dei thread (2) Thread table : tabella che contiene i descrittori di thread simile della process table se ne può avere una unica nel kernel o una privata di ogni processo Possono essere realizzati da : librerie che girano interamente in stato utente (user level thread) all’interno del kernel (kernel level thread)

User–level thread (1) Realizzati da una librerie di normali funzioni che girano in modo utente thread_create(), thread _exit(), thread_wait()… Il SO e lo scheduler non conoscono l’esistenza dei thread e gestiscono solamente il processo intero Lo scheduling dei thread viene effettuato dal run time support della libreria

User–level thread (2) La thread table è una struttura privata del processo C’è una TT per ogni processo I thread devono rilasciare esplicitamente la CPU per permettere allo scheduler dei thread di eseguire un altro thread thread _yield ()

User–level thread (3) St2 St1 St3 dati testo T2 T1 T3 RTS Thread table Spazio Utente Tabella dei processi Spazio Kernel

User–level thread (4) Quando un thread esegue un chiamata di sistema e si blocca in attesa di un servizio tutto il processo a cui appartiene viene bloccato es. nel web server una qualsiasi lettura da disco blocca tutti i thread! Addio parallelismo ...

Kernel–level thread (1) Thread table unica (nel kernel) Le primitive che lavorano sui thread sono system call thread_create(), thread _exit(), thread_wait()... Non è necessario che un thread rilasci esplicitamente la CPU Le system call possono bloccarsi senza bloccare tutti i thread di quel processo

Kernel–level thread (3) St2 St3 St1 dati testo T1 T2 T3 Spazio Utente Thread table Tabella dei processi Spazio Kernel

User–level thread vs kernel-level thread Creazione di thread e thread switch molto veloce Si può effettuare uno scheduling “personalizzato”, dipendente dall’applicazione Eseguibili su un SO che supporta solo i processi Gestione problematica delle system call bloccanti librerie di SC non bloccanti

Modelli ibridi St2 St1 St3 dati testo T2 T1 T3 RTS Thread table U Spazio Utente Thread table K Spazio Kernel Tabella dei processi