大工13春《操作系统概论》辅导资料七
大工13春《操作系统概论》辅导资料七第一节 线程的概念
一、线程的引入
1、并行与并发(单处理器系统的并行形式是存在的,称为并发)
计算机的运行速度是制约其应用的主要条件之一。
解决的方法:用并行性提高运算速度。
--硬件的并行:多处理器系统,新型计算机技术等;
--软件的并行:多道程序,中断,并发程序设计等。
定义:
并行:多处理器系统形成的物理并行性;
并发:编程技术实现的虚拟并行性。
二、进程的方法实现并行性
多进程的并发执行实现软件的并行。
实现的方法:
--分解应用任务为进程(进程为最小的调度实体);
--为进程建立独立的运行空间(进程占有独立的存储空间及其它资源);
--实现进程族系(进程占有独立的存储空间及其它资源);
--使用并行程序设计语言(只有父进程才能建立子进程)。
问题:进程间的切换产生了大量的系统开销,如:
--进程因I/O而出现的阻塞;
--进程调度要求的表格处理;
--模式切换(开关),用户模式—内核模式等等。
三、进程在操作系统中的角色
1)进程是拥有自己资源的单元体—资源主权。
-虚地址空间,其他运行所需要的系统资源;
2)进程是被调度分派在处理器上运行的单元体
-程序所定义的任务的实现。
局限性:
-多进程实现某一相关任务时,可能需要共享同一地址
空间和其他资源;
-一个进程无法使用多个处理器。
解决的方法:
可否分解进程为更小的独立单位,它们可共享进程的资源,尤其是使用同一地址空间,各小单位间仍可以并行。--引入了线程的概念!
例如:现有一应用要求,分批采集数据,分批数据分析,分批分析结果显示。
方法1:顺序程序设计方法
方法2:多进程方法(多道程序设计)
方法3:多线程方法(多道程序设计)
四、线程的概念
1、线程的定义
线程是进程内一个相对独立、可调度的执行单元。
多种线程的定义:
-进程内的一个执行单元;
-进程内的一个可调度实体;
-线程是程序(或进程)中相对独立的一个控制流序列;
-线程是执行的上下文,等等。
注意进程和线程的区别和线程定义的不唯一性!
2、线程的性质(线程的引入增加了编程的灵活性,提高了并行性)
-线程是进程内一个相对独立的可执行单元(子任务);
-线程是操作系统的基本调度单元(包含调度信息);
-一个进程至少有一个线程(进程不是基本调度单元);
-线程可以创建线程(线程族系);
-进程是拥有资源的基本单位,多线程共享进程资源;
-线程间需要通信和同步机制(资源共享矛盾);
-线程有生命周期(建立—结束,有状态的变化)。
3、多线程的优点
-降低了系统开销;
-增加了通信的有效性;
-方便和简化了用户程序结构工作。
4、什么情况下使用多线程
-前后台工作;
-异步处理工作;
-需提高执行速度;
-组织复杂工作;
-同时有多个用户服务请求。
第二节 线程的状态和线程的管理
一、线程的状态
线程是动态的,所以线程有生命周期(同进程)
1、线程的三个基本状态
-就绪状态:线程已具备运行条件,等待分配CPU;
-运行状态:线程在CPU上运行;
-等待状态(阻塞状态):线程正在等待事件发生。
2、与进程状态的区别
-线程不需要挂起,因线程不需要让出主存;
-一个线程阻塞,进程及其他线程不因此而阻塞;
-多线程进程的状态:笼统分为活动和非活动状态。
3、线程状态设计的不一致性
二、线程的描述
描述线程的数据结构,以便对线程进行管理。
1、进程与线程的比较
1)进程是资源分配单元,线程是资源使用者;
2)进程有独立的存储空间,多线程使用进程存储空间;
3)进程是一个独立的保护体系,线程在此体系之中;
4)进程有一个或多个线程。
2、进程中的线程的运行环境
1)线程有状态;
2)线程不运行时,需保存现场信息;
3)线程具有一个执行堆栈;
4)存放局部变量的主存区;
5)访问(拥有)进程具有的资源。
描述线程的数据结构(数据库)--线程控制块(Thread control Block),记录所有相关线程的信息!
三、线程的管理、线程组
通过各线程的TCB所构成的链表实现对线程的管理。
1、线程控制原语
操作系统提供的对线程的控制功能。包括:创建,撤销,阻塞或等待,挂起,恢复,改变优先数等。
2、线程组,将线程进行分组,实现分组管理。
-线程属于某个线程组;
-可为线程组设置不同的特性;
-可以以线程组为单位进行管理。
填空题
1、一个进程可以包含多个线程,各线程()。
A、共享进程的虚拟地址空间
B、必须串行工作
C、是资源分配的独立单位
D、共享堆栈
2、下面()情况不会引起进程之间的切换。
A、进程调用本程序中定义的sinx函数进行数学计算
B、进程处理I/O请求
C、进程创建了子进程并等待子进程结束
D、产生中断
3、某进程由于需要从磁盘上读入数据而处于等待状态。当系统完成了所需的读盘操作后,此时该进程的状态将()。
A、从就绪变为运行
B、从运行变为就绪
C、从运行变为阻塞
D、从等待变为就绪
4、在操作系统中,一般不实现进程从()状态的转换。
A、从就绪到等待
B、从运行到就绪
C、从就绪到运行
D、从等待到就绪
5、在操作系统中,进程是一个()概念,而程序是一个静态的概念。
A、组合态
B、关联态
C、静态
D、动态
参考答案
1-5 AADAD
页:
[1]