隐藏页面特效

操作系统学习笔记_04

前趋图和程序执行

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

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

    • 顺序执行的特征:

      • 顺序性

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

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

  • 并发执行

    • 程序并发执行特征:

      • 间断性

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

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

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

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

进程

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

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

  • 进程的特征:

    • 并发性:并发执行

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

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

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

  • 进程的基本状态:

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

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

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

    • 创建状态:创建进程

    • 终止状态:终止进程

  • 挂起操作

    • 引入挂起操作的原因:

      • 终端用户的需要

      • 父进程请求

      • 负荷调节的·需要

      • 操作系统的需要

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

      • 活动就绪→静止就绪

      • 活动阻塞→静止阻塞

      • 静止就绪→活动就绪

      • 静止阻塞→活动阻塞

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

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

      • NULL→创建

      • 创建→活动就绪

      • 创建→静止就绪

      • 执行→终止

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

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

    • 实现间接性运行方式

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

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

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

  • 进程控制块中的信息

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

      • 外部标识符:用户创建

      • 内部标识符:OS创建

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

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

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

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

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

    • 进程调度信息

      • 进程状态

      • 进程优先级

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

      • 事件(进程阻塞原因)

    • 进程控制信息

      • 程序和数据的地址

      • 进程同步和通信机制

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

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

    • PCB主要内容总结:

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

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

      • 优点:简单,开销小

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

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

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


__EOF__

本文作者CherriesOvO
本文链接https://www.cnblogs.com/zyj3955/p/16068386.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   CherriesOvO  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2021-03-28 学习日报
点击右上角即可分享
微信分享提示