一.计算机系统概览
计算机系统的组成:硬件子系统和软件子系统
硬件子系统:电,磁,光,机械与原理构成的各种物理部件的有机组合,是系统工作的载体,包含CPU,主存储器,I/O控制系统,外围设备;
软件子系统:各种程序和文件,用于指挥计算机系统按指令的要求进行协同工作;包含系统软件,支撑软件,应用软件,需要注意的是,最关键的系统软件是操作系统和语言处理程序;
计算机系统的直观视图
用户视图:使用一系列具体的工具解决具体问题,如:office,emali,游戏程序
应用程序员视图:可使用面向问题的语言,对计算机进行程序设计,解决具体问题
二.计算机硬件系统
1)清楚目标,再学习
1.掌握计算机硬件系统的组成;
2.理解存储程序计算机,计算机总线,中央处理器(CPU),存储器及其层次,外围设备及其控制;
2)知识呈现
背景知识:现在的大部分计算机是基于 冯·诺伊曼 设计的存储程序计算机,是 冯·诺伊曼 等人在1946年总结并明确提出,被称为 冯·诺依曼计算机模型;
1.计算机硬件系统的组成:
中央处理器,主存储器,外围设备,总线;(注意:网络通信设备也属于外围设备,但不包含在I/O模块当中)
计算机硬件组成图例:
2.存储程序计算机在存储结构上的特点
1.以运算单元为中心,控制流由指令流产生;
2.采取存储程序原理,面向主存组织数据流;
3.主存是按地址访问,线性编址的空间;
4.指令由操作码和地址码组成;
5.数据以二进制编码;
提问:什么是线性编址?
3.存储程序计算机的经典结构和组织方式
存储器是这个模型的核心部分,计算机的控制器,运算器都面向存储器进行操作,同时外围设备也针对存储器进行数据的输入与输出。
4.总线及其组成
总线简介
总线(BUS)是计算机内各种功能部件之间传递信息的公共通信干线,它是CPU,内存,输入输出设备进行信息传输的公共通道;
计算机内各部件通过总线(BUS)相连,外围设备通过相应的电路接口与总线相连接,从而形成了计算机硬件系统;
按照传输信息的种类,总线包括一组控制线,一组数据线,一组地址线;
总线的类型
内部总线:用于CPU芯片内连接各种元器件
系统总线:用于连接CPU,存储器,各种I/O模块等主要部件
通信总线:用于计算机系统之间通信(如网络就是通过通信总线连接的)
计算机系统系统总线的构成图例:
北桥控制器把CPU,主存和南桥控制器通过总线有效地连接起来
南桥控制器通过PCI总线连接了SCSI设备,局域网设备(LAN),图像设备等快设备,并再连接一条E(ISA)总线,通过这条总线连接了串行口,并行口,鼠标键盘等字符型的较慢速的外围设备,从而达到计算机通信之间有效的平衡;
5.中央处理器(CPU)
CPU是计算机的运算核心(core)和控制单元(control unit)
主要包含
1.运算逻辑部件:由一个或多个运算器组成
2.寄存器部件:通用寄存器,控制与状态寄存器,高速缓存寄存器(cache)
3.控制部件:
(1)控制部件是实现各部件之间联系的数据,控制及状态的内部总线
(2)控制部件负责对指令译码,发出为完成每条指令所要执行操作的控制信号,实现数据数据传输等功能的部件;
6.处理器与寄存器
运算单元 控制单元 内部总线 PC/IR/Flag MAR/MAD
寄存器:Cahce IOAR/IODR
处理器(CPU)线程视图
寄存器(Cache),IOAR/IODR 也是处理线程的重要组成部分,但图中并未包含。
7.存储器的组织层次
8.外围设备及其控制
设备类型:输入输出设备,存储设备,网络设备(机机通信设备);
其中,网络设备的主要作用是实现机机通信,由于块的大小不同,在处理上有一定的特殊性;
设备控制及其方式
轮询方式:CPU忙式控制,CPU 执行内存数据交换
中断方式:CPU启动外围设备,同时进行数据的输入与输出,外围设备中断CPU,CPU执行内存数据交换
DMA方式:CPU启动DMA,DMA执行输入与输出,并与内存数据交换,交换结束后,DMA中断CPU;
需要注意的是DMA方式的并行程度更高
三.计算机软件系统
1)清楚目标,再学习
1.掌握计算机软件系统的组成
2.理解程序员的计算机系统视图
3.理解程序在计算机上执行的过程
2)知识呈现
1.计算机软件系统的组成
系统软件:操作系统,实用程序,语言处理程序,数据库管理系统;其中,操作系统的作用是实施对各种软硬件资源的管理控制,实用程序是为方便用户所设计的操作系统的外围程序,包含文本编辑等,语言处理程序是把汇编语言/高级语言编写的程序翻译成可执行的机器语言程序
支撑软件:接口软件,工具软件,环境数据库等,用于支持用户使用计算机的环境,提供开发工具,也可认为是系统软件的一部分
应用软件:用户按需要自行编写的专用程序
2.程序员的计算机系统视图
背景了解:计算机软件是用来封装计算机硬件的使用细节,向用户提供了方便使用计算机系统的接口,是分层构造的,带来了较大的便利
知识小结
如果只有计算机硬件系统,操作员只能通过机器指令来进行相应的编程,甚至需要操作具体的按钮来进行操作;
当有了操作系统与应用软件之后,就可以屏蔽部分机器指令,把注意力集中在CPU等和数据运算相关的程序计算上,而不是各种各样硬件的使用细节;
在有了数据库管理系统后,可以采用数据库语言对信息进行封装,不再是处理基于流或者是简单记录的信息,而是可以进行更复杂的对象式的,或者是关系式的数据处理,但还是需要通过机器指令和数据库语言两种方式进行程序设计;
高级语言的引进使得编程从面向目标机器,变成了面向目标解决,再加之各种支撑软件的支撑,我们可以使用各种各样的软件工程的工具,方便地来提供程序设计的效率。
3.软件开发的不同层次
计算机硬件系统:机器语言
操作系统之资源管理:机器语言+广义指令(扩充了硬件资源管理)
操作系统之文件系统:机器语言+系统调用(扩充了信息资源管理)
数据库管理系统:++数据库语言(扩充了功能更强的资源管理)
语言处理程序:面向问题的语言
4.计算机程序的执行过程
四.计算机操作技术的发展
1)清楚目标,再学习
1.了解操作系统与操作平台
2.了解计算机的手工操作方式
3.了解简单批处理系统的操作方式
4.理解操作系统与自动化操作方式
2)知识呈现
1.操作平台与操作系统
任何一台机器都有其操作平台和操作系统,如洗衣机,有确定水量,洗涤时间,洗衣粉的用量(开关显示)等开始的准备工作,而后启动按钮(按钮控制),同时指示灯表示洗衣机的工作状态(亮灯显示);
这一操作方式可以表示为:开关表示——>按钮控制——>亮灯显示
操作平台的精细化和系统化就产生了操作系统
2.计算机的手工操作
3.装入程序的引进
①引入卡片和纸带描述程序指令和数据
②引入装入程序(Loader)—— 简化手动操作过程中一条条装入程序的繁琐过程
自动化执行程序装入,必要时进行地址转换
通常存放在ROM(只读程序)中
4.引入汇编语言后的计算机控制
机器指令是一个二进制代码,编程容易出错,不易阅读,记忆,所以机器指令通过符号化的方式建立汇编语言,以便于程序编写,阅读和存储
当有了高级语言后
其中连接程序具有重要价值,如果每个人都需要从起始字符串开始编码效率极其低下,有了连接程序后,通过引进库函数的方式极大地减少工作量,提高工作效率,但此时还存在手工操作效率和计算机运算效率严重不匹配的问题,所以进行改进,引入了简单批处理方式
简单批处理系统的操作控制
引入作业控制语言,用户编写作业说明书,描述对一次计算机求解作业的控制
操作员控制计算机成批输入作业,成批执行作业
优点:明显减少了手工操作的时间,提高了计算机系统的利用率,同时,磁带的出现替代了卡片和纸带使机械输入方式的效率有了进一步提高
缺点:是半自动化的处理系统,虽然解决了手工操作和计算机的机械操作不匹配的矛盾,但并没有解决与中央处理器,电子速度不匹配的矛盾,要解决这样的矛盾就需要同时输入多个程序,使得电子速度和机械速度的矛盾得到调和,使得机械的外围设备和电子的CPU充分地并行
要使得多个程序同时运行就需要程序地切换,也就要求更加高效的外存储设备——磁盘
磁盘的出现:使多道程序执行成为可能,从而实现了计算机操作系统的自动化控制
五.计算机操作系统
1)清楚目标,再学习
1.了解操作系统的基本概念
2.了解操作系统的组成
3.了解操作系统的分类
2)知识呈现
1.计算机操作系统
计算机操作系统 Operating System 简称OS,是方便用户管理和控制计算机软硬件资源的系统程序集合
从用户角度看,计算机操作系统(OS)管理计算机系统的各种资源,扩充硬件的功能,控制程序的执行
从人机交互看,计算机操作系统(OS)是用户与机器的接口,提供良好的人机界面,方便用户使用计算机
从系统结构看,计算机操作系统(OS)是大型软件,功能复杂,体系庞大,采用层次式,模块化的程序结构
2.操作系统的组成
进程调度子系统,进程通信子系统,内存管理子系统,设备管理子系统,文件管理子系统,
网络通信子系统,作业控制子系统
3.操作系统的分类
从计算机操作的控制方式看分为三大类:
多道批处理方式,采用脱机控制方式(程序员采用作业说明书方式进行操作)
分时操作系统,采用交互控制方式(终端,显示器,鼠标的交互式操作)
实时操作系统(既有交互式的操作,也有大量进程待命去执行实时的突发的任务)
从应用领域看:
服务器操作系统,并行操作系统
网络操作系统,分布式操作系统
个人机操作系统,手机操作系统
嵌入式操作系统,传感器操作系统
六.资源管理的角度
1)清楚目标,再学习
1.掌握计算机系统的资源
2.理解软硬件资源的管理
3.理解屏蔽资源使用的底层细节
4.理解资源的共享与分配
2)知识呈现
1.操作系统的资源
硬件资源
处理器,内设,外设
信息资源
数据 程序
2.软硬件资源的管理
管理计算机系统的软硬件资源需要解决的问题:
1.处理器资源:哪个程序占有处理器运行?
2.内存资源:程序和数据在内存中如何分布存储?
3.设备管理:如何分配,去配和使用设备?
4.信息资源管理:如何访问文件信息?
5.信号量资源:如何管理进程之间的通信?
3.屏蔽资源使用的底层细节
驱动程序:最底层的,直接控制和监视各类硬件(或文件)资源的部分,职责是隐藏底层硬件的具体细节,并向其他部分提供一个抽象的,通用的接口
比如,使用打印机打印一段文字,只需要知道打印的格式,而不需要知道文件信息的存储位置,或者是打印机的类型和控制细节
4.资源的共享与分配
资源共享方式
独占使用方式
并发使用方式
资源分配策略
静态分配方式 ,这个运行程序进入内存前把资源拿到手上,不会死锁,但效率低下
动态分配方式,但有可能产生死锁
资源抢占方式,效率高,解决死锁,但资源被抢占后,原来的资源如何回归?
七.控制程序执行的角度
1)目标清楚,再学习
1.掌握多道程序设计的概念
2.理解多道程序同时计算及其优点
3.理解多道程序的实现
2)知识呈现
1.多道程序同时计算
CPU速度与I/O速度不匹配的矛盾,非常突出
只有让多道程序同时进入内存争抢CPU运行,才能使得CPU与外围设备充分并行,从而提高计算机的使用效率
2.多道程序设计
多道程序设计是指,让多个程序同时进入计算机的主存储器进行计算
多道程序设计的特点:1.CPU与外部设备充分并行;2.外部设备直接充分并行;3.发挥CPU的使用效率;4.提高单位时间的算题量
3.多道程序系统的实现
为进入内存执行的程序建立管理实体:进程
OS应能管理与控制进程程序的执行
OS协调管理各类资源在进程间的使用
如:1.处理器的管理和调度
2.主存储器的管理和调度
3.其他资源的管理和调度
4.多道程序系统实现的要点
如何使用资源:调用操作系统提供的服务例程(系统调用)
如何复用CPU:调度程序(在CPU空闲的时候让其他程序运行)
如何使CPU与I/O设备充分并行:设备控制器与通道
如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理)