一、线程的基本概念
进程的属性::
一个可拥有资源的独立单位
可独立调度和分派的基本单位
程序并发执行所需付出的时空开销:
创建进程的开销
内存空间、I/O设备、PCB
撤销进程的开销
对其资源作回收
进程切换的开销
保留CPU环境,设置新进程CPU环境
这些开销,限制了系统中进程的数目,进程切换也不宜频繁,限制了并发程序的进一步提高。
引入线程的目的:
引入进程是为了使多个进程并发执行。
引入线程是为了减少程序并发执行时所付出的时空开销。
1.什么是线程
在引入线程的操作系统中,线程是进程中的一个实体,是处理器调度和分配的基本单位。
线程基本上不拥有系统资源,只拥有少量在运行中必不可少的资源,但它可与同属一个进程的其他进程共享所拥有的全部资源。
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程可以并发执行。
2.线程的属性
(1)每个线程有一个唯一的标识和一张线程描述表。
(2)不同的线程可以执行相同的程序
(3)同一个进程中的各个线程共享该进程的内存地址空间
(4)线程是处理器的独立调度单位,多个线程可以并发执行
(5)一个线程具有生命周期。经历等待、就绪、运行等状态变化。
3.引入线程的好处
(1)创建一个新线程花费时间少。
(2)线程之间的切换花费时间少。
(3)线程之间通信无需调用内核,不需要额外的通信机制,使通信简单、信息传送速度快。
二、进程和线程的比较
1.调度
线程作为调度的基本单位,同进程中线程切换不引起进程切换,当不同进程的线程切换时才引起进程切换。
2.并发性
一个进程间的多个线程可并发,不同进程的多个线程也可以并发执行。
3.拥有资源
线程仅拥有隶属进程的资源;进程是拥有资源的独立单位。
4.系统开销
线程低,进程高。
三、线程实现机制
1.用户级线程
仅存在于用户空间,由用户层中的线程库提供对线程的创建、撤销、切换,以及线程之间的同步与通信等的支持,而无须内核的支持。
2.内核级线程
由OS直接支持,更灵活,方便。
3.混合方式
4.实例:pthread线程包
四、概述
1.进程调度的主要功能
(1)记录系统中所有进程的执行状况;
(2)根据一定的调度算法,从就绪队列中选出一个进程,准备把处理器分配给它;
(3)分配处理器
2.进程调度的时机
(1)正在执行的进程运行完毕
(2)正在执行的进程由于某种错误而终止运行
(3)时间片完
(4)正在执行的进程调用阻塞原语将自己阻塞起来
(5)创建了新的进程
(6)正在执行的进程调用了唤醒原语操作激活了等待资源的进程。
处理器的调度方式:非抢占式和抢占式
(1)非抢占式
一旦把处理机分配给某进程后,就一直让它运行下去,决不会因为时钟中断,或任何其他原因,去抢占该正在运行进程的处理机,直至该进程完成,或发生某事件而被阻塞时,才把处理机分配给其它进程。
(2)抢占方式
允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给进程的处理机,重新分配给另一进程。
抢占方式能满足实时任务的需求。但抢占方式比较复杂,所需付出的开销也比较大。
五、调度算法设计原则
1.进程行为
I/O密集型和计算密集型
2.系统分类
批处理、交互式、实时系统
3.调度算法的设计目标
共同目标:资源利用率高、公平、平衡、强制执行策略。
批处理目标:平均周转时间短、系统吞吐量高、处理机利用率好
分时系统目标:响应时间快、均衡性
实时系统目标:截止时间的保证、可预测性
六、进程调度算法
1.先来先服务
(1)算法思想:总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便执行下去,直到该进程完成或阻塞时,才释放处理机。
(2)优点:实现简单
(3)缺点:没考虑进程的优先级。
2.最短进程优先
(1)算法思想::该算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机。
(2)优点:所有进程都同时可运行时算法最优。
3.最短剩余时间优先算法
算法思想:
总是选择剩余时间最短的那个进程运行,当一个新的进程到达时,其整个时间同当前进程的剩余时间做比较,如果新进程时间更少,则当前进程被挂起,运行新进程。
4.最高响应比优先算法
(1)算法思想:总是优先调度响应比最大的进程
(2)性能:先来先服务和最短进程优先算法的折中
5.轮转算法
(1)算法思想:
最早来自于分时系统。
将处理器的处理时间划分成一个个时间片,就绪队列中的诸进程轮转运行一个时间片,当时间片结束时,就强迫运行进程让出处理器,该进程进入就绪队列,等待下一次调度。
(2)影响时间片设置的因素:
系统响应时间
就绪进程数目
计算机的处理能力
小结:时间片设得太短,导致过多的进程切换;太长,响应时间变长,合理地时间片20~50ms。
6.最高优先级算法
(1)算法思想:
为每个进程设立一个优先级,每次将处理器分配给具有最高优先级的就绪进程。
(2)可以保证紧迫性进程优先运行。
7.多级反馈队列算法
结合了先进先出、时间片轮转、可抢占式最高优先级调度算法。
(1)算法思想要点:
被调度队列的设置
在同一个队列内的调度原则
在不同调度队列之间的调度原则
进程优先级的调整原则
七、内核的概念
内核的概念:
为了提高系统的运行效率、保护系统的关键部分不被破坏,一般把操作系统中提供支持系统运行的各种基本操作和基础功能的一组程序模块集中安排,形成一个操作系统的核心,称为系统核心或系统内核,简称内核。
八、内核的位置
内核本身不是进程,是系统进程和用户进程赖以活动的基础,一般内核常驻内存,操作系统其他部分则根据需要调进或调出内存。
九、内核的功能
(1)中断处理程序
(2)进程同步与互斥
(3)进程调度
(4)进程控制与通信
(5)存储管理
(6)时钟管理
内核的各种功能通过执行原语操作来实现