没有合适的资源?快使用搜索试试~ 我知道了~
2018080901006-刘文晨-OS实验报告1
需积分: 0 0 下载量 94 浏览量
2022-08-08
21:58:31
上传
评论
收藏 1.4MB DOCX 举报
温馨提示
试读
46页
5.2 Test shell设计Test_shell的功能如5.1所述,代码示例如图1中绿色部分 5.3.3 主要函数创建进程:Init进程在启动时创建,可以用
资源详情
资源评论
资源推荐
1
电 子 科 技 大 学
实 验 报 告
实验一
一、实验室名称:
电子科技大学清水河校区主楼 A2-412
二、实验项目名称:
进程与资源管理实验
三、实验内容
在实验室提供的软硬件环境中,设计并实现一个基本的进程与资源管理器。
该管理器能够完成进程的控制,如进程创建与撤销、进程的状态转换;能够基于
优先级调度算法完成进程的调度,模拟时钟中断,在同优先级进程中采用时间片
轮转调度算法进行调度;能够完成资源的分配与释放,并完成进程之间的同步。
该管理器同时也能完成从用户终端或者指定文件读取用户命令,通过 Test shell
模块完成对用户命令的解释,将用户命令转化为对进程与资源控制的具体操作,
并将执行结果输出到终端或指定文件中。
四、实验目的
设计和实现进程与资源管理,并完成 Test shell 的编写,以建立系统的进程管
理、调度、资源管理和分配的知识体系,从而加深对操作系统进程调度和资源管
理功能的宏观理解和微观实现技术的掌握。
五、实验原理
5.1 总体设计
系统总体架构如图 1 所示,最右边部分为进程与资源管理器,属于操作系统
2
内核的功能。该管理器具有如下功能:完成进程创建、撤销和进程调度;完成多
单元 (multi_unit)资源的管理;完成资源的申请和释放;完成错误检测和定时器
中断功能。
图 1 系统总体结构
图 1 中间绿色部分为驱动程序 test shell, 设计与实现 test shell,该 test shell 将
调度所设计的进程与资源管理器来完成测试。Test shell 的应具有的功能:
从终端或者测试文件读取命令;
将用户需求转换成调度内核函数(即调度进程和资源管理器);
在终端或输出文件中显示结果:如当前运行的进程、错误信息等。
图 1 最左端部分为:通过终端(如键盘输入)或者测试文件来给出相应的用
户命令,以及模拟硬件引起的中断。
5.2 Test shell 设计
Test_shell 的功能如 5.1 所述,代码示例如图 1 中绿色部分。
Test shell 要求完成的命令(Mandatory Commands)
-init
-cr <name> <priority>(=1 or 2) // create process
-de <name> // delete process
-req <resource name> <# of units> // request resource
-rel <resource name> <# of units> // release resource
-to // time out
可选实现的命令
-lp //list all processes and their status
-lr //list all resources and their status
-pi //provide information about a given process
5.3 进程管理设计
3
5.3.1 进程状态与操作
进程状态: ready/running/blocked
进程操作:
创建(create): (none) -> ready
撤销(destroy): running/ready/blocked -> (none)
请求资源(Request): running -> blocked (当资源没有时,进程阻塞)
释放资源(Release): blocked -> ready (因申请资源而阻塞的进程被唤醒)
时钟中断(Time_out): running -> ready
调度:ready -> running / running ->ready
5.3.2 进程控制块结构(PCB)
PID(name)
CPU state — not used
Memory — not used
Open_Files — not used
Other_resources //: resource which is occupied
Status: Type & List// type: ready, block, running…., //List: RL(Ready list) or
BL(block list)
Creation_tree: Parent/Children
Priority: 0, 1, 2 (Init, User, System)
图 2 PCB 结构示意图
4
就绪进程队列 Ready list (RL)如图 3 所示。
图 3 Ready List 数据结构示意图
有 3 个级别的优先级,且优先级固定无变化。
2 =“system”
1 = “user”
0 = “init”
每个 PCB 要么在 RL 中,要么在 block list 中 。当前正在运行的进程,根据
优先级,可以将其放在 RL 中相应优先级队列的首部。
5.3.3 主要函数
创建进程:
Init 进程在启动时创建,可以用来创建第一个系统进程或者用户进程。新创
建的进程或者被唤醒的进程被插入到就绪队列(RL)的末尾。
示例:
图 4 中,虚线表示进程 A 为运行进程,在进程 A 运行过程中,创建用户进
程 B:cr B 1,数据结构间关系图 4 所示。
5
图 4 进程数据结构间关系
(为了简单起见,A 和 B 分别指向 RL 的链接可以不要)
撤销进程:
进程可以由它的任何父进程或自己销毁(退出)。
5.4 资源管理设计
5.4.1 主要数据结构
资源的表示:设置固定的资源数量,4 类资源,R1,R2,R3,R4,每类资
源 Ri 有 i 个。
资源控制块 Resource control block (RCB) 如图 5 所示。
RID: 资源的 ID
Status: 空闲单元的数量
Waiting_List: list of blocked process
剩余45页未读,继续阅读
刘璐璐璐璐璐
- 粉丝: 32
- 资源: 326
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0