计算机进程调度的基本过程

目录

课前废话

1:了解操作系统

正课

1:什么是进程(process)

2:进程在系统中是如何管理的

3:进程的详细属性

4:进程的调度

补充

总结:

课前废话

1:了解操作系统

操作系统,本质都是用来搞管理的软件,对下管理所有的硬件设备,对上要给软件提供稳定的运行环境 。操作系统 = 内核+ 配套的应用程序(内核是操作系统最核心的内容,硬件的驱动程序都是在内核中运行的,内核还需要给很多应用程序提供支持)

对下:操作系统毕竟是一个软件,不可能认识市面上的所有硬件设备,但它知道,市面上的硬件设备就那么几个大的类别,每个类别下面的硬件功能大概有哪些功能~~,当有一些特色功能的硬件设备的时候,硬件厂商就需要在开发硬件的时候,同时开发一个驱动程序(软件),专属于这个硬件设备,让操作系统,通过这个驱动程序实现对硬件设备的控制。

对上:一个计算机上可以运行多个程序,这些程序独立运行,互不干扰,试想如果某个程序出BUG后导致了其它系统也崩溃需要重启,那体验就很糟糕了。这就需要有进程隔离性,也提出了我们今天的主角进程

正课

1:什么是进程(process)

一个跑起来的程序叫进程

这是一个程序它没跑起来的时候不是进程

这些跑起来的程序叫做进程,当程序跑起来的时候都需要消耗一定的系统资源

可以看到,每个进程是系统分发资源的基本单位

2:进程在系统中是如何管理的

管理从两个角度拆分来看

1:描述,使用类/结构体把被管理的对象的属性都描述出来

系统中有一个专门的结构体,描述进程的属性,这个结构体统称为进程控制块(PCB)

使用这个PCB来描述进程的属性,一个进程可以由一个或多个PCB来描述

2:组织,使用数据结构把被描述的对象,串起来,来方便后面增删查改的处理

系统会使用类似于双向链表的结构来组织PCB,创建进程就是创建PCB并把PCB插入到链表中

销毁进程就是把PCB从链表上删除并释放

展示进程列表,就相当于是遍历链表的每个结点

3:进程的详细属性

这里要说明一点进程 !=  PCB,进程是包含PCB,PCB中又有许多属性包括但不限于

(1)pid:用于标识一个进程的整数值(在java中有个线程的概念,可以理解为单个PCB,一个线程中的多个PCB是共用一个pid的)

(2)内存指针(一组属性):每个进程在运行的时候,都会分配一定的内存空间,具体是在哪里,以及分配的内存空间中有哪些部分,每个部分是干啥的,都有一组(不是一个)内存指针进行区分

(3)文件描述符表:当前进程关联了哪些文件,都能操作哪些文件,都是通过文件描述符表来进行的(也就是描述了进程持有的“硬盘资源是啥样的”)

...........

4:进程的调度

早期的操作系统就只能支持单进程,就是同一时刻只能运行一个进程,运行下一个程序就会退出上一个进程,这时的系统就不需要考虑进程的调度

 但是今时不同往日,单进程已经不能满足现在的需要,现在主流电脑上使用的都是多进程并发执行,并发执行靠的是进程调度实现的,而进程调度,又是使用抢占式执行的方法实现的

下面来看动图演示

(1):图中我画了两个进程

(2)进程1的PCB1在CPU上运行

(3)进程2的PCB在CPU上运行,此处发现进程2并没有等进程1的PCB调度完,就上CPU执行,可见

1:进程的调度是随机的

2:进程的调度是抢占式运行的(就是谁能强上CPU的位置,谁就可以执行,各凭本事)

(4)运行过后:

从(3)图可以想到,进程的调度既然是随机的,那么执行完多个进程的方式可能有无数种,但即使如此,因为进程的调度非常的块,我的电脑上一秒可以达到36亿次,所以人是感知不到调度的时间差的就好像,两个进程就好像是在同时进行一样

补充

当然进程的调度也不是完全随机,PCB中有个属性是进程的优先级,当一个比较重要的任务和一个不是很重要的进程同时进行的时候,系统会提高重要进程的优先级来让它尽快运行,就比如你打电脑游戏的同时开着QQ,此时系统给游戏分配的进程优先级肯定是比QQ高的,QQ可以晚几秒收到消息,但游戏卡一下可能会导致团灭。另外在代码中我们还可以通过加锁,线程等待等手段,来实现对进程调度的控制,从而来满足我们的实际开发需求

总结:

1:操作系统 = 内核+ 配套的应用程序

2:进程是系统分发资源的基本单位,PCB(java中的线程)是系统调度的基本单位

3:进程的调度是随机的,但可以通过进程优先级,代码手段来进行控制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值