一、操作系统概述

内容来自老师的课件,仅供复习和学习

导航

  • 操作系统的目标和发展
  • 操作系统的发展历史
  • 操作系统的主要理论成就
  • 主流操作系统的介绍

image

1.1 操作系统的目标与功能

  • 操作系统是机器与应用程序之间的接口程序
  • 功能:动态分配系统的共享资源给正在执行的程序
    • 进程调度
    • 内存管理
    • 设备控制
      image
  • 操作系统是硬件基础上的第一层软件:
    • 控制应用程序的执行
    • 应用程序和硬件间的接口
  • 操作系统的设计目标:
    • 方便:使计算机易于使用
    • 有效:高效管理计算机系统的资源
    • 易扩展:可引入新的系统功能

1.1.1 作为用户/计算机接口

  • 为应用程序员屏蔽硬件细节,提供计算机系统的接口
    image
  • 操作系统提供的服务
    • 程序开发
    • 程序运行
    • 访问输入/输出设备
    • 文件访问控制
    • 系统访问
    • 错误检测与响应
    • 统计记账
    • ......
  • 计算机系统的三个关键界面/接口
    • ISA(Instruction set architecture)指令集体系结构
      • 定义计算机可遵循的机器语言指令系统
      • 是软硬件的分界接口
      • 应用程序和实时工具都可以直接访问ISA的子集————用户ISA
      • 操作系统则有权访问另外的管理系统资源的机器语言指令————系统ISA
    • ABI(Application binary interface)应用程序二进制接口
      • 定义二进制可移植交叉程序的标准
      • 定义对操作系统与硬件资源的系统调用接口,和通过用户ISA可用的系统服务
    • API(Application programming interface)应用编程接口
      • 程序可通过增补的HLL(高级语言)库调用来访问硬件资源和经由用户ISA提供的可用系统服务
      • 任何系统调用通常都是通过库来完成的
      • 利用API,应用程序可以容易地(通过重新编译)移植到支持同样API的其他系统

1.1.2作为资源管理器

  • 计算机就是一组资源,用于数据的传送、存储和处理,以及对这些功能的控制
  • 操作系统负责管理计算机的软硬件资源
  • 操作系统通过管理计算机资源控制计算机
    • (作为控制器的)操作系统与(被控制的)普通软件的作用相同,都是由处理器执行的一组程序
    • 操作系统经常放弃控制,须依赖处理器重新获取控制
  • 操作系统管理的主要资源
    image

1.1.3操作系统的易扩展性

操作系统应该能不断发展

  • 硬件升级与新型硬件:新型处理器(如支持分页机制、APU)、新型输入/输出设备(如触摸屏)
  • 新服务:适应用户和系统管理员的需要(如图形界面、多点触控)
  • 修正错误:修正操作系统不可避免存在的各种错误(如发布各种补丁程序)

设计要求

  • 模块化接口
  • 接口定义
  • 说明文档
  • ......

操作系统的定义

  • 操作系统是一组程序的集合,其功能为
    • 控制和管理计算机硬件和资源软件
    • 合理地对各种作业(job,单一程序)进行调度(scheduling)
    • 方便用户使用计算机系统

1.2操作系统的发展历史

image

  • 串行处理
  • 简单批处理
  • 多道程序批处理
  • 分时系统
  • 实时系统
  • ......

1.2.1串行处理

  • 早期计算机没有操作系统
  • 存在两个主要问题
    • 人工调度
    • 准备时间长
  • 串行处理:用户必须顺序访问计算机的操作模式
    image
  • 提高串行处理效率的方法
    • 开发公用软件的各种系统软件工具
      • 函数库
      • 链接器
      • 加载器
      • 调试器
      • 输入/输出驱动程序
      • ......

1.2.2简单批处理系统

  • 动机:提高利用率————自动执行作业
  • 作业控制语言(JCL)
  • 监控程序(Monitor)————批处理操作系统
    • 所需的硬件支持
      • 内存保护(保护监控程序)
      • 计时器(防止一个作业独占系统)
      • 特权指令(只能由监控程序执行)
      • 中断(使操作系统放弃/获得控制权更加灵活)
        image
  • 第一个监控程序(第一个操作系统)————1950s中期,GE(美国通用电气公司)为IBM 701开发
    image
  • 操作模式(由内存保护和特权指令引入)
    • 用户态:不能访问受保护区域,不能执行特权命令
    • 内核态:可访问受保护区域,能执行特权命令
  • 单道程序批处理
    • 使处理器必须等到输入/输出操作结束后才能继续
      image

1.2.3多道程序批处理系统

  • 动机:输入/输出速度太慢,需进一步提高CPU利用率
  • 多道程序设计/多任务处理————1950's末为IBM 360/7094开发
  • 多个作业任务同时进入
  • 主存切换运行
  • image
  • 需要的硬件功能:
    • 输入/输出中断
    • 直接内存访问
  • 需要的软件功能
    • 内存管理
    • 作业调度
      image

1.2.4分时系统

  • 动机:满足用户与计算机交互的需要,减小响应时间
  • 多个交互作业,多个用户分享处理器时间
  • 分时技术
  • 把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用
  • 第一个分时系统:CTSS(兼容分时系统),1961年MIT为IBM 709研发
  • 联机多用户的计算环境
    • image
  • 多道批处理与分时系统的比较
    • image

1.2.5实时系统

  • 用于专用系统,进行实时控制与实时信息处理,如工业、军事、金融、航天......
  • 强调即时响应和高可靠性,在规定时间内完成对事件的处理为特征
    • 当代的操作系统,通常同时具有分时、实时和多道批处理功能,被称为通用操作系统

1.3操作系统的主要理论模块

操作系统发展中的重要理论进展

  • 进程
  • 内存管理
  • 信息保护和安全
  • 进程调度和资源管理

1.3.1进程

image

  • 动机:管理协调系统中“多道处理”的活动相当困难
  • 进程:一个正在执行的程序
  • 进程的三个组成部分:
    • 一段可执行的程序
    • 程序所需要的相关数据(变量、工作空间、缓存区等)
    • 程序执行的上下文环境/程序状态
  • 进程调度软件出错的原因:
    • 不正确的同步(如不正确的信号机制)
    • 失败的互斥(竞争共享资源)
    • 不确定的程序操作(如共享内存的重写,程序的调度顺序可能影响程序的输出结果)
    • 死锁(如两个进程都等待对方释放自己需要的资源)
  • 进程被作为一种数据结构来实现
    image

1.3.2存储管理

  • 动机
    • 更好支持多道程序和模块化程序设计
    • 直接使用物理内存有较大局限性
  • 操作系统内存管理的基本职责
    • 进程隔离(防止相互干涉各自的存储空间)
    • 自动分配和管理(需要时动态分配,对程序员透明)
    • 支持模块化程序设计(如面向对象)
    • 保护和访问控制(访问共享存储空间可能引发问题)
    • 长期存储(非易失,磁盘文件系统)
  • 存储管理实现方法技术
    • 文件系统:长期存储,访问/控制单位
    • 虚拟存储器
      • 允许程序从逻辑的角度访问存储器
      • 把内存和外存结合起来管理,使用起来与使用内存一样方便
      • 引入分页系统和从虚地址到实地址的动态映射硬件
  • image

1.3.3信息保护与安全

  • 动机:分时系统、计算机网络
  • 四类相关问题
    • 可用性:保护系统原子操作的整体性
    • 保密性:保证用户的信息私密性
    • 数据完整性:保护数据不被未授权操作修改
    • 认证:用户身份的正确认证和消息/数据的合法性

1.3.4调度和资源管理

  • 动机:管理并调度各种活动进程、使用各种可用资源,同时要提供公平性、有差别的响应性和有效性
  • 三个因素
    • 公平性(平等对待各类进程)
    • 有差别的响应性(区分不同服务要求的不同作业类型)
    • 有效性(在最大吞吐量、最小响应时间和尽可能多用户之间找到平衡)
      • 多道程序设计的主要组件,操作系统研究的基本问题
  • image

1.3.5系统结构

  • 操作系统的结构及复杂性不断增长
  • 四个问题:实现落后于需求、存在错误、性能不足和安全问题
  • 操作系统的软件结构
    • 模块化:合理划分模块、在模块间定义良好的接口
    • 分层和信息抽象:系统定义为一系列的层,每一层实现操作系统所需功能的相关子集,它只依赖于下一层的功能。某层的修改不需要改变其他层
  • 操作系统设计层次
    • image
    • 1~4:处理器硬件(不属于操作系统)
    • 5~7:单处理器资源
    • 8~13:外部对象

1.4现代操作系统的发展

影响现代操作系统发展的因素:

  • 新硬件:多【核】处理器结构、高速增长的计算机速度、高速网络连接、容量不断增加的各种存储设备
  • 新应用:人工智能、多媒体应用、互联网/Web访问、客户/服务器计算模式
  • 新安全威胁:网络使安全问题更加突出(病毒、蠕虫、黑客技术)

操作系统的组织方法和设计要素(现代操作系统的特征)

  • 微内核结构
    • 内核
      • 操作系统中实现基本功能的代码,它常驻内存并运行于特权方式
      • 单体内核/宏内核
        • 内核实现操作系统的所有基本功能(包括调度、文件系统、连网、设备驱动程序、内存管理等等)
        • 一般用一个进程实现,内核代码共享同一个地址空间,每一模块可以调用任何其他模块和使用内核的所有核心数据
        • 效率高,但难以修改和扩充
        • 例子:Unix、Linux、Android(基于Linux)、D操作系统、Windows9x、Mac操作系统8.6以下
      • 微内核:
        • 内核只实现最基本的功能(包括地址空间、进程间通信、和基本调度)
        • 更多的功能代码组织为多个进程,各自独立使用自己的地址空间,允许与非特权方式
        • 客户/服务器模式,设计简单灵活,适用于嵌入式与分布式环境,但效率较低
        • 例子:Mach、QNX
      • 混合内核
        • 微内核和宏内核的结合(可算作单体内核中的一类)
        • 具有微内核结构,按宏内核实现
        • 例子:WindowsNT(2000/XP/Vista/7/8)、BDS、XNU
    • 不同内核类型操作系统的结构比较
    • image
  • 多线程
    • 进程
      • 分派系统资源(CPU除外)的最小单位
      • 由一个或多个线程实现其功能
    • 线程
      • 分派CPU的最小工作单位
    • 多线程技术
      • 把执行一个应用程序的进程划分为可以同时运行的多个线程
      • 适用于执行许多本质上独立、不需要串行任务的应用程序
      • 常用于基于C/S模式的服务器、如Web服务器、网络数据库服务器等
  • 对称多处理(SMP)
    • 一个计算机
    • 多个CPU
    • 共享同一个主存和I/O设备
    • 所有CPU都可以执行相同的功能
    • 对称多处理的操作系统
      • 可以调度进程和线程到任一个CPU
    • 对称多处理的优势
      • 性能
      • 可靠性
      • 增量扩展
      • 可扩展性
  • 分布式
    • 分布式操作系统
      • 分布式硬件环境(多个计算机,如机群)
      • 提供统一的资源管理(单一主/辅存空间、一致访问方法)
      • 例:分布式文件系统
  • 面向对象设计
    • 现代操作系统设计的一个主要方法
    • 为小内核系统提供模块扩展性
    • 方便分布式工具和分布式操作系统的开发

1.5多处理器和多核的操作系统设计考虑

  • SMP的操作系统考虑
    • SMP系统中的内核可在任意一个处理器上运行
    • 一般每个处理器都从可用进程或线程池中进行自我调度
    • SMP使操作系统复杂化,必须处理同时在执行的操作系统多个部分的资源共享与配套操作
    • 关键设计问题:同时并发的进程和线程、调度、同步、内存管理、可靠性与容错度
  • 多核的操作系统考虑
    • 包括SMP的所有问题
    • 多核出现的新问题:潜在的并行规模——单一芯片上的核数、共享与专用高速缓存的容量都在不断增加,我们现在已进入众核(many-core)时代
    • 众核的多核系统的设计挑战——高效利用多核处理能力、聪明地有效管理丰富的片上(on-chip)资源
    • 应用程序内的并行——将应用程序细分成多个可并行执行的任务,用多进程或多线程来执行
    • 虚拟机途径——用多个虚拟机在各别的核上运行多个应用程序
posted @ 2024-11-02 21:30  韦飞  阅读(62)  评论(0)    收藏  举报