Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Fair-share scheduling
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Computer algorithm}} '''Fair-share scheduling''' is a [[scheduling algorithm]] for computer [[operating systems]] in which the [[Central processing unit|CPU]] usage is equally distributed among system users or groups, as opposed to equal distribution of resources among processes.<ref>{{cite web|access-date=2021-12-15 |author=Opinions |date=2018-11-21 |title=Top Interview Questions For A Data Engineer Job Profile |url=https://analyticsindiamag.com/top-interview-questions-for-a-data-engineer-job-profile/ |website=Analytics India Magazine |language=en}}</ref> One common method of logically implementing the fair-share scheduling strategy is to recursively apply the [[round-robin scheduling]] strategy at each level of abstraction (processes, users, groups, etc.) The time quantum required by round-robin is arbitrary, as any equal division of time will produce the same results. This was first developed by Judy Kay and Piers Lauder through their research at the [[University of Sydney]] in the 1980s.<ref name="fairshare"> {{cite journal | last1 = Kay | first1 = J. | last2 = Lauder | first2 = P. | title = A fair share scheduler. | journal = [[Communications of the ACM]] | volume = 31 | issue = 1 | pages = 44β55 | date = January 1988 | doi = 10.1145/35043.35047 | s2cid = 585052 | doi-access = free }} </ref><ref>{{cite web|url=http://www.it.usyd.edu.au/~judy/Research_fair/index.html|title=Judy Kay: FairShare Scheduler|publisher=Judy Kay|access-date=2018-01-24|archive-date=2018-03-26|archive-url=https://web.archive.org/web/20180326192316/http://www.it.usyd.edu.au/~judy/Research_fair/index.html|url-status=dead}}</ref> For example, if four users (A, B, C, D) are concurrently executing one process each, the scheduler will logically divide the available CPU cycles such that each user gets 25% of the whole (100% / 4 = 25%). If user B starts a second process, each user will still receive 25% of the total cycles, but each of user B's processes will now be attributed 12.5% of the total CPU cycles each, totalling user B's fair share of 25%. On the other hand, if a new user starts a process on the system, the scheduler will reapportion the available CPU cycles such that each user gets 20% of the whole (100% / 5 = 20%). Another layer of abstraction allows us to partition users into groups, and apply the fair share algorithm to the groups as well. In this case, the available CPU cycles are divided first among the groups, then among the users within the groups, and then among the processes for that user. For example, if there are three groups (1,2,3) containing three, two, and four users respectively, the available CPU cycles will be distributed as follows: 100% / 3 groups = 33.3% per group<br> Group 1: (33.3% / 3 users) = 11.1% per user<br> Group 2: (33.3% / 2 users) = 16.7% per user<br> Group 3: (33.3% / 4 users) = 8.3% per user
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)