• 计算机系统(13)----- 进程的调度和切换


    ----------文章参考自王道论坛视频

    一、进程调度

    ​ 进程调度(低级调度),就是按照某种算法从就绪队列中选择一个进程为其分配处理机;

    1.1 调度的时机

    ​ 需要进行调度与切换的情况

    当前运行的进程主动放弃处理机

    • 进程正常终止;
    • 运动过程中发生异常而终止;
    • 进程主动请求阻塞(如:等待 I / O )

    当前运动的进程被动放弃处理机

    • 分给进程的时间片用完
    • 有更紧急的事要处理(如:I / O 中断)
    • 有更高优先级的进程进入就绪队列

    不能进行进程调度与切换的情况

    • 在处理中断的过程中,中断处理过程复杂,与硬件密切相关,很难做到在中断处理过程中进行进程切换;
    • 进程在操作系统内核程序临界区中;
    • 在原子操作过程中(原语),原子操作不可中断;

    1.2 几个临界区别

    临界资源:

    一个时间段内只允许一个进程使用的资源,各进程互斥地访问临界资源;

    临界区:

    访问临界资源的代码;

    内核程序临界区:

    内核程序临界区一般是用来访问某种内核数据结构;

    1.3 进程调度的方式

    1.3.1 定义

    非剥夺调度方式

    • 又称非抢占方式;
    • 只允许进程主动放弃处理机;
    • 在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机,直到该进程终止或主动要求进入堵塞态;

    剥夺调度方式

    • 又称抢占方式;
    • 当一个进程正在处理机上执行的时候,如果有一个更紧要的进程需要使用处理机,则立即停止正在执行的进程,将处理机分配给更紧要的进程;

    1.3.2 两种方式的优点

    非剥夺调度方式:

    优点:

    • 实现简单,系统开销量小;

    缺点:

    • 无法及时处理紧急任务;

    适合于早期的批处理系统;

    剥夺调度方式:

    优点:

    • 可以优先处理处理更紧急的进程;
    • 也可实现让各进程按时间片轮流执行功能;

    适合于分时操作、实时操作系统;

    二、进程的切换

    进程切换是指一个进程让出处理机,由另一个进程占用处理机的过程

    2.1 进程切换做了什么

    1. 对原来的进程各种数据的保存;
    2. 对新的进程各种数据的恢复;

    进程切换是有代价的,如果过于频繁的进行进程的调度、切换,必然会使整个系统的效率降低,使系统大部分时间都花在了进程切换上,而真正用于执行的进程时间减少;

  • 相关阅读:
    Python013--爬虫01(工具准备)
    java毕业设计参考文献Springboot+mysql+freemark校园竞赛报名管理平台[包运行成功]
    百度Java面试题前200页都在这里了
    表的内连接和外连接
    情侣头像微信小程序源码 朋友圈背景小程序源码 动态壁纸微信小程序源码
    ubuntu16 虚拟机单盘扩容
    P1147 连续自然数和 【双指针(尺取法)】
    计算机网络产生的基础是什么
    Java项目:ssm+mysql医药进销存系统
    docker安装postgresql
  • 原文地址:https://blog.csdn.net/jc15274630894/article/details/126032005