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

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

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

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这个全局变量实施内存空间动态重定位。实现函数:voidLook