北航计算机学院操作系统理论总结整理第一章引论

本系列博客是源于2018级北航计算机学院的操作系统理论课程的课堂笔记、课堂练习及课后笔记整理而来。相关的参考资料绝大多数来自于北航计算机学院操作系统课程组,同时也参考了机械工业出版社出版的《现代操作系统(中文第四版)》。

由于本博客是本系列博客的开篇,故于此简单介绍一下北航计算机学院操作系统理论课程的目标,再进行第一章内容的总结。

操作系统课程目标

  • 掌握操作系统的基本原理
    • 进程管理
    • 存储管理
    • 设备管理
    • 文件系统
  • 对操作系统的基本概念、基本结构及运行环境有深入的认识;
    • 具有分析操作系统的能力
  • 系统级编程能力的提高
    • 系统调用的使用
  • 深入到操作系统内部,理解并掌握操作系统的基本原理、设计方法和实现技术
    • 操作系统设计、并发程序的设计方法
  • 思维方式的学习:权衡(Trade Off)、抽象
  • 了解操作系统的演化过程、发展研究动向、新技术以及新思想

本章复习重点

  • 操作系统的发展历史
    • 批处理、分时
    • 单道程序、多道程序
    • 实时、网络、分布式
  • 冯诺依曼体系结构:存储程序式
    • 集中顺序过程控制
  • 操作系统的主要功能
    • 进程管理
    • 存储管理
    • 设备管理
    • 文件系统
  • 现代操作系统的基本特征
    • 并发执行
    • 资源共享
    • 虚拟化管理
    • 异步性
  • 操作系统的工作模式
    • 内核态/管态
    • 用户态/目态
  • 几个术语
    • 特权指令/保护指令
    • 异常:中断、陷入(包括系统调用)
  • 分析操作系统的几种观点
    • 用户观点:操作系统为用户提供了哪些功能可以使用
    • 资源管理:回答了整个操作系统是由哪几部分组成的
    • 进程观点:指明了这些资源管理程序在什么时候开始起作用,以及它们在执行过程中是如何相互联系的
    • 模块分层设计:从操作系统构建的角度,考虑操作系统的结构
    • 抽象与权衡

1.1 什么是操作系统

操作系统定义(非严格)

  • 操作系统是一组管理计算机硬件资源的软件集合,它向计算机程序提供共性的服务。
    • 提供一个计算机用户与计算机硬件系统之间的接口 ,使计算机系统更易于使用。(使用者)
    • 有效地控制和管理计算机系统中的各种硬件和软件资源,使之得到更有效的利用。(资源管理者)
    • 合理地组织计算机系统的工作流程,以改善系统性能(如响应时间、系统吞吐量)。

操作系统层次

  • user
  • system and application programs
  • operating system
  • computer hardware

北航计算机学院操作系统理论总结整理第一章引论_第1张图片

计算机体系结构中的接口

北航计算机学院操作系统理论总结整理第一章引论_第2张图片

  • 自顶向下看操作系统,利用抽象屏蔽复杂性
    • 创建抽象
    • 实现和管理抽象
  • 自底向上看操作系统,利用资源的复用来实现时间维度空间维度的共享。
    • 支持多个用户、多个程序
    • 资源竞争
    • 资源的复用(共享)

操作系统的设计目标

  • 更多的人能方便地使用计算机(方便性

    • 通过操作系统提供的各种命令来操作计算机极大方便了用户,使得计算机系统易学易用。
  • 计算机系统的使用效率尽可能地高(有效性

    • 提高系统资源的利用率。在未配置操作系统的计算机系统中,处理机和IO设备经常处于空闲状 态,系统资源利用率低下;
    • 提高系统的吞吐量。操作系统通过合理组织计算 机的工作流程,加速程序的运行,缩短程序的运 行周期以实现系统吞吐量的提高;

操作系统的作用

  • 用户与计算机硬件系统之间的接口(API/GUI)

  • 即:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。

  • 系统资源的管理者(处理机、存储器、I/O设备等)

    • 处理机管理是用于分配和控制处理机

    • 存储器管理是负责内存的分配与回收

    • I/O设备管理是负责I/O设备的分配(回收)与操纵

    • 文件管理是用于实现文件的存取、共享和保护

  • 实现对计算机资源的抽象(OS是扩充机/虚拟机)

1.2 操作系统简史

操作系统历史沿革

北航计算机学院操作系统理论总结整理第一章引论_第3张图片

冯诺依曼体系结构

北航计算机学院操作系统理论总结整理第一章引论_第4张图片

  • 存储程序式
  • 集中顺序过程控制

哈佛结构

北航计算机学院操作系统理论总结整理第一章引论_第5张图片

  • 冯诺依曼体系结构瓶颈:指令和数据共同存储,数据及指令的访问彼此干扰,影响了系统的性能。
  • Harvard architecture对此进行了改进,将指令存储与数据存储分离(或增加指令Cache,与数据Cache独立)。

操作系统简史

  • 1946~1955年,电子管
  • 1955~1965年,晶体管&监控系统
  • 1965~1980年,集成电路&多道程序设计
  • 1980~1990年,PC机&微机操作系统
  • 1990至今,年分布式与嵌入式系统

1955~1965年晶体管&监控系统

  • IBM的1401(卫星机)和7094(主机)。
  • FORTRAN语言出现(语言的历史70年代FORTRAN为主,80年代C语言为主,90年代C++为主,2000是JAVA,2010年??)。
  • 操作系统的代表为FMS (the Fortran Monitor System),批处理系统。

批处理操作系统

  • 批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)。它又分为两个阶段:联机批处理系统脱机批处理系统
  • 首先出现的是联机批处理系统,即作业的输入/输出由CPU来处理
    • 在主机与输入机之间增加一个存储设备——磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户作业读入磁带,依次把磁带上的用户作业读入主机内存并执行,然后把计算结果向输出机输出。完成了上一批作业后,监督程序又从输入机上输入另一批作业,保存在磁带上,并按上述步骤重复处理。
    • 优点:监督程序不停地处理各个作业,从而实现了作业到作业的自动转接,减少了作业建立时间和手工操作时间,有效克服了人机矛盾,提高了计算机的利用率。
    • 不足:在作业输入和结果输出时,主机的高速CPU仍处于空闲状态,即等待慢速的输入/输出设备完成工作:此时主机处于“忙等”状态。
  • 为克服与缓解高速主机与慢速外设的矛盾,提高CPU的利用率,又引入了脱机批处理系统,即输入/输出脱离主机控制
    • 这种方式的显著特征是:增加一台不与主机直接相连而专门用于与输入/输出设备打交道的卫星机。其功能是:
      • 从输入机上读取用户作业并放到输入磁带上。
      • 从输出磁带上读取执行结果并传给输出机。
    • 优势:主机不直接与慢速的输入/输出设备打交道,而是与速度相对较快的磁带机发生关系,有效缓解了主机与设备的矛盾。主机与卫星机可并行工作,二者分工明确,可以发挥主机的高速计算能力。
    • 不足:每次主机内存中仅存放一道作业,每当它运行期间发出输入/输出(I/O)请求后,高速的CPU便处于等待低速的I/O完成状态,致使CPU空闲。 为进一步提升CPU的利用率,又引入了多道程序系统

1965-1980年 集成电路&多道程序设计

  • OS/360开发失败,导致了软件工程的诞生,从另一个意义上说,它也有成功之处,改变了上一代操作系统的问题,提出了多道程序设计(进程)、向下兼容的思想。商业上成功。
  • 分时系统CTSS、MULTICS、UNIX。

多道程序设计

  • 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存中( 前提是内存放的下),并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。
  • 多道程序设计技术不仅使CPU得到充分利用,同时也改善I/O设备和内存的利用率,从而提高了整个系统的资源利用率和系统吞吐量(即单位时间内处理作业(程序)的个数),最终提高了整个系统的效率。
  • 单处理机系统中多道程序运行时的特点:
    • 多道:计算机内存中同时存放几道相互独立的程序;
    • 宏观上并行:同时进入系统的几道程序都处于运行过程中,即它们先后开始了各自的运行,但都未运行完毕;
    • 微观上串行:实际上,各道程序轮流地用CPU,并交替运行。
  • 多道程序系统的出现,标志着操作系统渐趋成熟的阶段,先后出现了作业调度管理、处理机管理、存 储器管理、外部设备管理、文件系统管理等功能。
  • 多道程序系统需要解决的问题
    • 在一个连续的内存空间,同时驻留多道程序
    • 处理机的争夺
    • I/O设备的分配
    • 有效的组织不同程序的运行
    • 系统对各种存储介质的管理

多道批处理系统

  • 20世纪60年代中期,在前述的批处理系统中,引入多道程序设计技术后形成多道批处理系统(简称批处理系统),具有两个特点:
    • 多道系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。
    • 成批:在系统运行过程中,不允许用户与其作业发生交互作用,即:作业一旦进入系统,用户就不能直接干预其作业的运行。
  • 优点:
    • 系统吞吐量大
    • 资源利用率高
  • 缺点:
    • 平均周转时间长
    • 不能提供交互作用能力

分时操作系统

  • What 分时系统

    • 将CPU处理时间分割为多个时间片,将时间片分给不同程 序,达到多个程序“同时”运行的效果。
  • Why 分时系统

    • 批处理系统一次执行一个程序,I/O过程CPU空转
    • 为进一步提高CPU利用率,支持多用户、多进程
  • 出现时期(1957至今)

    • 分时系统的概念最早由IBM的Bob Bemer在1957年提出
    • 第一款分时系统CTSS(Compatible)在1961发布
  • 两种典型的分时系统

    • Multics/Unix (1968/1970)
    • IBM VM 360/370 (1966/1972)
  • 分时的含义:分时是指多个用户分享使用同一台计算机,多个程序分时共享硬件和软件资源。

    • 多个用户分时
    • 前台和后台程序(foreground & background)分时
    • 时间片(time slice)
  • 分时技术:把处理机的运行时间分成很短的时间片, 按时间片轮流把处理机分配给各联机作业使用。

  • 由于CPU速度不断提高和采用分时技术,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,好象自己独占机器一样。

  • 分时技术特点:

    • 多路性:若干个用户同时使用一台计算机。微观上看是各用户轮流使用计算机;宏观上看是各用户并行工作。
    • 交互性:用户可根据系统对请求的响应结果,进一步向系统提出新的请求。这种能使用户与系统进行人机对话的工作方式,明显地有别于批处理系统,因而,分时系统又被称为交互式系统
    • 独立性:用户之间可以相互独立,互不干扰。系统保证各用户程序运行的完整性,不会发生相互混淆或破坏现象。
    • 及时性:系统可对用户的输入及时作出响应。分时系统性能的主要指标之一是响应时间,它是指,从终端发出命令到系统予以应答所需的时间。

1980-1990年 PC机&微机操作系统

  • PC机
  • MSDOS、WINDOWS 95、WINDOWS NT、WINDOWS 2000
  • 类UNIX(Linux, Freebsd等)

1990至今 分布式与嵌入式系统

  • Cluster of Workstation, Network of Workstation, Grid, Cloud
  • 实时操作系统:Psos, VRTX, RTLinux, VxWorks

操作系统的网格化

  • 操作系统的网格化分为两类:

    • Network Operating System 网络操作系统
  • 在传统单机OS上加单独软件层,主要提供联网功能和资源的远程访问,实现多机互联。

    • Distributed Operating System 分布式操作系统
  • 多台机器统一管理形成单一系统,相比网络操作系统,对用户和应用高度透明

  • 分布式操作系统的透明性体现在:

  • 数据透明:用户无需了解文件存储位置

    • 执行透明:用户无需关心程序运行位置
  • 保护透明:统一的身份管理和安全机制

分布式系统

  • 分布式系统是一个一体化的系统,在整个系统中有一个全局的操作系统称为分布式操作系统。
  • 有网络作为底层支持
    • 具有模块性
    • 并行性:
      • 常规网络中的并行性仅仅意味着独立性
      • 而分布式系统中的并行性还意味着合作,原因在于:
        • 分布式系统是一个物理上的松散耦合系统
        • 又是一个逻辑上的紧密耦合的系统
    • 自治性
    • 通信性
  • 分布式系统和计算机网络的区别
    • 前者具有多机合作和健壮性

实时系统

  • 嵌入式OS比桌上PC的OS相对简单,但由于各种嵌入式系统产品中包含各不相同的特殊需求,导致这类系统中 使用的OS不下几百种,例如Windows CE、Palm OS、 VxWorks、pSOS、QNX、PowerTV、OpenTV、JavaOS、 LynxOS、Nucleus等等都是。而且至今仍有一半的开发者使用自行开发的OS。
  • 实时系统特点
    • 及时响应
    • 高可靠性和安全性
    • 系统的整体性强
    • 交互会话活动较弱
    • 专用系统
    • 种类:实时信息处理、实时控制
    • 网络即为操作系统:所有的功能分布于整个网络

1.3 计算机硬件简介

由于此部分内容在计算机组成课程中已经有所涉及,硬件与操作系统相关的部分也会在之后的相关章节具体讲解,故在此省略此部分内容。

1.4 操作系统的基本实现机制

异常(exception):陷阱(trap)和中断(interrupt)

  • 中断是异步异常,可能随时发生,与处理器正在执行的内容无关。中断主要由I/O设备、处理器时钟或定时器产生, 可以被启用或禁用。 (Asynchronous Exceptions)
  • 陷阱是同步异常,它是某一特定指令执行的结果。在相同条件下,异常可以重现。例如内存访问错误、调试指令以及被零除。 (Synchronous exceptions)
  • 系统调用也视作同步异常,或trap。
  • 软件和硬件都可以产生中断。
  • 陷阱(trap)帧:完整的线程描述表的子集,用于现场保护。
  • 陷阱处理程序处理少量事件,多数转交给其他的内核或执行体模块处理。

北航计算机学院操作系统理论总结整理第一章引论_第6张图片

北航计算机学院操作系统理论总结整理第一章引论_第7张图片

1.5 操作系统的基本类型

操作系统的基本类型

  • 批处理系统
  • 分时系统
  • 实时系统
  • 混合型系统

1.6 操作系统的特征和功能

操作系统的特征

  • 并发
  • 共享
    • 互斥共享(打印机、变量)
    • 同时访问(宏观)
  • 虚拟
    • 多道程序中的CPU
    • SPOOLING(外围设备同时联机操作)
    • 虚拟存储
  • 异步性
    • 由于资源等因素的限制,程序的执行通常都不可能“一气呵成”,而是以“停停走走”的方式运行。

操作系统的功能

  • 处理机管理
  • 存储器管理(内存)
  • 设备管理
  • 文件管理
  • 作业控制

处理机管理

  • 进程(线程)控制
  • 进程(线程)同步
  • 进程通信
  • 进程(线程)调度

存储器管理(内存)

  • 任务:
    • 为多道程序的并发提供良好的环境
    • 便于用户使用存储器
    • 提高存储器利用率
    • 为尽量多的用户提供足够大的存储空间
  • 功能:
    • 内存分配:静态和动态分配
    • 内存保护
    • 地址影射
    • 内存扩充

设备管理

  • 任务:
    • 为用户程序分配I/O设备
    • 完成用户程序请求的I/O操作
    • 提高CPU和I/O设备的利用率:中断;通道
    • 改善人机界面
  • 功能:
    • 缓冲管理
    • 设备分配
    • 设备处理
    • 虚拟设备功能

文件管理

  • 文件存储空间的管理
  • 目录管理
  • 文件读、写管理
  • 文件保护
  • 向用户提供接口

作业控制

  • 作业调度;
  • 作业控制
    • 批量型作业
    • 终端型作业

操作系统应解决的基本问题

  • 提供解决各种**冲突(资源竞争引起)**的策略
    • 处理机调度、进程调度、内存分配、设备分配等
  • 协调并发活动的关系(提供流程控制和避免运行结果不确定性)
    • 进程之间的通信,同步与互斥
  • 保证数据的一致性
    • 读写数据时,数据结构中的内容是否真实地记录了数据的实际情况
    • 在分布式处理时的共享数据的不同副本是否一致
  • 实现数据的存取控制
    • 共享程度、隐私程度、安全程度的控制

1.7 操作系统结构

操作系统结构

  • 模块接口
  • 有序分层法
  • 虚拟机
  • 微内核结构
  • 机制与策略分开

模块接口

  • 内聚性
  • 耦合性
  • 优点:加速了操作系统的研制过程、增加了操作系统的灵活性、便于修改和维护。
  • 缺点:接口定义困难、无序性。

高内聚,低耦合。

有序分层法

  • 自底向上法、自顶向下法
  • 层次设置原则
    • 调用关系
    • 与硬件的关系
    • 与虚存的关系
    • 可扩充性
  • 调用方式
    • 只能调用直接下层
    • 可以调用所有下层
    • 可以部分调用下层

虚拟机结构

  • 如IBM大型机上的系列操作系统
  • 基本思想为系统应该提供:
    • 多道程序能力
    • 一个比裸机有更方便扩展界面的计算机
    • 但是二者的实现应该相互独立
  • 优缺点
    • 虚拟机概念可以实现完全保护。
    • 用软件从硬件逐层扩展。
    • 虚拟机方法把多道程序和扩充机器的功能完全分开 了,使每一部分都简单、灵活,更易于维护。
    • 性能开销比较大。

微内核结构

  • 内核中只包括中断处理、进程通信(IPC)、基本调度等
  • 文件系统、网络功能、内存管理、设备管理等作为服务在微内核上运行。
  • 优点:
    • 内核易于实现、可移植性好、配置灵活、适应分布式环境(本地内核与远程内核对服务同样的支持)。
  • 缺点:
    • 速度较慢(扩大内核减少切换;减少内核提高其他优点)。

北航计算机学院操作系统理论总结整理第一章引论_第8张图片

机制与策略分开

  • 灵活
  • 可扩展

1.8 目前常用操作系统的介绍

目前常用操作系统的介绍

  • CP/M(Control Program Monitor)
  • Windows操作系统
  • UNIX操作系统
  • Linux操作系统

UNIX

北航计算机学院操作系统理论总结整理第一章引论_第9张图片

Linux

北航计算机学院操作系统理论总结整理第一章引论_第10张图片

DOS

北航计算机学院操作系统理论总结整理第一章引论_第11张图片

Windows

该图为Windows简化版的架构,在一定程度上采用了微内核的思想。

北航计算机学院操作系统理论总结整理第一章引论_第12张图片

知识点小结

  • 什么是操作系统
  • 操作系统的历史
  • 操作系统的类型
  • 操作系统的特征
  • 操作系统的功能
  • 操作系统的结构
  • 常用的操作系统

课后练习(第一次作业,非标准答案)

  1. 假如没有操作系统,怎样控制硬件?

    如果没有操作系统,我们需要从汇编语言开始,将汇编语言转换成相应的机器码后直接控制硬件。

  2. 计算机系统中不同层次接口的作用?

    计算机体系结构主要包含以下四个接口:

    • UI(User Interface),用户界面,是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。用户界面是介于用户与硬件而设计彼此之间交互沟通相关软件,目的在使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成之工作。
    • API(Application Programming Interface),应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节
    • ABI(Application Binary Interface),应用程序二进制接口,包含了应用程序在这个系统下运行时必须遵守的编程约定。ABI总是包含一系列的系统调用和使用这些系统调用的方法,以及关于程序可以使用的内存地址和使用机器寄存器的规定
    • ISA(Instruction Set Architecture),指令集架构,它在编译器编写者和处理器设计者之间提供了一个抽象层,将编程所需要了解的硬件信息从硬件系统中抽象出来。定义了机器语言程序编写者需要知道的一切,包含了存储模式、寄存器、指令集和数据类型等内容。
  3. 冯诺依曼计算机的主要特点是什么?

    冯诺依曼体系计算机主要有以下特点:

    • 计算机有运算器、存储器、控制器、输入设备和输出设备五大部件组成。
    • 指令和数据以同等地位存放于存储器内,并可按地址访问
    • 指令和数据均用二进制表示。
    • 指令由操作码和地址码组成,操作码表示操作的性质、地址码表示操作数在存储器中的位置。
    • 指令在存储器中按顺序存放。通常,指令时顺序执行的。在特殊情况下,可根据运算结果或指定的条件来改变运算顺序。
    • 机器以运算器为中心。输入输出设备和存储器之间的数据传送通过运算器完成、

必须遵守的编程约定**。ABI总是包含一系列的系统调用和使用这些系统调用的方法,以及关于程序可以使用的内存地址和使用机器寄存器的规定
- ISA(Instruction Set Architecture),指令集架构,它在编译器编写者和处理器设计者之间提供了一个抽象层,将编程所需要了解的硬件信息从硬件系统中抽象出来。定义了机器语言程序编写者需要知道的一切,包含了存储模式、寄存器、指令集和数据类型等内容。

  1. 冯诺依曼计算机的主要特点是什么?

    冯诺依曼体系计算机主要有以下特点:

    • 计算机有运算器、存储器、控制器、输入设备和输出设备五大部件组成。
    • 指令和数据以同等地位存放于存储器内,并可按地址访问
    • 指令和数据均用二进制表示。
    • 指令由操作码和地址码组成,操作码表示操作的性质、地址码表示操作数在存储器中的位置。
    • 指令在存储器中按顺序存放。通常,指令时顺序执行的。在特殊情况下,可根据运算结果或指定的条件来改变运算顺序。
    • 机器以运算器为中心。输入输出设备和存储器之间的数据传送通过运算器完成、

你可能感兴趣的:(操作系统)