二、进程:进程描述和控制

内容来自老师课件,仅供复习和学习

第二部分概述

  • 操作系统的主要任务是运行程序————进程管理
    • 为进程分配资源
    • 让进程间交换信息
    • 保护进程的资源不被其他进程占用
    • 使多个进程可以同步
  • 单/多【核】处理器的多道程序系统中,多个进程可以同时交叉/ 同步执行————并发,它是应用程序编写和操作系统设计中的难题
  • 在一个进程中引入(共享进程资源的)多个线程,在提高系统的运行效率的同时,也增加了进程管理的难度

本章导读————进程描述和控制

  • 操作系统的主要任务是进程管理
  • 进程在3种状态间转换————就绪、运行、阻塞
  • 描述进程的数据结构————进程控制块(进程表)
  • 进程调度、进程间的共享和同步
  • 本章介绍用于进程管理的数据结构和技术

目录

  • 进程的概念
  • 进程的状态
  • 进程的描述
  • 进程的控制
  • 操作系统的执行
  • 安全问题(进程的访问权限)
  • Unix的进程管理

2.1进程的概念

image

进程的顺序执行(单道单线程批处理)

  • 一个具有独立功能的程序独占处理机直至最终结束的过程
  • 顺序执行的特征
    • 顺序性:只有前一个操作结束,才能执行后续操作
    • 封闭性:程序运行时独占全机资源,执行过程不受外界影响
    • 可再现性:执行结果与执行速度无关
  • 符合冯诺依曼体系结构的要求(程序的代码和数据存储在内存,指令按顺序执行)

程序的并发执行(多道批处理,单道多线程批处理)

  • 指一组在逻辑上相互独立的程序或程序段在执行过程中,其执行时间在宏观上相互重叠,一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式
  • 与冯诺依曼体系结构的要求相悖

并发/并行

  • 三个同伴外出游玩,身上的饮用水已经喝光了。此处允许砍柴和使用明火。如何协作烧一锅水?
    image
  • 程序并发执行的两种情形
    • 多道程序系统:多道程序的并发执行
    • 单道程序也可包含若干能并发执行的程序段,如:Read(a);Read(b);
  • 程序并发执行的特征
    • 间断性:共享资源-->相互制约-->执行-暂停-执行
    • 失去封闭性:一个程序的执行受到其他程序的影响
    • 不可再现性:程序执行的结果与其执行的相对速度有关,存在不确定性
  • 优势:充分利用了系统资源,提高系统的处理能力
  • 不足:破坏了冯诺依曼体系结构的顺序执行特性,引起一系列难解决的问题(如互斥、同步、死锁、饥饿)

进程的定义

  • 进程是程序的一次执行
  • 进程是正在运行的一个程序实例
  • 进程是分配给处理器并由处理器执行的实体(由两个基本元素————程序代码和相关数据集组成)
  • 进程是可以和别的计算并发执行的计算
  • 进程是一个数据结构及能在其上进行操作的一个程序
  • 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
  • 进程是程序在一个数据集上的运行过程,是系统进行资源分配和调度的一个独立单位

进程的特征

  • 动态性:有一定的生命周期
  • 并发性:多个进程实体,同时存在于内存中,能在一段时间内(不一定是同一时刻)同时运行
  • 独立性:进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位
  • 异步性:进程按各自独立的、不可预知的速度向前推进,即进程按异步方式运行
  • 结构特征:进程实体是由程序段、数据段及进程控制块等部分组成————(进程映像)

进程控制块(PCB)

  • 用来描述进程
  • 用于进程的管理及调度
  • 进程控制块为下述信息的列表
    • 标识符————唯一进程标识
    • 状态————进程的当前状态(运行/就绪/等待)
    • 优先级————相对于其他进程的优先级别
    • 程序计数器————即将被执行的下一条程序指令的地址
    • 内存指针————包括指向程序代码、相关数据和共享内存的指针
    • 上下文数据————进程被中断时处理器寄存器中的数据
    • I/O状态信息————包括显式I/O请求、分配给进程的I/O设备,被解除使用的文件列表等
    • 记账信息————包括占用处理器时间、时钟数总和、时间限制、账号等

2.2进程状态

  • 进程并发执行中会有哪些不同行为?
  • 轨迹————进程执行的指令序列
  • 分派程序————让处理器从一个进程切换到另一个进程,即进程调度程序
    image

各进程独立运行的轨迹
image

三个进程并发执行时的轨迹
image

进程的状态

  • 如何描述进程在执行过程中的不同行为及其变化?————建立进程状态模型
    • 两状态模型————运行态、未运行态
    • 三状态模型————运行态、就绪态、等待态/阻塞态,相当于将两状态模型中的“未运行态”进一步划分为“就绪态”和“阻塞态”。是进程的三个基本状态
    • 五状态模型————运行态、就绪态、等待态/阻塞态、新建态、退出态,相当于在三状态模型之之上又增加了“新建”和“退出”两个状态
    • 六/七状态模型————一种有挂起态的进程模型。为节省内存,可将部分处于阻塞态(和就绪态)的进程,从内存中换出到(作为虚拟内存的一部分)磁盘的挂起队列中。为此,增加进程的一个/两个挂起态:(阻塞)挂起态/就绪挂起态和阻塞挂起态

2.2.1两进程状态模型

  • image

2.2.2进程的创建与终止

  • 操作系统创建一个进程的工作
    • 建立管理进程的数据结构
    • 为进程分配内存空间
    • 创建进程映像
  • 导致进程创建的原因
    • 新的批作业处理————运行新程序
    • 交互登录————终端用户登录到系统(多用户交互系统)
    • 操作系统提供服务————操作系统为用户创建进程以提供服务(如控制打印机)
    • 进程派生————由现有进程创建若干新进程(可提高模块化和开发并发性)
  • 相关概念
    • 进程派生————指操作系统为一进程的显式请求创建新进程。如打印机服务器进程为每个打印请求产生一个新进程
    • 父进程————派生另一进程的进程
    • 子进程————被派生的进程
    • 进程树————多级父子进程构成的树状结构
  • 进程的终止
    • 原因
      • 批处理业结束或终止服务调用
      • 交互式用户退出登录,关闭终端
      • 用户结束一个应用程序
      • 错误和故障:(运行/等待)超时、内存不足、越界、保护错误、算术错误、I/O失败、无效指令、特权指令、数据误用
      • 有的操作系统允许
        • 由父进程终止子进程
        • 当父进程终止时自动终止其所有子进程

2.2.3五状态模型

image

五状态的排队模型
image
image

2.2.4进程的挂起状态

  • 交换
    • 进程映像整体地或部分地从主存转移到辅存中(换出),或从辅存转移到主存中(换入)。
  • 引入原因:
    • 物理内存不足:没有使用虚存的系统中,多个进程要完全放在主存才能运行
  • CPU时间浪费:I/O速度比计算速度慢很多=>可能出现主存中的多个进程全部阻塞等待I/O
  • 调度策略:其他作业因没有主存空间不能投入运行
  • 交换
    • 选择对象:主存中没有处于就绪态的进程
    • 挂起/换出:把主存中某个进程的部分或全部移到磁盘/固态硬盘————挂起(进入挂起队列)
    • 激活/换入:将挂起队列中的一个进程或新进程移入主存
    • 交换涉及大量的磁盘I/O操作。过于频繁的交换,可能导致系统整体性能恶化
  • 有挂起态的进程状态转换图
    image
  • 有挂起状态的新转换
    • 阻塞->阻塞态挂起
    • 阻塞态挂起 ->就绪态挂起
    • 就绪态挂起->就绪
    • 就绪->就绪态挂起
    • 新建->就绪态挂起
    • 阻塞态挂起->阻塞
    • 运行->就绪态挂起
    • 各种状态->退出

2.3进程描述

  • 操作系统是资源管理者
  • 进程是资源分配的对象image

2.3.1操作系统的控制结构

  • 操作系统把进程和系统资源当作实体
  • 操作系统构造、维护每个被管理实体的信息表
    image

2.3.2进程控制结构

  • 进程的物理表示:进程映像
    • 用户数据
    • 用户程序
    • 系统栈(跟踪过程调用和进程间参数传递)
    • 进程控制块————由操作系统维护的用于记录和控制进程属性的集合
  • 进程映像的位置:取决于操作系统采用的存储管理方案
    • 整体在连续或不连续的主存区域中
    • 部分在主存中,主题在连续的赋存区域中
  • 进程属性
    • 进程标识信息
      • 进程标识符
      • 父进程标识符
      • 用户标识符
    • 处理器状态信息
      • 用户可见寄存器
      • 控制和状态寄存器
      • 栈指针(指向栈顶)
    • 进程控制信息
      • 调度和状态信息(进程状态、优先级、相关调度信息、等待的事件)
      • 数据结构(链接到队列、环或其他结构的信息)
      • 进程间通信
      • 进程特权
      • 存储管理(该进程虚存空间的指针)
      • 资源所有权和使用情况
  • 进程控制块的组织
    • 链表
      • 同一状态的进程其PCB成一链表,多个状态对应多个不同的链表
      • 各状态的进程形成不同的链表:就绪链表、阻塞链表
      • image
  • 进程链表结构
    • 进程调度中排队结构可用链表方式实现
      image
  • 虚存中用户进程示意图
    image
  • 进程控制块PCB的作用
    • PCB是操作系统中最重要的数据结构,设计进程调度、资源分配、中断处理、性能监控和分析等
    • PCB的访问与保护:通过专门的例程访问PCB
    • 资源控制块的集合定义了操作系统的状态

2.4进程控制

  • 进程控制的功能:完成进程的创建、撤销以及进程的状态转换(进程切换/调度)
  • 进程控制由原语完成
    • 内核在执行某些基本操作时,往往利用原语操作实现
    • 原语:若干条指令构成、在系统模式下执行,用于完成一定功能的一个过程
    • 原语是一种广义指令,相当于扩充了机器指令集
    • 原语是原子操作,即
      • 一个操作中的所有动作,要么全做,要么全不做
      • 原子操作是一个不可分割的操作!

2.4.1执行模式

  • 两类指令
    • 特权指令:允许操作系统使用,不允许一般用户使用
    • 非特权指令:操作系统和用户均可使用
  • 两种执行模式(CPU状态)
    • 用户模式/用户态/目态:只能执行非特权指令;用户程序在用户模式下运行(在Intel x86 CPU中对应于保护模式下的特权级[Privilege Level]1~3)
    • 系统模式/系统态/内核模式/内核态/特权模式/管态:能执行指令全集,具有改变CPU执行状态的能力;操作系统(内核)在系统模式下运行(在Intel x86 CPU中对应于保护模式下的特权级0)
  • 执行模式与内核
    • 内核:操作系统中包含重要系统功能的部分,通常驻留内存,在核心态下运行,响应来自进程的系统功能调用和来自设备的中断
    • 内核的典型功能
      • 进程管理:进程的创建、撤销、调度、切换、同步和通信以及PCB的管理等
      • 存储管理:给进程分配空间、交换、管理页和段
      • I/O管理:缓冲区管理、给进程分配I/O通道和设备
      • 支持功能:中断处理、审计、监视
  • 程序状态字
    • 执行模式的标识:PSW(Program Status Word,程序状态字)中专设“模式标识位”
      • x86中的PSW叫EFLAGS(扩展标志)寄存器(其中的NT、VM、VIP、VIF属于操作模式位)
        image
    • 80286新增加了16位寄存器 MSW(Machine Status Word,机器状态字)
      • 位0为PE(Protection Enable,启用保护[模式])标志,当置该位(=1)时开启保护模式;清零时进入实模式
      • 位3是TS(Task Switch,任务切换)标志
    • MSW在80386中被扩展为32位的CR0,80386另外还增加了CR2和CR3,它们用于控制页存储器管理、高速缓存的启用/禁止/操作、保护模式操作等功能
  • 执行模式的切换
    • 两种模式的切换
    • 用户模式->系统模式
      • 途径是通过中断机制
      • 在x86 CPU中,可通过使用调用门指令CALL进行代码转移来实现
    • 系统模式->用户模式
      • 可通过修改PSW实现,如指令CHM
      • X86 CPU可通过远程返回指令RETF进行代码转移来实现

2.4.2进程创建与撤销

  • 用原语操作实现
  • 创建原语的主要操作
    • 给新进程分配一个唯一的进程标识号
    • 给进程分配空间
    • 初始化进程控制块
    • 设置正确的链接
    • 创建或扩充其他数据结构(如审计文件)
  • 进程的撤销原语
    • 撤销该进程的所有子进程
    • 收回进程所占用的资源
    • 撤销该进程的PCB

2.4.3进程切换

  • 进程切换
    • 操作系统指定一个进程为运行态,并将CPU控制权交给该进程
  • 进程切换的时机
    • 当操作系统从正在运行的进程那里获得控制权时,可能进行进程切换
    • 外部中断/硬中断
      • 时钟中断:时间片到
      • I/O中断:I/O完成,高优先级进程就绪
      • 内存失效:调页时阻塞(所需内存地址不在主存)
    • 内部中断/软中断
      • 陷阱,如系统调用一般是通过[由操作系统规定的]特定中断来实现,如D操作系统的21h号中断
      • 异常(exception):当前执行的指令出现错误(主要指在处理器和内存内部产生的中断,一般称为内中断)
    • 只有通过[软/硬或内/外]中断,操作系统才能获得控制权
  • 进程切换步骤
    • 保存当前正在执行的程序的上下文环境
    • 更新当前进程的PCB,如改变进程状态为阻塞态
    • 将进程控制块移到相应的队列
    • 选择另一个就绪进程
    • 更新所选进程的PCB,如改变进程状态为运行态
    • 更新内存转换机构的数据
    • 恢复所选进程的CPU上下文环境

2.5操作系统的执行

  • 非进程内核————传统方法
    • 进程概念仅适用于用户进程
    • 操作系统代码是在特权模式下工作的实体
      image
  • 在用户进程中执行
    • 操作系统是用户进程调用的一组例程,操作系统代码为所有映像共享
    • 执行操作系统代码时切换到系统模式
      image
      image
  • 基于进程的操作系统
    • 主要内核功能被组织成独立进程
    • 适合多处理器和多机环境
      image

2.6安全问题

  • 进程权限
  • 最高权限:管理员、超级用户、根用户
  • 关键问题————阻止/探测用户或恶意系统获取权限的企图

2.6.1系统访问威胁

  • 分类:入侵者、恶意软件
  • 入侵者————通常指黑客和解密高手
    • 冒充者————穿透系统的访问控制,冒用合法账户的账号
    • 滥用职权者————合法用户滥用权限或访问未授权的数据
    • 秘密用户————利用系统的管理控制来逃避审计和访问限制
  • 恶意软件————利用计算机系统漏洞的程序
    • 分类:寄生、独立;能进行复制(如病毒、蠕虫)、不能自我复制(如逻辑炸弹、后门、僵尸)
    • 寄生————需要宿主程序,为程序片段。如病毒、逻辑炸弹、后门
    • 独立————可被操作系统调度运行的独立程序,如蠕虫、僵尸

2.6.2对抗措施

  • 入侵检测——IDS(Intrusion detection systems,入侵检测系统)
    • 组成——感应器(收集数据)、分析器(判断入侵是否发生)、用户界面(用于查看和控制)
    • 分类——基于宿主、基于网络
  • 用户认证(authentication)——安全的基础和主体。方法:
    • 知道——密码、身份证号码、预知的问题答案
    • 拥有——通行卡、智能卡、物理钥匙
    • 自身(静态生物识别)——指纹、虹膜、人脸
    • 行为(动态生物识别)——语音模式、笔迹特征、输入节奏
  • 访问控制——通过对用户授权,调节用户与系统资源之间的关系
  • 防火墙——保护本地系统和网络不受外部网络的安全威胁。传统的防火墙是一种专用计算机,是本地系统与外部网络的接口
posted @ 2024-11-03 21:21  韦飞  阅读(206)  评论(0)    收藏  举报