云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 北科大操作系统实验报告

北科大操作系统实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 14:14:44

操作系统实验报告

学院: 专业: 班级: 学号: 姓名: 指导教师:

成绩:

计算机与通信工程学院 计算机与科学技术

王成耀

2015年 1 月4 日

实验一 线程的状态和转换(5分)

1 实验目的和要求

目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求:

(1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线程状态及其转换的相关源代码;

(2)修改EOS的源代码,为线程增加挂起状态。

2 完成的实验内容

2.1 EOS线程状态转换过程的跟踪与源代码分析

(分析EOS中线程状态及其转换的核心源代码,说明EOS定义的线程状态以及状态转换的实现方法;给出在本部分实验过程中完成的主要工作,包括调试、跟踪与思考等) //使 Zero 状态或者运行状态的线程转入就绪状态 VOID

PspReadyThread( { }

//取消线程的就绪状态,使线程转入 Zero 状态 VOID

PspUnreadyThread( {

ASSERT(NULL != Thread && Ready == Thread->State);

// 将线程从所在的就绪队列中取出,如果线程优先级对应的就绪队列变为空, // 则清除就绪位图中对应的位。

ListRemoveEntry(&Thread->StateListEntry);

if(ListIsEmpty(&PspReadyListHeads[Thread->Priority])) {

BIT_CLEAR(PspReadyBitmap, Thread->Priority);

1

PTHREAD Thread )

ASSERT(NULL != Thread);

ASSERT(Zero == Thread->State || Running == Thread->State);

// 将线程插入其优先级对应的就绪队列的队尾,并设置就绪位图中对应的位。 // 最后将线程的状态修改为就绪状态。

ListInsertTail(&PspReadyListHeads[Thread->Priority], &Thread-BIT_SET(PspReadyBitmap, Thread->Priority); Thread->State = Ready;

>StateListEntry);

PTHREAD Thread )

}

}

Thread->State = Zero;

//使处于等待状态的线程脱离等待队列并转入 Zero 状态 VOID

PspUnwaitThread( { }

2.2为线程增加挂起状态的实现

(给出实现方法的简要描述、源代码、测试和结果等) {

STATUS Status; BOOL IntState; THREAD Thread;

// 根据线程句柄获得线程对象的指针

Status = ObRefObjectByHandle(hThread, sThreadTye, (VOID*)&Thread); if (EOS_SUCCESS(Status)) { }

2

IN PTHREAD Thread )

ASSERT(Waiting == Thread->State);

// 将线程从所在等待队列中移除并修改状态码为Zero。 ListRemoveEntry(&Thread->StateListEntry); Thread->State = Zero;

// 如果线程注册了等待计时器,则注销等待计时器。 if (STATUS_TIMEOUT == Thread->WaitStatus) { }

KeUnregisterTimer(&Thread->WaitTimer);

IntState = KeEnableInterruts(FALSE); // 关中断 if (Zero == Thread->State) { }

KeEnableInterruts(IntState); ObDerefObject(Thread);

// 开中断

ListRemoveEntry(&Thread->StateListEntry); sReadyThread(Thread); sThreadSchedule();

Status = STATUS_SUCCESS; Status = STATUS_NOT_SUORTED;

} else {

}

return Status;

3

搜索更多关于: 北科大操作系统实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

操作系统实验报告 学院: 专业: 班级: 学号: 姓名: 指导教师: 成绩: 计算机与通信工程学院 计算机与科学技术 王成耀 2015年 1 月4 日 实验一 线程的状态和转换(5分) 1 实验目的和要求 目的:熟悉线程的状态及其转换,理解线程状态转换与线程调度的关系。 要求: (1)跟踪调试EOS线程在各种状态间的转换过程,分析EOS中线

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com