操作系统课程设计

发布 2022-10-05 11:29:28 阅读 5111

课程设计。题目: 操作系统课程设计。

学部信息科学与工程学部

学科门类工学。

专业网络工程。

学号。姓名。

指导教师。年月日。

目录。一基本思想 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....