
操作系统算法实验
大三上学期的操作系统实验课,以实现各种调度算法为主。
LeopoldZhang2000
本科在读,菜得一批,深受内卷荼毒。
展开
-
缺页调度——FIFO先进先出和LRU最近最久未使用算法(C++实现)
1. FIFO(先进先出)算法该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。2. LRU(最近最久未使用)算法如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。原创 2020-02-15 23:36:07 · 4522 阅读 · 0 评论 -
FF首次适应算法与BF最佳适应算法(C++实现)
首次适应算法(First Fit):该算法从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。最佳适应算法(Best Fit):该算法总是把既能满足要求,又是最小的空闲分区分配给作业。为了加速查找,该算法要求将所有的空闲区按其大小排序后,以递增顺序形成一个空白链。这样每次找到的第一个满足要求的空闲区,必然是最优的。孤立地看,该算法似乎是最优的,但事实上并不一定。因为每次分配后剩余的空间一定是最小的,原创 2020-02-15 23:08:54 · 5440 阅读 · 0 评论 -
死锁的避免——银行家算法(C++实现)
银行家算法是从当前状态出发,按照系统各类资源剩余量逐个检查各进程需要申请的资源量,找到一个各类资源申请量均小于等于系统剩余资源量的进程P1。然后分配给该P1进程所请求的资源,假定P1完成工作后归还其占有的所有资源,更新系统剩余资源状态并且移除进程列表中的P1,进而检查下一个能完成工作的进程。如果所有进程都能完成工作,则找到一个安全序列,当前状态是安全的。则当前状态不安全。原创 2020-02-15 21:40:27 · 2909 阅读 · 0 评论 -
FCFS先来先服务调度算法、PSA优先级调度算法、RR时间片轮转算法(C++实现)
在多道程序或多任务系统中,系统同时处于就绪态的进程有若干个。也就是说能运行的进程数远远大于处理及个数。为了使系统中的各进程能有条不紊的运行,必须选择某种调度策略,以选择一进程占用处理机。要求学生设计一模拟单处理机调度的算法,以巩固和加深处理机调度的概念。原创 2020-02-15 20:50:10 · 3556 阅读 · 1 评论