操作系统课程设计实验报告.pdf

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

操作系统课程设计实验报告

年月日成绩:

沈XX

姓名夏XX学号班级

江XX

计算机科学与技

专业课程名称操作系统课程设计

任课老指导老

师师

实验序实验名

1进程调度管理

号称

实验时18年实验地

1教南1楼

间10月点

一、题目说明

(1)用C语言完成线程的创建和撤消,并按先来先服务方式对

多个线程进行调度。

(2)将线程调度算法修改为时间片轮转算法,实现时间片轮转

调度。(也可以结合优先权,实现优先权加时间片轮转算法的线程调

度。)

(3)改变时间片的大小,观察结果的变化。思考:为什么时间

片不能太小或太大。

(4)假设两个线程共用同一软件资源(如某一变量,或某一数

据结构),请用记录型信号量来实现对它的互斥访问。

(5)假设有两个线程共享一个可存放5个整数的缓冲,其中一

个线程不停地计算1至50的平方,并将结果放入缓冲中,另一个

线程不断地从缓冲中取出结果,并将它们打印出来,请用记录型信

号量实现这一生产者和消费者的同步问题。

(6)实现消息缓冲通信,并与4、5中的简单通信进行比较。

(7)思考:在线程间进行消息缓冲通信时,若对消息队列的访

问没有满足互斥要求,情况将会怎样?

二、设计方案(系统框架)

该程序主要是分5大块内容:

(1)线程的创建和撤销,

(2)线程的调度,

(3)线程的同步与互斥,

(4)线程的阻塞与唤醒,

(5)利用消息缓冲队列的线程间的通信。

由这五大块功能来完成的基于DOS的多任务系统的实现。在这

个系统中,首先先由main函数进行一些初始化工作,然后直接创

建0#线程对应于main函数,再由0#线程调用create创建1#,2#

线程分别对应与函数f1(),f2(),最后将系统的中断服务程序设置

为new_int8,并把控制交给1#线程,启动多个线程的并发执行。

0#线程是一个比较特殊的线程,它在创建的时候没有使用

create来创建,而是在系统初始化后直接创建的,因它对应的程序

段为main函数中的一段,所以也直接使用整个系统的堆栈,而不

再创建时为私有堆栈分配额外的空间;同样,撤销的时也不需要释

放私有堆栈的空间,所以也没有over()函数而是直接撤销,从这方

面来看,它是一个系统线程。

此外,在启动多个线程并发执行过程后,0#线程将系统控制权转

交出去,直至系统中其他进程都不具备执行条件时,它才有可能重

新得到CPU,从这方面看,0#线程相当于是一个空转线程,最后,

0#线程还担负着一个特别的使命:等待系统中所有其他的线程的完

成,此时,它将直接撤销自己并恢复原来的时钟中断服务程序,从

此终止整个多任务系统。

三、程序流

文档评论(0)

各类考试卷精编 + 关注
官方认证
内容提供者

各类考试卷、真题卷

认证主体社旗县兴中文具店(个体工商户)
IP属地河南
统一社会信用代码/组织机构代码
92411327MAD627N96D

1亿VIP精品文档

相关文档