java ee 之进程
迪丽瓦拉
2024-05-30 21:33:14
0

目录

1.进程的概念

2.进程管理

3.进程属性(pcb)

3.1pid

3.2内存指针

3.3文件描述符

3.4进程调度

3.4.1进程状态

3.4.2 进程的优先级

3.4.3进程的上下文

3.4.4进程的记账信息

5.进程间通信


1.进程的概念

一个运行起来的程序,就是进程

.exe是一个可执行文件(程序),双击exe,程序跑起来,就在系统中形成一个进程

2.进程管理

管理分两步:

1.描述一个进程:使用结构体/类,把一个进程有哪些信息表示出来

2.组织这些进程:使用一定的数据结构,把这些结构体/对象,放到一起

3.进程属性(pcb)

3.1pid

每一个进程要有唯一的一个身份标识符

3.2内存指针

 当前这个进程使用的内存是哪一部分

进程要运行,就要消耗一定的硬件资源,运行时使用的内存上的资源

3.3文件描述符

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

进程运行要从操作系统申请资源(资源包括不限于内存,硬盘,cpu等)

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

3.4进程调度

cpu 核心数,如果有8个物理核心,那么就有16个逻辑核心

并行:同一时刻,两个核心,同时执行两个进程

并发:一个核心,先执行进程1,执行一会之后,在执行进程2,再执行一会之后,在执行进城....,只要切换速度足够快,看起来,进程123就是'同时'执行

3.4.1进程状态

  • 就绪态:进程已准备好,随时可以上cpu执行
  • 阻塞态:进程暂时无法上cpu执行

3.4.2 进程的优先级

 进程之间的调度不一定是公平的,要有优先级

3.4.3进程的上下文

  • 上下文,就是描述了当前进程执行到哪里这样的"存档记录",进程在离开cpu的时候要把当前运行的中间结果,"存档"等到下次进程回来cpu上,在恢复之前的存档,从上次的结果继续往后执行
  • 上下文具体指就是进程运行过程中,cpu内部的一系列寄存器的值,

寄存器:典型的是保存当前进程执行的中间结果,包括进程运行到哪一条指令

  • 存档:进程离开cpu,要把寄存器的值保存到pcb的上下文字段中
  • 读档:进程下次回来cpu,再把pcb中的值给恢复到寄存器中

3.4.4进程的记账信息

 

  • 统计每个进程,在cpu上执行了多久,可以作为调度的参考依据

4.内存分配--内存管理

操作系统给进程分配的内存,是以"虚拟地址空间"的方式进行分配的,每个进程访问的内存地址,都不是真实的物理内存地址

虚拟地址空间

如果进程1,出现野指针,拿着地址,发现页表上没有这个地址,无法翻译,就无法真正的修改物理内存,就不会对别的进程的内存数据造成干扰

一个进程无法直接干预另一个进程的内存内容-->进程的独立性

5.进程间通信

进程之间进行交互,相互配合

如果进程可以直接访问物理内存,其实没有隔离性,就不需要进程间通信.

进程通信,就是在隔离性的前提下,找一个公共的区域,让两个进程借助这个区域来完成数据交换

进程间通信,在隔离性的前提下,找到一个公共区域,让两个进程借助这个区域来完成数据交换.

操作系统提供的进程间通信具体实现方式,有很多种,管道,消息队列,共享内存,信号...

相关内容