笔记:操作系统

网课:操作系统 哈工大 李治军

第二部分 进程管理

第3章 进程

3.1 进程概念

  • 进程:进程是执行中的程序
    • 进程还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示
    • 进程还包括进程堆栈段(临时数据,如函数参数、返回地址和局部变量)、数据段(全局变量)
    • 进程还包括堆,是在进程运行期间动态分配的内存
    • 程序本身不是进程,程序是被动实体,进程是活动实体
    • 一个进程在执行时可以产生多个进程
  • 进程状态:进程在执行时会改变状态,进程状态是由当前活动所定义的
    • 新的、运行、等待、就绪、终止
  • 进程控制块(PCB,process control block)
    • 每个进程在操作系统内用进程控制块来表示
    • 它包含许多与一个特定进程相关的信息

3.2 进程调度

  • 就绪队列:驻留在内存中就绪的、等待运行的进程列表
  • 设备队列:等待特定I/O设备的进程列表

表示进程调度的队列图

  • 调度程序:操作系统按某种方式从队列中选择进程的程序
    • 长期调度程序/作业调度程序
    • 短期调度程序/CPU调度程序
  • 上下文切换:将CPU切换到另一个进程需要保存当前进程的状态并回复另一个进程的状态
    • 状态保存,保存CPU当前状态;状态恢复,重新开始运行
    • 上下文切换时间是额外开销,与硬件支持密切相关,一般需几毫秒

3.3 进程操作

  • 进程创建:进程在其执行过程中,能通过创建进程系统调用创建多个新进程
  • 进程终止:当进程完成执行最后的语句并使用系统调用exit()请求操作系统删除自身时,进程终止

3.4 进程间通信

  • 独立进程:一个进程不能影响其他进程或被其他进程所影响

  • 协作进程:一个进程能影响其他进程或被其他进程所影响

  • 进程协作的优点:信息共享、提高运算速度、模块化、方便

  • 进程间通信机制(interprocess communication,IPC):共享内存、消息传递

  • 共享内存

    • 生产者-消费者问题
    • 无限缓冲/有限缓冲
  • 消息传递-通信线路

    • 命名
      • 直接通信:需要通信的每个进程必须明确地命名通信的接收者或发送者
      • 间接通信:通过邮箱或端口来发送和接收消息
    • 同步
    解释
    阻塞send 发送进程阻塞,直到消息被接受进程或邮箱所接受
    非阻塞send 发送进程发送消息并再继续操作
    阻塞receive 接受者阻塞,直到有消息可用
    非阻塞receive 接收者收到一个有效消息或空消息
    • 缓冲
    长度 解释 类型
    零容量 0 线路中不能有任何消息处于等待 显式缓冲
    有限容量 n 线路未满可继续执行,线路满必阻塞 自动缓冲
    无限容量 无限 不管多少消息都可在其中等待,从不阻塞发送者 自动缓冲

第4章 线程

4.1 线程

  • 线程:线程是CPU使用的基本单元,由线程ID、程序计数器、寄存器集合和栈组成
OIP
  • 多线程编程的优点:响应度高、资源共享、经济、多处理器体系结构的利用

4.2 多线程模型

  • 用户级线程和内核级线程
  • 多对一模型、一对一模型、多对多模型

2-1Q105101455227

2-1Q105101532N6

2-1Q10510160R60

4.3 多线程问题

  • 线程取消:是在线程完成之前来终止线程的任务
    • 目标进程:要取消的线程
    • 异步取消:一个线程立即终止目标线程
    • 延迟取消:目标线程不断地检查它是否应终止,这允许目标线程有机会以有序方式来终结自己
  • 信号处理
  • 线程池:在进程开始时创建一定数量的线程,并放入到池中以等待工作
    • 优点:通常用现有线程处理请求比创建新的要快;线程池限制了可用线程的数量

第5章 CPU调度

5.1 基本概念

  • CPU-I/O区间周期:进程执行从CPU区间开始,之后是I/O区间,接着CPU区间和I/O区间往复进行

  • CPU调度程序:当CPU空闲时,操作系统必须从就绪队列种选择一个进程来执行。

  • 抢占调度

    进程状态 举例 解释 调度方案
    运行->等待 I/O请求、调用wait 只有调度 非抢占的/协作的
    运行->就绪 出现中断 可以选择 抢占的
    等待->就绪 I/O完成 可以选择 抢占的
    终止 只有调度 非抢占的/协作的
  • 分派程序:切换上下文、切换到用户模式、跳转到用户程序的合适位置以重新启动程序

    • 分派延迟:分派程序停止一个进程而启动另一个所要花费的时间

5.2 调度准则

  • CPU使用率、吞吐量、周转时间、等待时间、响应时间
  • 需要使CPU使用率和吞吐量最大化,使周转时间、等待时间、响应时间最小化

5.3 调度算法

5.4 多处理器调度

5.5 线程调度

5.6 操作系统实例

5.7 算法评估

posted @ 2020-05-25 14:44  不可以不喝冰美式  阅读(152)  评论(0)    收藏  举报