• 进程调度的基本过程——请各位不要当渣男~


    注意:本文引用事例,请不要践行!

    首先来了解以下,何为进程调度

            进程调度,也就是通过“并行”和“并发”的方式,让计算机可以“同时”执行多个进程;

    那么,何为进程、何为并行执行、何为并发执行,怎么理解打引号的 同时 ?

            进程,也叫“任务”,实际上就是一个跑起来的程序,例如:QQ.exe文件叫做“可执行程序”,存储在硬盘上,而当你双击这个文件,操作系统就会把这个文件的核心数据加载到内存中去,同时在系统中生成进程,在任务管理器中就可以看到下图:

             并行执行,就是说每个CPU核心上,都可以独立的运行一个进程,而多个CUP就是独立运行多个进程;

            并发执行,一个CPU核心,先运行进程1,再运行进程2,再运行...这些进程只要再微观上切换的足够快,宏观上看起来就好像是多个进程同时运行一样,所以在理解同时两字为什么打引号,想必也就很清楚了;

    进程调度的基本过程是怎样的?了解以下几个属性,也就会很清楚了~

    1.进程状态

            分为两种阻塞状态进程就绪状态进程;

            打个不太好但是很生动形象的比方(请各位不要践行!),假如一个男生同时谈了三个女朋友,那么他就需要安排好一个时间表,前提是每个女朋友需要随叫随到(就绪状态进程),但是有的时候某个女朋友,也会有特殊状况,不能随叫随到(堵塞状态),因此这个男生就需要规划好时间表...言归正传,阻塞状态进程,就无法被调度到CPU上执行,就绪住状态的进程,才能上CPU执行

    2.进程优先级

            继续接着上一个例子~这个男生会根据自己的喜爱程度,给自己喜欢的多安排一些时间(优先),给不喜欢的就少排一点时间~

            也就是说系统调度的时候,就会根据优先级,来给进程安排时间,同时,相对的,创建进程的时候,可以通过一些系统调用来干涉优先级

    3.进程上下文

            进程在CPU上执行了一段时间,突然需要切换到别的进程上,这时候就需要对当前进程运行的结果进行保存(存档),然后再切换到别的进程上,这样,下次再轮到他的时候,就能恢复到当时间断的进程上了(读档);

            还是刚刚的例子,这个男生和女友A在一起商量好,几天后要去夏威夷旅游,没一会,女友B发消息说,我马上要过生日了,你帮我挑一件礼物吧~  过了几天,女友B发消息问道说,你准备的怎么样了,这个男生回答道:“护照早就办好了,明天就带你出发~”;这一说漏,八成会带来灾难性的后果~所以,这个男生之后就长记性了,对于这群女友,要干的每一件事情都拿个小本本记录下来(存档),需要的时候,在拿起来看看(读档);

    4.进程记账信息

            每个进程在CPU上执行了多久,都会被统计信息,执行进程的时候,虽然有优先级,但是还是不希望让有的进程完全捞不着CPU;

            通过这个男孩纸定制的时间表,就检查以下,是不是给哪个女朋友安排的时间太少了,如果太少了,就给这个女孩纸多安排一点时间,虽然啊,并不是很喜欢这个女孩纸,但是也不能完全不给她时间,如果不安排时间,过了一段时间之后,这个女孩纸可能就心灰意冷了,就不愿意tian了,就得适当给点甜头~;


    理解了上述理论部分,就可以完成进程调度了,若是干了上述例子,就可以不当人啦~~

    请一些人遵守道德底线,做个人吧~

    范闲:“注释经文,我,不如你;做人,你,不行~”;

  • 相关阅读:
    Java-Web手写MVC框架
    C++ 提高编程
    4.物联网射频识别,RFID开发【智能门禁项目】
    SpringMVC项目整合SSM统一异常处理
    阿里P8架构师进阶心得:分布式数据库架构MyCat学习笔记送给你
    72、Spring Data JPA 的 Specification 动态查询
    shell脚本常用命令(三)
    怎么用excel管理固定资产
    python期末复习案例
    Linux安装Anaconda
  • 原文地址:https://blog.csdn.net/CYK_byte/article/details/126522020