I processi.

Slides:



Advertisements
Presentazioni simili
STRUTTURA DEL SISTEMA OPERATIVO
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.
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.
Programmazione concorrente
Gestione dei processi A. Ferrari.
TEORIA DEI SISTEMI OPERATIVI
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
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.
Scheduling in Linux (Kernel 2.6)
I processi Concetto di processo Scheduling dei processi
Sincronizzazione fra processi
Deadlock Modello del sistema Caratterizzazione dei deadlock
Processi Concetto di processo Scheduling dei processi
INTRODUZIONE AI SISTEMI OPERATIVI
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
2 luglio 2006URM2 – ING- OOP0304 OL G. Cantone e A. Lomartire 1 Programmazione Orientata agli Oggetti Processi, task e thread Java (ed esempi) Università
Processi e Thread.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Struttura dei sistemi operativi (panoramica)
I Thread.
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
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.
Introduzione Cosa è un Sistema Operativo ?
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
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Concorrenza e Sincronizzazione di Thread e Processi
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
SISTEMA OPERATIVO..
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Concetti di base sul Software dei PC Unitre Anno
Architettura degli elaboratori
La schedulazione dei processi
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 (1)
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.
Sincronizzazione dei processi
Threads.
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.
Programmazione ad oggetti
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione del processore (Scheduler)
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.
Processi e Thread Processi Thread
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.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
© 2016 Giorgio Porcu - Aggiornamennto 18/03/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi.
Il Sistema Operativo Processi e Risorse
Transcript della presentazione:

I processi

Che cos’è un processo? Per processo si intende un'istanza di un programma in esecuzione in modo sequenziale. Cioè un'attività controllata da un programma che si svolge su un processore in genere sotto la gestione o supervisione del rispettivo sistema operativo.

Cooperazione e competizione tra processi. Due o più processi possono interagire fra loro secondo due modalità: cooperazione e competizione due processi cooperano se sono logicamente connessi e ciascuno ha bisogno dell’altro per operare due processi competono se potrebbero evolvere indipendentemente, ma entrano in conflitto sulla ripartizione di risorse

Stati di un processo Gli stati in cui un processo si può trovare sono: Nuovo : stato transitorio durante il quale il processo viene caricato in memoria e il SO inizializza i dati che lo rappresentano; esecuzione : il processo ha il controllo di un processore; pronto : il processo è pronto ad essere eseguito, ed è in attesa che lo scheduler lo metta in esecuzione; In attesa: il processo ha eseguito una chiamata di sistema ed è fermo in attesa del risultato; Terminazione: stato transitorio relativo alla fase di terminazione e deallocazione del processo dalla memoria;

Grafico:

Proprietà dei processi Esistono due aspetti differenti di un processo: Il processo è un’unità di allocazione di risorse: -memoria per l’immagine del processo -controllo su altre risorse esterne (dispositivi I/O, file, …) Il processo è un’unità di esecuzione: -identifica un flusso di esecuzione attraverso uno o più programmi - l’esecuzione può essere intervallata / sincronizzata con quella di altri processi -un processo ha uno stato di esecuzione e alcuni attributi che ne determinano le modalità di esecuzione (es. priorità)

Proprietà dei processi Per “alleggerire” la gestione dei processi separiamo questi due aspetti di un processo: L’unità di esecuzione è identificata dal concetto di Thread. L’unità di allocazione delle risorse è identificata dal concetto di processo. Con i thread si introduce una struttura di esecuzione più articolata, basata su: - condivisione di risorse; - differenziazione del flusso di esecuzione all’interno di un unico processo;

LE RISORSE Abbiamo detto che i processi sono programmi in evoluzione e per poter evolvere hanno bisogno delle risorse del sistema di elaborazione. Un RISORSA è tutto ciò che serve per l’avanzamento di un processo. Essa può essere sia hardware che software (ad esempio un file, una cartella, la stampante). Le risorse possono essere suddivise in classi e le risorse che fanno parte della stessa classe vengono chiamate ISTANZA DI UNA CLASSE mentre il numero di risorse che contiene quella classe viene detto MOLTEPLICITÀ DELLA RISORSA.

Thread Un thread  è una suddivisione di un processo in due o più filoni o sottoprocessi, che vengono eseguiti concorrentemente da un sistema di elaborazione monoprocessore o multiprocessore . Un thread è una unità di impiego di CPU all’interno di un processo. Un processo può contenere più thread, ciascuno dei quali evolve in modo logicamente separato dagli altri thread.

SINGLE TREADING VS MULTITHREADING In base alla capacità di un sistema di gestire a livello KERNEL i thread, distinguiamo quattro possibili scenari: Singolo processo e thread singolo ( Es. MS-DOS un solo processo utente e un unico thread); Singolo processo e thread multiplo per processo( Es. UNIX più processi utente ciascuno con un unico thread); Processo multiplo e thread singolo per processo( Es. Java un solo processo, più thread); Processo multiplo e thread multiplo per processo(Es. Linux, Windows, Solaris più processi utente ciascuno con più thread);

SINGLE TREADING VS MULTITHREADING

Programma sequenziale e concorrente PROGRAMMA SEQUENZIALE: specifica l'esecuzione sequenziale di una lista di istruzioni. La sua esecuzione e' un processo. PROGRAMMA CONCORRENTE: specifica due o più programmi sequenziali che possono essere eseguiti concorrentemente come processi paralleli.

Cos’è il fork? Un fork , indica lo sviluppo di un nuovo progetto software che parte dal codice sorgente di un altro già esistente. Il fork() consente a un processo di generare un processo figlio: - Padre e figlio condividono lo stesso codice; - Il figlio eredita una copia dei dati (di utente e di kernel) del padre;

Che cos’è il processo padre? Un processo padre è un processo che ha creato uno o più processi figli. Nei sistemi operativi ogni processo è creato quando un altro processo esegue la chiamata di sistema fork(). Il processo che invoca fork() è detto processo padre, mentre il nuovo processo è detto processo figlio. Ciascun processo ha un processo padre, e può avere zero o più processi figli.

Che cos’è il processo figlio? Un processo figlio è un processo che è stato creato da un altro processo, detto processo padre. Nei sistemi operativi un processo figlio è creato (usando la chiamata di sistema fork) come un duplicato del processo padre, da cui eredita una copia di molti degli attributi. Ciò permette di organizzare i processi del sistema in una gerarchia, in cui ogni processo ha un processo padre o più processi figli.

Modello a memoria comune Il sistema è visto come un insieme: Processi Oggetti(risorse) O1 , O4 risorse private O2 , O3 risorse comuni

Il modello a memoria comune rappresenta la naturale astrazione del funzionamento di un sistema in multiprogrammazione costituito da uno o più processori che hanno accesso ad una memoria comune Ad ogni processore può essere associata una memoria privata, ma ogni interazione avviene tramite oggetti contenuti nella memoria comune.

Il modello a scambio di messaggio Ciascun processo evolve in un proprio ambiente che non può essere modificato direttamente da altri processi. Quindi non esiste memoria condivisa e le risorse sono tutte private. Pertanto: non esiste la competizione per l’uso delle risorse non esistendo risorse comuni la cooperazione si realizza mediante lo scambio diretto di messaggi per mezzo di primitive che il S.O. deve rendere disponibili. Il naturale supporto fisico al modello sono i sistemi di elaborazione con architettura distribuita

Mutua esclusione Il problema della mutua esclusione nasce quando più di un processo alla volta può aver accesso a variabili comuni. La regola di mutua esclusione impone che le operazioni con le quali i processi accedono alle variabili comuni non si sovrappongano nel tempo. Nessun vincolo è imposto sull’ordine con il quale le operazioni sulle variabili vengono eseguite.

Affinché sia possibile la mutua esclusione occorrono sei condizioni: un solo processo o thread accede alla regione critica; nessun processo può bloccarsi in sezione critica; evitare deadlock e starvation; nessuna assunzione sulla velocità dei processi; nessun processo fuori dalla sezione critica può impedire ad un altro di entrare; accesso alla sezione critica consentito in un tempo definito.

Startvation e Deadlock Se si scrive un programma in cui diversi thread concorrenti sono in competizione per le risorse, è necessario prendere le dovute precauzioni per garantire l'equità.  Un sistema è giusto quando ogni thread diventa abbastanza l'accesso alle risorse limitate a fare progressi ragionevoli. Un sistema equo impedisce lo startvation e deadlock.  Lo startvation si verifica quando uno o più thread nel programma sono bloccati di avere accesso ad una risorsa e, di conseguenza, non può fare progressi. Il Deadlock  , si verifica quando due o più thread sono in attesa di una condizione che non può essere soddisfatta. Il Deadlock spesso si verifica quando due o più thread sono in attesa di fare qualcosa.

Fine