进程
什么是进程
进程就是正在进行中的程序,我们可以在任务管理器中看到.exe的文件。例如
.exe称为可执行文件,平时都是在硬盘上静止,对系统无任何影响,只有当你双击它时,操作系统就会把这个exe文件加载到内存中,让CPU开始执行exe内部的一些指令,这些运行起来的“可执行文件”,就称为“进程”。
对于java代码,最后都要通过java进程跑起来。(java进程就是jvm)
怎么管理进程
操做系统怎么管理进程?
PCB:操作系统管理控制进程运行所用的信息集合。
PCB是用来描述进程的数据结构。操作系统为每个进程都维护了一个PCB,用来保存与该进程有关的各种状态信息。
PCB中存储的信息
(一)进程标识信息
如本进程的标识,本进程的产生着标识(父进程标识),用户标识等。
(二)处理机状态信息保存区
用户可见寄存器,用户程序可以使用的数据,地址等寄存器;
控制和状态寄存器,如程序计数器,程序状态字;
栈指针,系统带调用/中断处理和返回时需要用到它。
(三)进程控制信息
调度和状态信息,用于操作系统进程并占用处理机使用。
进程间通信信息,为支持进程间的与通信相关的各种标识,信号等这些信息存在接收方的进程控制块中。
存储管理信息,包含有指向本进程映像存储空间的数据结构。
进程所用资源,说明由进程打开,使用的系统资源。
有关数据结构连接信息,进程可以连接到一个进程队列中,或连接到相关其他进程的PCB。
PCB的组织方式
1.链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表。如就绪链表,阻塞链表。
2.索引表:同一状态的进程归入一个index表,多个状态对应多个不同的index表。如就绪索引表,阻塞索引表。
注:一般会选择链表,因为可能面临进程创建,销毁等调度导致进程状态发生变化,所以链表能够更加灵活的插入和删除。
此处借鉴:https://zhuanlan.zhihu.com/p/88017448