html5-img
1 / 22

Seminar on Linux Process Management

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

Télécharger la présentation

Seminar on Linux Process Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminar onLinux Process Management Presentation by Tapan Kumar Sahoo UCE BURLA.

  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. The Process List Process Descriptor Handling 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.

More Related