操作系统(1) 计算机系统概述

本文详细解读了操作系统的定义,包括其作为系统软件的重要作用,接口类型(命令、程序和GUI),并发与共享的特性,以及计算机硬件的基本构成。深入探讨了中断处理、DMA技术如何提升效率,同时还涉及了内存层次结构和高速缓存原理。
摘要由CSDN通过智能技术生成

操作系统的概念(定义)

定义:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口环境。它是计算机系统中最基本的系统软件

接口:①命令接口:允许用户直接使用 ②程序接口:允许用户通过程序间接使用 ③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值,改变指令的执行顺序

中断

中断 I(nterrupt): 由于发生某些事件,暂停当前程序在 CPU 上的运行, 转而执行相应事件的中断处理程序。待处理完成后, 再返回断点继续执行或调度其它程序执行。
中断分类:
程序中断 :由程序指令的执行结果产生,如算术溢出、 除数为 0 、非法指令、地址越界、缺页、断点调试等。
时钟中断 CPU 内部的定时器产生。
I/O 中断 I/O 操作正常或异常结束时,由 I/O 控制器产生。
硬件失效中断 :掉电、内存奇偶校验错等硬件故障。
关于无中断和有中断两种情况下的指令执行方式
无中断时,当程序需要进行IO操作时,则先由原本的程序流转入到IO流,经历设置命令参数(IO初始化),读取IO流,设置完成状态,再返回程序流执行原本剩余的非IO程序流,这个过程中,CPU需要等待IO操作的结束才能继续工作
当有中断时, I/O操作的同时,CPU在执行下段非IO指令,当IO操作结束后,发来中断信号
I/O :下段非 IO 指令尚未执行完,本次 IO 操作已结束,并发出中断。
I/O :本次 IO 操作时间长,尚未结束时已 发生下次 I/O 请求,则顺序处理各 I/O 请求。
可以总结为中断可以提高CPU利用率
无中断时, CPU I/O 设备串行工作
有中断时, CPU I/O 设备并行工作: CPU 完成更多任务,提高了 CPU 利用率,IO操作期间,CPU继续执行其他任务

中断指令和指令周期

CPU 在执行完 条指令之后、执行下 条指令之 前,检测并处理中断

中断处理-硬件连接:CPU和中断控制器之间用总线上的中断请求线连接。设备发出中断后,CPU响应中断

中断处理-软件实现:每个中断有中断向量号 (如:Intel x86 CPU允许 0255),是该中断在中断向量表中的编号

中断向量 中断处理程序 ( 内存 ) 入口地址。 4B/ 向量。
中断向量表 :所有中断向量 的集合。 般位于内存的 0 地址起始处(长 1KB ), 在开机启动时从磁盘装入内 存。
中断处理-过程:
由硬件所执行的:设备发出中断信号,CPU执行完当前指令,CPU向设备发出中断应答信号,CPU将PSW和PC压栈,保存现场,根据中断向量表,设置新PC值
由中断处理程序执行的:将其他寄存器的值压栈,执行中断处理程序,恢复包括被中断程序的现场(包括PSW和PC),返回原程序断点,继续执行

多个中断的处理方法

①顺序处理:当处理一个中断时,禁止中断。多个中断被顺序处理

禁止中断(关中断) CPU PSW 的中断禁止位 =0 ,则不响应新发生的中断
开中断 :中断禁止位 =1 CPU 可以接收中断
②中断嵌套: 允许高优先级的中断请求打断低级 中断的处理。 通常,中断源速度越快,其优先级越高
中断屏蔽 :设置 PSW 的中断屏蔽码(当前程序的 中断优先级 ),选择性地封锁部分中断,当发生更 高优先级的中断时才响应。
有些中断 ( 如掉电 ) 是不能屏蔽甚至不能禁止的、
例如:通信中断>磁盘中断>打印机中断

存储器层次结构

寄存器(<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次。

高速缓存原理-内部结构

内存由一些固定大小的块构成,每块K个字。
Cache由一些槽(slot)构成,每槽K个字。每个槽的标签(tag)标识该槽所存储的内存块号。
需访问某内存块中的字时,把该块移到某个槽中。 无空槽时,淘汰最近最不可能再用的旧槽数据, 再读入新块。

直接内存存取

可编程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的优先级 更高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值