一、进程
1、什么是进程?
进程是一种操作系统中非常重要的软件资源,同时也是操作系统中的分配资源的最小单位;
当把双击一个可执行文件是,操作系统就会加载它的很多内容到内存中,分配一些资源,并开始执行这个可执行程序中包含的指令,此过程就可被称为 “ 过程 ” ;
把一个可执行程序运行起来,系统中就会创建一个进程,当程序执行结束了。对于进程就会被销毁掉;
2、进程的管理
先描述,再组织;
以 linux 为例,内核中使用一个 task_struct / PCB(进程控制块)结构体来描述进程,每创建一个进程,就同时创建一个PCB 这样的类的实例,再通过 双向链表把所有的 PCB 对象串在一起;
一个进程会在内核中对应一个PCB对象
PCB 包含的信息:身份标识、一组指针(指向该进程中一些重要数据存在内存中的位置)、状态、优先级、上下文,记账信息
3、并发式执行
宏观上,各进程是并行的,同时运行的
微观上,其实是串行执行的,只是 CPU 运算速度太快,人感知不到而已
二、线程
1、什么是线程
线程就是操作系统进行调度和执行的最小单位;
线程又称轻量级 “ 进程 ”,因为创建一个线程比创建一个进程成本低,销毁一个线程比销毁一个进程成本低;
2、线程的特点:
- 线程包含在进程中
- 每个进程有多个线程,
- 每个线程都有自己要执行的逻辑指令,每一个线程都是一个 “ 执行流 ”,
- 同一个进程中的多个线程,共享一些资源
3、线程的管理
先描述:用 PCB
再组织:用一个双向链表来组织
4、线程同样是并发执行的