MIT JOS # Round­Robin Scheduling#

MIT JOS # Round-Robin Scheduling#

 下面是MIT JOS里 round-robin调度策略的实现.

在 kern/sched.c里面

下面的截图来自<<Modern Operating system>> (以前搬过的砖也是有好处的哇~)

结合代码就能够很形象的理解Round-robin.

每当我们调用sched_yeild()的时候,我们就打算让当前进程让出CPU了.

于是把 idle = thiscpu->cpu_env;

我们每次都让出当前进程,然后让队列中离当前进程"最近"的进程运行,使用CPU

这里我提到的所谓的队列也不是什么优先队列,round robin里面把所有的进程都考虑成同样重要,没有权重之分.

只是所有的env结构体都是连续结构体的.能够利用索引查找他们.

此外还有其他的各种调度策略,可以去看看<<Modern Operating System>>

时间: 2024-10-10 03:19:05

MIT JOS # Round­Robin Scheduling#的相关文章

MIT 操作系统实验 MIT JOS lab3

MIT JOS lab3 Allocating the Environments Array In lab 2, you allocated memory in  mem_init()  for the  pages[]  array, which is a table the kernel uses to keep track of which pages are free and which are not. You will now need to modify  mem_init()  

MIT 操作系统实验 MIT JOS lab4

MIT JOS lab4 写在前面的碎碎念~ : 经历了LAB 3的洗礼,死磕到了lab 4. 这里还是首先向各位为JOS 实验做过笔记,写过博客,把自己实验代码托管到JOS上面的先行者们致敬! 如果没有这么好的开源环境, 这么好的东西学不来. 珍惜, 不用嘴. Doing is better than saying! -----------------------------------------------------------------------------------------

HNU Round Robin (约瑟夫)

Round Robin Time Limit: 2000ms, Special Time Limit:5000ms, Memory Limit:65536KB Total submit users: 37, Accepted users: 30 Problem 12940 : No special judgement Problem description Suppose that N players sit in order and take turns in a game, with the

MIT 操作系统实验 MIT JOS lab2

MIT JOS lab2 在/kern/kdebug.c 里面会看到这段代码,关注下面的__STAB_BEGIN__ 那段代码 __STAB_BEGIN__   __STAB_END__相关定义在/kern/kernel.ld里面 下面我给出了kernel.ld的主要内容 ENTRY(_start) SECTIONS { /* Link the kernel at this address: "." means the current address */ . = 0xF0100000

Round robin

http://www.computerhope.com/jargon/r/rounrobi.htm Round robin Round robin is a method of distributing multiple sources to one of the many devices or connections. For example, a company may have multiple servers that are identical to each other. When

round robin schedule(循环日程表)

the source of the article:https://github.com/Fibird/Round-robin-schedule #include <iostream>#include <math.h> #define N 3 using namespace std; int main(){ int sche = pow(2.0, N); //the number of athlete int **arr = new int*[sche]; int bw = 1;

Set the Round Robin IOPS limit from 1000 to 1

https://kb.vmware.com/s/article/2069356 http://www.enterprisedaddy.com/2017/02/set-round-robin-iops-limit-default-1000-1-using-powercli/ 1,Query the paths of the LUNesxcli storage nmp path list --device naa.60000971111492600622233032393333 2,Set the

MIT JOS学习笔记01(2016.10.22)

一.环境配置 关于MIT课程中使用的JOS的配置教程网上已经有很多了,在这里就不做介绍,个人使用的是Ubuntu 16.04 + qemu.另注,本文章中贴出的代码均是JOS中未经修改的源代码,其中有一些细节是MIT课程中要求学生自己实现的. 二.代码分析 1.boot.S(AT&T汇编格式) / boot.asm 1 #include <inc/mmu.h> 2 3 # Start the CPU: switch to 32-bit protected mode, jump into

MIT 操作系统实验 MIT JOS lab1

JOS lab1 嘿嘿,实验环境还是相当的友好的. 很多东西都准备好了.把重点放在理论的印证上面. MIT才是改变并引领世界的牛校,心神往之,吾身不能至啊~ 国内的北大,上交等学校的OS实验都是直接用的JOS,这点证据还是容易找的...说明什么,不言而喻咯... ----------------------------------------------------------------------------------------------------------------------