从今天开始一个新的篇章的学习——《计算机操作系统》

为了提前准备将要到来的考研

也为了夯实计算机基础,建立完整的计算机科学体系

内容记录自:b站——操作系统_清华大学(向勇、陈瑜) BV1js411b7vg

​ 学堂在线——操作系统(清华大学)

1.1 课程概述

  • 涉及:

    • 基本概念及原理
    • 操作系统介绍
    • 中断及系统调用
    • 内存管理
    • 进程和线程
    • 调度
    • 同步
    • 文件系统
    • I/O 子系统
  • 操作系统实验:

1.2 什么是操作系统

  • 结构层次:硬件之上,应用程序之下

    • 用户角度,操作系统是一个控制软件

    • 资源分配角度,是一个资源分配器

  • 操作系统的虚拟化:

底层 上层
磁盘 文件
内存 地址空间
CPU 进程

主流操作系统的界面属于 Shell,而不是 Kernel,Kernel 是我们的研究重点。

  • Kernel —— 操作系统内部组件:

    • CPU调度器
    • 物理内存管理
    • 虚拟内存管理
    • 文件系统管理
    • 中断处理与设备驱动
  • OS Kernel 的特征

    • 并发

    • 共享(同时存在多个运行的程序,需要 OS 管理和调度)

      • “同时共享”
      • 互斥共享
    • 虚拟

      • 利用多道程序设计技术,让用户觉得有一个计算机专门为他服务
    • 异步

      • 程序执行不是一贯到底,而是走走停停,推进速度不可预知
      • 运行环境相同,运行结果也相同

1.3 为什么学习操作系统

  • 操作系统是计算机科学研究的基石之一

  • 操作系统是安全的基础

  • 操作系统的学习具有挑战性

  • 操作系统需要权衡:

    • 空间与时间
    • 性能和可预测性
    • 公平和性能
  • 操作系统在硬件方面需要:

    • 良好的硬件管理
    • 合理的资源分配

1.4 为什么学习操作系统

1.5 操作系统实例

  1. UNIX BSD 操作系统

  2. Linux 家族

  3. Windows 家族( 90年代 )

    对计算机推广起巨大的作用

1.6 操作系统的历史

  1. 早期计算机使用纸带传输和加载数据,早期操作系统只起到了加载作用。
  2. 批处理阶段(多道程序设计):体现操作系统并发的特征,充分利用CPU。
  3. 分时计算机系统(时钟定期产生中断,将控制权交给操作系统):为了更好的与用户交互。
  4. 个人电脑操作系统:单用户、重点是用户界面和API、利用率不再是关注点、很多服务都不存在了
  5. 分布式操作系统:低耦合

从一群人围着一个计算机服务 —> 一群计算机围着一个人服务

1.7 操作系统结构

  • 面向个人计算计算机、面向服务器的计算机

  • 微内核架构的操作系统设计

    • 拓展性较好,模块化
    • 性能存在问题
  • 外核设计

  • 虚拟机监控器(VMM):操作系统之下是虚拟机