A particular multiprocessor operating system uses a separate ready list for each
ID: 3908576 • Letter: A
Question
A particular multiprocessor operating system uses a separate ready list for each processor to avoid to have to solve the problem of sharing the ready list between multiple processors. Of course one problem with this solution is that it might happen that one ready list is empty while there are still threads in other ready lists. Thus one processor will be idle where there is work to do. Suppose we try to solve this problem by moving threads from a non-empty ready list to the empty ready list. Why is this not a real solution to the problem?
Explanation / Answer
The OS is designed to run threads in the same address space to avoid memory overutilization as there can be many threads running and if an address space is not defined then it can take up unnecessary space scattered space in the memory, which can lead to fragmentation. If threads are moved to a different ready list then there is a possibility of fragmentation. Another major problem is the usage of semaphores. A semaphore is a variable that marks the availability of a resource. So if threads are moved to ready queue it means that the thread will soon begin executing and block semaphores for execution hence that resource will not be available for other processes utilization.
Threads are created for parallelism but if threads are moved to a ready queue then other processes are hampered and they slow down. Hence threads need not to be always moved to a ready list since threads run in the background and it can be given ample amount of time to execute as its not hampering anything and give change to other processes to enter a empty ready list and start execution of it quickly.
I have answered your question. Please do not forget to give a positive feedback to the answer. Thank you.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.