目录
🚚进程管理
🚓🚕pid
🚓🚕内存指针
🚓🚕文件描述符表
🚓🚕进程的隔离性
什么是进程
进程是系统进行资源分配的基本单位。简单来说,进程就是一个跑起来的程序。我们可以直接通过任务管理器直接看到当前系统上有那些进程正在运行着。
进程管理
1.描述一个进程:通过使用结构体或者类把一个进程有哪些信息表示出来。
2.组织进程:通过一定的数据结构把这些结构体或者类组织起来。
就像学校管理学生:
1.通过学生管理系统,明确每个学生的相关属性信息。
2.通过一定的数据结构把这些学生信息组织保存起来(例如表格之类的)。
进程结构体(PCB)的核心属性
pid
标识符,进程的唯一身份标识。
内存指针
表示当前进程所占的是内存的哪一部分。
文件描述符表
每个进程运行时,会打开很多的文件,每打开一个文件,就会生成一个文件描述符,用来描述当前文件的(被打开)的状态。这些文件描述符会存到一个顺序表的结构中,形成文件描述符表。(硬盘资源)。
进程的调度(重要)
首先我们要先了解两个概念(并行,并发):
进程的隔离性
每个进程通过虚拟地址空间来映射一个物理内存,之间互补干扰。
操作系统通常使用双向链表来组织管理进程。
创建进程:就是在链表上创建一个节点。
销毁进程:就是删除链表上的一个节点。
进程间通信
在隔离性的前提下,找到一个公共区域,两个进程通过这个公共区域进程通信。
操作系统提供了很多种进程间的通信方式:管道,消息队列,共享内存......
Java中主要使用文件和socket来完成。
什么是线程
线程是系统调度运行的基本单位。
进程是比较重量级的,消耗资源的,而线程是一个轻量级进程,一个进程里可以包含多个线程,多个线程之间是并发的。同时这些线程共用一份系统资源。
上面说的属于进程的属性,也是属于线程的。
线程轻量的原因
注意:一个线程如果出现异常,可能会直接带走整个进程。