计算机组成原理——计算机系统概述

本文详细介绍了计算机操作系统的起源与发展,包括计算机硬件系统和软件系统的组成,重点讨论了CPU、存储器、总线、中央处理器、存储层次结构以及外围设备的控制。同时,阐述了操作系统在资源管理、程序控制、人机交互和系统结构等多个角度的作用,解析了系统调用、命令解释程序、多道程序设计等关键概念,展示了操作系统如何提升计算机系统效率和用户友好性。
摘要由CSDN通过智能技术生成

目录

一、计算机操作系统概述

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.3 总线及其组成

简要介绍
  1. 总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是CPU、内存、输入输出设备传递信息的公用通道。
  2. 计算机的各个部件通过总线相连接,外围设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。
  3. 按照所传输的信息种类,总线包括一组控制线、一组数据线和一组地址线。
总线的类型
  1. 内部总线:用于CPU芯片内部连接各元件
  2. 系统总线:用于连接CPU、存储器和各种I/O模块等主要部件
  3. 通信总线:用于计算机系统之间通信

1.2.4 中央处理器(CPU)

简要介绍

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

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

1.2.5 存储器的组织层次

组织架构
  1. 寄存器
  2. Cache(高速缓存)
  3. 主存(DRAM - 动态随机存储器) ---------------------- 上述三类通电后工作,断电后信息清空
  4. SSD(本地固态硬盘)
  5. 本地外存储器(本地硬盘)
  6. 远程外存储器(分布式文件系统、Web服务器)

从上往下,容量更大,速度更慢,价格更低。

1.2.6 外围设备及其控制

设备类型

输入设备、输出设备、存储设备、机机通信设备

设备控制方式
  1. 轮询方式:CPU忙式控制,CPU执行内存数据交换
  2. 中断方式:CPU启动外设,外设中断CPU,CPU执行内存数据交换
  3. DMA方式:CPU启动DMA,DMA执行输入输出与内存数据交换,DMA中断CPU

1.3 计算机软件系统

1.3.1 计算机软件系统的组成

系统软件
  1. 操作系统
  • 操作系统实施对各种软硬件资源的管理控制

2. 实用程序

  • 实用程序为方便用户所设,如文本编辑等

3. 语言处理程序

  • 语言处理程序把用汇编程序/高级语言编写的程序,翻译成可执行的机器语言程序

4. 数据库管理系统

支撑软件

接口软件、工具软件、环境数据库,支持用户使用计算机的环境,提供开发工具。(也可认为是系统软件的一部分)

应用软件

即用户按其需要自行编写的专用程序。

1.3.2 程序员的计算机系统视图

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

1.3.3 计算机程序的执行过程

1.4 计算机操作技术的发展

1.4.1 计算机的手工操作

  • 开关表示、按钮控制、亮灯显示
    • 开关置内存地址,按 “装入地址” 按钮
    • 开关置机器指令,按 “装入数据” 按钮(如此循环往复,将整个程序装入内存)
    • 开关置程序始地址,按 “运行” 按钮

1.4.2 装入程序的引进

  • 引入卡片和纸带描述程序指令与数据
  • 引入装入程序(Loader)
    • 自动化执行程序装入,必要时进行地址转换
    • 通常存放在 ROM 中
  • 机器程序语言  装入程序  内存储器

1.4.3 引入汇编语言后的计算机控制

将机器语言符号化,引入汇编语言。通过汇编程序,将汇编语言变成可执行代码。

  1. 编译程序 —— 汇编代码变成可执行代码
  2. 连接程序 —— 调用共有的函数库(高级语言之后)
  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 管理计算机系统的软硬件资源

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

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为实现系统调用而引起处理器中断的指令。

  • 每个系统调用事先规定编号,并在约定寄存器中规定了传递给内部处理程序的参数。
  • 系统调用入口地址表
    • 每个入口地址指向一个系统调用的处理程序,并包含系统调用自带参数的个数。

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

实现过程

1.11 系统结构的角度

OS 定位

OS最初触发了软件工程这个学科的诞生,并且是软件工程研究领域的最主要来源。(另一个来源是DB应用引发的需求)

1.11.1 操作系统软件的结构设计

  • OS构件
    • 内核、进程、线程、管程等。

  • 设计概念
    • 模块化、层次化、虚拟化。

操作系统内核
  • 单内核【如今OS主流】
    • 内核中各部件杂染混居的形态,始于1960年,广泛使用。(Unix/Linux、Windows)

  • 微内核
    • 1980年始,强调结构性部件与功能性部件的分离,大部分OS研究都集中于此。

  • 混合内核
    • 微内核和单内核的折中,较多组件在核心态中运行。

  • 外内核
    • 尽可能减少内核的软件抽象化和传统微内核的消息传递机制,使得开发者专注于硬件的抽象化;部分嵌入式系统使用。

1.11.2 OS层级结构

  • 第一种层次结构(理想化)

  • 第二种层次结构(中间两部分都属于OS部分)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值