操作系统的概念(定义)
定义:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境。它是计算机系统中最基本的系统软件。
接口:①命令接口:允许用户直接使用 ②程序接口:允许用户通过程序间接使用 ③GUI:现代操作系统中最流行的图形用户接口
其中,命令接口分为:
联机命令接口(交互式命令接口)(用户说一句,系统执行一句)
脱机命令接口(批处理命令接口)(用户说一堆,系统执行一堆)可以理解为指令清单,例子是win下的.bat程序
程序接口(允许用户通过程序间接使用):由一组系统调用组成(程序接口 = 系统调用)只能够通过用户程序间接调用,比如win下的user32.dll
注:系统调用又称为广义指令
操作系统的特征
分别为:
①并发:指两个事件或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的
(注意区分的概念是并行,并行指的是两个或多个事件在同一时刻同时发生)
操作系统的并发性指的是计算机系统中同时存在着多个运行中的程序
②共享:是指系统中的资源可供内存中多个并发执行的进程共同使用
-互斥共享关系:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
-同时共享关系:允许一个时间段内由多个进程“同时”对它们进行访问
③虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而在逻辑上对应物(后者)是用户感受到的。
④异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度前进,这就是进程的异步性。
其中并发和共享是两个最基本的特征,二者互为存在条件
计算机硬件的四个主要部分及其基本构成
输入输出模块:也即外部设备
处理器CPU、内存Memory、系统总线BUS
基本构成
PC(程序计数器)
MAR(存储器地址寄存器):确定下次读写的内存地址单元
MBR(存储器缓冲寄存器):存放要写入内存或从内存中读取的数据
I/O AR(输入输出地址寄存器):确定某个IO设备
I/O BR(输入输出缓冲寄存器):CPU与I/O设备间输入输出的数据
指令的执行
基本指令周期:取指令然后执行
四类指令:
①处理器-存储器:在寄存器和内存单元间传送数据
②处理器-I/O:处理器和IO设备间传送数据
③数据处理:算术/逻辑运算
④控制转移:设置PC值,改变指令的执行顺序
中断
中断指令和指令周期
中断处理-硬件连接:CPU和中断控制器之间用总线上的中断请求线连接。设备发出中断后,CPU响应中断
中断处理-软件实现:每个中断有一个中断向量号 (如:Intel x86 CPU允许 0~255),是该中断在中断向量表中的编号
多个中断的处理方法
①顺序处理:当处理一个中断时,禁止中断。多个中断被顺序处理
存储器层次结构
寄存器(<1KB):访问速度:1ns
高速缓存(Cache:1MB-20MB),2ns
内存(4GB-32GB),10ns
磁盘500G-6TB,6ms
磁带(185TB),光盘(4.7GB),U盘(128GB)秒级读写
内存:CPU能直接访问的唯一大型存储介质
为了扩充内存容量,用磁盘和内存实现虚拟内存
为加快内存访问速度,CPU首先访问Cache,不命中时再访问内存且复制进Cache。
“Cache-内存”两级存储器:当Cache命中率很高时, 平均存取时间接近于Cache访问速度。
设忽略用于确定Cache是否命中的时间。Cache不命中时, 数据先由内存送到Cache,CPU再访问Cache
注:不同CPU访问Cache-内存时的 方式不同。第一种在Cache不命中 时数据从内存->Cache->寄存器; 第二种则从内存直接送到寄存器
两级存储器有效的原因:
①程序的局部性原理 :在一段小的时间间隔内,被访问过的某指令或 数据,可能很快会被再次访问。
②时间局部性 在一段小的时间间隔内,程序访问的地址空间,往往集中在某个区域(簇)。
③空间局部性 大多顺序执行;经常有循环;过程调用深度有限; 数据常为数组、记录;不是所有代码都需执行。
怎样改善空间局部性和时间局部性?
对于空间局部性而言:更大的Cache块,将数据预取到块里
对于时间局部性而言:Cache中保留最近访问的代码和数据
例题:for ( i = 0;i < 20;i++)
for (j = 1;j <= 10;j++)
a[i] = a[i]*j
a. 举例说明代码中的空间局部性。 b. 举例说明代码中的时间局部性。
a. 执行第一条指令之后执行第二条指令;访问数组a[ ]。
b. 循环体被频繁执行;a[i]在循环内部被访问了10次。
高速缓存原理-内部结构
直接内存存取
可编程I/O操作:无中断。CPU发出I/O指令后,循环测试 I/O设备的状态,并将数据送入内存。CPU忙等I/O结束, CPU和设备串行工作,资源利用率低
中断驱动I/O:CPU发出I/O指令后,可以去处理其它工作。 设备每I/O完一批字(设备控制器的数据缓冲区长度)后,以中断请求方式通知CPU,CPU把这些字送入内存,然后设备再I/O下一批字。 CPU和设备并行但仍低效。
原因:这两种方式都需要CPU主动干预内存和I/O设备间的 数据传送,所传送的数据需通过CPU中转。
DMA:
在DMA控制器的控制下,通过窃取总线周期,在内存和设备间直接(不经过CPU)传送整块数据。
在争用总线时,DMA控制器的优先级比CPU高
DMA控制器不断地抢占总线(挪用CPU工作周期 cycle stealing),在数据缓冲Buffer中和内存单元之间传送数据。结束时向CPU发出中断。 仅在传送开始和结束时才需CPU干预。
当DMA传送时,CPU执行程序的速度稍微变慢。
为什么DMA访问内存(或总线)的优先 级要高于CPU访问内存(或总线)的优先级?
CPU欲访问内存时被挂起只是损耗一点时间。 DMA在内存和设备间传输数据是以数据流方式,不 能被打断,否则可能丢失数据,所以DMA的优先级 更高。