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

STRUTTURA DEL SISTEMA OPERATIVO
Gestione della Memoria
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.
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Scheduling A. Ferrari.
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:
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.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Scheduling in Linux (Kernel 2.6)
Il sistema operativo.
5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione.
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Processi Concetto di processo Scheduling dei processi
Scheduling della CPU Concetti di base Criteri di scheduling
Dipartimento di Ingegneria dell’informazione Università di Siena
INTRODUZIONE AI SISTEMI OPERATIVI
Risorse e Stallo.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Scheduling della CPU: Sistemi Operativi I
Scheduling dei processi.
Scheduling della CPU.
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Introduzione ai Sistemi Operativi
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,
Fondamenti di Informatica
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Elementi di Informatica di base
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,
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.
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
Threads.
Scheduling della CPU.
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,
Gestione del Processore (Scheduling)
Il nucleo del Sistema Operativo
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Gestione del processore (Scheduler)
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Processi e Thread Processi e thread in Windows 2000.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
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.
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.
Informatica Generale Marzia Buscemi
IL NUCLEO Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione dei processi con.
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:
Scheduler e politiche di Marco Arcamone.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
IL NUCLEO Le funzioni del nucleo sono: Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione.
Processi e thread in Windows 2000
Scheduling (Schedulazione)
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 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione Lalgoritmo di scheduling ha impatto su: –prestazioni percepite dagli utenti –efficienza nellutilizzo delle risorse della macchina Lo scheduling ha obiettivi diversi in diversi sistemi (batch, interattivi…)

3 Introduzione al problema dello Scheduling (2) Obiettivi principali degli Algoritmi di Scheduling: Fairness - processi della stesso tipo devono avere trattamenti simili Balance - tutte le parti del sistema devono essere sfruttate (CPU, dispositivi …) Sistemi batch –Throughput (produttivita')- massimizzare il numero di job completati in un intervallo di tempo –Turnaround Time (tempo medio di completamento)- minimizzare il tempo di permanenza di un job nel sistema Sistemi interattivi –Response time - minimizzare il tempo di riposta agli eventi –Proportionality - assicurare che il tempo di risposta sia proporzionale alla complessità dellazione richiesta

4 Introduzione al problema dello Scheduling (3) Due tipologie di processi : –processi CPU-bound -- lunghi periodi di eleborazione fra due richieste successive di I/O –processi I/O-bound -- brevi periodi di elaborazione fra due richieste successive di I/O Conviene dare priorità ai processi I/O-bound

5 Introduzione al problema dello Scheduling (4) Quando si attiva lo schedulatore: –Creazione di un processo –Uscita di un processo –Quando c'e' richiesta di I/O –Quando avviene un interrupt –Interruzione di clock (prerilascio/no-prerilascio)

6 Introduzione al problema dello Scheduling (5) Scheduling senza prerilascio –lo scheduler interviene solo quando un processo viene creato, termina o si blocca Scheduling con prerilascio –lo scheduler può intervenire ogni volta che è necessario per ottenere gli obiettivi perseguiti quando diventa ready un processo a più alta priorità rispetto a quello in esecuzione quando il processo in esecuzione ha sfruttato la CPU per un tempo abbastanza lungo

7 Introduzione al problema dello Scheduling (6) Scheduling in sistemi batch –FCFS (First-Come First-Served) –SJF (Shortest Job First) –SRTN (Shortest Remaining Time Next) Scheduling in sistemi interattivi –Round Robin –Code Multiple ________ ________ ________ CPU BOUND

8 Scheduling nei sistemi Batch (1) Un esempio di scheduling secondo la strategia che privilegia il job più corto (SJF Shortest Job First) –linsieme dei job da schedulare è noto allinizio –si conosce il tempo di esecuzione T di ogni job –i job sono schedulati in ordine di T crescente –SJF minimizza il tempo di turnaround medio –non cè prerilascio Tempo di completamento A 8 min B 12 min C 16 min D 20 min ========== medio 14 min Tempo di completamento B 4 min C 8 min D 12min A 20 min ========== medio 11 min

9 Scheduling nei sistemi Batch (2) Perché SJF funziona? 4 job A,B,C,D con tempi di esecuzione a, b, c, d –turnaround(A) -- a –turnaround(B) -- a + b –turnaround(C) -- a + b + c –turnaround(D) -- a + b + c + d turnaround totale 4a + 3b + 2c + 1d minimo quando a,b,c,d sono in ordine crescente

10 Scheduling nei sistemi Batch (3) Tre livelli di scheduling

11 Scheduling nei sistemi Batch (4) Admission scheduler –decide quali job (sottomessi, memorizzati su disco) ammettere nel sistema (viene creato il processo corrispondente) Memory scheduler –i job ammessi devono essere caricati in memoria centrale prima di poter essere eseguiti –se non tutti i job entrano in MC, il memory scheduler sceglie quali job caricare in memoria e quali tenere su disco (swapped out) CPU scheduler –lo scheduler che abbiamo trattato finora

12 Scheduling nei sistemi Interattivi Scheduling Round Robin (1) –(a) lista dei processi pronti –(b) lista dei pronti dopo che B ha usato il suo quanto (quantum) di tempo loop: jmp loop ; (idle)

13 Scheduling Round Robin (2) Come fissare il quanto di tempo –deve essere abbastanza lungo da ammortizzare il costo di un context switch (ordine 1 ms) –deve essere abbastanza breve da permettere una risposta veloce agli utenti interattivi –in sistemi reali tipicamente ms RR non favorisce i processi I/O bound

14 Scheduling con priorità (1) Ogni processo ha una priorità Ogni volta va in esecuzione il processo a priorità più elevata Punti chiave : –come assegnare le priorità (statiche, dinamiche…) –come evitare attesa indefinita della CPU nei processi a priorità più bassa –come individuare i processi I/O bound

15 Scheduling con priorità (2) Molte strategie per il calcolo della priorità Tipicamente : –priorità dinamica (es. più elevata per i processi che passano da blocked a ready) –legata alla percentuale f del quanto di tempo che è stato consumato lultima volta che il processo è andato in esecuzione (es. proporzionale a 1/ f, favorisce i processi I/O bound) –decrescente nel tempo per i processi che rimangono ready (es. per impedire lattesa indefinita)

16 Scheduling con Code multiple (1) Esempio di algoritmo di scheduling a code multiple con 4 classi di priorità

17 Scheduling con Code multiple (2) Scheduling Round Robin allinterno della classe con priorità più elevata I processi che usano tutto il quanto di tempo più di un certo numero di volte vengono passati alla classe inferiore Alcuni sistemi danno quanti più lunghi ai processi nelle classi basse (compute-bound) per minimizzare loverhead del cambio di contesto

18 Shortest Process Next Tempo stimato per comando usando euristica di aging Tnew= a Told+(1-a)T1 scelgo a=1/2 Tnew=T0 Tnew=1/2(T0)+1/2(T1)=1/2(T0+t1) Tnew=T0/4+T1/4+T2/2 Tnew=T0/8+T1/8+T2/4+T3/2.....

19 Altri approcci Scheduling garantito Scheduling a lotteria Scheduling equo user #1 {A,B,C,D} user #2 {E} AEBECEDEAEBECEDE...

20 Politiche e meccanismi Separare quello che si può fare da come viene fatto –un processo conosce le caratteristiche dei suoi figli e può schedularli in modo più efficace dello scheduler generico presente nel kernel Algoritmi di scheduling parametrici –il kernel mette a disposizione i meccanismi per la schedulazione in modo parametrico I parametri vengono forniti dal processo utente –i valori dei parametri fissano la politica da seguire (es: influenzano il calcolo della priorità)

21 Scheduling dei Thread (1) Un possibile scheduling per thread user-level il quanto di ogni processo è 50-msec ogni thread occupa la CPU per 5 msec algoritmi più usati: round robin, priorità

22 Scheduling dei Thread (2) Un possibile scheduling per thread kernel-level Tipicamente esiste una thread table unica per tutti i processi