操作系统(进程管理二)

七、线程

1、什么是线程?为什么要引入线程

线程是进程的一个实体,是CPU中分配资源的最小单位。

引入线程的原因:随着计算机科技的发展,单个进程的功能越来越庞大,但在功能上依然只能线性的执行它的一系列程序,为此引入线程机制。引入线程后,CPU的服务对象逐渐从进程转换成了线程,进程逐渐变成分配除CPU外的系统资源的分配单位,提高了系统的并发度

注:引入线程前,进程是系统资源分配的最小单位,是程序执行流的最小单位;引入线程后,进程仅作为系统分配非CPU资源的最小单位。

2、线程与进程的区别

资源调度的基本单位进程线程
资源分配的基本单位进程进程,线程拥有资源的调度权,但没有分配权,所以不拥有任何资源
并发性只能进程间的并发不但可以进行进程与进程间的并发,也可以进行同进程间不同线程的并发
系统开销CPU在进程间的切换过程中开销较大如果只是切换不同的线程,开销更小
独立性进程间具有较强的独立性线程由于本身体积小,对于线程间的通讯需求大,难度小

3、线程的属性

线程是处理机调度的单位

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

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

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

线程几乎不拥有系统资源,同一进程的不同线程间共享进程的资源

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

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

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

切换进程,系统开销较大

4、线程的组织与控制

①线程控制块:组成与进程控制块类似,但不包括资源分配情况

②线程的三态:线程也有就绪、阻塞、运行三态(也可以是五态)

③线程的创建与终止:线程的创建与终止都是由线程的创建与终止函数执行;终止后的线程并不释放资源,而是等待其他线程执行分离函数,或重新被唤醒。

5、多线程模型

①用户级线程(ULT)与内核级线程(KLT)

用户级线程是指在线程管理都在用户态下完成的线程;内核级线程是指线程管理必须在内核态下完成的线程。内核级线程与用户级线程是映射关系。

注:内核级线程是分配核(cpu)的基本单位,内核级线程数太少,可能会出现“一核有难,多核围观”的局面

对于系统而言,用户级线程对于内核是透明的,因为无法参与资源分配,但由于用户级线程的切换不需要转换内核态,开销更小。

注:进程数≤内核级线程数≤用户级线程数

②多线程模型

多线程模型包括:一对一模型、一对多模型、多对多模型

一对多:线程的切换不需要经过核心态,开销小;当某一线程阻塞后,映射于同一个内核线程的线程都会阻塞

一对一:并发性更强(内核级线程数量多,资源分配更充分合理);开销大

多对多:该模型摒弃了以上的缺点,用户可以创建尽可能多的用户级线程,对应的内核级线程可以运行在多核心处理器上。当一个线程被阻塞,内核也会调度其他的线程来处理。但是整个模型实现起来较为困难。

八、处理机调度

 1、什么是调度?

调度指在资源短缺的情况下,按照某种规律,对于需要处理的事件进行排序的行为

2、调度的层次

高级调度作业调度内存与外存间的调度分配内存,建立进程的PCB进程的建立一个进程只能高级调度一次
中级调度进程调度内存与外存间的调度进程的挂起与唤醒提高内存利用率和系统吞吐量进程调度可能会多次进行
低级调度进程调度内存与CPU间的调度进程的并发运行/就绪与运行进程的并发运行进程调度的频率一般很高。

注:七模型状态:在就绪状态和阻塞状态外额外添加就绪挂起和阻塞挂起两个状态,两个状态可以看成就绪状态和阻塞状态的扩展

3、调度算法的性能:

①、CPU利用率 :CPU忙碌时间/总时间

②、系统吞吐量:单位时间内CPU完成的作业量

③、周转时间:周转时间=作业完成时间-作业提交时间=等待作业调度的时间+在就绪队列上的时间+在CPU上运行的时间+等待I/O操作的时间。(由此引申出平均周转时间和带权周转时间;带权周转时间=作业周转时间/作业实际运行时间)

④、等待时间:进程处于等处理机状态时间之和。这是衡量算法好坏的重要指标

⑤、响应时间:从用户提交申请到首次产生响应的时间,主要用于交互性系统。

九、进程调度

1、什么时候进行进程调度?什么时候不能进程调度?

①、进程主动的放弃处理机:正常终止、发生异常主动进行中断、主动请求阻塞

②、进程被动的放弃处理机:时间片到、被其他中断信号中断、有更高级的进程进入就绪队列

进程在进行中断处理、进行原子操作(原语)、处在操作系统内核临界区的时候,不能进行进程调度(进程处在临界区时,有可能可以调度。)

注:临界资源:一段时间内只允许一个进程使用的资源。临界区:访问临界资源的代码段。

2、为什么当进程处于操作系统内核临界区的时候,不能进行进程调度?

当进程处于操作系统内核临界区时,会将就绪队列作为临界资源锁定,从而无法调动就绪队列的进程。

3、进程调度方式:剥夺调度方式(抢占方式)和非剥夺调度方式(非抢占方式)

剥夺调度方式:允许处理机暂停当前进程的执行(比较适合分时操作系统和实时操作系统)

4、进程切换与进程调度

广义的进程调度=选择一个进程+进程切换=选择一个进程+前一个进程让出处理机+后一个进程占用处理机

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值