操作系统(第二单元)

2.1进程的引入

用户的计算:录入用户程序和数据 执行 输出结果

单道程序的顺序执行特点

顺序性 处理机的操作严格按规定顺序执行
封闭性 程序执行时,独占系统资源
可在现性 当初是条件相同时,程序多次执行的结果相同

多道程序的并发执行特点

间断性 程序在并发执行时,形成了相互制约关系。相互制约将导致并发程序具有“执行–暂停–执行”这种间断性的活动规律
失去封闭性 系统中的资源供多个程序共享,致使程序的运行失去了封闭性
失去可在现性
程序并发执行的条件Bernstein

Bernstein条件:
读集:R(Pi)={a1,a2,a3,…an};程序Pi执行期间参考的变量集合
写集:W(Pi)={b1,b2,b3,…bn};程序Pi执行期间改变的变量集合
对进程P1、P2,满足:
R(P1)∩W(P2)∪W(P1)∩R(P2)∪W(P1)∩W(P2)={}
则P1、P2并发执行,且具有可再现性。

进程的定义:可并发执行的程序在一个数据集合上的执行过程。

进程的特征:

动态性 进程是程序的执行过程,动态产生/消亡
并发性 进程同其他进程一起向前推进
异步性 进程按各自的速度向前推进
独立性 进程是系统分配资源和调度CPU的单位

进程与程序的关系

进程 程序
动态的 静态的
并发的 顺序
暂时的(内存) 永久的(外存)

进程=程序+数据+PCB
程序与进程不是一一对应关系

2.2进程的状态及其组成

运行状态
就绪状态
阻塞状态
创建状态
退出状态
双挂起状态
: 就绪挂起 阻塞挂起

就绪、运行、阻塞、都在内存,
挂起就是 把内存里面的进程放在外存。

进程控制块PCB
PCB是进程实体的一部分,是OS中最重要的数据结构
PCB常驻内存
进程的组成
进程控制块PCB 程序块 数据段 堆栈
引用PCB的作用
就是使程序能成为独立运行的单位,并可和其他进程并发执行

扫描二维码关注公众号,回复: 10924944 查看本文章
进程控制块PCB的内容:

进程描述信息
进程名 进程标识符 用户名
处理机状态信息
通用寄存器 指令计数器 程序状态字寄存器 栈指针
进程调度信息
进程状态 进程优先级 运行统计信息 进程阻塞原因
进程控制和资源占有量信息
程序入口地址 程序的外存地址 进程同步及通信地址 资源占有信息 链接指针
进程控制块PCB的组织
运行队列指针 就绪队列指针 阻塞队列1指针 阻塞队列2指针 空闲队列指针

2.3进程控制

核心态:具有较高的特权,能执行一切指令,访问所有寄存器和存储区。

用户态:具有较低特权,只能执行规定的指令,访问指定的寄存器和存储区。

用户态和核心态是由硬件设定的。
特权指令只能在核心态下运行,而不能在用户态下执行。

操作系统的内核
硬件的第一次延伸
系统将一些与硬件紧密相关的模块放在内核(中断处理 时钟管理)
内核在执行某些基本操作时,往往是利用原语操作实现的。
支撑功能:中断处理 时钟管理 原语操作
资源管理功能:进程管理 存储器管理 设备管理

Windows进程不存在层次结构
Unix进程存在层次结构

操作系统的原语
原语由若干条指令构成、由于完成一定功能的过程。
原语是“原子操作”。即一个操作中的所有动作,要么全做,要么全不做。换言之,原子操作是一个不可分割的操作。

进程创建

  1. 引起进程创建的事件:
    用户登录
    新作业进入系统
    提供服务
    应用请求(用户级)
  2. 创建原语要做到工作:
    申请空白PCB
    为进程分配资源
    初始化PCB(初始化进程描述信息 初始化处理机状态信息 初始化进程控制信息)
    将进程插入就绪队列

进程的撤消

  1. 引起进程撤消的事件:
    进程正常结束
    进程异常结束
    外界干预
  2. 撤销原语要做的工作:
    查找撤消进程的PCB
    若进程处于执行状态,终止之,并进行进程调度 若有子孙,予以终止 。
    归还资源
    从所在队列移出

进程的阻塞与唤醒

  1. 引起进程阻塞的事件:
    请求系统服务
    启动某种操作
    数据尚未到达
    无新工作可做
  2. 阻塞原语要做到工作:
    停止进程的执行
    将进程插入阻塞队列,改变进程在PCB中的状态
    重新调动
  3. 唤醒原语要做的工作:
    将进程从阻塞行列解下
    将进程插入就绪队列
    改变进程在PCB中的状态

进程的挂起与激活

  1. 挂起原语要做的工作:
    检查被挂起进程的状态
    如进程处于就绪状态,将进程从就绪状态变为就绪挂起状态
    如进程处于阻塞状态,将进程从阻塞状态变为阻塞挂起状态
    如进程正在运行,将进程变为就绪挂起状态,并重新调度
  2. 激活原语要做的工作:
    检查被激活进程的状态
    如进程处于就绪挂起状态,将进程从就绪挂起状态变为就绪状态
    如进程处于阻塞挂起状态,将进程从阻塞挂起状态变为阻塞状态
    若系统为抢占式系统,则进行进程调度

2.4 线程

(比如:显示图像、显示文字就是使用不同的线程)

引入进程的目的:使用多个程序并发执行,改善资源利用率,提高系统的吞吐量。
引入线程的目的:减少程序并发执行所付出的时间和空间开销,使操作系统有更好的并发性。

多线程的优点
响应度高
资源共享
经济

进程的两个基本属性

  1. 进程是拥有资源的独立单位
  2. 进程是独立调度的分派的基本单位

线程是进程的一个实体,线程在进程的资源内运行。

进程在创建、撤消和切换中系统需要付出较大的时间、空间开销,限制了进程并发程度的提高,因此引入线程。

进程与线程的关系
单进程单线程
单进程多线程 如: Java
多进程(每个进程只有一个线程)如:Unix系统
多进程(每个进程有多个线程) 如:Windows、Linux

线程的定义
线程是进程中的一个实体,是系统独立调度和分派的基本单位。

TCB(线程控制块)结构
线程标识符
描述处理机状态信息的一组寄存器
栈指针(用户栈 核心栈)
私有存储区

线程的控制
线程的创建
线程的撤消
线程的等待
线程让权

线程控制库的函数( ?)

进程是资源拥有者
线程不拥有资源,只有TCB及堆栈
PCB常驻内存,TCP不一定进入核心栈,因此不一定在内存
用户级线程不用系统调用时,不会进入核心态,核心态在内存
线程的切换不一定涉及到预算模式的切换

进程和线程比较

调度 线程调度快,需要空间小;进程因拥有资源,调度时因负担过重而缓慢 。
并发性 在引入线程的操作系统中,不仅进程之间可以并发执行,一个进程中的多个线程之间亦可并发执行。
拥有资源 进程是资源的拥有者。
系统开销 进程切换的开销远远大于线程切换的开销,线程的切换省去了资源的回收。

线程的实现

  1. 用户级线程(依靠线程库支持)
    线程的创建、撤消和切换,都不利用系统调用来实现。
  2. 内核级线程(用户通过API调用)
    依赖于内核,线程的创建、撤消和切换都由内核实现。
  3. 组合的方法
    由内核支持的用户线程。

用户级线程:
线程的创建、撤消和切换,都不利用系统调用来实现。线程与内核无关,内核也不知道线程的存在。
用户级线程的优点与不足:
优点:

  1. 线程切换不需要系统状态的转换。
  2. 每个进程可以使用专用的线程调度算法来调度程序。
  3. 用户级线程可以在任何操作系统中运行,不需要对底层操作系统内核进行修改。

不足:

  1. 一个线程被阻塞,进程中的所有线程都被阻塞。
  2. 不能利用多处理机环境。

内核级线程:
依赖于内核,线程的创建、撤消和切换,都由内核来实现。在内核中有线程控制块TCB,内核根据TCB感知线程的存在,并对线程进行控制。
内核级线程的优点与不足
优点:

  1. 多处理机环境下,可以将线程分配给多个处理机。
  2. 进程中的一个线程被阻塞,不会导致进程内的其他线程被阻塞。
  3. 内核本身也可以设计成多线程形式。
  4. 内核支持线程具有很小的数据结构和堆栈,线程切换快,切换开销小。

缺点:

  1. 同一进程内线程的切换需要从用户态到核心态转换。
  2. 与用户线程切换相比,模式切换开销大。

用户级线程——LWP——内核级线程

轻量级进程 (LWP, light weight process) 是一种由内核支持的用户线程。它是基于内核线程的高级抽象,因此只有先支持内核线程,才能有 LWP 。每一个进程有一个或多个 LWPs ,每个 LWP 由一个内核线程支持。每个 LWP 都是一个独立的线程调度单元。即使有一个 LWP 在系统调用中阻塞,也不会影响整个进程的执行。
轻量级进程具有局限性,一个系统不能支持大量的 LWP 。

Solaris中的线程
在用户线程和内核级线程之间,定义了一种轻型进程(LWP)。
由LWP实现了内核与用户级线程的隔离,从而使用户级线程与内核无关。
多线程问题

  1. 线程的取消:立即取消 延迟取消
  2. 信号处理:
    (1)同步信号处理是指信号是在同一进程内的线程之间传输的
    (2)异步信号处理是指信号是由进程之外的事件产生的

单线程的信号处理只有一种情况。
多线程的信号处理有四种情况,具体依赖信号的类型。
发送到信号所使用的线程;
发送到进程内的所有线程;
发送到进程内某个固定线程;
发送到规定的特殊线程;

  1. 线程池
    (1)用现有线程比创建新线程快
    (2)限制了可用线程的数量,以防系统资源不足
发布了13 篇原创文章 · 获赞 0 · 访问量 526

猜你喜欢

转载自blog.csdn.net/qq_44226059/article/details/104190740