第三章 进程描述与控制

process states
process description
process control

## Process Creation
  - 通过用户:打开新的APP
  - 通过操作系统:进程中断
  - 通过现有进程:打开新的进程

## Process Terminate
  - Errors(错误)
      - Data/protection/mem failure/illegal behavior
  - Kill by parents process(被父进程终止)
  - Normal completion(job is done)(正常结束)


# Process(进程)
  - 定义:
      - 正在执行的程序
      - 在计算机上运行的程序的实例
      - 可以分配给处理器并在处理器上执行的实体
      - 一种活动单位,特征为:
          - 执行一系列指令
          - 当前状态
          - 一组关联的系统资源
            
  - Process Elements
      - Identifier
      - State
      - Priority
      - Program counter
      - Memory pointers
      - Context data
      - I/O status information
      - Accounting information
        
        
# Process States
  - 检查多个进程
      - 通过用户:trace of process(进程轨迹)
      - 通过操作系统:根据不同的过程状态链接列表
  - trace of process(进程轨迹)
      - 为进程执行的指令序列
      - 调度器将处理器从一个进程切换到另一个进程
        
对系统而言,各个进程当前的状态决定下一次的调度策略。

  - Two-State Process Model
      - Process may be in one of two states
          - Running
          - Not - running
      
      - ![[双态进程模型.png]]
      
      - 双态进程模型的限制:
          - 调度器不能只选择在队列中停留时间最长的进程,因为这个进程可能被阻塞。
          - Not-running
              - ready to execute(就绪)
              - 等待I/O 设备(blocked 阻塞)
                
  - Five-State Model
      - Running(运行态)
      - Ready(就绪态)
      - Blocked(阻塞态)
      - New(新建态)
      - Exit(推出态)
      
      - ![[五态进程模型.png]]
  
      - Blocked 不直接到Running原因:
          - 因为搜索队列不同,running只搜索ready队列
            
      - Suspended Processes(被挂起的进程)
          - 处理器比 I/O 快,因此所有进程都可能正在等待 I/O
          - 将这些进程交换到磁盘以释放更多内存 交换到磁盘时,阻塞状态变为挂起状态
          - Two new states
              - Blocked/Suspend
              - Ready/Suspend
                
  - Seven-State Model(Two Suspend States)
      - ![[七态进程模型.png]]

 

 

 


# Process Description

  - ## 操作系统控制结构
      OS 掌握进程哪些信息,怎么存储这些信息
      - 每个进程和资源的当前状态
      - 操作系统构造并维护它所管理的四类资源实体的信息表
          - MEM,I/O,File,Process
          - 这些表被交叉引用
        
      - Memory Tables
          - 分配给进程的主存
          - 分配给进程的辅存
          - 共享内存区域的保护属性
          - 虚拟内存的管理信息
            
      - I/O Tables
          - 分配状态:I/O设备是可用或以分配
          - I/O 操作的状态
          - 主内存中用作数据传输的源或目标的地址
            
      - File Tables
          - 文件的存在
          - 辅存上的地址
          - 当前状态
          - 属性
            
  - ## 进程控制结构
      - Process image 进程映像
          - 程序、数据、堆栈和属性(PCB)的集合:地址不连续
          - PCB:Process control block
            
      - Process Control Block
          - Process Identification
          - Processor State Information
              - User-Visible Registers
              - Control and Status Registers
              - Stack Pointers
          - Process Control information
              - Scheduling and State Information
              - Data Structuring (link information)
              - Interprocess Communication
              - Process Privileges
              - Memory Management
              - Resource Ownership and Utilization
                
          - PCB包含:
              - 结构化信息
              - 指向队列链接列表的指针
                
                
# Process Control

  - ## Modes of Execution(进程模式)
      - 用户模式
          - 通常在用户程序执行时使用用户模式
      - 系统模式、控制模式或内核模式
          - 更多特权模式
          - 操作系统内核
      - Translation between the two model
          - Interrupt/Trap/Syscall
          - Modifiy Processor status register (psr) and current privileged level (cpl)(修改处理器状态寄存器 (psr) 和当前特权级别 (cpl))
            
  - ## Process Creation
      - Assign a unique process identifier(分配唯一的进程标识符)
      - Allocate space for the process(为流程分配空间)
      - Initialize process control block(初始化过程控制块)
      - Set up appropriate linkages(设置适当的链接)
          - Ex: add new process to linked list used for scheduling queue(将新进程添加到用于调度队列的链接列表中)
      - Create of expand other data structures(创建扩展其他数据结构)
          - Ex: maintain an accounting file
            
  - ## Process Switching
      - 只要操作系统从当前运行的进程获得控制权,就可能发生进程切换。
      - 可能授予操作系统控制权的事件包括:
          - 中断
              - 时钟中断:进程已执行最大允许时间片
              - I/O 中断
              - 内存故障:引用的虚拟内存地址不在主内存,因此必须将其引入
          - Trap
              - 发生错误或异常
              - 可能导致进程移动到“退出”状态
          - Supervisor call (System Call 系统调用)
              - 类似文件打开
                
      - 怎么切换进程:
          - 保存处理器的上下文,包括程序计数器和其他寄存器
          - 更新进程的进程控制块,并更改当前处于“正在运行”状态的进程的状态
          - 将过程控制块移动到适当的队列 —— 就绪;阻塞;就绪/挂起
          - 选择要执行的另一个进程
          - 更新所选进程的进程控制块并更改其状态
          - 更新内存管理数据结构
          - 还原所选进程的上下文
              
              
# 操作系统的执行
  - ## Non-process Kernel(无进程内核)
      - 在任何进程之外执行内核
      - 操作系统代码作为在特权模式下运行的单独实体执行
        
  - ## Execution Within User Processes(在用户进程中执行)
      - 在用户进程上下文中的操作系统软件
      - 进程在执行操作系统代码时以特权模式执行
      - Unix
    
  - ## Process-Based Operating System(基于进程的OS)
      - 将操作系统实现为系统进程的集合
      - 适用于多处理器或多计算机环境

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值