Resource Based scheduling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi,
    im studying a topic "Resource Based Scheduling"
It is about scheduling the processes by considering its resource
utilization also.
Present linux scheduler:
  - In linux 2.6 scheduler we have 140 priorities
  - For each priority there is an active and inactive queues
  - Active and inactive queues of a particular priority queues the
processes of that    priority
  - We have a bitmap of 140 bit,where each bit represent a single
priority.
  - When schedule function is called, it first checks the bitmap, find
the first set bit and then goes to that priority queue
  - From that queue it selects the first process( i.e. it uses round
robin)
Resource Based Scheduling says that instead of selecting the first
process in round robin fashion, we will consider the resources
utilzation of the processes in queue and then decide which one to be
executed.
A certian window size( calculated static or dynamically) is considered
so that it won't keep scaning the whole queue, making it O(n).
They have considered metrics like processor usage, virtual memory page
faults and disk activity..
- To monitor the resource utilization by the processes, they are not
using daemon, but making a change to task_struct.  An additional field
is added to keep the track.
- When a context switch occurs, these fileds are updated.
- Monitoring how active a process was previously, and using that metric
to determine whether it is suitable to run with existing process on the
priority array.
- They have determine the last runtime of a process, using this value
as a hint towards how processor intensive that process is and what its
current and future source requirements are.
- Using these knowledge of resource utilization, scheduling is done.
- If the previous process was mostly processor bound, RBS attempts to
schedule the least processor bound process in that queue and viceversa.
- The overall system design seeks to always select the process that is
the most directly opposite in resource requirements to the most
recently executed process. In this way, selecting the process that
requires resources that are not in use. Intuitively, this avoids
hardware contention and greatly reduces hardware thrashing.
Question:
  They say that  they considered the previous process resource
utilization and made scheduling decision.
  - well how does it matters ,the previous process resource utilization
because that process have already been executed and removed from the
queue?
  - why not consider the resources utilization of the processes runing
at that time?
DIsk usage:
        They have also given a small description about disk usage. Variuos
metrics are considered like
- Tracks the number of bytes read and written on a per-process basis.
- Tracks the number of system calls made to read and write data to the
disk.
Can you suggest how these metrics can be used to make more intelligent
scheduling decisions??
Also How virtual memory page faults knowledge can help in making better
scheduling decision?
 
 
Pliz pass your suggestions..


Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls. Great rates starting at 1¢/min.

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux