进程:进程是进程实体的运行过程,是系统资源分配的基本单位(引入线程之后不再作为调度的基本单位)。
(进程实体:由程序段,相关数据段和PCB三部分构成的进程映像,即进程实体)
线程:为了更好的使用多道程序并发执行,提高资源利用率和系统吞吐量而引入线程,线程就是轻量级的进程,是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID,程序计数器,寄存器集合和堆栈组成。线程是一个进程中的实体,是被系统独立调度和分配的基本单位,本身不拥有系统资源。
并发:是指多个进程实体(或线程)在相同间隔的时间内交替执行,宏观上表现为进程在同时运行。(系统时间片很小)
并行:是指在多核CPU中,多个线程同时在不同的核中同时运行。
分时操作系统:非常经典的进程并发处理系统,在此操作系统中使用时间片轮转法来控制进程(线程)的执行,即在很小且固定的时间间隔内不停轮换交替执行任务,时间片用完马上将处理器资源交付到下一个任务,并且保存上一个任务的现场环境配置信息,如状态字寄存器信息和程序计数器信息。
进程的生命周期:(转换过程)
线程的实现方式:
-
用户级线程:在用户级线程中,有关现场管理的所有工作都由应用程序完成,内核意识不到线程的存在,应用程序可以通过使用线程库设计成多线程程序。
-
内核级线程:线程的管理工作由内核完成,应用程序没有进行线程管理的代码,只有一个到内核级线程的编程接口。
多线程模型:实现用户级线程和内核级线程的连接方式
1.多对一模型:将多个用户级线程映射到一个内核级线程。线程管理在用户空间内完成,用户级线程对操作系统不可见。
2.一对一模型:每个用户级线程映射到一个内核级线程。并发能力较强。
3.多对多模型:将n个用户级线程映射到m个内核级线程上,m<=n。是前两种模型的折中。既克服了多对一中并发度不高的缺点,有客服了一对一占用太多内核线程的问题。