预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共36页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

操作系统课程设计报告题目:一种小型操作系统班级:计122(杏)学号:姓名:贾苏日期:/06/23实验平台(1)软件平台:开发系统平台:Windows7(64)Microsoftvisualc++6.0测试系统平台:Windows7(64)硬件平台:cpu:AMDA6-3420APU内存:4GB硬盘:500G2.所需实现功能及相应阐述:(1)进程调度管理为了贴切现实中os,采用RR(轮转调度算法),且不提供顾客显式选取调度算法,即对顾客是透明。现实中解决器主频为1Ghz~3Ghz,选用中间点为1.5Ghz,得时间片大小为0.7ns,为以便计算*10,则时间片大小定为7ns。假设进程之间调度和切换不耗费cpu时间。(2)死锁检测与解决检测固然采用是银行家算法解决:让顾客选取kill一种进程,释放她所占有所有资源。(3)虚拟分页调度管理虚拟分页:给出是逻辑值访问磁盘将那个数据块放入到内存中内存中地址采用一定算法相相应于磁盘地址。特规定访存采用是按字节寻址内存大小128KB外存大小1MB即整个系统可以提供1MB逻辑地址空间供进程进行访问(在地址总线足够扫描内存状况下)。虚拟地址映射采用:直接映射法规定8kB为一种页面,故内存有16个页面,外存有128个页面。如果产生了内存已满,便会产生缺页中断,裁减采用FIFO算法,运用一种队列来做。某些内外存相应表00,128,2*128+0.......11,129,2*128+1.......22,130,2*128+2.......16127,128+16,2*128+16.........(4)I/O中断解决设中断来自两个方面:1.DMA输送开始和结束时中断设定一种宏定义为DMA一次传播数据量大小->DmaNum假定为10kb每次DMA开始:耗费1nscpu时间进行中断解决DMA结束:耗费2nscpu时间进行中断解决由操作系统课程知,DMA传播数据时不需要CPU干预。随机中断发生外部随机中断,cpu无条件及时响应,并执行中断解决程序,同样假设中断解决程序调度和切换不耗费cpu时间。(5)内存地址越界或内存局限性进程访问内存时超过了进程所要最大值,此时发生中断,已达到内存保护功能。内存局限性时即为当前动态地址重定位寄存器中值+进程所需内存大小超过了内存上限,此时进行内存紧凑,同步修改被移动进程中各个关于参数。3.总体设计开始内存管理查看运营状况开始运营外存空间查看查看cpu运营内存空间查看死锁检测与解除进程信息查看4.程序所需数据构造及其抽象过程先定义本次操作系统外设资源,假设有A类资源10个,B类资源5个,C类资源6个->NeedRescourse;作业中各个进程都需要一种代号->ProcessName,各个进程到来时间不同,故需要记录一下->ArriveTime,每个进程所需要cpu时间是不够->NeedCpuTime,每个进程所需内存空间大小是不同样->NeedMem。各个进程中任务是不同故需要预先设定本进程中所要执行操作类型->OpKind,如果是计算型直接给出所需要cpu时间即可,如果是I/O型还需要给出所传播数据量大小->NeedTranDataNum,在此可以给OpKind做一种union型构造。多道程序程序在运营过程中需要对进程所需内存地址进行动态地址重定位,故在系统之中需要设立一种动态地址重定位寄存器,其中内容是下次进程可以使用内存始址->DynReg。抽象成果:structProcess{charProcessName[10];//进程名字intArriveTime;//ns级别intNeedCpuTime;//此进程所需要时间intNeedMem;//所需要cpu时间FlagForOpOpKind;//用于批示是何种操作intNeedTranDataNum;//给IO用数据块intOpCpus;//计算类型操作所需cpu时间intNeedRescourse[3];//需要资源数目NULL代表不需要使用Process*next;};5.详细设计1.进程信息查看依次遍历所有链表,并将它们信息依次打印出来。实现函数名:voidShowProcessInfo()2.死锁检测和解除假定本系统中各个所需资源均是独占型资源,在进程运营过程中不再释放,故只需要遍历链表将各个进程中所需资源记录出来,只要不不不大于系统中预设即可,一旦进程所需资源不不大于系统中最大量,予以顾客选取kill一进程,已达到释放资源目。死锁检测函数:voidDeedLock()voidDeedLock_LookNeedRescourse()死锁解除函数:voidDeedLock_KillProcess()内存空间查看查看各个进程所占用内存空间,借助于DynReg这个全局变量实行内存空间动态重定位。实现函数:void