22
Seminar on Linux Process Management Presentation by Tapan Kumar Sahoo UCE BURLA.

Seminar on Linux Process Management

Embed Size (px)

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

Page 1: Seminar on Linux Process Management

Seminar on

Linux Process Management

Presentation by Tapan Kumar SahooUCE BURLA.

Page 2: Seminar on Linux Process Management

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

Page 3: Seminar on Linux Process Management

Process

Process Lightweight Process Process Descriptor

Page 4: Seminar on Linux Process Management

Process Descriptor

Ref: Understanding the Linux Kernel

Page 5: Seminar on Linux Process Management

Process State

TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE TASK_STOPPED TASK_ZOMBIE

Page 6: Seminar on Linux Process Management

Process Descriptor Handling

The Process List

Ref: Understanding the Linux Kernel

Page 7: Seminar on Linux Process Management

continued…

List of Data Structure

Ref: Understanding the Linux Kernel

Page 8: Seminar on Linux Process Management

Process Switch

Hardware ContextHappens only in schedule() functionSteps

- switch page global directory

- switch kernel mode stack and H/W context

Page 9: Seminar on Linux Process Management

The Linux 2.6.8.1 CPU Scheduler

 RunqueuesThe O(1) Scheduling Algorithm

- one Runqueue per CPU

- active priority array

- expired priority array

Page 10: Seminar on Linux Process Management

Use Priority Arrays

active priority arraybitmap[BITMAP_SIZE]

Page 11: Seminar on Linux Process Management

bitmap[BITMAP_SIZE]

Page 12: Seminar on Linux Process Management

Calculating priority

static priority

- nice() system call

- specified by user

- never modified by scheduler

- used to calculate timeslice

Page 13: Seminar on Linux Process Management

continued…

dynamic priority

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

- used for scheduling purpose

Page 14: Seminar on Linux Process Management

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

Page 15: Seminar on Linux Process Management

continued…

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

- scheduler_tick()

- system call

Page 16: Seminar on Linux Process Management

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

Page 17: Seminar on Linux Process Management

System calls

Insert current task in a waitqueueChange state to

TASK_INTERRUPTABLE or TASK_UNINTERRUPTABLE

Invoke schedule() If resource available remove from

waitqueue

Page 18: Seminar on Linux Process Management

Handling real time tasks

Task priority range -20 to 19SCHED_FIFO SchedulingSCHED_RR Scheduling

Page 19: Seminar on Linux Process Management

Scheduler tuning

MIN_TIMESLICE AND MAXI_TIMESLICE

PRIO_BONUS_RATIO STARVATION_LIMIT

Page 20: Seminar on Linux Process Management

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

Page 21: Seminar on Linux Process Management

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/ .

Page 22: Seminar on Linux Process Management

Thank YouThank You.