• 进程的调度


    进程调度

    什么是进程?
    进程是一个程序运行时完成一系列任务的模样,即我们可以把进程看成程序的一次运行。
    进程说操作系统资源分配的基本单位。
    我们了解进程的基本概念,我们接下来讨论一下进程是如何调度的。
    进程有一些比较关键的属性来实现进程的调度,我先介绍一些相关的属性

    属性1:进程的优先级。程序在运行的时,不止有一个进程,肯定是有多个进程,多个进程的调度肯定有先有后,所以就有了进程优先级这个属性。举一个例子:假如我是一个女生,正常的人找男朋友是一个一个的找,但是,我觉得找男朋友一个一个的找效率有一些低,所以,我就同时与多个男生处对象,找出那个最让我感到舒服的人。于是,我就要安排时间,哪一天跟谁约会,这些我都安排好。这个例子就可以类比进程的优先级

    属性2:进程的状态。最主要的状态是就绪状态和阻塞抓状态。
    就绪状态:进程是准备就绪的,随时可以执行
    阻塞状态:进程在等待某个任务的完成,完成后才能执行,在没有完成之前,进程是不能做任何事

    属性3:进程的记账信息。操作系统在安排进程的时候会计入每一个进程的运行时间,等到下一次调度的时候,之前运行时间较少的进程多运行一些,之前运行较多的进程少运行些。

    属性4:进程的上下文。调度一个进程并不是要等到该进程执行结束再调度另外的进程,所以操作系统会记录之前该进程执行到哪一步,然后接着执行。

    进程的调度本质的问题是:当前计算机CPU是有限的,但是进程是非常多的,所以我们就要对进程进行调度。操作系统是通过轮流执行的方式进行调度。因为,调度的速度是非常快的,我们人眼是看不出哪个先调度,哪个后调度。
    有两种方式:
    并发式执行:宏观上这些进程好像是同一时间执行的,但在微观上并不是同时执行,是轮流执行
    并行式执行:宏观上这些进程好像是同一时间执行的,微观上也是同一时间执行

    实际开发的时候并不会严格区分这两个概念,统一都叫做并发执行

  • 相关阅读:
    [C++]unordered系列关联式容器
    《J2EE开发技术》教学上机实验报告
    迁徙数据平台简单介绍
    AI量化(代码):深度强化学习DRL应用于金融量化
    LeetCode --- 1528. Shuffle String 解题报告
    Webrtc支持HEVC之FFMPEG支持HEVC编解码(一)
    常量指针、指针常量,指针数组、数组指针,函数指针、指针函数
    中国首款电音音频类“山野电音”数藏发售来了!
    多线程与高并发(8)—— 从CountDownLatch总结AQS共享锁(三周年打卡)
    Daniel Gross:硅谷的创投天才,能否成为下一个 Sam Altman?
  • 原文地址:https://blog.csdn.net/weixin_62877993/article/details/125983938