操作系统的进程详解

什么是进程?

进程也叫任务,一个跑起来的程序,被称为“进程”。平时在文件中看到后缀为.exe文件是可执行程序,存储在硬盘上,双击exe文件,操作系统就会把这个文件的核心数据加载到内存中,同时在系统中,生成一个进程。

管理进程

1.描述:详细的表示清楚,一个进程有那些熟悉/信息。结构体(PCB进程控制块)包含一个进程的各种信息。

2.组织:通常会使用双向链表把这些PCB给组织在一起。创建一个进程,本质上就是创建PCB,并且加入到链表上。销毁进程,本质上就是从链表上删除对应的PCB节点。查看任务管理器的进程列表,本质上就是遍历这个链表。

详解PCB

1.pid进程的身份标识   一个主机,同一时刻,这些进程的pid是唯一的,通过pid来区分进程

2.内存指针    创建进程,需要给进程分配内存空间。空间上有很多区域:有的用来存放指令,有的用来存放数据,有的用来维护运行状态.......内存指针用来指明哪块内存是干什么的,描述进程拥有的内存资源。

3.文件描述符表    每个进程都会打开一些文件(文件是存储在硬盘上的数据)文件描述符表就记录当前进程都打开那些文件,描述进程持有的文件资源

跟“进程调度”有关的属性(CPU资源有限,而进程很多,需要合理安排)

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

并行执行:每个CPU核心可以独立完成一个进程,多个CPU核心,就可以同时独立完成多个任务

并发执行:一个CPU核心快速运行多个进程,宏观上看就是多个进程同时运行

4.进程状态: 进程有两种状态,一种是就绪状态,另一种是阻塞状态。只有就绪状态才能被CPU调用,阻塞状态无法被CPU调用。

5.进程优先级:系统调度时,会根据优先级,来给进程安排时间。创建进程的时候,也可以通过一些系统调用来干扰优先级(相对的)

6.进程上下文:进程在CPU上执行一会后,要切换到其他进程,就需要保存当前进程的中间结果(存档),下次再轮到他执行的时候,就恢复之前的中间结果(读档),继续往下执行 

7.进程记账信息:统计每个进程在CPU上执行多久(按执行的指令条数),执行进程的时候,虽然有优先级,为了避免有进程捞不着CPU执行,通过时间表,如果有的进程执行时间太少了,就多安排一些

虚拟地址空间

每个进程都会分配内存空间,但是如果直接内存,可能出现内存访问越界(也就是野指针)为了不让进程1指针越界操作,影响到进程2。给每个进程分配“虚拟内存空间”并通过专门的设备MMU来完成虚拟地址到物理地址的映射。

使用“虚拟地址空间”,会使进程有了隔离性,一个进程不能直接访问到另一个进程的内存数据。但是有的场景需要多个内存互相配合,因此引入了“进程间通信”

进程间通信

核心原则:找一个多个进程都能访问到的公共资源,基于公共资源来交换数据。

例如,快递员把快递送到菜鸟驿站,你去菜鸟驿站取快递。你们两者没有见面,此时菜鸟驿站就是你们的公共资源。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

指挥部在下面

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

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

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

打赏作者

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

抵扣说明:

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

余额充值