Seminar on Linux Process Management

Preview:

DESCRIPTION

Seminar on Linux Process Management. Presentation by Tapan Kumar Sahoo UCE BURLA. Outline. Process -process descriptor, process state, process switch. The Linux 2.6.8.1 Scheduler -Runqueues, priority arrays -Calcucalation of priorities and timeslices, -schedule() function - PowerPoint PPT Presentation

Citation preview

Seminar on

Linux Process Management

Presentation by Tapan Kumar SahooUCE BURLA.

Outline

Process

- process descriptor, process state, process switch.

The Linux 2.6.8.1 Scheduler

- Runqueues, priority arrays

- Calcucalation of priorities and timeslices,

- schedule() function

- Scheduler tuning

Process

Process Lightweight Process Process Descriptor

Process Descriptor

Ref: Understanding the Linux Kernel

Process State

TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE TASK_STOPPED TASK_ZOMBIE

Process Descriptor Handling

The Process List

Ref: Understanding the Linux Kernel

continued…

List of Data Structure

Ref: Understanding the Linux Kernel

Process Switch

Hardware ContextHappens only in schedule() functionSteps

- switch page global directory

- switch kernel mode stack and H/W context

The Linux 2.6.8.1 CPU Scheduler

 RunqueuesThe O(1) Scheduling Algorithm

- one Runqueue per CPU

- active priority array

- expired priority array

Use Priority Arrays

active priority arraybitmap[BITMAP_SIZE]

bitmap[BITMAP_SIZE]

Calculating priority

static priority

- nice() system call

- specified by user

- never modified by scheduler

- used to calculate timeslice

continued…

dynamic priority

- subtracts –5 to +5 from static priority depending on the time spend in running or waiting

- used for scheduling purpose

The schedule() function.

steps involved- find process with maximum dynamic priority- prev and next pointers to process

descriptors- switch to next

switch page global directoryswitch kernel mode stack

continued…

Called in prev, return in nextWhy this is O(1) Invoked by

- scheduler_tick()

- system call

scheduler_tick()

Invoked every 1 ms by timer interruptDo not always invoke schedule()Whenever a task runs out of time slice,

it is given new time slice and dynamic priority and put in expired array

Reinsert interactive task on active array If there is no active task swap the

pointers of active and expired arrays

System calls

Insert current task in a waitqueueChange state to

TASK_INTERRUPTABLE or TASK_UNINTERRUPTABLE

Invoke schedule() If resource available remove from

waitqueue

Handling real time tasks

Task priority range -20 to 19SCHED_FIFO SchedulingSCHED_RR Scheduling

Scheduler tuning

MIN_TIMESLICE AND MAXI_TIMESLICE

PRIO_BONUS_RATIO STARVATION_LIMIT

Future scope

Scheduler modes

- server mode, bigger timeslice

- desktop mode, more responsivenessSwappable schedulers

- different scheduler for different users

- basic kernel scheduler would be round robin

3. References

Josh Aas, “Understanding the Linux 2.6.8.1 CPU Scheduler”,

February 2005. Abraham Silberschatz, Greg Gagne, Peter Galvin,

“Operating System Concepts”, Wiley. Daniel P. Bovet, Marco Cesati, “Understanding the Linux Kernel”,

2ndEdition. O’Reilly, July 2003. http://plg.uwaterloo.ca/~itbowman/CS746G/a1/ .

http://josh.trancesoftware.com/linux/ .

Thank YouThank You.

Recommended