操作系统主要知识点梳理

参考书目:《操作系统:精髓与设计原理》

第2章 操作系统概述

2.1 操作系统的功能

  1. 作为用户和计算机之间的接口,提供以下几种服务:
    • 程序开发
    • 程序运行
    • I/O设备访问
    • 文件访问控制
    • 系统访问
    • 错误检测和相应
    • 记账:资源利用率等统计数据
  2. 作为资源管理器

2.2 操作系统的发展史

  1. 串行处理
  2. 简单批处理系统
  3. 多道批处理系统
  4. 分时系统:时间片技术

2.3 操作系统的4个重要理论进展

  1. 进程:
    • 一个正在执行的程序
    • 一个正在计算机上执行的程序实例
    • 能分配给处理器并由处理器执行的实体
    • 由一组执行的指令、一个当前状态和一组相关的系统资源表征的活动单元
  2. 内存管理:虚存
  3. 信息保护和安全:可用性、保密性、数据完整性、认证(用户身份、数据合法性)
  4. 调度和资源管理

2.4 现代操作系统的特性

  1. 并发(concurrency):多个事件在同一时间间隔内发生,宏观上并发,微观上交替执行,并发指的是进程。区别于并行(parallelism):多个事件在同一时刻发生。
  2. 共享(sharing):多个进程共享有限的计算机系统资源。互斥共享。
  3. 异步性(asynchronism):程序执行顺序和执行时间的不确定性。难以重现系统在某个时刻的状态。
  4. 虚拟(virtual):一个物理实体映射为若干个对应的逻辑实体。

2.5 操作系统提供的用户接口

  1. 程序接口:系统调用
    • OS提供给软件开发人员的唯一接口,利用它使用系统功能
    • 功能:设备管理、文件管理、进程控制、进程通信、存储管理、系统管理
    • 和函数调用的相同点:
      • 改变指令流程
      • 重复执行和公用
      • 改变指令流程后需要返回原处
    • 和函数调用的不同点:
      • 系统调用是动态调用,函数调用是静态调用
        • 系统调用不包含被调用的代码,调用地址和返回地址不固定。通过功能号、压栈出栈来确定调用地址和返回地址
        • 函数调用的被调用代码和调用代码在同一程序内。调用地址固定,包含在调用语句中;返回地址不固定,通过栈保存。
      • 执行状态不同:系统调用在核心态
      • 进入方式不同:用int或trap进行系统调用,用call或jmp进行过程调用
      • 与进程调度的关系不同:采用抢占式调度的系统,在系统调用返回时要进行重新调度的检查,看是否有更高优先级的任务就绪
      • 嵌套、递归调用:系统调用一般不允许
  2. 作业接口:系统命令

第3章 进程

3.1 什么是进程

  1. 进程的定义:可并发执行的程序在某个数据集合的一次计算活动,是操作系统进行资源分配和保护的基本单位。
  2. 进程的元素:
    • 程序代码
    • 数据集合
    • PCB(进程控制块):描述进程状态的一些属性:
      • 标识符:用于区分其他进程
      • 状态:运行态等
      • 优先级
      • 程序计数器
      • 内存指针
      • 上下文数据:寄存器中的数据
      • I/O状态信息:显式I/O请求、分配给进程的I/O设备等
      • 记账信息:处理器时间总和、时钟组合等
  3. 进程控制块:用于记录和刻画进程状态及有关信息的数据结构。由OS创建管理,是系统感知进程存在的唯一标志,和进程一一对应。

3.2 进程状态

  1. 进程的创建:
    • 新的批处理作业
    • 终端用户登录OS
    • 为提供服务由OS创建
    • 现有进程派生
  2. 进程的终止:正常完成、超时、错误、父进程终止等
  3. 七状态模型:
    • 运行态
    • 就绪态:进程已在内存中并可以执行
    • 新建态
    • 退出态
    • 阻塞态:进程在内存中并等待一个事件
    • 阻塞/挂起态:进程在外存中并等待一个事件
    • 就绪/挂起态:进程在外存中,但只要载入内存就可执行
  4. 七状态模型的状态转换:
    • 阻塞-阻塞/挂起:若没有就绪进程,则至少换出一个阻塞进程,为未阻塞进程腾出空间;就绪进程需要更多的内存空间,挂起一个阻塞进程

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!