在从后备队列中查找选择作业时,先根据作业控制块中的信息,选中一个短作业,也就是执行时间最短的作业,将它们调入内存运行。 1.1.5 临界区资源模拟 ● 设计要求:
建立三个进程,模拟进入临界区,然后用一个进程进行管理。 ● 设计技术参数:
① 实现UP、DOWN原语
② 产生3个进程,两个进程模拟需要进入临界区的用户进程。
当需要进入临界区时,显示:“进程x请求进入临界区?”,同时向管理进程提出申请;申请返回,表示进入了临界区。在临界区中等待一段随机时间,并显示:“进程x正在临界区?”;当时间结束,显示:“进程x退出临界区?”,同时向管理进程提出退出申请;
当申请返回,显示:“进程x已退出临界区。”
③ 一个进程作为原语的管理进程,接受其他进程的临界区进入请求: 如果允许进入,则根据DOWN 原语的操作步骤设置相应变量,然后返回; 如果不允许进入,则进入循环等待,直到允许为止; 退出时模拟UP 操作。
④ 进程间通信可以采用信号、消息传递、管道或网络通信方式。
1.2 选题方案:
所选题目根据学号确定,学号模5加1,即(学号%5+1)。如你的学号为10,则所选题目号为:10%5+1=1(题目1)。注意,所有的课题都要求用图形方式演示步骤和结果。有兴趣的同学可以自己针对通信系统课程的要求,设计一个简单的通信系统,但要预先告知老师,经过审批,方可确定课题,并且每班的自拟题目的总数量不能超过4个,每个课题只能一人单独完成。
1.3设计要求:
1.3.1 课程设计报告规范
(1)系统分析
a. 系统功能分析; b. 数学理论分析; c. 输入输出的要求。 (2)系统设计
a. 系统由哪些模块(组件/元件)组成以及模块之间的关系,每个模块
的功能;
b. 采用C语言设计;
c. 画出各函数的调用关系图、主要函数的流程图。 (3)调试分析以及设计体会
a. 测试数据:准备典型的测试数据和测试方案,包括正确的输入及
输出结果和含有错误的输入及输出结果。 b. 程序调试中遇到的问题以及解决问题的方法。 c. 课程设计过程经验教训、心得体会。 (4)使用说明
用户使用手册:说明如何使用你编写的系统,详细列出每一步的操作步骤。 (5)书写格式
a. 设计报告要求用A4纸打印成册:
b. 一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;
行距为22。
(7)附录
a. 源程序清单(带注释)
1.3.2 考核方式
指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:
(1)平时出勤 (占10%)
(2)系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)
(3)程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%) (4)设计报告(占30%)
注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。 (5)独立完成情况(占10%)。 1.3.3 课程验收要求
(1)运行所设计的系统。 (2)回答有关问题。 (3)提交课程设计报告。
(4)提交软盘(源程序、设计报告文档)。
(5)依内容的创新程度,完善程序情况及对程序讲解情况打分。
2 进度安排
2.1 通信工程1101/02/81班:
第 18 周:
星期二 14:30——18:30 上课,讲解课题;
星期三 8:00——12:00;14:30——18:30上机; 星期四 14:30——18:30 上机
附:
课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。
目 录
一.设计目的................................................................................................................... 9 二.设计内容................................................................................................................... 9 三.设计原理................................................................................................................... 9
3.1 循环轮转调度算法 .......................................................................................... 9 3.2优先数调度算法 ............................................................................................. 10 四.设计步骤.............................................................................................................. 10
4.1 任务分析 ........................................................................................................ 10 4.2 概要设计 ........................................................................................................ 11 4.3 详细设计 ........................................................................................................ 11 4.4 流程图 ............................................................................................................ 12 4.5 源程序 ............................................................................................................ 12 4.6 程序测试数据及结果 .................................................................................... 17 五.设计总结................................................................................................................. 19 六.附录......................................................................................................................... 19
一.设计目的
①设计进程控制块PCB表结构,分别适用于优先数调度算法和循环轮转调度算法。
②建立进程就绪队列。对两种不同算法编制入链子程序。 ③编制两种进程调度算法:1)优先数调度;2)循环轮转调度
二.设计内容
①本程序用两种算法对五个进程进行调度,每个进程可有三个状态,并假设初始状态为就绪状态。
②为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的优先数或轮转时间数以及进程需运行的时间片数的初始值均由用户给定。
③在优先数算法中,优先数的值为50与运行时间的差值,即P_TIME-process->needtime。进程每执行一次,优先数减3,CPU时间片数加1,进程还需要的时间片数减1。在轮转算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了2个单位),这时,CPU时间片数加2,进程还需要的时间片数减2,并排列到就绪队列的尾上。
④对于遇到优先数一致的情况,采用FIFO策略解决。
三.设计原理
3.1 循环轮转调度算法
时间片轮转调度是一种最古老,最简单,最公平且使用最广的算法。每个进程被分配一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺并分配给另一个进程。如果进程在时间片结束前阻塞或结束,则CPU当即进行切换。调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。
时间片轮转调度中唯一有趣的一点是时间片的长度。从一个进程切换到另一个进程是需要一定时间的--保存和装入寄存器值及内存映像,更新各种表格和队列等。在早期的时间片轮转法中,系统将所有的就绪进程按先来先服务的原则,排