进程的描述与控制

文章目录

    • 前趋图和程序执行
      • 前趋图
      • 程序顺序执行
      • 程序并发执行
    • 进程
      • 引入目的
      • 进程的描述
        • 进程的定义
        • 进程的特征
        • 进程的基本状态与转换
        • 挂起操作和进程状态的转换
          • 挂起操作引入
          • 引入挂起操作后进程3个基本状态间的转换
          • 引入挂起操作后进程5个基本状态间的转换
          • 进程管理中的数据结构
            • OS中用于管理资源和控制进程的数据结构
            • PCB的作用
            • PCB中的信息
            • PCB的组织方式
      • 进程控制
        • 进程的创建
          • 进程的层次结构
          • 进程图
          • 引起进程创建的事件
          • 进程的创建
        • 进程的终止
          • 引起进程终止的事件
            • 正常结束
            • 异常结束
            • 外界干预
          • 进程终止的过程
        • 进程的阻塞与唤醒
          • 引起进程阻塞与唤醒的事件
          • 进程阻塞过程
          • 进程唤醒过程
        • 进程的挂起与激活
          • 进程的挂起
          • 进程的激活
      • 进程通信
        • 进程之间的信息交换,通常有高级和低级之分
        • 进程通信的类型
          • 共享存储器系统
          • 管道通信系统
          • 消息传递系统
          • 客户机-服务器系统
        • 消息传递通信的实现方式
          • 直接通信
            • 直接通信原语
            • 消息的格式
            • 进程的同步方式
            • 通信链路
          • 间接通信(信箱通信)
            • 信箱的结构
            • 信箱通信原语
            • 信箱的类型
    • 线程
      • 线程概念
        • 线程的引入
          • 目的
          • 两个基本属性
          • 程序并发执行所必须付出的时空开销
          • 线程——作为调度和分派的基本单位
        • 线程与进程的比较
        • 线程状态和线程控制块
          • 线程执行的三个状态
          • 线程控制块TCB
          • 多线程OS中的进程属性
      • 线程的实现
        • 内核支持线程(KST)
        • 用户级线程(ULT)
          • 优点
          • 缺点
        • 两种线程的组合方式

前趋图和程序执行

前趋图

  前趋图是一个有向无环图。

程序顺序执行

  基本特征:顺序性、封闭性、可再现性。

程序并发执行

  基本特征:间断性、失去封闭性、不可再现性。

进程

引入目的

  使多个程序能够并发执行;
  提高资源利用率和吞吐量。

进程的描述

进程的定义

  进程是程序的一次执行;
  进程是一个程序及其数据在处理机上顺序执行时所发生的的活动;
  进程是具有独立功能的程序在一个数据集上执行的过程,它是系统进行资源分配和调用的一个独立单位;
  进程是程序的执行过程,是系统进行资源分配和调度的一个单位;
  为了使每个程序独立地运行,在OS中配置了一个数据结构,称为进程控制块PCB。

进程的特征

  动态性、并发性、独立性、异步性。

进程的基本状态与转换

  就绪状态:已分配到处CPU外的所有资源;
  执行状态;
  阻塞状态。
进程的描述与控制_第1张图片

挂起操作和进程状态的转换

挂起操作引入

  终端用户的需要;
  父进程的需要;
  负荷调节的需要;
  OS的需要。

引入挂起操作后进程3个基本状态间的转换

  活动就绪->静止就绪
  活动阻塞->静止阻塞
  静止就绪->活动就绪
  静止阻塞->活动阻塞
进程的描述与控制_第2张图片

引入挂起操作后进程5个基本状态间的转换

  NULL->创建
  创建->活动就绪
  创建->静止就绪
  执行->终止

进程管理中的数据结构
OS中用于管理资源和控制进程的数据结构

  内存表、设备表、文件表、用于进程管理的进程表。

PCB的作用

  PCB是进程存在的唯一标志;
  作为独立运行基本单位的标志;
  实现间断性运行方式;
  提供进程管理所需要的信息;
  提供进程调度所需要的信息;
  实现与其他进程的同步与通信。

PCB中的信息

  进程标识符PID(外部标识符、内部标识符);
  处理机状态;
  进程调度信息;
  进程控制信息。

PCB的组织方式

  线性方式;
  链接方式;
  索引方式。

进程控制

进程的创建

进程的层次结构

  父进程、子进程、孙进程。

进程图
引起进程创建的事件

  用户登录;
  作业调度;
  提供服务;
  应用请求。

进程的创建

  申请空白PCB;
  为新进程分配其运行所需的资源;
  初始化PCB;
  如果进程就绪队列能够接纳新进程,就将新进程插入就绪队列。

进程的终止

引起进程终止的事件
正常结束
异常结束

  越界错
  保护错
  指令错
  特权指令错
  运行超时
  等待超时
  算术运算错

外界干预

  操作员或OS干预;
  父进程请求;
  父进程终止。

进程终止的过程

  根据标识符找到进程;
  终止进程及其子孙进程;
  归还全部资源;
  将终止进程的PCB从所在队列中移出。

进程的阻塞与唤醒

引起进程阻塞与唤醒的事件

  向系统请求共享资源失败;
  等待某种操作的完成;
  等待新任务的到达。

进程阻塞过程

  进程调用阻塞原语block将自己阻塞;
  是一种主动行为。

进程唤醒过程

  有关进程调用唤醒原语wakeup将进程唤醒;
  是一种被动行为。

进程的挂起与激活

进程的挂起

  OS利用挂起原语suspend将指定进程挂起。

进程的激活

  OS利用激活原语active将指定进程激活。

进程通信

进程之间的信息交换,通常有高级和低级之分

  低级通信:效率低、通信对用户不透明。
  高级通信:使用方便、高效地传送大量数据。

进程通信的类型

共享存储器系统

  基于共享数据结构的通信方式(低级通信)
  基于共享存储区的通信方式(高级通信)

管道通信系统

  管道是指用于链接一个读进程和一个写进程以实现它们之间通信的共享文件,又名pipe文件
  必备的协调能力:互斥、同步、确定对方是否存在

消息传递系统

  直接通信方式
  间接通信方式

客户机-服务器系统

  套接字(基于文件型、基于网络型)
  远程过程调用和远程方法调用

消息传递通信的实现方式

直接通信
直接通信原语

  对称寻址方式
  非对称寻址方式

消息的格式
进程的同步方式

  发送进程阻塞,接收进程阻塞
  发送进程不阻塞,接收进程阻塞
  发送进程和接收进程均不阻塞

通信链路

  单向通信链路
  双向通信链路

间接通信(信箱通信)
信箱的结构

  信箱头
  信箱体

信箱通信原语

  信箱的创建和撤销
  消息的发送和接收

信箱的类型

  私用信箱
  公用信箱
  共享信箱

线程

线程概念

线程的引入

目的

  减少程序在并发执行时所付出的时空开销
  使OS具有更好的并发性

两个基本属性

  进程是一个可拥有资源的独立单位
  进程同时又是一个可独立调度和分派的基本单位

程序并发执行所必须付出的时空开销
线程——作为调度和分派的基本单位

线程与进程的比较

  线程被称为轻型进程或进程元,传统进程称为重型进程
  调度的基本单位
  并发性
  拥有资源:进程是拥有资源的一个基本单位,线程几乎不拥有资源
  独立性
  系统开销
  支持多处理机系统

线程状态和线程控制块

线程执行的三个状态

  执行状态
  就绪状态
  阻塞状态

线程控制块TCB

  线程标识符
  一组寄存器的内容
  线程执行状态
  优先级
  线程专有存储区
  堆栈指针

多线程OS中的进程属性

  进程是一个可拥有资源的基本单位
  多个线程可并发执行
  进程已不是可执行的实体

线程的实现

内核支持线程(KST)

  在多处理机系统中,内核能够同时调度同一进程中的多个线程并行运行;
  如果进程中的一个线程被阻塞,则内核可以调度该进程中的其他线程来占有处理机并运行,也可以运行其他进程中的线程;
  内核支持线程具有很小的数据结构和堆栈,线程的切换比较快,切换开销小;
  内核本身也可以采用多线程技术,可以提高系统的执行速度和效率。

用户级线程(ULT)

优点

  线程切换不需要转换到内核空间
  调度算法可以是进程专用的
  用户级线程的实现和OS平台无关,可共享

缺点

  系统调用的阻塞问题
  不能利用多处理机进行多重处理

两种线程的组合方式

  对多一模型:将多个ULT映射到一个KST上
  一对一模型:将每个ULT映射到一个KST上
  多对多模型:将许多ULT映射到同样数目或较少数目的KST上

你可能感兴趣的:(#,操作系统,服务器,java,linux,学习)