当前位置: 首页 > news >正文

进程和进程调度

目录

1.进程的引入

2.进程的概念

3.操作系统如何管理进程

4.PCB

4.1 PCB的理解

4.2 PCB的一些关键属性

5.进程调度


1.进程的引入

进程是操作系统中一个非常重要的概念。先来理解什么是操作系统。

相信大家对于操作系统并不陌生,比如目前常见的操作系统有:Android系统、IOS系统、Windows系统、Linux系统以及鸿蒙系统等。那么,操作系统究竟是什么?

操作系统是一组做计算机资源管理的软件的统称。简单理解它就是一个“大管家”,专门搞管理工作的,并给各种应用程序提供一个稳定的运行环境。这些应用程序在工作过程中,是不会发生相互干扰的,即使某一个应用程序发生一些问题(bug)也不会影响其他应用程序的正常运行。

想要完成这种稳定的运行环境,就需要进程,进程就是专门辛辛苦苦搞工作的“奋斗者”。

2.进程的概念

上面提到,进程就是专门辛辛苦苦搞工作的“奋斗者”。所以,进程就是操作系统对一个正在运行的程序的一种抽象,简而言之,就是把进程看作程序的一次运行(或者一个运行起来的程序就是一个进程)

3.操作系统如何管理进程

进程为什么需要管理?

可以假设有一个班级的学生,学生有各种信息包括学号、姓名、性别、联系方式、家庭住址等等,如果只是十几个学生,班主任可以记住每位同学的信息。但是如果人数很多,班主任就很难记住他们的全部信息,所有这时候就需要管理,通过一些方法保存学生的各种信息。

操作系统也是如此,在现代的计算机中,同一时间跑百八十个进程是非常常见的,所以操作系统就需要对这些进程进行管理。操作系统依靠进程控制块(Process Control Block,PCB)对进程进行管理(关于 PCB 在后文讲)。

所以,操作系统要先描述一个进程是什么样的(就行在Java中描述一个类一样),使用 PCB 描述这个进程的核心属性然后把通过数据结构把这些进程组织起来,比如 Linux 这样的操作系统就是使用数据结构中的链表把多个 PCB 给连接到一起的,这就创建了一个新的进程。如果要销毁一个进程,对于链表形式就是把这个进程的 PCB 在链表上找到,必然会进行删除即可。最后是查看进程列表,会先遍历链表,取出链表上的每个元素,然后把一些关键信息显示出来。(不同的操作系统连接 PCB 时使用的数据结构不一样,这里只是以 Linux 为例)

4.PCB

4.1 PCB的理解

前文提到 PCB ,PCB 是什么呢?

计算机内部要管理的任何事物,都需要将其抽象成一组有关联的、互为一体的数据。在Java中我们会通过类来描述这一特征。所以,PCB 也是这样的,它可以理解成一个巨大的结构体,里面存放很多种属性,相当于它描述的是一个类的属性。这样,每一个 PCB 对象,其实就代表这一个实实在在的正在运行的程序,也就是进程。

4.2 PCB的一些关键属性

1. PID :指进程的 id,进程的身份标识符。

2.内存指针:一个 PCB 对象,其实就是一个进程,那么进程需要执行的指令依赖的是什么?在电脑上,每一个应用程序对应一个 .exe 文件,当双击这个文件时,就创建了一个进程,此时操作系统就会把 .exe 中的指令和数据读取出来,加载到内存中,这些指令在运行过程中,依赖的就是数据,所以进程的运行过程中,需要依赖内存资源

3.文件描述符表:进程运行过程中,是需要和硬盘进行交互的,硬盘上的数据,就是以文件的形式来组织的,而进程在读写文件的时候,就需要进行“打开文件”操作,比如 C语言 上的 “fopen”,每次打开一个文件,就会把这个文件的信息保存到文件描述符表中,表里的每个项,就对应着一个已经打开了的文件。当然,操作系统中,会把很多的资源与抽象成文件来表示,不一定的硬盘,还有可能是网卡等。所以进程的运行,也会依赖硬盘、网卡等资源,同时,进程的运行,它所执行的指令都是依靠 CPU 的,进程也需要消耗 CPU

所以,进程是操作系统进行资源分配的基本单位

4.进程状态

5.进程优先级

6.进程上下文

7.进程记账信息

其中,进程状态、进程优先级、进程上下文、进程记账信息是进程调度的关键组成部分,在下文详细介绍。

5.进程调度

什么是进程调度?进程调度就是操作系统在进程管理过程中,要完成的重要工作。

1.进程状态

进程状态有很多种,但在这里主要介绍两种最经典的,也就是就绪状态和阻塞状态。

(1)就绪状态:进程可以随叫随到,随时到CPU上进行执行,就叫就绪状态

(2)阻塞状态:进程当前不适合到CPU上进行执行,叫做阻塞状态。

比如:你有三个爱好,打篮球、听音乐和敲代码,如果晚上你睡不着并且非常想找一件事情做缓解失眠状态,但是球馆已经关门了,也就是不能打篮球,所以你可以听音乐或者敲代码,也可以同时进行听音乐和敲代码,这个时候,听音乐和敲代码就属于就绪状态,而打篮球就属于阻塞状态。

2.进程优先级

进程并不是单一的,在百八十个进程中,它们占用的CPU资源也不会一样,也就是到CPU上执行的集合不是均等的,所以有一些进程的优先级更高一些,会吃到更多的CPU资源。

比如,在你看来听音乐的爱好大于敲代码,那么你会先选择听音乐。

3.进程上下文

进程上下文是指在进程调度过程中,一个进程执行一次,CPU上的寄存器就会保存当前的运行状态,过了一段时间后,进程回到CPU上执行,是回到上次执行结束的状态

比如:在以前玩的一些离线小游戏,就是不需要联网也可以玩的,当时就有一个存档的功能,当你要退出游戏的时候,就可以就进行存档,等到下次登录游戏的时候,就会回到上次的存档记录。

4.进程记账信息

进程记账信息就是一个统计功能,统计每个进程在CPU上运行了多久。前面提到进程优先级,在那么多的线程里,可能有一些进程是小透明,但是又不能没有没有这些进程,所以这些线程有一定时间都没有得到CPU资源时,就会给他们分配一些资源。

比如:你一直喜欢听音乐和敲代码,过了一段时间,你发现已经很久没有打篮球了,你就会想着去打篮球。

进程是操作系统进行资源分配的基本单位是操作系统实现多任务稳定运行的基础,通过合理的资源分配确保系统高效运转


进程是“重量级的”,有没有“轻量级的呢”?答案肯定是有的,线程就是“轻量级”。线程是什么呢?,欲知后事如何,且听下回分解!

http://www.dtcms.com/a/342652.html

相关文章:

  • Rclone入门对象存储云到云迁移
  • 我从零开始学微积分(2)- 函数与图形
  • YOLO --- YOLOv3以及YOLOv4模型详解
  • Redis Hash数据类型深度解析:从命令、原理到实战场景
  • IPSEC安全基础后篇
  • 易焓仪器安全帽耐熔融金属飞溅性能测试仪:飞溅场景适配与精准检测
  • 力扣 30 天 JavaScript 挑战 第37天 第九题笔记 知识点: 剩余参数,拓展运算符
  • 智慧农业温室大棚远程监控物联网系统解决方案
  • CRaxsRat v7.4:网络安全视角下的深度解析与防护建议
  • AECS(国标ECALL GB 45672-2025)
  • 5G视频终端详解 无人机图传 无线图传 便携式5G单兵图传
  • 汇总图片拖进ps中 photoshop同时打开几个文件夹
  • 【论文阅读 | TCSVT 2025 | CFMW:面向恶劣天气下鲁棒目标检测的跨模态融合Mamba模型】
  • 深入理解Docker网络:从docker0到自定义网络
  • 设计简洁的Ansible:目前非常流行的开源配置管理和自动化工具
  • webrtc中win端音频---windows Core Audio
  • Mysql基础(②锁)
  • 想在手机上操作服务器?cpolar让WaveTerminal终端随身携带,效率倍增
  • 高并发短信网关平台建设方案概述
  • 打造医疗新质生产力
  • nodejs安装后 使用npm 只能在cmd 里使用 ,但是不能在poowershell使用,只能用npm.cmd
  • ES_多表关联
  • Linux 信号 (Signals)
  • 鱼眼相机去畸变的算法原理(一)
  • WEB服务器(静态/动态网站搭建)
  • 循环神经网络实战:用 LSTM 做中文情感分析(二)
  • Mokker AI:一键更换照片背景的AI神器
  • 鸿蒙生态开发全栈指南
  • mac的m3芯片安装mysql
  • 统计全为1的正方形子矩阵-二维dp