操作系统——操作系统概述

1.1 什么是操作系统?


操作系统的定义

  • 没有公认的精确定义
  • 操作系统是一个控制程序
    • 执行用户程序,给用户程序提供各种服务
  • 操作系统是一个资源管理器
    • 提供访问计算机软硬件资源的高效手段
    • 解决资源访问冲突
      在这里插入图片描述

操作系统软件的组成

  • Shell --命令行接口
  • GUI --图形用户接口
  • Kernel --操作系统的内部

操作系统内核特征

  • 并发
    • 计算机系统中同时存在多个运行的程序,需要OS管理和调度
  • 共享
    • “同时”访问(宏观)
    • 互斥访问(微观)
  • 虚拟
    • 利用多道程序设计技术,让每个用户都觉得有一个计算机为他服务
  • 异步
    • 程序的执行并不是一贯到底,而是走走停停的,向前推进的速度不可预知
    • 只要运行环境相同,OS需要保证程序运行的结果也要相同

1.2 为什么学习操作系统?


  • 综合课程 :结合许多不同课程
  • 材料:操作系统概念和原理、源代码
  • 技能:操作系统的设计和实现
  • 目的
  • 地位:计算机科学研究的基石之一
  • 操作系统具有挑战性
    • 权衡
    • 硬件

1.3 操作系统实例

  • UNIX
  • Linux
  • Windows

1.4 操作系统的演变

硬件抽象和协调管理

  • 单用户系统
  • 批处理系统
  • 多道程序系统
    • 保持多个工作在内存中并且在各工作间复用CPU
    • 系统效率系统吞吐量
  • 分时
    • 定时中断用于工作对CPU的复用
    • 交互性及时性
  • 个人计算机:每个用户一个系统
  • 分布式计算:每个用户多个系统
    • 网络支持成为一个重要的功能

1.5 操作系统结构

简单结构

  • MS-DOS-在最小的空间,设计用于提供大部分功能
    • 没有拆分为模块
    • 接口和功能水平没有很好的分离,主要用汇编编写

分层结构

  • 将操作系统分为多层
    • 每层建立在低层之上
    • 最底层是硬件
    • 最高层是用户界面
  • 使用模块化,每一层仅使用更低一层的功能(操作)和服务
    uCore操作系统结构

微内核结构(Microkernel)

  • 尽可能把内核功能移到用户空间
  • 用户模块间的通信使用消息传递
  • 好处:灵活、安全…
  • 缺点:性能

外核结构(Exkernel)

  • 让内核分配机器的物理资源给多个应用程序,让每个程序自己决定分配资源
  • 保护与控制分类
  • 程序能连接到操作系统库(libOS)实现了操作系统抽象

VMM(虚拟机管理器)

VMM