• 操作系统学习笔记_04


    前趋图和程序执行

    • 顺序执行:早期没有配置OS和单道批处理系统中程序的执行方式,一次只能运行一条用户程序

      • 严格先后顺序,只有当前程序运行运行完成之后才能运行下一个程序

      • 顺序执行的特征:

        • 顺序性

        • 封闭性:程序运行时独占全部资源,执行结果不受外界影响

        • 可再现性:只要程序执行的初始环境和条件相同,多次执行的结果也相同

    • 并发执行

      • 程序并发执行特征:

        • 间断性

        • 失去封闭性:系统中资源由多个程序共享

        • 不可再现性:程序执行的初始环境和条件相同,多次执行的结果不一定相同

    • 前趋图:有向无循环图,描述进程之间的执行顺序

    • 前趋图中,没有前趋的结点称为初始结点,没有后继的结点称为终止结点,每个结点包含的程序量或者程序执行的时间称为重量

    进程

    • 进程实体由程序段、相关的数据段和进程控制块(PCB)组成

    • 创建进程的实质是创建进程实体中的PCB,撤销进程的实质是撤销进程的PCB

    • 进程的特征:

      • 并发性:并发执行

      • 独立性:进程是能够独立地获得资源、运行和接受调度的基本单位

      • 异步性:各进程按照独立的不可预知的速度向前推进

      • 动态性:动态地产生、变化和消亡

    • 进程的基本状态:

      • 就绪状态:处于准备好执行的状态,但由于没有CPU,不能执行

      • 执行状态:获得CPU,正在执行

      • 阻塞状态:由于某事件暂时无法继续执行(处于没有CPU的状态)

      • 创建状态:创建进程

      • 终止状态:终止进程

    • 挂起操作

      • 引入挂起操作的原因:

        • 终端用户的需要

        • 父进程请求

        • 负荷调节的·需要

        • 操作系统的需要

      • 引入挂起和激活原语操作后进程状态转换:

        • 活动就绪→静止就绪

        • 活动阻塞→静止阻塞

        • 静止就绪→活动就绪

        • 静止阻塞→活动阻塞

      原语:由若干条指令组成、用于完成一定功能的一个过程

      • 引入挂起操作后进程状态的转换:

        • NULL→创建

        • 创建→活动就绪

        • 创建→静止就绪

        • 执行→终止

    • 进程表又被称为进程控制块(PCB),主要作用:

      • 作为独立运行基本单位的标志

      • 实现间接性运行方式

      • 提供进程管理所需要的信息

      • 提供进程调度所需要的信息

      • 实现与其他进程的调度与通信

    • 进程控制块中的信息

      • 进程标识符(PID):唯一标识一个进程

        • 外部标识符:用户创建

        • 内部标识符:OS创建

      • 处理机状态(处理机上下文)

        • 通用寄存器:用户程序可访问,用于暂存信息

        • 指令寄存器PC:存放下一条指令的地址

        • 程序状态字PSW:含有状态信息

        • 用户栈指针:存放过程、用户调用参数以及调用地址,栈指针指向该栈栈顶

      • 进程调度信息

        • 进程状态

        • 进程优先级

        • 进程调度所需要的其他信息

        • 事件(进程阻塞原因)

      • 进程控制信息

        • 程序和数据的地址

        • 进程同步和通信机制

        • 资源清单:列出本进程运行期间所需要的全部资源

        • 链接指针:给出本进程下一个进程的首地址

      • PCB主要内容总结:

      进程描述信息 进程控制和管理信息 资源分配清单 处理机相关信息
      进程标识符(PID) 进程当前状态 代码段指针 通用寄存器值
      用户标识符(UID) 进程优先级 数据段指针 地址寄存器值
        代码运行入口地址 堆栈段指针 控制寄存器值
        程序的外存地址 文件描述符 标志寄存器值
        进入内存时间 键盘 状态字
        处理机占用时间 鼠标  
        信号量使用    
    • 进程控制块的组织方式:

      • 线性方式:将系统中所有的PCB存放在一张线性表中,将表的首地址放在内存的一个专用区域

        • 优点:简单,开销小

        • 缺点:查找需扫描整张表,适合进程不多的系统

      • 链接方式:把具有相同状态的进程的PCB通过PCB中的链接字链接成一个队列,形成就绪队列,若干个阻塞队列和空闲队列

      • 索引方式:系统根据进程状态的不同,建立几张索引表,把索引表在内存的首地址放在内存的专用单元格中。

  • 相关阅读:
    Java 时钟
    mybatis中的#和$的区别
    vuex数据管理-数据共享
    vuex数据管理-数据适配
    vue双向数据绑定原理
    基于VUE的SPA单页应用开发-加载性能篇
    vue2.0读书笔记3
    移动端软键盘收起监听
    移动端模态窗口的滚动和橡皮筋问题解决方案
    window.history的跳转实质-HTML5 history API 解析
  • 原文地址:https://www.cnblogs.com/zyj3955/p/16068386.html
Copyright © 2020-2023  润新知