《操作系统原理》报告_第1页
《操作系统原理》报告_第2页
《操作系统原理》报告_第3页
《操作系统原理》报告_第4页
《操作系统原理》报告_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 0 页 共 18 页 操作系统原理操作系统原理 实实 验验 指指 导导 书书 班级 班级 信管 学号 学号 姓名 姓名 信息管理与信息系统教研室信息管理与信息系统教研室 目目 录录 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 1 页 共 18 页 实验题目二 模拟进程调度功能 4 一 题目类型 4 二 实验目的 4 三 实验环境 4 四 实验内容 4 五 实验要求 4 六 各功能简要说明 5 七 程序清单 5 八 程序中使用的数据结构及符号说明 11 九 调试程序时出现问题说明及解决的方法 11 实验题目五 模拟使用银行家算法判断系统的状态 11 一 题目类型 11 二 实验目的 11 三 实验环境 11 四 实验内容 12 五 实验要求 12 六 各功能简要说明 13 七 程序清单 13 21 八 程序中使用的数据结构及符号说明 21 九 程序调试时出现问题及解决的方法 22 引引 言言 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 2 页 共 18 页 操作系统是信息管理与信息系统专业一门重要的专业理论课程 了解和掌 握操作系统的基本概念 功能和实现原理 对认识整个计算机系统的工作原理 十分重要 操作系统实验是操作系统课程的一个重要组成部分 通过试验环节的锻炼 使同学们不仅能够对以前的所学过的基础知识加以巩固 同时能够通过上机实 验 对操作系统的抽象理论知识加以理解 最终达到融会贯通的目的 因此 实验环节是同学们理解 掌握操作系统基本理论的一个重要环节 本实验指导书 根据教材中的重点内容设定了相应的实验题目 由于实验 课程的学时有限 我们规定了必做题目和选做题目 其中必做题目必须在规定 的上机学时中完成 必须有相应的预习报告和实验报告 选做题目是针对有能 力或感兴趣的同学利用课余时间或上机学时的剩余时间完成 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 3 页 共 18 页 实验题目二 模拟进程调度功能实验题目二 模拟进程调度功能 1 题目类型 题目类型 必做题目 2 实验目的 实验目的 通过本实验 进一步掌握进程调度的功能和实现原理 三 实验环境 三 实验环境 1 硬件 PC 机及其兼容机 2 软件 Windows OS Turbo C 或 C VC VS Net Java 等 四 实验内容 四 实验内容 1 设计进程调度功能 至少模拟两种以上调度算法 如 优先级调度算法 时间片调 度算法等 2 进程调度功能作为一个函数 scheduler 加入到实验题目一中 3 进程调度程序从就绪队列中挑选进程 若队列为空 应显示 无就绪进程无法调度 的提示信息 4 若选上一个进程 以显示 进程名 状态 时间片 优先级等信息表示一个进程被 执行 若运行完 应删除相应 PCB 五 实验要求 五 实验要求 1 在实验题目一中的主菜单中加入一个菜单项 6 调度 选择该菜单项后 系统进 入进程调度 2 进程调度的结构 进程调度子菜单 0 返回主菜单 1 优先级调度 2 时间片调度 请选择您需要的功能选项 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 4 页 共 18 页 0 2 1 六 各功能简要说明 六 各功能简要说明 1 返回主菜单 当用户选择该项功能时 系统退出进程调度功能 返回到实验题目一 中的主菜单 2 优先级调度 选择该功能选项时 系统将从就绪队列中选择优先级最高的进程 使 该进程处于执行状态 将进程 PCB 的内容显示在屏幕上 显示完成后 该进程结束 即撤销该进程的 PCB 3 时间片调度 每选择一次该功能 将就绪队列中所有进程的内容显示在屏幕上 并 将每个执行进程的执行时间减去一个时间片 若某进程的剩余时间小于等于 0 则表 明该进程运行结束 撤销该进程的 PCB 七 程序清单 七 程序清单 1 1 程序代码 程序代码 include include void priority void time struct PCB char name 4 int priority int runtime struct PCB pcb 5 进程的数量 读入选择 x x X 返回上级菜单 转优先级调度算法转时间片调度算法 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 5 页 共 18 页 int q 5 void main int p i strcpy pcb 0 name p1 序列队列 优先级由高到低为 1 2 3 pcb 0 priority 2 pcb 0 runtime 3 strcpy pcb 1 name p2 序列队列 pcb 1 priority 3 pcb 1 runtime 2 strcpy pcb 2 name p3 序列队列 pcb 2 priority 1 pcb 2 runtime 4 strcpy pcb 3 name p4 序列队列 pcb 3 priority 5 pcb 3 runtime 6 strcpy pcb 4 name p5 序列队列 pcb 4 priority 4 pcb 4 runtime 5 printf 进程调度子菜单 n printf 0 退出系统 n printf 1 优先级调度 n printf 2 时间片调度 n printf n n 显示所有进程 n printf 进程名称 优先级 运行时间 n for i 0 i 5 i printf s d d n pcb i name pcb i priority pcb i runtime printf 请选择您需要的功能选项 n 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 6 页 共 18 页 scanf d printf n while 1 if p 0 break switch p case 0 break case 1 printf 优先级调度算法 n priority break case 2 printf 时间片调度算法 n time break printf 请选择您需要的功能选项 n scanf d printf n void priority int i j int t 0 r 0 char name 2 将优先级高的排序在前 for i 0 i q 1 i for j i jpcb j priority 将 pcb i name 赋值给 name strcpy name pcb i name strcpy pcb i name pcb j name strcpy pcb j name name t pcb i priority pcb i priority pcb j priority pcb j priority t r pcb i runtime pcb i runtime pcb j runtime pcb j runtime r printf 按优先级高低排序 n printf 进程名称 优先级 运行时间 n for i 0 i q i printf s d d n pcb i name pcb i priority pcb i runtime printf n printf 显示优先级最高的进程 n printf s d d n pcb 0 name pcb 0 priority pcb 0 runtime for i 0 i q i strcpy pcb i name pcb i 1 name pcb i priority pcb i 1 priority pcb i runtime pcb i 1 runtime printf n printf 使最高优先级的进程处于执行状态 撤销该进程 n for i 0 i q 1 i 撤销进程 printf s d d n pcb i name pcb i priority pcb i runtime 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 8 页 共 18 页 q q 1 void time int i j t printf 进程名称 优先级 运行时间 n for i 0 i q i printf s d d n pcb i name pcb i priority pcb i runtime for i 0 i q i pcb i runtime pcb i 1 runtime 1 printf n printf 将每个执行进行的执行时间减去一个时间片 n for i 0 i q i if pcb i runtime 0 t i for j t j q j strcpy pcb j name pcb j 1 name pcb j priority pcb j 1 priority pcb j runtime pcb j 1 runtime q q 1 printf n printf 将进行结束的进行撤销 n for i 0 i q i printf s d d n pcb i name pcb i priority pcb i runtime 2 2 程序运行图 程序运行图 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 9 页 共 18 页 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 10 页 共 18 页 八 程序中使用的数据结构及符号说明 八 程序中使用的数据结构及符号说明 1 结构体 PCB 模拟一个进程 包括进程的名称 name 优先级 priority 和运行时间 runtime 2 变量 p 代表进程的数量 随着进程的撤销改变 其余的请看程序注释 其余的请看程序注释 九 调试程序时出现问题说明及解决的方法 九 调试程序时出现问题说明及解决的方法 1 再时间片调度算法逻辑上还有些模糊 百度时间片调度算法之后 仔细阅读了网上 的讲解 理解了算法的逻辑 2 调试的时候出错 基本上是符号的问题 细心点根据错误提示就能解决 实验题目五 模拟使用银行家算法判断系实验题目五 模拟使用银行家算法判断系 统的状态统的状态 1 题目类型 题目类型 选作题目 2 实验目的 实验目的 银行家算法是操作系统中避免死锁的算法 本实验通过对银行家算法的模拟 加强学 生对该算法的理解与应用 三 实验环境 三 实验环境 1 硬件 PC 机及其兼容机 2 软件 Windows OS Turbo C 或 C VC VS Net Java 等 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 11 页 共 18 页 四 实验内容 四 实验内容 1 建立 T0 时刻的资源分配表 初始化 2 设计银行家算法 输入一个进程的资源请求 按银行家算法步骤进行检查 3 设计安全性算法 检查某时系统是否安全 4 设计显示函数 显示资源分配表 安全分配序列 五 实验要求 五 实验要求 1 T0 时刻的资源分配表由进程数组 Max Allocation Need Available 5 个数组构 成 2 系统总体结构 初始化 T0 时刻资源分配表 1 资源申请 2 显示资源分配表 3 退出 读入选择 资源申请 1 2 显示资源分配表返回 3 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 12 页 共 18 页 其中资源申请模块功能描述如下 六 各功能简要说明 六 各功能简要说明 1 资源申请 读入一个进程申请 按银行家算法 安全算法进行试分配 2 显示资源分配表 分屏显示资源分配表某时刻状态 3 退出 退出系统 七 程序清单 七 程序清单 1 1 程序代码 程序代码 include include include 资源申请 读入一个进程的申请 按银行家算法检查 利用安全算法检查此时是否安全 安全 否 输出 此次资源请求 拒绝分配 是 输出安全序列 显示 此次资源请求成功 修改资源分配表 返回 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 13 页 共 18 页 define bool char define true 1 define false 0 define m 50 数据的长度 int no1 进程数 int no2 资源数 int r int allocation m m need m m available m max m m char name1 m name2 m void main void check void print int i j p 0 q 0 char c int request m allocation1 m m need1 m m available1 m printf 银行家算法 n printf 请输入进程总数 scanf d printf 请输入资源种类数 scanf d 这是一个 n m 的矩阵 它定义了系统中 n 个进程中的每一个进程对 m 类资源的 最大需求 如果 Max i j K 则表示进程 i 需要 Rj 类资源的最大数目为 K printf 输入最大需求矩阵 Max n for i 0 i no1 i for j 0 j no2 j printf 第 d 个进程对第 d 类资源的最大需求量为 n i 1 j 1 scanf d 输入已知进程最大资源需求量 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 14 页 共 18 页 这也是一个 n m 的矩阵 它定义了系统中每一类资源当前已分配给每一进程的 资源数 如果 Allocation i j K 则表示进程 i 当前已分得 Rj 类资源的 数目为 K printf 输入当前分配矩阵 Allocation n for i 0 i no1 i for j 0 j no2 j printf 第 d 个进程当前已分得第 d 类资源的资源数 n i 1 j 1 scanf d 输入已知的进程已分配的资源数 这也是一个 n m 的矩阵 用以表示每一个进程尚需的各类资源数 如果 Need i j K 则表示进程 i 还需要 Rj 类资源 K 个 方能完成其任务 for i 0 i no1 i for j 0 j no2 j need i j max i j allocation i j 根据输入的两个数组计算 出 need 矩阵的值 是个含有 m 个元素的数组 其中的每一个元素代表一类可利用的资源数目 如果 Available j K 则表示系统中现有 Rj 类资源 K 个 printf 请输入可利用资源向量 Available n for i 0 i no2 i printf 系统中第 d 类资源的可用数量 n i 1 scanf d 输入已知的可用资源数 print 输出已知条件 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 15 页 共 18 页 check 检测 TO 时刻已知条件的安全状态 if r 1 如果安全则执行以下代码 do q 0 p 0 printf n 请输入请求资源的进程号 0 4 n for j 0 j no1 printf 输入错误 请重新输入 n continue else break printf n 请输入该进程所请求的资源数 request j n for j 0 j no2 j scanf d for j 0 jneed i j p 1 判断请求是否超过该进程所需要的资源数 if p printf 请求资源超过该进程资源需求量 请求失败 n else for j 0 javailable j q 1 判断请求是否超过可用资源数 if q printf 没有做够的资源分配 请求失败 n else for j 0 j no2 j 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 16 页 共 18 页 available1 j available j allocation1 i j allocation i j need1 i j need i j 保存原已分配的资源数 仍需要的资源数和可用的资源 数 available j available j request j allocation i j request j need i j need i j request j 系统尝试把资源分配给请求的进程 print check 检测分配后的安全性 if r 0 如果分配后系统不安全 for j 0 j no2 j available j available1 j allocation i j allocation1 i j need i j need1 i j 还原已分配的资源数 仍需要的资源数和可用的资源数 printf 返回分配前资源数 n print printf n 你还要继续分配吗 Y or N n 判断是否继续进行资源分配 c getche while c y c Y void check 安全算法函数 int k f v 0 i j int work m a m bool finish m 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 17 页 共 18 页 r 1 for i 0 i no1 i finish i false 初始化进程均没有得到足够资源数并完成 for i 0 i no2 i work i available i work i 表示可提供进程继续运行的各类资源数 k no1 do for i 0 i no1 i if finish i false f 1 for j 0 jwork j f 0 if f 1 找到还没有完成且需求小于可提供进程继续运 行的资源数的进程 finish i true a v i 记录安全序列号 for j 0 j0 f 1 for i 0 i no1 i 判断是否所有的进程都完成 if finish i false f 0 break 操作系统原理 实验指导书 管理学院 信息管理与信息系统专业 第 18 页 共 18 页 if f 0 若有进程没有完成 则为不安全状态 printf 系统处在不安全状态 r 0 else printf n 系统当前为安全状态 安全序列为 n for i 0 i no1 i printf p d a i 输出安全序列 void print 输出函数 int i j printf n printf 此时刻资源分配情况 n printf 进程号 名 最大需求矩阵 当前分配矩阵 需求矩阵 n for i 0 i no1 i printf p d d i i for j 0 j no2 j printf d max i j for j 0 j no2 j printf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论