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.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
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.
Gestione della memoria centrale
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Il Sistema Operativo.
Java: programmazione concorrente con condivisione di memoria
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione della Memoria
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.
Gestione dei Processi. I processi Un processo è unistanza di esecuzione di un programma. Consiste di –Un identificatore univoco (PID) –La handle table.
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
1 System Call per Comunicazione tra Processi Pipe.
Programmazione Concorrente
Sincronizzazione fra processi
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Risorse e Stallo.
Processi e Thread.
Threads: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
Struttura dei sistemi operativi (panoramica)
I Thread.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Sincronizzazione fra thread
Sistemi Operativi GESTIONE DEI PROCESSI.
Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione.
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.
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,
Distributed File System Service Dario Agostinone.
Concorrenza e Sincronizzazione di Thread e Processi
Sicurezza in Windows NT Fabrizio Inguglia. Tratteremo: Struttura generale di Windows NT 4 Gestione delle politiche di sicurezza.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
La schedulazione dei processi
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
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,
File system distribuito transazionale con replicazione
Sincronizzazione dei processi
Processi.
Threads.
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
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.
Cryptophone 2 Matteo Ferrari. Descrizione del Problema e Soluzioni adottate. Realizzare un’interfaccia grafica in C# per dispositivi Mobile di un progetto.
I processi.
T. MottaGenerazione e terminazione processi1 Creazione e terminazione dei processi Tommaso Motta
Il nucleo del Sistema Operativo
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
1 Esercitazione finale per il corso di Sistemi Operativi (A.A. 2001/2002)
Gestione del processore (Scheduler)
Architettura dei Sistemi Operativi
1 SC che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
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.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 Elementi di programmazione concorrente in Java: i threads.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Informatica Generale Marzia Buscemi
Il Sistema Operativo Processi e Risorse
La gestione della rete e dei server. Lista delle attività  Organizzare la rete  Configurare i servizi di base  Creare gli utenti e i gruppi  Condividere.
Processi e thread in Windows 2000
Transcript della presentazione:

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 un access token). Thread: entita schedulate dal kernel, possono accedere a tutti gli oggetti del processo, possiedono uno stato, due stack, un contesto dove salvare i propri registri e un’area privata per le variabili locali. Fiber: thread leggero gestito solo nello spazio utente.

Cos’e’ un Processo Programma eseguibile, composto da codice e dati Ha uno spazio di indirizzamento privato Ha accesso a un insieme di risorse (porte, semafori, ecc) Ha almeno un thread di esecuzione (porzione di processo che il kernel tratta atomicamente per l’esecuzione)

Cos’e’ un Thread unita’ di esecuzione indipendente all’interno di un processo utilizza lo spazio di indirizzamento del processo ha un identificatore unico ha un contesto, composto da registri, due stack e un’area di memorizzazione privata lo scheduler di Windows 2000 tratta threads, non processi Può vedere tutte le variabili del processo che lo ha creato.

Caratteristiche del Processo Ogni processo ha uno spazio di indirizzamento in memoria virtuale di al massimo 4GB Ogni processo ha a disposizione diverse risorse, tra cui un Access Token un insieme di strutture, create dal Virtual Memory manager, che mantengono traccia degli indirizzi virtuali degli oggetti che il processo sta usando una Object Table, che contiene gli handle ai threads, ai file aperti, a porzioni di memoria condivisa, e ad ogni altro oggetto in uso.

Gestione dei processi e thread Il sistema operativo deve gestire: Creazione dei processi e thread Sincronizzazione fra thread (cosa accade quando più thread tentano di accedere alla stessa risorsa ?) Comunicazione fra processi (ci può essere necessità di scambio di dati fra processi, anche su computer diversi) Scheduling dei thread (se più thread devono essere eseguiti, quale sarà il primo ad essere eseguito ?)

API gestione Job, Process, Thread & Fiber. Alcune Win32 API per processi, thread e fibre

API gestione Job, Process, Thread & Fiber. Studieremo solo alcune delle API (sono migliaia). Tutte le informazioni sulle API (sintassi e argomenti li potete trovare al sito: http://msdn.microsoft.com/library/default.asp Cliccando su Win32 API e poi sull’argomento specifico. Oppure trovi altre informazioni con esempi http://phoenix.liunet.edu/~mdevi/index.html In inglese, purtroppo.

Creazione processi, thread & fiber Si usano le API: CreateProcess, CreateThread, CreateFiber, ExitProcess, ExitThread, ExitFiber, Sleep. CreateProcess richiede 10 parametri (fra cui il nome dell’eseguibile). CreateThread (6 parametri, come segue). hThread=CreateThread (NULL, // sicurezza di default 1000, // dimensione dello stack in byte (0 = default) (LPTHREAD_START_ROUTINE)provaThread, // routine che il thread eseguirà NULL, // parametro definito dall'utente 0, // stato iniziale del thread &ThreadID // identificativo del thread );

La sincronizzazione Un thread si sincronizza con un altro mettendosi in stato di Wait (attesa) e attendendo un evento (la variazione di flag, il termine di un thread, la disponibilità di Input, il passaggio in stato di un oggetto. L’evento viene avvertito dal Kernel, che risveglia il thread in attesa

Esempi di meccanismi per l’attesa (OGGETTI DISPATCHER) mutex: forniscono l’accesso in mutua esclusione alla risorsa che controllano semafori: forniscono l’accesso ad un numero massimo di thread alla risorsa che controllano eventi: consentono la segnalazione del raggiungimento di una condizione timer: consente l’accesso alla risorsa quando e’ passato un delta di tempo. Thread: un thread puo’ attendere che un secondo thread sia terminato prima di riprendere l’elaborazione

Sincronizzazione tramite Dispatcher Objects Utilizzati per sincronizzare thread su eventi oltre che sull’accesso a dato condivisi Un thread si mette in attesa su un Dispatcher O. tramite una delle seguenti chiamate: WaitForSingleObject(HANDLE hObject, DWORD dwTimeout); (INFINITE sta per timeout infinito. WaitForMultipleObject(……………); Assumono sempre uno dei due stati: Segnalato e Non Segnalato. Si esce dalla wait quando l’oggetto diventa segnalato.

Mutex Utilizzati per sincronizzare, garantendo accesso esclusivo alle risorse, thread di processi diversi che debbano utilizzare gli stessi dati. E’ l’unico oggetto di sincronizzazione che puo’ appartenere al thread che l’ha creato Oltre agli stati Segnalato e Non Segnalato, un Mutex puo’ essere in stato Abbandonato Chiamata di creazione : CreateMutex(NULL, false, NULL); Chiamata di rilascio: ReleaseMutex(hmutex);

Semafori Utilizzati per il conteggio delle risorse disponibili (Es.: Utilizzo di porte seriali) Un semaforo e’ in stato segnalato quando il numero delle risorse disponibili e’ maggiore di 0. Chiamata di creazione Semaforo: CreateSemaphore (NULL,0,5,NULL ); Chiamata di rilascio: ReleaseSemaphore(hSem,1,NULL);

Eventi Utilizzati per segnalare uno stato (termine di un task: p.es. completamento della procedura di inizializzazione) Possono essere Auto-Reset (segnalazione a un solo thread) o Manual-Reset (segnalazione a tutti i thread in attesa) Chiamata di creazione Evento: CreateEvent(………); Chiamata di settaggio Evento: SetEvent(………);

Waitable Timer Oggetti che passano in stato segnalato a certe ore o a intervalli regolari Possono essere Auto-Reset (segnalazione a un solo thread) o Manual-Reset (segnalazione a tutti i thread in attesa) Chiamata di creazione Timer: CreateWaitableTimer(…..); Chiamata di IMPOSTAZIONE Timer: SetWaitableTimer(…….);

Comunicazione fra processi Un processo può comunicare con un altro processo in 5 modi: File condivisi Pipe Mailslot Socket RPC (Remote Procedure Call

Pipe La pipe è un canale di comunicazione fra due processi. Uno scrive sulla pipe e l’altro legge dalla pipe. In genere si usano per processi sulla stessa macchina. Usano le API: CreatePipe (….) ritorna due handle, uno per leggere e l’altro per scrivere. WriteFile(..) e ReadFile(…) sono bloccanti se la pipe è piena (per la write) o vuota (per la read). Le pipe con nome, diversamente da quelle anonime, permettono comunciazioni fra processori su macchine differenti.

Socket Funzionano come le pipe, ma sono più pesanti. Si usano per connettere processi su computer differenti. I messaggi arrivano sempre a destinazione.

Mailslot Un processo A crea l’oggetto Mailslot. Un altro processo, B, anche su un altro computer può mandare un messaggio alla MailSlot del processo A. Si può mandare lo stesso messaggio in broadcast a una serie di MailSlot. Non è detto che i messaggi arrivino a destinazione.

Remote Procedure Call Un processo A chiede al processo B di chiamare una procedura nel suo spazio di memoria (quello di B), con i parametri passati da A. B esegue la funzione e restituisce il risultato ad A. In pratica, A mette in un messaggio i parametri e li invia a B. B riceve il messaggio, chiama la procedura e inserisce il risultato in un messaggio che invierà ad A.