关于进程与进程调度

进程是一个运行中的程序,通过任务管理器可见。进程管理涉及使用PCB(进程控制块)存储进程信息,并用数据结构如双向链表组织。PCB包含属性如PID、内存指针、文件描述符表等。并行是指多核心同时执行,而并发是单核心快速切换执行,两者在用户层面常统称为并发。

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

什么是进程

一个运行起来的程序就是进程.
比如文件名是以 exe 结尾的就是一可执行文件(程序)
在这里插入图片描述
双击QQ.exe文件, 这个程序就跑起来了, 它在系统中形成了一个进程, 那我们怎么看到进程呢?
可以打开任务管理器, 点开进程就可以看到了:
在这里插入图片描述

进程管理

我们可以看到上面有100多个进程, 那它们有是如何被管理的呢?
其实就是两步:

  1. 描述一个进程 : 使用 结构体 / 类, 把一个进程有哪些信息表示出来.
  2. 组织这些进程 : 使用一定的数据结构来把这些 结构体 / 对象 放到一起.

进程的结构体(PCB)里的属性

  1. pid 就像我们的身份证一样, 每个进程也需要有唯一的身份标识.
  2. 内存指针 当前这个进程使用的内存是哪一部分
  3. 文件描述符表

进程每次打开一个文件, 就会产生一个"文件描述符", 标识这个被打开的文件
一个进程可能打开多个文件, 对应一组"文件描述符"
把这些文件描述符放到顺序表这样的结构里, 就构成了"文件描述符表".

  1. 有一组属性是专门来描述和CPU资源相关的, 这些属性都是辅助进行, 是进程调度.
  1. 进程状态
    简单认为进程有两种状态:
    就绪态: 该进程已近准备好, 可以随时上CPU执行.
    阻塞态: 该进程暂时无法上CPU执行.
  2. 进程的优先级
    进程之间的调度不一定是公平的, 有些进程会优先调度.
  3. 进程的上下文
    就行当于是个存档记录, 描述了进程执行到了哪里, 进程在离开CPU的时候就会把当前运行的中间结果存档, 等下次进程在CPU上执行的时候, 再读档, 从上次的结果开始继续执行.
  4. 进程的记账信息
    统计了每个进程在CPU上执行的次数, 可以作为调度的参考依据.

操作系统往往使用 双向链表 来存储PCB

  1. 创建一个进程就是创建一个节点.
  2. 删除一个进程就是把这个节点给删了.
  3. 遍历进程列表, 就是在遍历链表.

并行与并发

并行:
同一时刻, 两个核心同时执行两个进程, 此时这两进程就是 “并行” 执行的.

并发:
一个核心先执行进程1, 执行一会儿后再去执行进程2, 再执行一会儿后去执行进程3…此时这里的切换速度如果足够快, 那么看起来这些进程1,2,3就是同时 “执行” 的. 这便是并发.

因为并发与并行完全是操作系统自身控制的, 我们感受不到, 所以在很多时候我们都把 并行+并发 统称为并发.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风的浪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值