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,

Slides:



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

PROCESS MANAGEMENT: STRUTTURE DATI
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.
Il Sistema Operativo.
Orario definitivo Martedì Aula 2 Polo Mercoledì Aula 1 Fondi Palazzina delle Scienze Giovedì 9-11 Aula 1 Fondi Palazzina delle Scienze Nota:
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 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.
SC che operano su processi
I segnali.
1 System Call per Comunicazione tra Processi Pipe.
Scheduling in Linux (Kernel 2.6)
I processi Concetto di processo Scheduling dei processi
Processi Concetto di processo Scheduling dei processi
File.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Threads: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica
I Thread.
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 SCHEDULING DELLA CPU.
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,
I File.
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
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.
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)
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)
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.
1 Esercitazione finale per il corso di Sistemi Operativi (A.A. 2001/2002)
Gestione del processore (Scheduler)
1 SC che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
1 Amministrazione dei processi nel sistema operativo Unix (Bach: the Design of the Unix Operating System (cap: 6, 7, 8)
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.
I segnali.
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.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
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 System Call che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
Informatica Generale Marzia Buscemi
1 System Call che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Processi e thread in Windows 2000
LINUX: struttura generale
Transcript della presentazione:

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, ecc..) Fa una segnalazione ad un oggetto (rilascia un semaforo) Termina il suo quanto di tempo. Lo scheduler gestisce un array con 32 entry (liste di thread, una per ogni priorità dei thread)

2 Scheduling in Windows 2000 Windows 2000 fornisce 32 priorità diverse per i thread

3 Scheduling in Windows 2000 Win32 permette allutente di specificare : –priorità di un processo (6 livelli diversi) –priorità di un thread allinterno di un processo (7 livelli diversi) Attraverso le API SetPriorityClass e SetThreadPriority Windows 2000 mappa le 42 combinazioni possibili su 32 livelli di priorità

4 Scheduling in Windows 2000 Corrispondenza fra le priorità di Win32 e quelle di Windows 2000

5 Scheduling in Windows 2000 Algoritmo di scheduling : Si esegue il primo thread della prima coda non vuota per massimo 1 quanto (20ms--120ms) Scheduling round robin fra thread con la stessa priorità Come variano le priorità nel tempo : –i thread tipicamente entrano a priorità 8 –la priorità viene elevata se: viene completata una operazione di I/O (+1 disco, +2 linea seriale, +6 tastiera, +8 scheda audio …) termina lattesa su un semaforo, mutex linput nella finestra di dialogo associata al thread è pronto

6 Scheduling in Windows 2000 Algoritmo di scheduling : Come variano le priorità nel tempo –la priorità viene abbassata se: un thread usa tutto il suo quanto (-1) –se un thread non ha girato per un tempo maggiore di una soglia fissata, allora passa per 2 quanti a priorità 15 (serve a gestire potenziali inversioni di priorità)

7 Lo scheduler di Linux Vengono schedulati i thread, non i processi Tre classi di thread : real-time FIFO, real-time Round Robin, Timesharing Ogni thread ha –una priorità nellintervallo [0, +40], generalmente allinizio la priorità di default è 20 (può essere variata con la system call nice(valore) : nuova_priorità = 20 – valore) –un quanto (misurato in jiffy o tick = 10ms) Lo scheduler calcola la goodness (gdn) di ogni thread come if (class == real-time) gdn = priority if (class == timeshar && quantum > 0) gdn = quantum + priority if (class == timeshar && quantum == 0) gdn = 0

8 Lo scheduler di Linux Algoritmo di scheduling : Ogni volta viene selezionato il thread con goodness maggiore Ogni volta che arriva un tick (segnale del clock) il quanto del processo in esecuzione viene decrementato Un thread viene de-schedulato se si verifica una delle seguenti condizioni –il quanto diventa 0 –il thread si blocca su semafori, mutex, ecc.. –diventa ready un thread con una goodness maggiore

9 Lo scheduler di Linux Algoritmo di scheduling: Quando tutti i quanti dei processi ready sono andati a 0, lo scheduler ricalcola il quanto di ogni processo (anche se blocked) come segue : quantum = quantum / 2 + priority Perche i processi bloccati avranno del quantum rimanente.

10 LINUX: struttura generale The layers of a UNIX system. User Interface

11 Processi in LINUX Ogni processo nasce con un solo thread Un processo gira in modalità utente; quando effettua una system call passa in modalità kernel e può operare sulle risorse del sistema. Il kernel possiede due strutture per ogni processo: –process table e user structure

12 Gestione dei Processi Process table : risiede sempre in RAM Contiene: parametri per lo scheduling (priorità, tempo consumato, ecc.) immagine di memoria (punatori alle aree di memoria e al disco). informazioni sui segnali (quali segnali gestire, ignorare, ecc.) Stato del processo PID, PID del padre user e group id.

13 Gestione dei Processi User structure risiede su disco se il processo è swapped Contiene informazioni non necessarie quando il processo non è in esecuzione: –Registri macchina –tabella dei descrittori di file aperti –stato della system call corrente (parametri) –kernel stack –informazioni di accounting (tempo CPU, limiti, ecc.)

14 Creazione di Processi int pid = fork() –crea una copia esatta del processo invocante –restituisce 0 al figlio ed il PID del figlio al padre –duplica i dati e lo stack del padre nel figlio in unarea di memoria differente –i file aperti dal padre sono condivisi al figlio –Il figlio eseguirà lo stesso codice del padre

15 Creazione di Processi execl (nome_con_path, nome, argv) –Fa eseguire a un processo un codice diverso, con diversi parametri –Nome_con_path = nome delleseguibile compreso di path –nome = nome delleseguibile –Argv = lista di parametri deleseguibile separati da virgola, terminati da NULL Esempio di processo che lancia ls -l execv (/bin/ls, ls, -l, NULL); Esistono altre chiamate con differenti argomenti: execv, execve, execle, ecc..

16 Terminazione di processi wait(&status) –attende la terminazione di un processo figlio –dopo lesecuzione di wait, status contiene lesito della computazione del processo figlio (il codice di uscita del figlio e altre informazioni) exit(status) –termina il processo e restituisce il valore di status al padre (nella variabile status restituita da wait)

17 Terminazione di processi Processi zombie –processi terminati il cui padre non ha (ancora) eseguito la wait() –attendono di restituire il codice di terminazione e svanire, altrimenti rimangono zombie e sono eliminati da uno speciale processo detto init

18 Comunicazione fra processi Pipe : file speciali utilizzati per connettere due processi con un canale unidirezionale di comunicazione Se B cerca di leggere da una pipe vuota si blocca Se A scrive su una pipe piena, viene bloccato fino a che non viene letto qualcosa Lampiezza della pipe dipende dal sistema

19 Comunicazione fra processi Una pipe si crea con listruzione: int pd[2]; pipe(pd); Si legge da pd[0] e si scrive su pd[1] Per leggere: read (pd[0], buffer, lung); Per scrivere: write (pd[1], buffer, lung); Dove buffer è unarray di caratteri e lung è la lunghezza del messaggio.

20 Comunicazione fra processi Segnali (interruzioni software) –comunicano al processo il verificarsi di una certo evento –possono essere inviati solo ai membri del proprio gruppo (antenati, discendenti) –generalmente possono essere ignorati, catturati o possono terminare il processo (default per molti segnali) –per i segnali catturabili si può specificare un signal handler che viene mandato in esecuzione appena il segnale viene rilevato

21 Comunicazione fra processi Segnali (cont.) –particolari combinazioni di tasti inviano dei segnali al processo in foregroud Control-C corrisponde a SIGINT Control-Z corresponde a SIGTSTP –i segnali servono anche al SO per a comunicare al processo il verificarsi di particolari eventi (es. SIGFPE, errore floating-point)

22 I segnali previsti da POSIX

23 Chiamate di sistema relative ai processi s è un codice di errore pid è il codice di identificazione di un processo