操作系统入门

总览

操作系统概述

操作系统基本概念

  • 什么是操作系统?
    • 操作系统用于控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合.
    • 操作系统是计算机系统中最基本的系统软件.

  • 操作系统的目标

    • 作为计算机系统资源的管理者
      • cpu,存储器,文件,设备
    • 作为用户与计算机硬件系统之间的接口
      • 命令接口:联机(交互)命令接口,脱机(批处理)命令接口
      • 程序接口:GUI
    • 作为扩充机器
      • 把覆盖了软件的机器称为扩充机器或虚拟机
  • 操作系统的特征

    • 并发[最基本]
      • 与并行区别
    • 共享[最基本]
      • 指资源共享,系统中的资源可供内存中多个并发执行的进程共同使用.
        • 互斥共享,一个时间段只允许一个进程访问该资源.(如打印机,磁带机)
        • 同时访问方式,一个时间段内由多个进程”同时”访问(微观上分时共享).(如多进程同时访问磁盘)
    • 虚拟
      • 把一个物理实体变为若干逻辑上的对应物.
      • os中利用多种虚拟技术来实现虚拟处理器,虚拟内存,虚拟外部设备
    • 异步
      • 多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行不是一管到底的,而是走走停停的,它以不可预知的速度向前推进.

操作系统分类

手工操作阶段

  • 用户独占全机
  • CPU等待手工操作

    批处理阶段(os出现)

  • 目的:为了解决人机矛盾以及CPU和I/O设备之间速度不匹配的矛盾.

    单道批处理

  • 描述:系统对作业的处理是成批进行的,但内存中始终保持一道作业
  • 特征:
    • 自动性
    • 顺序性
    • 单道性
  • 缺点: 运行时需要I/O操作时,需要让告诉CPU等待低俗的I/O完成.

    多道批处理

  • 描述:多个程序进入内存并在cpu中交替运行,共享系统中的各种软硬件资源.如果一个程序因IO而阻塞,CPU则运行另一个程序.
  • 特征:
    • 多道
    • 宏观上并行
    • 微观上串行
  • 有点:
    • 资源利用率高
    • 系统吞吐率高
  • 缺点:
    • 用户相应时间长
    • 不提供人机交互能力

分时操作系统

  • 描述:通过时间片轮转
  • 特征:
    • 同时性:多个用户
    • 交互性
    • 独立性:用户独立操作
    • 及时性:用户短时间得到响应
  • 缺点: 对于飞机订票系统、导弹系统等实时性要求搞的情况无法处理.

    实时操作系统

  • 硬实时操作系统
  • 软实时操作系统
  • 特征:
    • 及时性
    • 可靠性

网络操作系统和分布式操作系统


  • 总结

操作系统的运行环境

操作系统运行机制

  • cpu状态

    • 核心态:操作系统内核程序
    • 用户态:用户自编程序
  • 计算机内核功能

    • 时钟管理:计时,管理进程切换
    • 中断机制
    • 原语
      • 底层
      • 原子性
      • 运行时间短,调用频繁
    • 系统控制的数据结构及处理
      • 进程控制卡(pcb)等
      • 提供各类进程管理操作等

中断和异常

  • 外中断(中断):cpu执行指令意外的事件
    • 外设请求
    • 人的干预
  • 异常(内中断,例外,陷入):cpu执行指令内部的事件
    • 自愿中断(指令中断)
    • 强迫中断(硬件故障,软件中断)

  • 中断处理
    • 关中断
    • 保存断点
    • 中断服务程序寻址
    • 保存现场和屏蔽字(中断优先级)
    • 开中断
    • 执行中断服务程序
    • 关中断
    • 恢复现场和屏蔽字
    • 开中断
    • 中断返回

系统调用

  • 用户在程序中调用操作系统所提供的一些子功能,系统调用可视为特殊的公共子程序

操作系统的体系结构

大内核和微内核

  • 大内核就是将os的主要功能模块都作为一个紧密联系的整体运行在和核心态.各管理模块之间共享信息,能有效利用相互之间的有效特性.
  • 微内核结构有效地分离内核与服务、服务与服务,使得它们之间的接口更加清晰,维护的代价大大降低。

其他难点

并发和并行

特权指令和非特权指令

  • 从用户态转换为核心态的唯一途径是中断或异常

访管指令与访管中断

  • 访管指令:让用户程序可以从用户态切换到核心态.非特权指令.
  • 访管中断:访管指令引起的中断