Git Product home page Git Product logo

onlyrains / mlfq-scheduler-xv6-kernel Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mushahid6666/mlfq-scheduler-xv6-kernel

0.0 1.0 0.0 0 B

Implemented MLFQ scheduler with four priority queues; the top queue (numbered 0) has the highest priority and the bottom queue (numbered 3) has the lowest priority. When a process uses up its time-slice, it should be downgraded to the next (lower) priority level. The time-slices for higher priorities will be shorter than lower priorities.At the bottom queue of there are more than one process, they will be scheduled in Round Robin policy.

C++ 9.07% Perl 0.63% C 80.34% Assembly 4.53% Makefile 5.43%

mlfq-scheduler-xv6-kernel's Introduction

MLFQ-scheduler-xv6-kernel-

Implemented MLFQ scheduler with four priority queues; the top queue (numbered 0) has the highest priority and the bottom queue (numbered 3) has the lowest priority. When a process uses up its time-slice, it should be downgraded to the next (lower) priority level. The time-slices for higher priorities will be shorter than lower priorities.At the bottom queue of there are more than one process, they will be scheduled in Round Robin policy.

1.When a process is first created, it should be placed at the highest priority. Place this process at the end of the high priority queue. At any given point in time, the highest-priority ready process should be run. The time-slice for priority 0 should be 1 timer tick. The times-slice for priority 1 is 2 timer ticks; for priority 2, it is 4 timer ticks; for priority 3, it is 8 timer ticks. When a timer tick occurs, whichever process was currently using the CPU should be considered to have used up a timer tick's worth of CPU. (Yes, a process could game the scheduler this way by relinquishing the CPU just before the timer tick occurs; ignore this!) If a process wakes up after voluntarily relinquishing the CPU (by performing I/O or sleeping), it should be placed at the front of its queue; it should not preempt a process at the same priority. Whenever a process is moved to a different priority level, it should be placed at the end of the corresponding queue. A round-robin scheduler should be used for processes at the lowest priority. There is no mechanism for the priority of a process to be raised again. (Yes, a process could starve and never recieve any CPU if higher-priority processes keep arriving; ignore this!)

graph1.pdf - shows how different process move down the queue over the time graph2.pdf - shows I/O process which remain in the same priority for a long time as the relinquish the CPU before the time slice expire, I/O process moves down the queue when run for a very long time workload.pdf - Explaination of test cases & detailed explaination of the graphs

mlfq-scheduler-xv6-kernel's People

Contributors

mushahid6666 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.