操作系统 进程 预推免 专业课复习

操作系统

进程

1. 进程、线程、协程

① 进程
  • 进程是程序一次动态执行的过程,是程序运行的基本单位。
  • 每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。
  • 进程占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、页表、文件句柄等)比较大,但相对比较稳定安全。
② 线程
  • 线程又叫做轻量级进程,是CPU调度的最小单位。
  • 线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有更多的子线程。
  • 多个线程共享所属进程的资源,同时线程也拥有自己的专属资源。
  • 程间通信主要通过共享内存,上下文切换很快,资源开销较少,但相比进程不够稳定容易丢失数据。
③ 协程
  • 协程是一种用户态的轻量级线程,协程的调度完全由用户控制。
  • 一个线程可以拥有多个协程,协程不是被操作系统内核所管理,而完全是由程序所控制。
  • 与其让操作系统调度,不如我自己来,这就是协程

2. 什么是抢占

就是当一个进程A在给定的优先级下运行,更高优先级的进程B此时处于阻塞态,但是当进程B等待的事件完成时,进程B转变为就绪态,由于优先级的原因,中断进程A,将处理器分配给进程B。这就是抢占。

3. 进程控制块PCB

进程控制块由操作系统创建和管理
意义:进程中断后,可以在恢复执行像进程未中断过一样
包含内容:
  • 进程标识符
  • 程序计数器
  • 状态
  • 上下文
  • 优先级
  • 记帐信息
  • I/O状态信息
  • 内存指针

4.进程的创建、切换与中断

进程的创建

① 给新进程分配一个唯一的进程标识符
② 给进程分配空间
③ 初始化进程控制块
④ 设置正确的连接
⑤ 创建或扩充其他数据结构(进程表等)

进程创建的原因

① 用户登陆
② 新的批处理作业
③ 操作系统提供的服务
④ 进程的派生

进程中断
机制类型
  • 普通中断
  • 陷阱
  • 系统调用
I 普通中断
与当前正在运行的进程无关的某种类型的外部事件相关
普通中断类型
  • 时钟中断
  • I/O中断
  • 内存失效
II 陷阱
与当前指令的执行相关
III 系统调用
用户的显示请求
进程切换★
  • 保存处理器上下文环境(PC,其他寄存器)
  • 更新当前运行态的进程控制块
  • 将进程的PCB移到相应的队列
  • 选择另一个程序执行
  • 更新选择的进程的进程控制块
  • 更新内存管理的数据结构
  • 恢复处理器在被选择进程的最近一次切换出运行态时的上下文环境
模式切换

通常由中断触发

模式切换过程

  • 将CPU工作模式切换为内核态,将eip,esp,eflags等压入内核堆栈
  • 保存硬件未来得及保存的上下文信息
  • 调用中断服务程序
  • 中断程序返回,触发模式切换逆过程(恢复上下文信息,弹出eip,esp,eflages,将cpu切换为用户模式)
模式切换和进程切换

① 模式切换不改变正处于运行态的进程状态,保存和恢复上下文信息只需要很少的开销
② 模式切换不一定进程切换,但进程切换一定要经过模式切换

5.进程控制结构

进程的属性集合称为PCB
程序、数据、栈和属性的集合称为进程映像\

6.操作系统的控制结构

  • 文件表
    • 文件是否存在
    • 文件在外村中的位置
    • 当前状态和其他属性的信息
  • 内存表
    • 分配给进程的内存
    • 分配给进程的外村
    • 内存块或虚拟内存块的任何保护属性
    • 管理虚拟内存所需要的任何信息
  • I/O表
    • I/O设备是否可用
    • I/O操作的状态
    • I/O传送的源于目标的内存单元
  • 进程表

7. 两状态模型

非运行态
运行态

8. 五状态模型

提出原因?

存在一些厨余非运行态但已经就绪等待执行的进程,而同时存在另外一些处于阻塞状态等待I/O操作结束的进程

状态

新建态
就绪态
运行态
退出态
阻塞态

9. 七状态模型

提出原因?
交换的需要

处理器速度比I/O要快得多,以至于内存中所有进程都在等待I/O的情况很常见。

什么是交换

把内存的某个进程的部分或全部移到磁盘中

思考

交换也是一个I/O操作,也可能使得问题更加恶化。但是磁盘I/O是系统中最快的I/O,所以交换通常会提高性能。

五状态模型的改进

加入【阻塞/挂起】 和 【就绪/挂起】

就绪和阻塞态——进程在内存中
挂起态——进程在外存中
为什么加入两种挂起状态?

如果只有一个挂起态,所有已经挂起的进程在挂起时都是阻塞态,这是把阻塞的进程载入内存没有任何意义。但是当挂起进程等待的时间发生了,进程不再阻塞,可以继续执行。

进程挂起的原因
  • 交换
  • 其他OS原因
  • 交互式用户请求
  • 定时
  • 父进程请求
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值