Gestione dei Processi. I processi Un processo è unistanza di esecuzione di un programma. Consiste di –Un identificatore univoco (PID) –La handle table.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Programmazione in Java
Costruttori e Distruttori
Recupero debito quarto anno Primo incontro
Massa Laura Mela Enrica
1 Semantica Operazionale di un frammento di Java: lo stato.
Differenze tra C e C++ Commenti: Adesso puoi inserire dei commenti tra // e la fine della linea. Usare le librerie C: In C++ puoi anche chiamare una funzione.
DLL: Dynamic Linking Library
Fondamenti di Informatica
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Caratteri e stringhe di caratteri
Laboratorio di Linguaggi lezione VIII Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
Processi: Sistemi Operativi I
Threads: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica
I Thread.
Approfondimento delle classi
CAPITOLO 1 JAVA: UN TUFFO NEL LINGUAGGIO E NELL'AMBIENTE.
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.
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Algebra Lineare Esercizi assegnati.
I File.
Corso di PHP.
Fondamenti di informatica Linguaggio C Main Program: Architettura di un PC Diagrammi di flusso Linguaggio C.
Concorrenza e Sincronizzazione di Thread e Processi
Javascript 6 Funzioni. Una funzione sarà eseguita in risposta ad un evento o ad una chiamata diretta. Le funzioni possono essere inserite comodamente.
Introduzione a C#.
Ereditarietà e Polimorfismo
Componenti fondamentali di un programma Java
Java Contardi Carlo A.S. 2008/09.
PROGRAMMARE IN C Un ambiente di sviluppo `e un software che serve per scrivere ed eseguire programmi. Generalmente integra almeno 3 funzionalita’: Editor:
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
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.
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Lo sviluppo top down Le funzioni
Programmazione concorrente
Modulo 4 – U.D. 1 – Lez. 6 Ernesto Damiani - Sistemi di elaborazione dell'informazione.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.
Installazione Come tecnico, si potrebbe aver necessità di effettuare una installazione pulita di un sistema operativo. L'esecuzione di una installazione.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
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.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 11 e 12 -
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Programmazione in linguaggio C
Programmazione ad oggetti
T. MottaGenerazione e terminazione processi1 Creazione e terminazione dei processi Tommaso Motta
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Dato un vettore di reali di dimensione DIM, si inseriscano N elementi presi da tastiera, si utilizzi 0 per terminare l’inserimento. Ordinare gli elementi.
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
Introduzione a Javascript
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Politecnico di Milano © Domenico Barretta Processi concorrenti in Unix Docente Domenico Barretta Politecnico di Milano
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
Gestione dei thread in Java
Programmazione in Java. Classi I programmi in Java consistono di classi. Le classi consentono di definire: collezioni di procedure (metodi statici) tipi.
Cose nuove di Java (prima a chiacchiera, poi formalmente)
FUNZIONI: IL MODELLO A RUN-TIME 1) creazione di una nuova attivazione (istanza) del servitore 2) allocazione di memoria per i parametri e per le variabili.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
SQLite. Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione.
Introduzione alle Classi e agli Oggetti in Java 1.
Android Intent, AlertDialog, SharedPreferences. Intents.
Transcript della presentazione:

Gestione dei Processi

I processi Un processo è unistanza di esecuzione di un programma. Consiste di –Un identificatore univoco (PID) –La handle table del processo tabella di riferimenti (HANDLE) a risorse di cui il processo può disporre (file, socket, eventi, …) –Uno spazio dindirizzamento privato di 4GB –Almeno un thread desecuzione

PID PID = process ID –Identificatore univoco dei processi –(visibile per esempio quando i processi sono mostrati in task manager)

Thread Un thread rappresenta un contesto di esecuzione –Valori dei registri, stack, codice eseguito, … Un processo ha almeno un thread associato e può averne più di uno (esecuzione concorrente) Il primo thread viene creato allavvio di un processo automaticamente dal SO –Il primo thread esegue il codice dellentry point del processo (funzione main)

Creazione di un processo da programma BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation );

Parametri di CreateProcess i/ii LPCTSTR lpApplicationName –Nome dellapplicazione (stringa) LPTSTR lpCommandLine –Linea di comando con evetuali parametri (stringa) LPSECURITY_ATTRIBUTES lpProcessAttributes LPSECURITY_ATTRIBUTES lpThreadAttributes –Attributi di sicurezza del processo e del suo primo thread BOOL bInheritHandles –ereditarietà delgli handle del padre DWORD dwCreationFlags –Modalità di creazione del processo CREATE_SUSPENDED (processo creato nello stato sospeso) CREATE_NEW_CONSOLE (processo creato in una nuova console) 0 (nessuna modalità particolare)

Parametri di CreateProcess ii/ii LPVOID lpEnvironment –Trasferisce al processo le variabili dambiente –Date sotto forma di tabella di stringhe –Ogni riga è nella forma nome=valore –Se il parametro è NULL, il nuovo processo acquisisce una tabella identica a quella del processo che lo crea LPCTSTR lpCurrentDirectory –Directoru di lavoro del nuovo processo LPSTARTUPINFO lpStartupInfo –Informazioni per la finestra principale del nuovo processo LPPROCESS_INFORMATION lpProcessInformation –È un parametro di ritorno per ricevere informazioni sul processo appena creato Handle del processo Handle del primo thread PID del nuovo processo

Struttura PROCESS_INFORMATION typedef struct _PROCESS_INFORMATION { // pi HANDLE hProcess; HANDLE hThread; DWORD dwProcessId; DWORD dwThreadId; } PROCESS_INFORMATION; hProcess: handle del processo creato hThread: handle del thread primario del processo creato dwProcessId: PID del processo creato dwThreadId: identificatore del thread primario

Creazione di un thread HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId);

Parametri di Create Thread LPSECURITY_ATTRIBUTES lpThreadAttributes –Attributi di sicurezza del thread DWORD dwStackSize –Dimensione dello stack (0 = default) LPTHREAD_START_ROUTINE lpStartAddress –Funzione da eseguire nel thread LPVOID lpParameter –Parametri passati alla funzione eseguita DWORD dwCreationFlags –Stato del thread al momento della creazione 0 = running CREATE_SUSPENDED = sospeso LPDWORD lpThreadId –Identificatore del thread restituito come risultato

Funzioni passate ai thread Le funzioni passate ai thread devono essere dichiarate seguendo la seguente sintassi –DWORD WINAPI ThreadFunctionName (LPVOID lpParam); DWORD: tipo del valore di ritorno WINAPI: convenzione di chiamata ThreadFunctionName: nome della funzione (a piacere) LPVOID: puntatore a void –utilizzato come strumento generico per il passaggio dei parametri –mediante unoperazione di cast è possibile ricostruire il formato corretto dei parametri dentro la funzione

Funzioni di utilità int GetCurrentThreadId() –Restituisce lId del thread corrispondente al contesto di esecuzione corrente DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMillisecs) –Aspetta la terminazione di un thread per il tempo stabilito –(si può usare il valore INFINITE per aspettare la terminazione del thread in ogni caso)

Riferimenti Pinardi, Aruanno, Bisiani. Windows &.NET 2000 in Action – Capitolo 1