1 / 6

Project 3 Roadmap

Project 3 Roadmap. Multilevel Feedback Scheduling Semaphores. Multilevel Feedback Scheduling. struct Kernel_Thread in kthread.h current queue: int currentReadyQueue blocked state: bool blocked there are 4 run queues now: s_runQueue[MAX_QUEUE_LEVEL] in kthread.c

niveditha
Télécharger la présentation

Project 3 Roadmap

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. Project 3 Roadmap Multilevel Feedback Scheduling Semaphores

  2. Multilevel Feedback Scheduling • struct Kernel_Thread in kthread.h • current queue: int currentReadyQueue • blocked state: bool blocked • there are 4 run queues now: • s_runQueue[MAX_QUEUE_LEVEL] in kthread.c • a thread is initially in s_runQueue[0] • except IDLE thread that enters at 3 when switching to MLF mode • check the scenarios • Find_Best() automatically pick the highest priority thread in a queue • Get_Next_Runnable() will call Find_Best() for each queue until it finds a ready process

  3. Multilevel Feedback Scheduling • end of quantum ? • if blocked promote • if has just run demote (check TODO in Timer_Interrupt_Handler() defined in timer.c) • make sure your Sys_SetSchedulingPolicy() works before stuff gets complicated • A thread becomes blocked in Wait().

  4. Semaphores • rough guideline • add two files sem.h/sem.c • create a semaphore structure • each has a thread queue, count, name, etc • P/V semantics • P decrease, block if needed • V increase, never blocks • section 7.4.2 in the textbook, pp 203

  5. Testing Your Code • workload.exe [rr/mlf] [quantum] • ping.exe & pong.exe

  6. GetTimeOfDay() • Sys_GetTimeOfDay - trivial • (return g_numTicks)

More Related