408 操作系统 第二章

本文详细介绍了操作系统中的几种进程调度算法,包括FCFS、SJF、HRRN、时间片轮转和优先级调度算法,讨论了它们的优缺点以及可能导致的饥饿现象。此外,还探讨了进程同步与互斥的重要性,分析了各种软件和硬件实现方法,如单标志法、双标志法、皮特森算法、中断屏蔽和信号量机制。最后提到了一些经典同步问题,如生产者消费者问题、读者写者问题和哲学家进餐问题,以及死锁的预防、避免和检测方法。
摘要由CSDN通过智能技术生成

进程的调度算法

  1. 先来先服务(FCFS)
    算法思想:主要是从“公平”的角度考虑;
    算法规则:按照作业/进程到达的先后顺序进行服务;
    用于作业/进程调度:作业调度和进程调度都有使用;
    是否可抢占:非抢占的算法;
    优点:公平,算法实现简单
    缺点:排在长进程(作业)后面的短作业需要等到很久的时间,带权周转时间很大,对短作业很不友好;即:对长作业有利,对短作业不利;
    是否会导致饥饿:不会,长作业和短作业都会上处理机运行;

  2. 短作业优先(SJF)
    非抢占式
    算法思想:追求最少的平均等待时间,最少的平均周转时间、最少的平均平均带权周转时间;
    算法规则:最短的作业/进程优先得到服务(所谓“最短”,是指要求服务时间最短);
    用于作业/进程调度:作业调度和进程调度都有使用;
    是否可抢占:非抢占的算法;
    优点:“最短的”平均等待时间、平均周转时间;
    缺点:对短作业有利,对长作业不利;另外:作业/进程的运行时间是由用户提供的,并不一定真实,不一定能做到真正的短作业优先
    是否会导致饥饿:会;若有源源不断的短进程到来,长进程会出现“饥饿”
    抢占式

     抢占式和非抢占式的**区别**:
     抢占式短作业优先算法叫做:**最短剩余时间优先算法**,每当有**进程加入就绪队列**改变时就需要**调度**,如果**新到达的**进程剩余时间比**当前运行的**进程剩余时间更短,则由新进程抢占处理机,当前运行进程重新回到就绪队列。另外,当一个进程完成时也需要调度;
     非抢占式短作业优先算法:每次调度时选择**当前已到达**且运行时间最短的作业/进程。只有在处理机上的进程主动放弃处理机才会发生进程切换;
    
  3. 高响应比优先(HRRN)
    算法思想:要综合考虑作业/进程的等待时间和要求服务的时间;
    算法规则:在每次调度时计算各个作业/进程的响应比,选择响应比最高的作业/进程为其服务;
    用于作业/进程调度:作业调度和进程调度都有使用;
    是否可抢占:非抢占的算法,因此只有当前运行的作业/进程主动放弃处理机时,才需要调度,才需要计算响应比
    优点:综合考虑了等待时间和运行时间;
    等待时间相同时,要求服务时间短的优先
    要求服务时间相同时,等待时间长的优先
    是否会导致饥饿:不会;

以上三种调度算法适用于早期批处理系统

  1. 时间片轮转调度算法(RR)
    算法思想:公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应;
    算法规则:按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片(如100ms)。若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队;
    用于作业/进程调度:只用于进程调度
    是否可抢占:抢占式算法,由时钟装置发出时钟中断来通知CPU时间片已到;
    优点:公平,响应快,适用于分时操作系统;
    缺点:由于高频率的进程切换,因此有一定开销;不区分任务的紧急程度;
    是否会导致饥饿:不会;

时间片太大或者太小有什么影响?
时间片太大:直接退化为先来先服务,大大增加了进程的响应时间;
时间片太小:操作系统会将大量的时间浪费在进程的切换,导致CPU的执行效率低下;

  1. 优先级调度算法
    算法思想:越来越多的应用场景需要根据任务的紧急程度来决定处理顺序;
    算法规则:每个作业/进程有各自的优先级,调度时选择优先级最高的作业/进程;
    用于作业/进程调度:既可用于作业调度,也可用于进程调度,还可用于I/O调度
    是否可抢占:抢占式算法,非抢占式都有;
    非抢占式:每次调度时选择当前已到达且优先级最高的进程。当前进程主动放弃处理机时发生调度。
    抢占式:每次调度时选择当前已到达且优先级最高的进程。当前进程主动放弃处理机时发生调度。另外,当就绪队列发生改变时也需要检查是会发生抢占。
    优点:用优先级区分紧急程度、重要程度,适用于实时操作系统。可灵活地调整对各种作业/进程的偏好程度;
    缺点:若源源不断地有高优先级进程到来,则
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值