Scheduling della CPU Simulazione in linguaggio Java



Documenti analoghi
Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Scheduling della CPU:

Sistemi Operativi SCHEDULING DELLA CPU

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Architettura degli Elaboratori 2

Processi e Thread. Scheduling (Schedulazione)

Architettura degli Elaboratori 2. tipi di scheduling. scheduling. scheduling della CPU (1) Esercitazione 1. politiche di ordinamento dei processi

Sistemi Operativi. 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

Corso di Informatica

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

Lo scheduling. Tipici schedulatori

La schedulazione. E.Mumolo

Processo - generalità

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Scheduling. Lo scheduler è la parte del SO che si occupa di

Lo schedulatore del kernel

GESTIONE DEI PROCESSI

Lo scheduler di UNIX (1)

Pronto Esecuzione Attesa Terminazione

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Scheduling della CPU

Il software. la parte contro cui si può solo imprecare. Il software

SCHEDULATORI DI PROCESSO

Sistemi Operativi (modulo di Informatica II) I processi

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Sistemi Operativi. Scheduling dei processi

Tecniche Automatiche di Acquisizione Dati

Sistemi Operativi Kernel

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst!

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

IL SISTEMA OPERATIVO

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

Scheduling. Scheduling 14/12/2003 1/7

Gestione del processore e dei processi

Algoritmi di scheduling

Scheduling della CPU

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

Scheduling. Tipi di processi. Classi di scheduling. P1 (CPU bound) P2 /I/O bound) Scheduling a lungo termine. A. Ferrari

Java Virtual Machine

Corso di Sistemi di Elaborazione delle informazioni

Sebbene le durate varino secondo il processo e secondo il calcolatore, la curva di frequenza è simile a quella qui riportata.

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Gli stati di un processo

Scheduling. Livelli Algoritmi

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Il Concetto di Processo

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario

Esercitazione E1 Scheduling, deadlock, monitor

5. Scheduling della CPU. 5.1 Concetti Fondamentali Lo scheduler della CPU

5. Scheduling della CPU

Il Sistema Operativo

Sistema Operativo e Applicativi

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Sistema operativo: Gestione dei processi

1

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Capitolo 3 -- Silberschatz

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

J. Assfalg Appunti di Sistemi Operativi

La Gestione delle risorse Renato Agati

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D

Capitolo 6: CPU scheduling

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Introduzione ai Sistemi Operativi

Il descrittore di processo (PCB)

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Scheduling della CPU

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Algoritmi di scheduling

SISTEMI OPERATIVI. E il S.O. in funzione sul computer che consente all utente di poter avviare i programmi applicativi desiderati.

Scheduling della CPU

Transcript:

Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota a.a. 2002/03

Uno sguardo all insieme Introduzione allo scheduling della Cpu Scenario dei componenti implementati Utenti Processi Ready Queue Scheduler e Dispatcher Input/Output CPU

Introduzione Lo Scheduling della Cpu è la base della multiprogrammazione. Lo scopo dello scheduling è ottimizzare la produttività del sistema di elaborazione, assegnando ad ogni istante la risorsa CPU ad uno solo processo, secondo diversi criteri. La simulazione si sviluppa su alcune ipotesi di base che ne hanno permesso una realizzazione alquanto realistica.

Scenario Utente 1 Ready IO Device New Process R E A D Y Q U E U E Ready Scheduler Dispatcher Wait Context switching Run I O Q U E U E Utente N CPU Terminated

SO La classe SO dà una visione generare del sistema, avendo le istanze di tutti i dispositivi che interagiscono nella simulazione. Impone alle classi User e _Process degli intervalli (cpu burst, IO burst, numero di IO, ), utilizzati per limitare la casualità dei valori. Contiene altri parametri specifici.

Utenti Nella nostra simulazione un utente è un thread che ha il solo scopo di creare e lanciare processi, tramite push nella ready queue. Ogni lancio è intervallato da un tempo casuale. Esistono due tipi di utente: User ed _User. La differenza è che il primo genera in modo casuale processi e ritardi di lanci; il secondo viene costruito con processi e ritardi prefissati, viene usato nel confronto di algoritmi.

Processi Un processo è l istanza di una classe, contenente un PID univoco, una priorità, un PC, un burst di cpu ed una sequenza di IO stabiliti durante la creazione, tutto in modo casuale, attenendosi a limiti prefissati. Il suo metodo principale è work(), che incrementa il PC e restituisce lo stato del processo in quell istante, fra: NORMAL_STATUS, IO_STATUS, END_STATUS.

Ready Queue La Ready Queue è un interfaccia implementata da due diverse strutture dati: F.I.F.O e Priority Queue. I push vengono effettuati da User, _User, Dispatcher e IODevice; Il pop viene effettuato esclusivamente dallo Scheduler, in base al proprio criterio di schedulazione.

Scheduler e Dispatcher Scheduling è un interfaccia implementata dai vari algoritmi trattati, allo scopo di rendere universale l utilizzo dello scheduler specifico da parte del Dispatcher. Il Dispatcher è l unico oggetto che comunica con la CPU, attraverso il context switching. Gli algoritmi implementati sono: FCFS SJF Priority Round Robin

First Come First Served L algoritmo FCFS rispetta i canoni di F.I.F.O., in ordine di tempo. Non è prelazionato e quindi ogni processo, una volta acquisita la risorsa CPU, salvo richieste di IO, eseguirà il suo burst totale.

Shortest Job First Nella nostra simulazione l SJF si basa sull ipotesi di sapere anticipatamente il cpu burst successivo di ogni processo (generato nel costruttore di _Process e ottenuto tramite il metodo getnextcpuburst()). Passando un parametro al costruttore, lo si può creare con o senza prelazione. La prelazione avviene tramite uno scambio di messaggi fra la Priority Queue e l SJF, infine con la CPU ( chiamando il metodo interruptrunningps()).

Priority L algoritmo a priorità non fa altro che sfruttare una coda a priorità, che ad ogni push ordina in modo decrescente le istanze di _Process. Può essere prelazionato e non, avere un timer di aging e non. Il timer è implementato attraverso la classe AgingTimer, un thread che ha lo scopo di aumentare la priorità di tutti i processi in coda allo scadere di un tempo prestabilito.

Round Robin Lo scheduling Round Robin è simile ad FCFS, ma ha la prelazione che avviene allo scadere di un quanto di tempo prestabilito. Il quanto di tempo viene scandito all interno della CPU, che blocca l iterazione del metodo work() del processo in esecuzione. Il processo passerà dallo stato running allo stato ready, rientrando nella ReadyQueue tramite il Dispatcher.

Input Output L input output è gestito nella nostra simulazione tramite una IORequest, che un istanza di _Process può richiedere durante l iterazione del suo metodo work(); la CPU rileverà lo stato (IO_STATUS), creerà una richiesta, che tramite il Dispatcher, entrerà in una IOQueue. Il thread IODevice elaborerà questa richiesta (tramite una sleep(n) con n uguale all IO burst richiesto) ed infine rimetterà il processo nella ReadyQueue. Avremo il seguente cambio di stati: running, waiting, ready.

CPU La CPU è il thread con priorità massima. Ad ogni istante richiede un processo allo Dispatcher, lo elabora iterando il metodo work(), fin quando non si verificherà uno dei seguenti eventi: Time slice scaduto (solo con Round Robin) Interruzione esterna (SJF e Priority) Richiesta di IO Terminazione del burst del processo

Interfaccia grafica