操作系统课设--具有优先级的线程调度

实验二 具有优先级的线程调度(lab2)

概念欠缺
  • .cc是方法实现,.h是头文件
  • cd - 返回上一层

实验环境

虚拟机下Ubuntu Linux 16.04 LTS系统,nachos-3.4内核管理模块和MIPS CPU软件模拟模块,代码在lab2文件夹下面实现。

实验目的

  • 将threads里的内容copy到lab2文件夹下
  • scheduler.cc和scheduler.h,Thread.cc和Thread.h

1. 熟悉Nachos原有的线程调度策略

每个线程都有一个属性记录自己的优先级;相比实验一的Thread.cc中的Thread构造函数,应该加上一个int类型的priority来记录每个线程的优先级。因为线程是通过优先级来进行调度的,优先级调度算法分为抢占式和非抢占式。抢占式调度表示如果一个新的高优先级的线程来到,cpu会停止当前低优先级的线程,先将资源分配给高优先级的线程;非优先级调度算法则是无论新来的线程优先级高低与否,都会等待当前线程完成,再占据下一个位置。
通过实验一可以看出:
在这里插入图片描述
在线程Yield时,线程会找到下一个线程并运行它。看scheduler类,其中ReadyToRun()和Run()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值