Appearance
什么是进程
- 操作系统分配资源最小的单位
- 进程是一个动态的概念,是程序的一次执行过程
- 进程是程序的载体
- 进程是系统进行资源分配和调度的一个独立单位
什么是线程
- 线程是操作系统进行调度的最小单位
- 线程是进程的一部分
- 线程是程序执行的最小单位
进程和线程的区别
- 进程是资源分配的最小单位,线程是CPU调度的最小单位
- 进程有自己的独立地址空间,线程共享进程的地址空间
进程之间的通信方式
- 同一台机器: 管道、消息队列、共享内存、信号量、套接字
- 不同机器: RPC、Socket
线程之间的通信方式
- 锁、信号量、条件变量
cpu如何调度进程和线程
- 进程调度: 优先级调度、时间片轮转、多级反馈队列
- 线程调度: 抢占式调度、协同式调度
- 时间片: CPU将时间分片分配给各个进程或线程,每个进程或线程占用 CPU 的时间片段称为时间片
- 优先级调度: 操作系统根据进程或线程的优先级来调度 CPU
- 时间片轮转: 每个进程或线程被分配一个时间片,时间片用完后,CPU 将时间片分配给下一个进程或线程
- 多级反馈队列: 将进程分为多个队列,每个队列的优先级不同,优先级高的队列的时间片短,优先级低的队列的时间片长
- 抢占式调度: 操作系统可以强制暂停当前任务,将 CPU 分配给其他任务
- 协同式调度: 当前任务主动放弃 CPU,将 CPU 分配给其他任务
并发和并行的区别
- 并发: 同一时间段内,多个任务在交替执行
- 并行: 同一时间段内,多个任务同时执行
- 并发是一种逻辑上的概念,而并行是一种物理上的概念
- 并发是多个任务交替执行,而并行是多个任务同时执行