{
"q1": {
"type": "blank",
"question": "\n\n\nIn order to create a ____ policy or ____, we first need to consider our\ntypical ____ or collection of processes running in the system.\nAdditionally, we will need to determine a ____ or means of measuring the\neffectiveness of our decision-making process. For instance, ____ is the\ntime at which the job completes minus the time at which it arrived in the\nsystem. This is in contrast to ____ which is the time from when a job\narrives in a system to the first time it is scheduled.\n\n\n"
},
"q2": {
"type": "multiple",
"question": "\n\n\nAssuming we relax assumption 1, which of the following is true about FIFO\nscheduling (choose all that apply)?\n\n\n",
"responses": {
"preemption": "It requires the ability to preempt jobs.",
"turnaround": "It produces optimal average turnaround times.",
"convoy": "It can suffer from the convoy effect."
}
},
"q3": {
"type": "multiple",
"question": "\n\n\nAssuming we relax assumptions 1 and 2, which of the following is true about\nSJF scheduling (choose all that apply)?\n\n\n",
"responses": {
"preemption": "It requires the ability to preempt jobs.",
"turnaround": "It produces optimal average turnaround times.",
"convoy": "It can suffer from the convoy effect."
}
},
"q4": {
"type": "multiple",
"question": "\n\n\nAssuming we relax assumptions 1, 2, and 3, which of the following is true\nabout STCF scheduling (choose all that apply)?\n\n\n",
"responses": {
"preemption": "It requires the ability to preempt jobs.",
"turnaround": "It produces optimal average turnaround times.",
"convoy": "It can suffer from the convoy effect."
}
},
"q5": {
"type": "blank",
"question": "\n\n\nTo improve ____, the ____ scheduling policy only runs jobs for a brief\nperiod and then switches to the next job in the run queue. This scheduling\npolicy must take care in setting the length of the ____ in order to ____\nthe cost of ____ without making it so long that the system is no longer\nresponsive.\n\n\n"
},
"q6": {
"type": "blank",
"question": "\n\n\nIn general, any policy that is ____, that is evenly divides the CPU among\nactive processes on a small time scale, will perform poorly on metrics such\nas ____ time but well on metrics such as ____ time.\n\n\n"
},
"q7": {
"type": "multiple",
"question": "\n\n\nWhich of the following statements is true about the MLFQ scheduling policy\n(choose all that apply)?\n\n\n",
"responses": {
"queues": "MLFQ uses multiple queues with different priority levels.",
"apriori": "MLFQ requires a priori knowledge of the processes.",
"roundrobin": "MLFQ uses round-robin to schedule jobs of the same priority level.",
"raises": "MLFQ raises the priority of a job that has used up its entire time slice.",
"lowers": "MLFQ lowers the priority of a job once it uses up its allotment at a given level.",
"sjf": "MLFQ approximates SJF because it assumes jobs are short and starts them with the highest priority.",
"starvation": "MLFQ overcomes the problem of starvation by periodically performing a priority boost."
}
},
"q8": {
"type": "multiple",
"question": "\n\n\nWhich of the following statements is true about the proportional-share scheduling policy\n(choose all that apply)?\n\n\n",
"responses": {
"tickets": "Tickets represent the share of a resource a process should receive.",
"random": "The use of randomness is advantageous since it avoids worst case scenarios, is lightweight, and fast.",
"transfer": "Once allocated, a process has a constant number of tickets.",
"guarantee": "Proportional-share scheduling guarantees meeting desired division of work.",
"implementation": "This policy is simple to implement with a random number generator and a linked list that tracks the processes."
}
}
}