4. process scheduling (进程调度)& practice 1 process operation

进程切换

  1. 并发进程的切换
  • 并发进程中,一个进程在执行过程中可能被另一个进程替换占有CPU,这个过程称为“进程切换”
  • 是什么触发了进程切换?
  • 进程切换时要做什么?
    • 操作系统到底做了什么操作
      2 中断技术
  • 中断是指程序执行过程中
    • 当发生某一个事件时,中止cpu上现行的程序的运行
      • interrupt:excption:异常中断,interrupt:中断
    • 引出该事件的处理程序执行
      • 使用了陷阱机制(系统调用),系统调用也是中断的一种。
  • 执行完毕返回原程序中断点继续执行
  1. 中断源
  • 外中断:来自处理器之外的硬件中断信号
    • 如时钟中断,键盘中断,外围设备中断。
    • 外部中断均是异步中断(异步就是随机中断)
  • 内中断(异常exeption):来自于处理器内部,指令执行过程中发生的中断,属同步中断。
    • 硬件异常:掉电,奇偶检验错误等
    • 程序异常:非法操作,地址越界,断电,除数为0
    • 系统调用
  1. 中断处理过程
  • save the context of the executing process:保存上下文信息,
  • exeption/interrupt handler
    • determine the cause of the exception or interrupt(确定中断的原因)
    • handle the exception/interrupt(处理中断)
  • 选择需要重新加载和重新开始的进程,恢复上下文信息
  1. 特权指令和非特权指令
  • privileged instructions
    • I/0 instructions and Halt instuctions
    • Turn off all insterrupts
    • set the timer
    • process switching
  • Non-privileged instructions
    • the instructions that can run only in user mode
  1. 模式切换
  • 中断是用户态向核心态转换的唯一途径!系统调用实质上也是一种中断
  1. 进程切换
  • 切换时机
  • 进程需要进入等待状态,(这种是running状态,然后主动去切换状态)
  • 进程被抢占CPU而进入就绪状态
  • 切换过程
    • 保存被中断进程的上下文信息(Context)
    • 修改被中断进程的控制信息(如状态)
    • 将被中断的进程加入响应的状态队列
    • 调度一个新的进程并恢复它的上下文信息
  1. 进程控制块
  • A Process Control (PCB) contain many pieces of information associated with a specific process.
    • process state:进程状态
    • process number:pid
    • program counter:pc值,这个进程下一条要执行的值
    • registers:寄存器的值,包括使用到的寄存器
    • memory limits:内存
    • list of open files:打开的文件
  1. 进程队列(process queues)
  • 就绪队列:就绪只有一条队列,使用链表的方式连接起来,每一个链表节点中只包括pcb,
  • 等待队列:多个队列,不同设备使用不同的队列进行管理
  • 运行:运行没有队列
posted @ 2024-04-15 16:29  zhudachang  阅读(3)  评论(0编辑  收藏  举报