操作系统编程作业
================
> 实现环境:xcode 9.2 & c++11
一、设计一个按优先数调度算法实现处理器调度的程序
-----------------
1. 假定系统有5个进程,每个进程用一个PCB来代表。PCB的结构为:
* 进程名——如P1~P5。
* 指针——按优先数的大小把5个进程连成队列,用指针指出下一个进程PCB的首地址。
* 要求运行时间——假设进程需要运行的单位时间数。
* 优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。
* 状态——假设两种状态:就绪和结束,用R表示就绪,用E表示结束。初始状态都为就绪状态。
2. 每次运行之前,为每个进程任意确定它的“优先数”和“要求运行时间”。
3. 处理器总是选择队首进程运行。采用动态改变优先数的办法,进程每运行1次,优先数减1,要求运行时间减1。
4. 进程运行一次后,若要求运行时间不等于0,则将它加入就绪队列,否则,将状态改为“结束”,退出队列。
5. 若就绪队列为空,结束,否则转到 3 重复。
6. 要求能接受键盘输入的进程优先数及要求运行时间,能显示每次进程调度的情况,如哪个进程在运行,哪些进程就绪,就绪进程的排列情况。
二、可变分区管理方式下采用首次适应算法实现主存分配和回收
-----------------
1. 可变分区方式是按作业需要的主存空间大小来分割分区的。当要装入一个作业时,根据作业需要的主存容量查看是否有足够的空闲空间,若有,则按需分配,否则,作业无法装入。假定内存大小为128K(可输入),空闲区说明表格式为:
* 起始地址——指出空闲区的起始地址;
* 长度——一个连续空闲区的长度;
* 状态——有两种状态,一种是“未分配”状态;另一种是“空表目”状态,表示该表项目前没有使用。
2. 采用首次适应算法分配回收内存空间。运行时,输入一系列分配请求和回收请求。
3. 要求能接受来自键盘的空间申请及释放请求,
4. 能显示分区分配及回收后的内存布局情况。
三、连续磁盘存储空间的分配和回收
-------------------
1. 为了提高磁盘存储空间的利用率,可在磁盘上组织成链接文件、索引文件,这类文件可以把逻辑记录存放在不连续的存储空间。为了表示哪些磁盘空间已被占用,哪些磁盘空间是空闲的,可用位示图来指出。位示图由若干字节构成,每一位与磁盘上的一块对应,“1”状态表示相应块已占用,“0”状态表示该块为空闲。位示图的形式与实习二中的位示图一样,但要注意,对于主存储空间和磁盘存储空间应该用不同的位示图来管理,绝不可混用。
2. 申请一块磁盘空间时,由分配程序查位示图,找出一个为“0”的位,计算出这一位对应块的磁盘物理地址,且把该位置成占用状态“1”。假设现在有一个盘组共8个柱面,每个柱面有2个磁道(盘面),每个磁道分成4个物理记录。那么,当在位示图中找到某一字节的某一位为“0”时,这个空闲块对应的磁盘物理地址为:
* 柱面号=字节号 xxxx xxxx
* 磁道号= 位数 / 4
* 物理记录号= 位数 % 4
3. 归还一块磁盘空间时,由回收程序根据归还的磁盘物理地址计算出归还块在位示图中的对应位,把该位置成“0”。按照(2)中假设的盘组,归还块在位示图中的位置计算如下:
* 字节号=柱面号
* 位数=磁道号4+物理记录号
4. 设计申请磁盘空间和归还磁盘空间的程序。
5. 要求能接受来自键盘的空间申请及释放请求,要求能显示或打印程序运行前和运行后的位示图;
6. 分配时把分配到的磁盘空间的物理地址显示或打印出来,归还时把归还块对应于位示图的字节号和位数显示或打印出来。
四、银行家算法实现
------------------
1. 初始状态下,设置数据结构存储可利用资源向量(Available),最大需求矩阵(MAX),分配矩阵(Allocation),需求矩阵(Need),输入待分配进程队列和所需资源。
2. 设计安全性算法,设置工作向量表示系统可提供进程继续运行的可利用资源数目。
3. 如果进程队列可以顺利执行打印输出资源分配情况,如果进程队列不能顺利执行打印输出分配过程,提示出现死锁位置。
五、模拟页面地址重定位
-------------------
1. 当进程在CPU上运行时,如指令中涉及逻辑地址时,操作系统自动根据页长得到页号和页内偏移,把页内偏移拷贝到物理地址寄存器,再根据页号,查页表,得到该页在内存中的块号,把块号左移页长的位数,写到物理地址寄存器。
2. 设计页表结构;
3. 设计地址重定位算法
4. 有良好的人机对话界面
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
操作系统编程作业,优先数调度算法,实现主存分配和回收,连续磁盘存储空间的分配和回收,银行家算法实现等等+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
operatingSystemHw-master.zip (6个子文件)
operatingSystemHw-master
os1.cpp 3KB
os2.cpp 6KB
os3.cpp 4KB
os5.cpp 2KB
README.md 5KB
os4.cpp 6KB
共 6 条
- 1
资源评论
机智的程序员zero
- 粉丝: 2261
- 资源: 4298
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功