一、进程
-
进程是操作系统对一个正在运行的程序的一种抽象
-
进程是操作系统进行资源分配的基本单位
-
进程控制块(PCB)
(1)是一个非常大的结构体,具有很多属性
(2)包含:
pid———进程的唯一标识,身份标识符
内存指针———需要知道执行的指令在哪,依赖的数据在哪
文件描述符表———和硬盘交互时硬盘上的数据就是文件形式组织。每打开一个文件,文件的信息就会保存到文件描述符表中。
-
进程运行,执行指令都靠cpu,需要消耗cpu资源
-
进程运行依赖硬盘,网卡等相关资源设备
-
cpu分配———进程调度
(1)进程状态:(两个典型)就绪态,阻塞态
(2)进程优先级
(3)进程上下文:1)保存上下文:把cpu中的寄存器值保存到内存中
2)恢复上下文:把PCB中刚才保存的属性填回相应的寄存器中
(4)进程的记账信息:统计每个进程在cpu上的运行时间
二、进程与线程(Thread)区别
1.线程创建、销毁的开销更小
(1)创建/销毁/调度线程比进程更快
2.关于资源申请与释放
(1)进程:创建需要申请资源,销毁需要释放资源
(2)线程:只有第一个线程创建时(和进程一起创建时)申请资源,只有所有线程都销毁时才释放资源。
3.联系
(1)每个进程至少有一个线程,为主线程
(2)进程与进程间不共享内存空间(稳定性);线程与线程之间共享内存空间。
(3)一个进程挂了不影响其他进程。
(4)一个线程挂了可能连带着其他线程一起崩溃。(如果及时捕捉到线程抛出的异常,处理掉,也不一定导致进程终止。
(5)每个线程都会有一份(调度相关,状态,优先级,记账信息,上下文)的数据,但共用一个文件描述符表和内存指针。