Presentation is loading. Please wait.

Presentation is loading. Please wait.

Seminar on Linux Process Management Presentation by Manoj Dhage MTech 1 st Year, SIT, IIT Kharagpur.

Similar presentations


Presentation on theme: "Seminar on Linux Process Management Presentation by Manoj Dhage MTech 1 st Year, SIT, IIT Kharagpur."— Presentation transcript:

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.


Download ppt "Seminar on Linux Process Management Presentation by Manoj Dhage MTech 1 st Year, SIT, IIT Kharagpur."

Similar presentations


Ads by Google