• 进程的调度


    进程调度

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

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

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

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

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

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

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

  • 相关阅读:
    C++之模板函数编译技巧
    【开发者必看】【Health kit】运动健康服务典型问题合集
    图神经网络:GAT学习、理解、入坑
    微信小程序4~6章总结
    Cesium DrawCommand [1] 不谈地球 画个三角形
    这18个网站能让你的页面背景炫酷起来
    Android 网络动态监听和是否联网
    【AGC】更新应用信息报未知错误解决方法
    C语言中的strcpy,strncpy,memcpy,memmove,memset函数strcmp
    温湿度阈值联网控制
  • 原文地址:https://blog.csdn.net/weixin_62877993/article/details/125983938