什么是进程

本文介绍了进程的基本概念,包括其在操作系统中的角色、进程的管理机制(如PCB)、进程调度的原理(如状态、优先级和上下文)、以及虚拟地址空间的作用。进程间的通信也有所提及,为后续讨论线程打下基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程的概念

进程,用大白话来说,就是正在跑的程序.
我们打开Windows系统的任务管理器:
在这里插入图片描述

这时,我们看到的都是进程.

进程是操作系统对一个正在运行的程序的一种抽象,换言之,可以把进程看做程序的一次运行过程;同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。
程序是一个可执行文件,是静态的. 运行一个程序,就会把可执行文件中的数据和指令,加载到内存中,并让cpu去执行这里的指令,动态的运行起来,这就是进程.
可执行程序占用了硬盘资源.而进程会消耗cpu资源,内存,硬盘,网络带宽...

进程的管理

一台正在运行的计算机是包含很多进程的,这就需要去管理进程!

  • 描述: 会使用一个结构体来记录一个进程里面的属性,也就是PCB(Process Control Block).
  1. pid进程的标识:
    在同一个系统上,同一时刻,每个进程的pid一定都是不同的.

在这里插入图片描述
2. 内存指针:
最主要存储了从可执行文件中加载过来的指令和数据,还有一些运行过程中的中间结果之类的.
3. 文件描述符表:
每个进程都会有一个"文件描述符表"来记录,当前这个线程在使用哪些文件,包括(fopen,fread,fwrite,fclose).
操作系统打开一个文件,就会产生一个"文件描述符",使用文件描述符表组织起来.

  • 组织: 会使用一系列的数据结构,把多个进程进行有效的组织,随时方便进行遍历,查找.
    在Linux中,是使用双向链表来组织的.

进程的调度

进程是需要在cpu上执行指令的.

  1. 并行: 同一时刻,两个进程,同时运行在两个cpu逻辑核心上.
  2. 并发: 两个进程,在一个cpu逻辑核心上,由于cpu切换进程速度极快,在微观上,这辆进程是串行执行的.宏观上,这俩进程就是同时执行的.
    由于感知不到是那种方式调度,并且这两种调度方式宏观上体现的效果都是一样的,通常也会用"并发"来指并行和并发.

PCB中关于进程调度有4个相关的属性(描述了进程的cpu资源的使用):

  1. 状态:
就绪状态: 一个进程已经随时做好了在cpu上执行的准备.
阻塞状态: 进程还没有准备好被调度到cpu上.
还有一些别的状态,这里不11列举了.
  1. 优先级:
系统在给进程进行调度的时候,会根据优先级的不同,来决定时间分配的权衡.
就可以把系统资源分配给更重要的进程上了.
  1. 上下文:
对于操作系统来说,所记录的上下文就是进程在执行过程中,cpu的寄存器中对应的数据.
这些寄存器,有些会存中间数据,有些会存特定意义的数据,这些寄存器会在进程离开cpu时,在寄存器中保存好.下次该进程再次进入cpu时,进程就和上次执行的状态一模一样了.(就是存档了)
  1. 记账信息:
它会统计每个进程在cpu都执行多久了,执行了多少指令了,相对于是对进程调度进行兜底.

虚拟地址空间

虚拟地址,并非是在物理内存中真是存在的地址,而只是在该进程内存在.
在不同的进程中,可以存在相同的虚拟地址,但是实际对应的只是不同的物理地址.
在虚拟地址和物理地址之间,操作系统可以灵活的进行切换.

这个概念有点抽象,我画个图出来:
在这里插入图片描述
比较简略…
这样设定后,每个进程的虚拟地址都是固定范围.
进程使用该虚拟地址的内存,都需要操作系统进行转换成物理地址的过程.这个转换过程中,就可以针对虚拟地址是否有效做出一个校验.
有了虚拟地址空间,进程就有了"独立性",一个进程无法直接访问和修改其它进程的虚拟地址空间的内容,进一步强化了系统的"稳定性".

进程间通信

虽然我们通过虚拟地址空间把进程隔离开了,但是还是需要让进程之间产生配合与联系.
那就是在多个进程都能够访问到的区域,借助公共区域来完成数据的交换.(我也没有深入学习,就不写上了)

结语

在本文中,了解了什么是进程,进程是如何管理的,依靠PCB进行进程调度,还有什么是虚拟地址空间的概念,在下一个博客中,将会学习线程,是一个非常重要的概念.
家人们多多支持!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值