计算机操作系统详细学习笔记(一):计算机操作系统概述

前言

如果你对这篇文章可感兴趣,可以点击「【访客必读 – 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。

文章目录

    • 前言
    • 一、计算机操作系统概述
      • 1.1 计算机系统概述
        • 1.1.1 计算机发展历史
        • 1.1.2 计算机系统的组成
      • 1.2 计算机硬件系统
        • 1.2.1 计算机硬件系统的组成
        • 1.2.2 储存程序计算机
        • 1.2.3 总线及其组成
        • 1.2.4 中央处理器(CPU)
        • 1.2.5 存储器的组织层次
        • 1.2.6 外围设备及其控制
      • 1.3 计算机软件系统
        • 1.3.1 计算机软件系统的组成
        • 1.3.2 程序员的计算机系统视图
        • 1.3.3 计算机程序的执行过程
      • 1.4 计算机操作技术的发展
        • 1.4.1 计算机的手工操作
        • 1.4.2 装入程序的引进
        • 1.4.3 引入汇编语言后的计算机控制
        • 1.4.4 简单批处理系统的操作控制
        • 1.4.5 操作系统与自动化操作控制
      • 1.5 计算机操作系统
        • 1.5.1 操作系统的概念
        • 1.5.2 操作系统的组成
        • 1.5.3 操作系统的类型
      • 1.6 资源管理的角度
        • 1.6.1 操作系统的资源
        • 1.6.2 管理计算机系统的软硬件资源
        • 1.6.3 屏蔽资源使用的底层细节
        • 1.6.4 资源的共享与分配方式
      • 1.7 程序控制的角度
        • 1.7.1 多道程序同时计算
        • 1.7.2 多道程序系统的实现
      • 1.8 操作系统控制计算机的角度
        • 1.8.1 计算机系统操作方式
        • 1.8.2 命令解释程序
      • 1.9 人机交互的角度
        • 1.9.1 操作系统人机交互
        • 1.9.2 人机交互的发展
      • 1.10 程序接口的角度
        • 1.10.1 系统调用
      • 1.11 系统结构的角度
        • 1.11.1 操作系统软件的结构设计
        • 1.11.2 OS层级结构

一、计算机操作系统概述

1.1 计算机系统概述

1.1.1 计算机发展历史

  • 1945年,电子真空管出现,机器语言应用于科学计算
  • 1956年,晶体管出现,批处理控制,数据处理领域
  • 1959年,集成电路、多道程序出现,操作系统/数据库/高级语言
  • 1976年,大规模/超大规模集成电路出现
  • 1980年,微机出现,廉价化促使应用领域快速发展
  • 1990年,图形化人机交互技术推动应用人群快速发展
  • 2003年,移动计算出现

1.1.2 计算机系统的组成

计算机系统:包括硬件子系统和软件子系统。

  • 硬件:CPU、主存储器、I/O控制设备、外围设备

  • 软件:系统软件、支撑软件和应用软件

    • 最关键的系统软件:操作系统与语言处理程序

1.2 计算机硬件系统

1.2.1 计算机硬件系统的组成

  • 中央处理器:运算单元、控制单元
  • 主存储器
  • 外围设备:输入 / 输出设备、存储设备(硬盘)、网络通信设备
  • 总线

1.2.2 储存程序计算机

主要特点

  1. 以运算单元为中心,控制流由指令流产生
  2. 采用存储程序原理,面向主存组织数据流
  3. 主存是按地址访问、线性编址的空间
  4. 指令由操作码和地址码组成
  5. 数据以二进制编码

计算机操作系统详细学习笔记(一):计算机操作系统概述

1.2.4 中央处理器(CPU)

简要介绍

中央处理器是计算机的运算核心(Core)和控制单元(Control Unit),主要包括:

  1. 运算逻辑部件:一个或多个运算器
  2. 寄存器部件:包括通用寄存器、控制与状态寄存器,以及高速缓冲存储器(Cache)
  3. 控制部件:
    • 实现各部件间联系的数据、控制及状态的内部总线。
    • 负责对指令译码、发出为完成每条指令所要执行操作的控制信号、实现数据传输等功能的部件。

计算机操作系统详细学习笔记(一):计算机操作系统概述

软件开发的不同层次

  1. 计算机硬件系统:机器语言
  2. 操作系统之资源管理:机器语言+广义指令(扩充了硬件资源管理)
  3. 操作系统之文件系统:机器语言+系统调用(扩充了信息资源管理)
  4. 数据库管理系统:++数据库语言(扩充了功能更强的信息资源管理)
  5. 语言处理程序:面向问题的语言

1.3.3 计算机程序的执行过程

计算机操作系统详细学习笔记(一):计算机操作系统概述

1.4.4 简单批处理系统的操作控制

  • 引入作业控制语言
    • 用户可以通过该语言编写作业说明书,描述对一次计算机求解(作业)的控制
  • 操作员控制计算机成批输入作业,成批执行作业
  • 这一方式明显缩短了手工操作的时间,提高了计算机系统利用率。
  • 这一阶段,磁带的出现,使得卡片与纸带等机械输入方式得以进一步提高。

(ps:半自动化操作方式,还谈不上操作系统。)

缺点

  • 虽然解决了手工操作与计算机的机械操作不匹配的矛盾,但是它并没有解决中央处理器与电子速度不匹配的矛盾。
  • 而解决电子速度不匹配问题的关键在于让多个程序同时进入计算机系统,使得外围设备和CPU充分并行。

1.4.5 操作系统与自动化操作控制

  • 1960年,磁盘设备出现
    • 计算机操作系统浓墨登场,实现了计算机系统的自动化控制。使得多个程序同时运行成为可能。

1.5 计算机操作系统

1.5.1 操作系统的概念

  • 操作系统(Operating System),简称 OS
  • OS是方便用户、管理和控制计算机软硬件资源的系统程序集合。

各个角度看待OS

  1. 用户角度
    • OS管理计算机系统的各种资源,扩充硬件的功能,控制程序的执行
  2. 人机交互角度
    • OS是用户与机器的接口,提供良好的人机界面,方便用高糊使用计算机
  3. 系统结构
    • OS是一个大型软件系统,其功能复杂,体系庞大,采用层次式、模块化的程序结构

1.5.2 操作系统的组成

  1. 进程调度子系统

  2. 进程通信子系统

  3. 内存管理子系统

  4. 设备管理子系统

  5. 文件管理子系统

  6. 网络通信子系统

  7. 作业控制子系统

1.5.3 操作系统的类型

从操作控制方式看

  1. 多道批处理操作系统,采用脱机控制方式(程序员不接触计算机)
  2. 分时操作系统,采用交互控制方式(最常见的操作控制方式)
  3. 实时操作系统
    • 既支持分时的交互系统,同时的又有大量的进程待命用来处理突发的实时调度

从应用领域看

  1. 服务器操作系统、并行操作系统
  2. 网络操作系统、分布式操作系统
    • 网络与分布式主要区别在于透明和非透明
    • 分布式操作系统是透明的,用户不知道资源在哪,资源如何存储
  3. 个人机操作系统、手机操作系统
  4. 嵌入式操作系统、传感器操作系统

1.6 资源管理的角度

1.6.1 操作系统的资源

硬件资源

  • 处理器、内存、外设

信息资源

  • 数据、程序

1.6.2 管理计算机系统的软硬件资源

  • 处理器资源:哪个程序占有处理器运行/li>
  • 内存资源:程序/数据在内存中如何分布/li>
  • 设备管理:如何分配、去配和使用设备/li>
  • 信息资源管理:如何访问文件信息/li>
  • 信号量资源:如何管理进程之间的通信/li>

1.6.3 屏蔽资源使用的底层细节

驱动程序

  • 最底层的、直接控制和监视各类硬件(或文件)资源的部分
  • 职责是隐藏底层硬件的具体细节,并向其它部分提供一个抽象的、通用的接口

比如说,打印一段文字,既不需知道文件信息存储在硬盘上的细节,也不必知道具体打印机类型和控制细节。

1.6.4 资源的共享与分配方式

资源共享方式

  • 独占使用方式(一段时间内只能被一个运行程序使用)
  • 并发使用方式(涉及资源分配)

资源分配策略

  • 静态分配方式
    • 这个运行程序进入内存前就拿到了所有资源,好处是不会死锁,坏处是效率低
  • 动态分配方式
    • 谁要用就给谁分配,可能会发生死锁
  • 资源抢夺方式
    • 定义一个规则,每个程序有一个优先级,我优先级比你高,我就把资源抢过来。
    • 优点:效率高且不会死锁
    • 缺点:我抢了你的资源,那你原来使用的资源如何回滚。

1.7 程序控制的角度

1.7.1 多道程序同时计算

问题:CPU速度与I/O速度不匹配的矛盾,非常突出

  • 只有让多道程序同时进入内存争抢CPU运行,才可以使得CPU和外围设备充分并行,从而提高计算机系统的使用效率。
    • 程序A在读入时,程序B执行。程序A执行时,程序B输出。充分利用CPU。

多道程序设计及优点

  • 多道程序设计:指让多个程序同时进入计算机的主存储器进行计算。
  • 多道程序设计的特点
    • CPU与外部设备充分并行
    • 外部设备之间充分并行
    • 发挥CPU的使用效率
    • 提高单位时间的算题量
    • 单个程序的运行时间被延长。

1.7.2 多道程序系统的实现

进程(进入内存执行的程序建立管理实体)

  • OS应能管理与控制进程程序的执行
  • OS协调管理各类资源在进程间的使用
    • 处理器的管理和调度
    • 主存储器的管理和调度
    • 其他资源的管理和调度

多道程序系统的实现要点

  • 如何使用资源:调用操作系统提供的服务例程(如何陷入操作系统)
  • 如何复用CPU:调度程序(在CPU空闲时让其他程序运行)
  • 如何使CPU与I/O设备充分并行:设备控制器与通道(专用的I/O处理器)
  • 如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理)

1.8 操作系统控制计算机的角度

1.8.1 计算机系统操作方式

  • OS规定了合理操作计算机的工作流程。
  • OS的操作接口 —— 系统程序
    • OS提供给用户的功能级接口,为用户提供的解决操作计算机和计算共性问题的所有服务的集合。
    • OS的两类作业级接口
      • 脱机作业控制方式:作业控制语言
      • 联机作业控制方式:操作控制命令

脱机作业控制方式

  1. (OS)提供作业说明语言
  2. (用户)编写作业说明书,确定作业加工控制步骤,并与程序数据一并提交
  3. (操作员)通过控制台输入作业
  4. (OS)通过作业控制程序自动控制作业的执行

[例] 批处理是OS的作业控制方式,UNIX的shell程序,DOS的bat文件。

  • 不需要用户干预,仅由系统根据作业说明书控制运行作业,又称为批处理作业。
  • 直到输入缓存区满了,系统才来处理。

联机控制方式

  1. (计算机)提供终端(键盘/显示器)
  2. (用户)登录系统
  3. (OS)提供命令解释程序
  4. (用户)联机输入命令,直接控制作业步的执行

[例] 分时OS的交互控制方式。

  • 系统立即处理或将数据存储起来之后处理。

假脱机技术(SPOOLing)

  • 联机情况下实现的同时外围操作,也称假脱机输入输出操作,它是OS中一项将独占设备改为共享设备的技术。
  • SPOOLing是低速输入输出设备与主机交换的一种技术,通常也成为 “假脱机真联机”,它的核心思想是以联机的方式得到脱机的效果。
  • 独享打印机改造为多个用户共享的打印机
    • 系统对于用户的打印输出,但并不真正把打印机分配给该用户进程,而是先在输出井中申请一个空闲盘块区,并将要打印的数据送入其中;然后为用户申请并填写请求打印表,将该表挂到请求打印队列上。若打印机空闲,输出程序从请求打印队首取表,将要打印的数据从输出井传送到内存缓冲区,再进行打印,直到打印队列为空。

1.8.2 命令解释程序

命令解释程序概述

  • 【核心功能】接受和执行一条用户提出的对作业的加工处理命令。
    • 当一个新的批作业被启动,或新的交互型用户登录进系统时,系统就自动地执行命令解释程序,负责读入控制卡或命令行,作出相应解释,并予以执行。
  • 【命令解释程序的演变】
    • 会话语言:可编程的命令解释程序。(Linux 的 shell)
    • 图形化的命令控制方式。
    • 多通道交互的命令控制方式。

命令解释程序的处理过程

  • OS启动命令解释程序,输出命令提示符,等待键盘中断/鼠标点击/多通道识别。
  • 每当用户输入一条命令(暂存在命令缓冲区)并按回车换行时,申请中断。
  • CPU进行响应,将控制权交给命令解释程序,读入缓冲区内容、分析命令、接受参数、执行代码。

前台命令与后台命令

  • 前台命令

    • 命令之间必须严格按序执行,一个作业执行结束,下一个命令才能开始。
  • 后台命令

    • 启动一个命令之后,不管这个命令有无结束,马上就可以接受下一条命令。

1.9 人机交互的角度

1.9.1 操作系统人机交互

人机交互设备组成

传统的终端设备、新型的模式识别设备。

OS人机交互部分定性

控制有关设备运行、理解执行设备传来的命令。

人机交互功能定位

决定计算机系统友善性的重要因素,是当今OS研发热点。

1.9.2 人机交互的发展

初期发展

  • 1960年,行命令控制方式(一个屏幕只有一行命令)
  • 1970年,全屏幕控制方式(多行命令)
  • 1960~1980年斯坦福研究所的发展计划
    • 两类成果
      • 【观念上】强调人机交互中心是人,而不是计算机效率。
      • 【设备上】鼠标、菜单与单窗口控制
    • 衡量操作系统好坏的标志已经不再是计算机系统的效率,而是这个计算机系统能否为更加广泛的人群所使用。

人机交互发展 —— WIMP界面(最常见)

  • 缘起:70年代后期 Xerox 的原型机 Star
  • 特征:窗口(Windows)、图标(Icons)、菜单(Menu)和指示装置(Pointing Devices)为基础的图形用户界面WIMP。
    • 窗口为多窗口。
    • 指示装置为单击、双击、左键、右键等。
  • 发展
    • Apple最初采用并大力推动,1990年代开始广泛使用,ios操作系统是最能体现WIMP特性的OS。
  • 不足
    • 不允许同时使用多个交互通道,从而产生人-机交互的不平衡。

人机交互发展 —— 多媒体计算机

  • 缘起:1985年的MPC
    • 把音频视屏、图形图像和人机交互控制结合起来,进行综合处理的计算机系统。
  • 构成:多媒体硬件平台、多媒体OS、图形用户接口、多媒体数据开发工具
    • 提供与时间有关的时变媒体界面,既控制信息呈现,也控制何时呈现/如何呈现。

人机交互发展 —— 虚拟现实系统

  • 缘起:1980年代的虚拟现实新型用户界面。
  • 特点
    • VR通过计算机模拟三维虚拟世界,根据观察点、观察点改变的导航和对周围对象的操作,来模拟临境的感觉。

1.10 程序接口的角度

1.10.1 系统调用

定位

系统调用是OS的程序接口。

定性

系统调用是OS实现的完成某种特定功能的过程;为所有运行程序提供访问OS的接口。

实现机制

  • 陷入处理机制 —— (OS控制、实现系统调用的机制)

    • 陷入指令:访管指令或异常中断指令,OS为实现系统调用而引起处理器中断的指令。
  • 每个系统调用事先规定编号,并在约定寄存器中规定了传递给内部处理程序的参数。

  • 系统调用入口地址表

    • 每个入口地址指向一个系统调用的处理程序,并包含系统调用自带参数的个数。
  • 现场保护区

    • 陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场。

实现过程

计算机操作系统详细学习笔记(一):计算机操作系统概述
  • 第二种层次结构(中间两部分都属于OS部分)

    计算机操作系统详细学习笔记(一):计算机操作系统概述
  • 来源:Gene_INNOCENT

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2020年7月14日
    下一篇 2020年7月14日

    相关推荐