1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.

Slides:



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

Memoria Virtuale in Linux
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
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.
Gestione dei processi A. Ferrari.
Il Sistema Operativo.
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
Gestione del processore
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.
Domande di riepilogo sulla gestione del processore
Operating System Concepts
I processi Concetto di processo Scheduling dei processi
Processi Concetto di processo Scheduling dei processi
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Processi e Thread.
Struttura dei sistemi operativi (panoramica)
I Thread.
I Processi.
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
1 Gestione del processore Il modello a processi sequenziali.
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.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
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,
Il sistema operativo Vito Perrone
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Il sistema operativo.
Architettura degli elaboratori
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
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,
Processi e Thread Job: Insieme di processi che condividono quote e limiti. Processo: Contenitore di risorse (una lista di thread, una lista di handle e.
Processi.
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
Threads.
1 I segnali. 2 Prima un po’ di teoria…... 3 Stati dei processi in UNIX Idle Sleeping Zombified Runnable Running Fork iniziata waitpid Fork terminata.
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.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
T. MottaGenerazione e terminazione processi1 Creazione e terminazione dei processi Tommaso Motta
Il nucleo del Sistema Operativo
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.
Processi e Thread Processi Thread
1 Processi e Thread Processi e thread in Windows 2000.
Gestione della Memoria
1 Processi e Thread Scheduling (Schedulazione). 2 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
1 Processi e Thread Processi e thread in Unix. 2 UNIX/Linux Molte versioni di UNIX –trattiamo le caratteristiche più comuni) Ci riferiamo allo standard.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Cos’è un sistema operativo ?
1 System Call ancora Vediamo passo passo come funziona una SC.
Informatica Generale Marzia Buscemi
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Sistemi operativi.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Sistemi operativi. HW Sistema Operativo Il sistema operativo.
© 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:

1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi e thread in Windows

2 Processi Il Modello a Processi processo : programma in esecuzione completo del suo stato (spazio di indirizzamento, registri, file aperti…) Modello concettuale: processi sequenziali indipendenti Solo un processo attivo ad ogni istante

3 Creazione di un processo Principali eventi che causano la creazione di processi: inizializzazione del sistema esecuzione di una chiamata di sistema di creazione richiesta di creazione di un nuovo processo da parte dell’utente interattivo (es. invocazione di un comando, doppio click su un’icona) inizio di un job batch ogni creazione di processo corrisponde a una chiamata di sistema

4 Creazione di un processo Unix (posix) –padre fork –figlio exeve Windows (Win 32 API) –CreateProcess

5 Terminazione di un processo Condizioni tipiche di terminazione 1.uscita normale (volontaria) –exit (Unix Posix) –ExitProcess (WIN 32) 2.uscita in presenza di errore (volontaria) –cc foo.c 3.fatal error (involontaria) 4.terminato da un altro processo (inv.) – kill() (UNIX Posix) – TerminateProcess() (Win32)

6 Gerarchie di Processi Un processo crea dei processi figli che a loro volta possono creare altri processi quello che si ottiene è una gerarchia di processi –UNIX inserisce tutti i processi di una gerarchia in un gruppo a parte (process group) Windows non ha il concetto di gerarchia di processi

7 Gerarchie di Processi UNIX init login 1login 2login n..... fcshbash 1 per terminale

8 pipe > cat file1 file 2 | grep spezia pipe

9 Stati di un processo (1) Possibili stati di un processo –in esecuzione (running), in attesa (blocked), pronto (ready) Transizioni di stato (1) il processo si blocca in attesa di un’operazione di I/O (2) lo scheduler decide di mandare in esecuzione un altro processo (3) lo scheduler decide di mandare in esecuzione questo processo (4) l’operazione di I/O è terminata ed il processo può continuare

10 Stati di un processo (2) Livello più basso di un OS a processi (microkernel) –gestisce interrupt, scheduling

11 Implementazione di processi (1) Tabella dei processi: un array di strutture (record) una struttura per ogni processo (PCB, process control block) contiene tutte le informazioni sullo stato del processo diverse dal suo spazio di indirizzamento –PC, SP, PCW, registri generali –stato (pronto, bloccato …) –informazioni relative ai file –informazioni relative alla memoria occupata dal processo –altre informazioni dipendento dal particolare SO

12 Implementazione di processi (2) Tipici campi di un descrittore nella tebella dei processi

13 Implementazione dei processi (3) Schema di cosa accade nei livelli bassi dell’OS quando viene rilevata una interruzione 1. Salvataggio PC, PSW e qualche RG sulla pila (hw) 2. L’interrupt vector viene caricato nel PC (hw) 3. Salvataggio delle info sullo stack e di tutti i registri nella tabella dei processi (assembler) 4. L’SP punta a una nuova pila (assembler) 5. Esecuzione del gestore della interruzioni (C) 6. Esecuzione dello scheduler per decidere il nuovo processo da eseguire (C) 7. Caricamento dei registri e di tutte le informazioni relative al nuovo processo da eseguire (assembler)

14 Implementazione di processi (4) Gestione di una interruzione (a)(b)

15 Thread of Execution Filo di Esecuzione Thread = 'light weight process' processo leggero, poco costoso flusso di controllo all’interno di uno spazio di indirizzamento Thre ad

16 Thread Il Modello a Thread (1) I 3 processi a singolo thread competono per: Memoria fisica dischi, stampanti altre risorse I 3 thread dello stesso processo condividono: spazio di indirizzamento file aperti altre risorse

17 Il Modello a Thread (2) Oggetti condivisi da tutti i thread dello stesso processo Oggetti privati di un singolo thread

18 Il Modello a Thread (3) Ogni thread ha il suo stack privato thread_create thread_exit thread_wait thread_yield

19 Perche' usare i thread ? processi paralleli che condividono lo spazio di indirizzamento dei dati la creazione di un thread e' “100” volte piu' veloce della creazione di un processo thread con calcolo intensivo thread con molto i/o sono utili su multi processori

20 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

21 Uso dei Thread (2) Un word processor con 3 thread

22 Uso dei Thread (3) Un Web Server con più thread (multithreaded)

23 Uso dei Thread (4) Possibile struttura del codice del web server (a) dispatcher thread (b) worker thread

24 Implementazione dei Thread I thread hanno gli stessi stati dei processi Possono essere realizzati : da librerie che girano interamente in modo utente (user-level thread) nel SO (kernel-level thread )

25 Implementazione dei Thread in spazio utente (user–level thread) (1) Realizzati da una librerie di procedure che girano in modo utente thread_create(), thread _exit(), thread_wait ()... Ogni processo ha una thread table gestita dal run time support della libreria I thread devono rilasciare esplicitamente la CPU per permettere allo scheduler di esuguire un altro thread thread _yeld () Problema : che accade quando una system call si blocca?

26 Implementazione dei Thread in spazio utente (user–level thread) (2) thread_create thread_exit thread_wait thread_yield

27 Implementazione dei thread nel kernel (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

28 Implementazione dei thread nel kernel (kernel– level thread) (2)

29 User–level thread vs kernel-level thread Thread switch molto veloce Scheduling “personalizzato”, dipendente dall’applicazione Eseguibili su un SO che supporta solo i processi Gestione problematica delle system call bloccanti

30 Implementazioni ibride Più user-level thread vengono eseguiti dallo stesso kernel-level thread