![](https://csdnimg.cn/release/download_crawler_static/87935895/bg9.jpg)
函数声明 参数 返回值 函数功能
setLogicAddr 无 void 获得逻辑地址
setPageNoTemp 无 void 获得页号
setOffsetAddr 无 void 获得偏移地址
setCPU CPU cpu void 获得当前 CPU 状态
setPhysicAddr 无 void 获得物理地址
CutLogicAddr 无 void
分解逻辑地址,页号 3
位,页内偏移 5 位
(3)抽象并设计 PCB 模块与 PCBPOOL 模块,设计后备作业队列、进程等待队列、
就绪队列,实现作业的生成、调度、执行与终止,以及在作业执行过程中,进程的创建、
调度与终止,作业和进程均按照先来先服务算法进行调度,在进程调度时需要保护 CPU
现场信息,以保证进程能够在自己的运行环境下运行;
函数声明 参数 返回值 函数功能
CreatePCB 无 int 申请一个空白 PCB,分配内存并初始化
FreePCB PCB fpcb int 释放 PCB
BlockCourse PCB bpcb int 进程阻塞原语
WakeCourse PCB &wpcb int 进程唤醒原语
ReadyQueueisEmpty 无 int 判断就绪队列是否为空
WaitQueueisEmpty 无 int 判断等待队列是否为空
EnReadyQueue PCB qpcb int
进就绪队列,表示进程已获得内存等资源,进入
就绪态
DeReadyQueue 无 PCB 出就绪队列,表示进程获得处理器,进入运行态
ReadyQueueLength 无 int 获得就绪队列长度
EnWaitQueue PCB qpcb int
进等待队列,表示进程出现等待事件,被阻塞进
入等待态
DeWaitQueue 无 PCB 出等待队列,表示等待事件结束
(4)仿真实现存储空间模块,包括内存的抽象与外存的抽象,以及对页表、外页
表的管理,页表中有引用位、驻留位等标志位;存储空间按块划分,块与页大小相同,
用位示图法表示作业调度、进程调度过程中存储空间的占用情况;
函数声明 参数 返回值 函数功能
setPCBSpace int addr,int pid void 为进程分配内存空间
freePCBSpace int addr,int pid void 释放进程内存空间
setPCBpageSpace int iF void 为进程页表分配内存空间
freePCBpageSpace int iF void 释放进程页表内存空间
setJOBSpace int addr void 为作业分配外存
freeJOBSpace int addr void 释放作业外存
(5)模拟存储管理程序对缺页异常进行处理,按照 FIFO、LRU、CLOCK 三种页面替
换算法选择淘汰页面,实现页面的调入与调出,并对进程页表标志位进行相应的操作,
实现进程驻留集抽象;
函数声明 参数 返回值 函数功能
setRealPageNoTempLRU pcbpool,ShowProgram, int 获得页框号 LRU 算法