课程设计。题目: 操作系统课程设计。
学部信息科学与工程学部
学科门类工学。
专业网络工程。
学号。姓名。
指导教师。年月日。
目录。一基本思想 1
1.1硬件工作的模拟 1
1.1.1**处理器的模拟 1
1.1.2主要寄存器的模拟 1
1.1.3中断的模拟 1
1.1.4 时钟的模拟 1
1.2进程控制块 2
1.3进程调度 2
1.4进程控制 2
1.5屏幕显示要求3
二定义的公共变量或数据结构(给出注释) 4
2.1主要公共变量 4
2.1.1关于进程 4
2.1.2时间片 4
2.1.3定时器 4
2.2主要数据结构 4
三各部分主要函数的过程描述 6
3.1**处理器的模拟 6
3.2中断的模拟 6
3.3时钟的模拟 7
3.4 进程创建create 8
3.5进程阻塞block 8
四运行截图 9
4.1添加进程 9
4.2运行进程 10
4.3 结束进程 2
五总结 13
一基本思想。
1.1硬件工作的模拟。
1.1.1**处理器的模拟。
用函数cpu()(该函数不能有参数)模拟**处理器。该函数主要负责解释“可执行文件”中的命令。
x=?;给x赋值一位数。
x++;x加1
x--;x减1
??;第一个?为a,b,c中某个设备,第二个?为一位数,表示使用设备的时间;
end. 表示进程结束,同时将结果写入运行结果框中,其中包括进程名和最终结果。
cpu只能解释指令寄存器ir中的指令。一个进程的运行时要根据进程执行的位置,将对应的指令存放到指令寄存器中。
1.1.2主要寄存器的模拟。
用全局变量模拟重要寄存器,如cpu重要寄存器,程序状态寄存器psw、指令寄存器ir,程序计数器pc,数据缓冲寄存器dr等。
1.1.3中断的模拟。
i.中断的发现应该是硬件的工作,这里在函数cpu中加检测psw的方式来模拟。
在cpu()函数中,每执行一条指令之前,先检查psw,判断有无中断,若有进行中断处理,然后再运行解释指令。cpu函数应该不断循环执行的。
.模拟中断的种类和中断处理方式:
程序结束(执行指令end形成的中断,软中断):将结果写入运行结果框体中,其中包括运行指令的指令名和指令的值,调用进程撤销原语撤销进程,然后进行进程调度;
时间片到(当相对始终寄存器值减到0时):将正在运行进程的cpu现场保存在进程控制块中,然后进行进程调度;
i/o中断(设备完成输入输出):将输入输出完成的进程唤醒,将等待该设备的一个进程同时唤醒。
1.1.4时钟的模拟。
系统中的绝对时钟和相对时钟用全局变量模拟。绝对时钟用来记录进程运行后直到软件关闭的的时间,相对时钟用来存放进程可执行的时间片,在进程调度时设置初值,随系统时间的增值1而减值1,减到0时,发出时钟中断。
1.2进程控制块。
进程控制块内容包括进程标识符、处理机状态信息(如主要寄存器内容)、进程调度信息(如进程状态、进程优先级、进程调度所需的其他信息、阻塞原因)、进程控制信息(如进程程序和数据的地址)。本模拟系统最多容纳10个进程块。
pcb区域用数组模拟。
进程控制块根据内容的不同组成不同的队列:空白进程控制块链、就绪队列和阻塞队列,正在运行的进程只有一个,系统初始时只有空白进程控制块链。
1.3进程调度。
1.进程调度在模拟系统中,采用时间片轮转调度算法,时间片可设定。
2.进程调度函数的主要工作是:将正在运行的进程保存在该进程对应进程控制块中;从就绪队列中选择一个进程;将这个进程中进程控制块中记录的各寄存器内容恢复到cpu各个寄存器内。
3.闲逛进程。
建立一个闲逛进程,当就绪对列为空时,系统调用该进程运行。当有进程就绪时,就调度就绪进程运行。闲逛进程什么也不做,只是起到系统能正常运转的作用。
例如windows中的idle进程。
1.4进程控制。
建立四个函数模拟进程创建、撤销、阻塞和唤醒四个原语。
1.进程创建create
进程创建的主要工作是:
第一步,申请空白进程控制块;
第二步,申请主存空间,申请成功,装入主存;
第三步,初始化进程控制块;
第四步,将进程链入就绪队列。
2.进程撤销destory
进程撤销的主要工作是:
第一步,**进程所占内存资源;
第二步,**进程控制块;
第三步,在屏幕上显示进程执行结果,进程撤销。
3.进程阻塞block
进程阻塞的主要工作是:
第一步,保存运行进程的cpu现场;
第二步,修改进程状态;
第三步,将进程链入对应的阻塞队列,然后转向进程调度。
4.进程的唤醒。
进程唤醒的主要工作是将进程由阻塞队列中摘下,修改进程状态为就绪,然后链入就绪队列。
1.5屏幕显示要求。
屏幕显示要求包括:
显示系统时钟;
显示正在运行的进程的进程名、运行的指令、中间结果、相对时钟内容;
显示就绪队列中进程名;
显示阻塞队列中进程名,等待时间。
二定义的公共变量或数据结构(给出注释)
2.1主要公共变量。
2.1.1关于进程。
三个编辑框分别对应三个变量:
cstring m_jcming显示进程名。
cstring m_zhiling //显示当前执行指令。
cstring m_jieguo //显示中间结果。
三个列表框分别对应三个变量:
clistbox m_jiuxu //就绪队列。
clistbox m_zuse阻塞队列。
clistbox m_jieshu //运行结束的队列。
还有一个编辑框用来输入指令:
cstring m_shuruzhiling //得到命令文件。
2.1.2时间片。
编辑框idc_edit_shijianpian
对应变量int m_timelength //时间片大小。
2.1.3定时器。
静态文本框idc_cstatic
对应变量cstatic m_cpushijian //显示时间。
2.2主要数据结构。
进程控制块pcb:
enum event_source ;/枚举变量包含进程状态。
enum event_type ;/枚举变量包含阻塞请求资源。
typedef struct pcb
cstring pcb_name;//进程名。
int pcb_no;//进程号。
cstring *command;//进程文件。
int linesnum;//进程文件指令数。
int current;//当前指针。
int result;//计算结果。
enum event_source event;//事件
enum event_type eventtype;//阻塞事件请求的资源。
int event_time;//使用资源时间。
pcb *link;//pcb指针指向下一个节点。
pcb三各部分主要函数的过程描述。
3.1**处理器的模拟。
public cpu
2.申请设备中断。
public block()
将进程放入阻塞队列中;
保存好此进程的cpu现场信息;
再从就绪队列头部取出一个新的进程执行;
调用:block(pcb *pcb)函数。
3.程序正常结束。
public onbuttonjieshu()
进程正常结束,则把进程名和运行结果显示到最终结果显示框中;
再从就绪队列头部取出一个新的进程执行;
调用:onbuttonjieshu()函数。
3.3进程创建create
输入指令。if (文本域为空)
命令文件有误,请检查或仔细阅读帮助。
操作系统课程设计
课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...
操作系统课程设计
银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...
操作系统课程设计
学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....