内存调页算法+CPU调度算法

1、内存调页算法

当进程访问虚拟地址时,会查看页表,如果发生对应的数据不再物理内存上会发生缺页异常,产生一个缺页中断去寻找空闲页,找不到空闲页的话,就说明此时内存已满了,就需要页面置换算法选择⼀个物理页。

  1. 最佳页面置换算法(OPT)计算页面下一次访问时间,然后比较,选择未来最长时间不访问的页面,实际中无法实现,访问页面是动态的,用来衡量其他算法效率。
  2. 先进先出置换算法(FIFO):选择在内存驻留时间很长的页面进行中置换。
  3. 最近最久未使用的置换算法(LRU):完全实现 LRU,需要在内存中维护⼀个所有页面的链表,最近最多使用的页面在表头,最近最少使用的页面在表尾。在每次访问内存时都必须要更新整个链表。在链表中找到⼀个页面,删除它,然后把它移动到表头是⼀个十分费时的操作。
  4. 时钟页面置换算法(lock):所有页面保存在环形链表,表针指向最老页面;①它的访问位是0就淘汰该页面,并把新的页面插入这个位置,然后把表针前移⼀个位置;②如果访问位是1就清除访问位,置0,并把表针前移⼀个位置,重复这个过程直到找到了⼀个访问位为0的页面为止;
  5. 最不常用置换算法(LFU)选择访问次数最少的那个页面,并将其淘汰,增加计数器,被访问就会累加。

2、CPU调度算法

选择某个进程分配给CPU,影响的是等待时间。

  1. 先来先服务:选择最先进入队列的进程,直到退出或阻塞;对长作业有利,适合CPU繁忙型不适合IO繁忙型,因为短作业等待时间长。
  2. 最短作业优先:优先选择运行时间最短的进程运行,可以提高系统吞吐量。
  3. 高响应比优先:响应比优先级高的先运行,响应比优先级 =(等待时间 + 要求服务时间)/要求服务时间。兼顾长短作业。
  4. 时间片轮转算法:每个进程被分配⼀个时间段,称为时间片。一个进程时间片用完就会进行调度,CPU分配给另一个进程;在时间片结束前阻塞或结束,CPU立即进行切换。
  5. 最高优先级:多用户系统希望可以选择优先级最高的进程先运行。
  6. 多级反馈队列:多个队列优先级越高时间片越短,优先级高的进程进入,停止当前去运行优先级高的;兼顾了长短作业,同时有较好的响应时间。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你介绍一下CPU调度算法以及如何模拟实现。 CPU调度算法操作系统中的一个重要概念,它决定了在多道程序环境下,操作系统如何分配CPU时间片给进程,以达到最优的性能。常见的CPU调度算法有以下几种: 1. 先来先服务(FCFS):按照进程到达的先后顺序进行调度,不考虑进程的优先级和执行时间,容易导致短作业等待时间过长,长作业等待时间过短的问题。 2. 最短作业优先(SJF):按照进程执行时间的长短进行调度,优先执行执行时间短的进程,容易导致长作业等待时间过长的问题。 3. 优先级调度:按照进程优先级进行调度,优先执行优先级高的进程,容易导致低优先级进程长时间等待的问题。 4. 时间片轮转(RR):按照时间片的大小进行调度,每个进程都分配一个时间片,时间到后切换到下一个进程,可以保证所有进程公平地分配CPU时间。 要模拟实现这些调度算法,可以通过编写一个模拟调度程序来实现。具体步骤如下: 1. 定义进程的数据结构,包括进程ID、到达时间、执行时间、优先级等。 2. 定义一个就绪队列,将到达时间小于当前时间的进程加入队列中。 3. 根据不同的调度算法,从就绪队列中选择下一个要执行的进程。 4. 执行所选择的进程,并更新该进程的信息,例如执行时间、优先级等。 5. 如果进程执行完毕,则从就绪队列中移除该进程。 6. 重复步骤3~5,直到所有进程执行完毕。 通过模拟调度程序的实现,可以更好地理解和掌握CPU调度算法的原理和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值