操作系统课程简介

什么是系统

由一群有关联的组件/部件/模块/个体组成,根据某种规则运作,能完成单个组件不能单独完成的工作的群体/整体。

系统特征

  • 系统是复杂的
    • 不同组件之间需要交互
    • 各个组件本身也很复杂
  • 系统设计是多目标的
  • 系统工作与理论工作
    • 理论工作:寻找极限
    • 系统工作:追求均衡/协调
    • 在实现系统前先明确系统设计目标

什么是操作系统

操作系统是应用和硬件之间的一层软件。

  • 对底层硬件进行管理、实现共享且保证隔离
  • 对上层软件提供硬件抽象、实现共用功能和操作接口

操作系统能做什么

  • 运行一个或多个程序
  • 提供抽象与接口(例如输入和输出、使用硬件资源等)
  • CPU、内存等的资源使用、管理与隔离
  • 数据持久化与存储设备管理
  • 并发访问控制(控制多个程序访问相同资源时的正确性)
  • 保证操作系统不因为一个用户程序的崩溃而崩溃
  • 将数据传递给远程的计算机
  • 虚拟机和容器技术
  • 保护数据的安全等

操作系统的发展

  • 大型机
    • 1954——IBM 701计算机
      • OS作为一个通用函数库
      • 用户提交程序,运行完后切换下一个用户
    • 1959——IBM 709计算机
      • 支持批处理
  • 小型机
    • 1960s
      • 支持多个程序并行
      • CPU、内存和存储资源共享与隔离
    • 1965——Mulitics 和 1974——UNIX
      • 分时操作系统(Time-sharing OS),使用Round-Robin算法。
  • 个人计算机
    • Alto OS
      • GUI
      • 以太网
      • 文件系统
      • 顺序执行的单用户系统
    • DOS Linux MacOS Windows
  • 集群
    • 网络连接的计算机
    • 商用操作系统+分布式框架(MapReduce、Spark)
  • 云计算
    • 数据中心是一台计算机,按需分配资源
    • Mesos和Kubernetes作为数据中心的操作系统
  • 物联网
    • 嵌入式OS(RT-Thread,LiteOS)
    • 移动端OS(iOS,Android)

如何学好操作系统

理论联系实际,不断地阅读代码和开发代码

讲授内容

  • 操作系统结构
  • 处理器:进程、线程和中断
  • 并发:同步、通信
  • 内存:虚存管理
  • 设备:驱动
  • 存储:文件系统