【操作系统】-- 进程的描述与控制、线程(进程定义、组成、特征、状态、控制,线程定义、属性、实现)

一、进程的定义

为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,引入进程概念。

典型的定义:

1、进程是程序的一次执行。

2、进程是一个程序及其数据在处理机上顺序执行时所发生的活动。

3、进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

引入进程实体概念后,可定义为:

进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

二、进程的组成

Ⅰ、进程控制块(PCB)包括:

1、进程描述信息:①进程标识符②用户标识符

2、进程控制和管理信息:①进程当前状态②进程优先级

3、资源分配清单:①程序段指针②数据段指针③键盘④鼠标

4、处理及相关信息:各种寄存器值(保存当前程序执行到哪一句)

Ⅱ、程序段

存放要执行的代码

Ⅲ、数据段

存放程序运行过程中处理的各种数据

三、进程的特征

1、动态性(最基本的特征)

进程是程序的一次执行过程,是动态地产生、变化和消亡的。

2、并发性

内存中有多个进程实体,各进程可并发执行。

3、独立性

进程是能独立运行、独立获得资源、独立接受调度的基本单位。

4、异步性

各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题。

5、结构性

每个进程都会配置一个PCB,结构上看,进程由程序段、数据段、PCB组成。

四、进程的状态

运行态:占有CPU,并在CPU上运行。

就绪态:已经具备运行条件,但没有空闲CPU,而暂时不能运行。(已经拥有了除CPU之外的所有需要的资源)

阻塞态:因等待某一事件而暂时不能运行。(如等待分配打印机、等待读磁盘操作的结果)

【操作系统】-- 进程的描述与控制、线程(进程定义、组成、特征、状态、控制,线程定义、属性、实现)_第1张图片

五、进程控制

进程控制就是要实现进程状态的转换。

进程控制一般是由OS的内核中的原语来实现。(原语操作需要一气呵成,不可中断)

1、进程的创建

创建原语:①申请空白PCB

                  ②为新进程分配其运行所需的资源

                  ③初始化PCB

                  ④将PCB插入就绪队列

引起创建进程的事件:①用户登录:分时系统中,用户登录成功,系统会建立新的进程。

                                    ②作业调度:多道批处理系统中,新的作业放入内存,会建立新的进程,

                                    ③提供服务:用户提出请求,会新建一个进程处理该请求。

                                    ④应用请求:由用户进程主动请求创建一个子进程。

2、进程的切换

切换原语:①将运行环境信息存入PCB

                  ②PCB移入相应队列

                  ③选择另一个进程执行,并更新其PCB

                  ④根据PCB恢复新进程所需的运行环境

引起进程切换的事件:①当前进程时间片到

                                    ②有更高优先级的进程到达

                                    ③当前进程主动阻塞

                                    ④当前进程终止

六、线程

为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性,引入线程概念。

1、引入线程,带来的变化

(1)资源分配、调度

传统进程机制中,进程是资源分配、调度的基本单位。

引入线程后,进程是资源分配的基本单位,线程是调度的基本单位。

(2)并发性

传统进程,只能进程间并发。

引入线程,各线程间也能并发,提升了并发度。

(3)系统开销

传统的进程间并发,需要切换进程的运行环境,系统开销很大。

线程间并发,如果是同一进程内的线程切换,则不需要切换进程环境,系统开销小。

引入线程后,并发所带来的系统开销减小。

2、线程的属性

①线程是处理机调度的单位

②多CPU计算机中,各个线程可占用不同的CPU

③每个线程都有一个线程ID、线程控制块(TCB)

④线程也有就绪、阻塞、运行三种基本状态

⑤线程几乎不拥有系统资源

⑥同一进程的不同线程间共享进程的资源

⑦由于共享内存地址空间,同一进程中的线程间通信甚至无需系统干预

⑧同一进程中的线程切换,不会引起进程切换

⑨不同进程中的线程切换,会引起进程切换

⑩切换同进程内的线程,系统开销很小

切换进程,系统开销很大

3、线程的实现方式

用户级线程

所有的线程管理工作都由应用程序负责。

线程切换可以在用户态下即可完成,无需操作系统干预。

在用户看来,是有多个线程,但是在操作系统内核看来,并意识不到线程的存在。

【操作系统】-- 进程的描述与控制、线程(进程定义、组成、特征、状态、控制,线程定义、属性、实现)_第2张图片

内核级线程(处理机分配的单位)

线程的管理工作由操作系统内核完成。

线程调度、切换等工作都有内核负责,因此内核级线程的切换必然需要在核心态下完成。

【操作系统】-- 进程的描述与控制、线程(进程定义、组成、特征、状态、控制,线程定义、属性、实现)_第3张图片

 

你可能感兴趣的:(操作系统,操作系统,进程,线程)