Introduction
刚刚看博客的时候看到了多线程与多线程,然后想起了两周前的组会上就提到了这个概念,当时忘记记录下来,首先得借鉴一下来自我们实验室的一位学霸的图作为引入,具体概念区别后文会讲解
任务调度(包括操作系统基础)
- 大部分的OS(例如:Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式(即:A任务执行一段时间后被强制暂停,然后去执行另外下一个任务,各个任务轮流执行,依次类推)。
- 具体过程描述:任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态等待下一个属于它的时间片的到来。这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任务在“同时进行”,这也就是我们所说的并发(别觉得并发有多高深,它的实现很复杂,但它的概念很简单,就是一句话:多个任务同时执行)。多任务运行过程的示意图如下:
- 计算机的核心是中央处理器(CPU),它承担了所有的计算任务;
- 计算机的管理者操作系统(OS),它负责任务的调度、资源的分配和管理,统领整个计算机硬件;
- 而应用程序侧是具有某种功能的程序,程序是运行于操作系统之上的。
进程
-
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序、数据