文章目录
进程(任务)
什么是进程?
按照字面意思可以理解为进程是正在运行的程序
这些可执行文件,都是文件,平时都静静地躺在硬盘中。在双击之前,不会对操作系统有任何的影响。
一旦执行这些文件,操作系统会将这些 .exe 文件加载到内存中,并且让CPU开始执行这些.exe内部的一些指令(exe里面存放着很多这个程序相对应的二进制指令)。
这个时候,这些exe文件就开始进行一些具体的工作了,把这些运行起来的可执行文件,称之为“进程”
对于java代码来说,最后都是通过java进程跑起来的(JVM)
进程(process)还有另一个名字 任务(task)
操作系统是如何管理进程的
- 先描述一个进程(明确出一个进程上面的相关属性)
进程上的相关属性在操作系统中,主要通过C/C++实现的
此处的描述其实就是用的C的”结构体“(和Java的类差不多)
操作系统中,描述进程的结构体,成为PCB(process control block 进程控制块)
- 再组织若干个进程(使用一些数据结构,把很多描述进程的信息放在一起,方便进行增删改查)
典型的实现(Linux操作系统),就是使用一个双向链表将每个进程的PCB给串起来
所谓的"创建进程"就是先创建出PCB,然后把PCB加到双向链表中
所谓的"销毁进程",就是找到链表上的PCB,并且从链表上删除
所谓的"查看任务管理器“,就是遍历链表
很多代码其实最终全部都落在操作系统上
</