Download presentation
Presentation is loading. Please wait.
Published bySuzanna Pitts Modified over 9 years ago
1
Seminar on Linux Process Management Presentation by Manoj Dhage MTech 1 st Year, SIT, IIT Kharagpur.
2
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
3
Process Process Lightweight Process Process Descriptor
4
Process Descriptor Ref: Understanding the Linux Kernel
5
Process State TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE TASK_STOPPED TASK_ZOMBIE
6
Process Descriptor Handling The Process List Ref: Understanding the Linux Kernel
7
continued… List of Data Structure Ref: Understanding the Linux Kernel
8
Process Switch Hardware Context Happens only in schedule() function Steps -switch page global directory -switch kernel mode stack and H/W context
9
The Linux 2.6.8.1 CPU Scheduler Runqueues The O(1) Scheduling Algorithm - one Runqueue per CPU - active priority array - expired priority array
10
Use Priority Arrays active priority array bitmap[BITMAP_SIZE]
11
bitmap[BITMAP_SIZE]
12
Calculating priority static priority -nice() system call -specified by user -never modified by scheduler - used to calculate timeslice
13
continued… dynamic priority -subtracts –5 to +5 from static priority depending on the time spend in running or waiting -used for scheduling purpose
14
The schedule() function. steps involved -find process with maximum dynamic priority -prev and next pointers to process descriptors -switch to next switch page global directory switch kernel mode stack
15
continued… Called in prev, return in next Why this is O(1) Invoked by -scheduler_tick() -system call
16
scheduler_tick() Invoked every 1 ms by timer interrupt Do 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
17
System calls Insert current task in a waitqueue Change state to TASK_INTERRUPTABLE or TASK_UNINTERRUPTABLE Invoke schedule() If resource available remove from waitqueue
18
Handling real time tasks Task priority range -20 to 19 SCHED_FIFO Scheduling SCHED_RR Scheduling
19
Scheduler tuning MIN_TIMESLICE AND MAXI_TIMESLICE PRIO_BONUS_RATIO STARVATION_LIMIT
20
Future scope Scheduler modes -server mode, bigger timeslice -desktop mode, more responsiveness Swappable schedulers -different scheduler for different users -basic kernel scheduler would be round robin
21
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/.
22
Thank You Thank You.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.