进程与线程-基于操作系统层次
eaaomk 2022-01-07 23:00:00 OS
# 进程与线程-基于操作系统层次
# 并发与并行
- 首先我们需要知道并发和并行的区别,很多人都错误的理解了并发的概念。
- 并发是指在一个时间段内触发很多个任务,从宏观上看,任务是同时执行的,从微观上看不是。也就是说在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。
- 并行是指在一个时间点也就是某个时刻,许多个任务同时刻的触发,无论是微观还是宏观,多个任务它是精确到每一时间点都是同时执行的。也就是说在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。
或许上面的理论有点抽象,在这里举一个更具体的例子:
- 并发:安排一个人同时看两本书,那么在某一时刻,只有一本书正在被这个人用眼睛阅读,要看完两本书,只能这一本先看一点,然后另外一本书再看一点,这就是所谓的时间片轮转调度 (opens new window)。
- 并行:安排两个人同时看两本书,那么在某一时刻,这两本书都是在被人阅读。
# 进程与线程的理论知识
进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。
线程(thread) 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
简化一下:
进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程——资源分配的最小单位。
线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——程序执行的最小单位。
# 深入理解进程与线程
- 前趋图与程序的执行
- 进程的描述
- 进程控制
- 进程同步
- 经典进程同步的问题
- 进程通信
- 线程的基本概念
- 线程的实现