Scheduling in Linux (Kernel 2.6)

Slides:



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

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Scheduling A. Ferrari.
Gestione dei processi A. Ferrari.
Universita degli studi di Napoli FedericoII Facoltà di Scienze MM FF NN Corso di laurea in informatica Studenti: Bonaiuto Bruna 566/316 Capano Fabrizio.
Referenti: Prof. Anna Antola Ing. Marco Domenico Santambrogio
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 della Memoria
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
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
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
Scheduling della CPU Concetti di base Criteri di scheduling
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Processi e Thread.
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
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
I Thread.
Scheduling della CPU.
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
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,
Concorrenza e Sincronizzazione di Thread e Processi
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
La schedulazione dei processi
IL PROBLEMA DELLO SCHEDULING
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.
Threads.
Scheduling della CPU.
Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
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)
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
Il nucleo del Sistema Operativo
Estratto dalle slide di Informatica Industriale - DU - 10
Gestione del processore (Scheduler)
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
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.
1 Processi e Thread Processi e thread in Windows 2000.
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
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Sistemi operativi.
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.
© 2016 Giorgio Porcu - Aggiornamennto 18/03/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P.
Definizione e obiettivi del Sistema Operativo. DIFFERENZA TRA SISTEMA OPERATIVO – SOFTWARE APPLICATIVO Sistema operativo è un insieme organico di programmi.
IL NUCLEO Le funzioni del nucleo sono: Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione.
Il Sistema Operativo Processi e Risorse
Scheduling in Linux (Kernel 2.4 e 2.6)
Transcript della presentazione:

Scheduling in Linux (Kernel 2.6)

Versioni Kernel Linux

Scheduling Kernel < 2.6 Nelle versioni del kernel precedenti alla 2.6, lo scheduler aveva complessita’ O(n) dove n e’ il numero di task in competizione per la CPU Per n grande  scheduler inefficiente Nei sistemi MPU, una sola runqueue per tutti i processori: una task poteva quindi essere eseguito in ogni processore: ok per load balancing, ma non per gestione delle cache dei singoli processori un solo lock sulla runqueue: durante la scelta del processo da parte di un processore, gli altri processori rimanevano idle

Scheduling Kernel < 2.6 Infine nello scheduler pre-2.6 non veniva applicata la preemption Un processo a priorita’ bassa poteva girare (fino alla scadenza del suo quanto di tempo) lasciando in attesa processi a priorita’ piu’ alta

Kernel 2.6 Il kernel Linux utilizza usa i thread come unita’ di esecuzione ed implementa un nuovo algoritmo di scheduling rispetto alle versioni precedenti Lo scheduler e’ chiamato ``O(1) scheduler’’ (scritto da I. Molnar) A differenza dello scheduler ``O(n)’’ nelle versioni precedenti infatti opera in tempo costante O(1) indipendentemente dal numero di thread in competizione per la CPU. Motivazione: supportare al meglio il multithreading nella Java Virtual Machine Inoltre supporta in modo piu naturale sistemi multiprocessore

Scheduler Kernel 2.6 Ogni CPU ha una runqueue chiamata active runqueu con 140 code di priorita` (liste) gestite FIFO Prime 100 priorita’: real time task Ultime 40: user tarsk Ogni task ha a disposizione un quanto di tempo (round robin su ogni coda di priorita’) Inoltre ogni CPU ha una expired runqueue con la stessa struttura della active runqueue Quando un processo termina il suo time-slice viene rucalcolata la priorita’ e il processo viene aggiunto in coda alla lista della nuova priorita’ nella expired runqueue Se non ci sono task da eseguire per una certa priorita’ nella active runqueue Si scambiano active ed expired (expired diventa la nuova active runqueue)

Scheduler Il compito dello scheduler e’ quindi quello di eseguire il task nella lista non vuota con maggiore priorita’ Ad ogni priorita’ viene associata una bitmask. Si possono utilizzare operazioni tipo bit-a-bit per rendere l’operazione dipendente dal numero di priorita’ (bit) invece che dal numero di processi Questa proprieta’ rende lo scheduler 2.6 un programma con complessita’ O(1).

Active ed expired runqueue

Altre caratteristiche Lo scheduler 2.6 permette la preemption dei task a minor priorita’ Il calcolo dinamico delle priorita’ (in base all’uso della CPU e di operazioni di I/O) evita starvation Ogni runqueue ha un lock separato lock per sfruttare al meglio un sistema multiprocessore (lo scheduler su una CPU non blocca lo scheduler sulle altre) Inoltre utilizza tecniche di load balancing (es. ogni 200ms controlla il carico e se necessario sposta processi dalla runqueue di un processore ad un’altra)