提纲
- 计算机系统结构与操作系统的关系
- 影响操作系统的几个计算机技术
- 操作系统的主要功能
计算机系统结构与操作系统的关系
计算机系统的硬件基础是经典的冯·诺依曼体系,操作系统则是构成计算机系统的另一个重要的系统软件,他负责管理计算机的硬件、软件资源并控制整个计算机的工作流程。
定义:** 操作系统是一个大型的程序系统,负责计算机系统软硬件资源的分配和管理,控制和协调并发活动,提供用户接口,使用户获得良好的工作环境计算机几个关键技术
- 通道技术
通道是一种专用的处理部件,负责电脑外设的工作,负责外设与内存之间的信息传输,独立于CPU运行。一个独立于CPU的专门I/O控制的处理机,控制设备与内存直接进行数据交换。它有自己的通道命令,可由CPU执行相应指令来启动通道,并在操作结束时向CPU发出中断信号。
- 中断技术
指处理机处理程序运行中出现的紧急事件的整个过程.程序运行过程中,系统外部、系统内部或者现行程序本身若出现紧急事件,处理机立即中止现行程序的运行,自动转入相应的处理程序(中断服务程序),待处理完后,再返回原来的程序运行,这整个过程称为程序中断。
举个例子:某天下午,按计划CPU正打算做一下午作业,做了一段时间,突然来了个突发事件,桌上的水杯倒了把作业本给打湿了,这个时候立即停下手中的笔,转而去处理水杯倒出来的水,处理完毕,再回头按照原计划去做作业,如下图所示
- 多道程序设计技术
多道程序设计技术是在内存中同时存放几道相互独立的程序,使他们在管理程序控制下,相互穿插运行。当某程序因为某原因不能继续运行时,管理程序便将另一道程序投入运行。使CPU尽量处在忙碌状态。
这就使得几道程序能够在系统内同时并行工作,当然,实质并行是违反冯·诺伊曼计算机的顺序过程计算模型的。微观上,在同一时刻,也只能一个程序在处理机上运行。从宏观上看,几道程序都处于执行状态,有的在处理机上运行,有的在进行I/O操作,工作都在向前推进。是逻辑上的并行。即宏观上并行,而微观上串行。
举个例子:现在我,作为一个学生,有一堆工作要在今天下午完成,数据库实验,数学作业,python实验。
我开始写数据库的实验报告,第一步是先下载一个数据库的安装包,然后就操作电脑开始下载。这时候,我也不闲着,等下载的时候,我去写数学作业,写着写着,数据库下载完了,但是数学题又有点思路了,直接去弄数据库也不好,那就继续写数学作业,写完了那题,然后就转身去做数据库实验去了,做着做着,发现下一个步骤中仍需要东西下载,继续下载,这时候继续做数学题,做完了,发现还在下载,转手又开始做python 实验,发现python 实验也要下载文件,开始下载,这时候,就没我啥事了,在做作业这件事情上,我空闲了下来,知道一个实验的文件下载完成,我继续工作,按照这样的流程,最终我把所有的作业做完了。从那一个下午的小的时间尺度来看,我一段时间内,只做了一件事。但是放到大的时间尺度来看, 我在那一个下午之内,我完成了数据库实验,数学作业,python实验三门作业,同时做了三件事。
- 分时技术
虽然在多道程序设计技术中,实现了逻辑上的并行,但是作业处理过于集中,用户将作业提交后,不能及时了解作业的状况,而且作业的周转周期也太长,对于短耗时的作业,用户提交后可能仍需要很长一段时间等待结果。
分时技术则很好的解决了这个问题,分时技术将CPU的单位时间划分为若干个跨度极小的时间段(称为时间片),小到人脑无法感知的地步,按时间片轮流把CPU分配给各联机用户使用,这样,每个用户都能在很短时间内得到计算机的服务,彼此感觉不到别的用户存在,好像整个系统为他独占。
分时技术是多道程序设计技术的进一步发展,不以完成阶段性的任务为切换点了。将时间跨度固定到一定小的长度。
举个例子:还是做那三门作业,我算定了,在这段时间内,我每隔一分钟切换一次,第一分钟,我做数据库实验,一分钟没做完,不管了,去做数学作业,一分钟过去,数学作业也没做完,于是使用一些手段快速记当前状态。进入下一个任务,如此循环,直到任务全部解决。
现代操作系统的主要功能(解决的问题)
- 处理机管理
- 制定调度策略(调度原则)
确定将CPU先分给那个用户程序,占用多长时间,下一个又该轮到那个程序运行等问题。
- 给出进程调度算法
- 进行处理机的分派
使选择进程能真正获得CPU的使用权
- 存储器管理
- 存储分配和存储无关性
确定各应用程序在主存中的位置及所占区域的大小,应用程序无需关系存储细节,由存储管理模块提供地址重定位能力
- 存储保护
为了防止程序之间互相干扰,破坏其他用户程序,存储管理必须保证每个用户程序只能访问自己的存储空间。存储保护由硬件提供支持,具体保护办法有基址,界限寄存器法、存储键和锁
- 存储扩充
通过虚拟存储机制和软件去扩充主存空间,以缓解主存资源紧张。即虚拟存储技术
- 设备管理
- 实现设备无关性
用户向系统申请和使用的设备与实际操作的设备无关,以达到方便用户提高设备利用率的目的。两层,一层虚拟,一层实际,进行映射(用户调用的设备,与实际的物理设备达成一种映射)
如下图所示,用户使用操作系统调用物理设备时,是通过操作系统调用虚拟设备,再调用的物理设备
- 设备分配
向各应用程序和运行实体分配各种设备,设备分配通常采用三种基本技术:独享,共享以及虚拟技术
- 设备的传输控制
实现物理I/O操作,组织使用设备的有关信息,启动设备、中断处理、结束处理等。
- 文件管理
用户提供一种简便的、统一的存储和管理信息的方法,并要解决信息的共享、数据的存取控制和保密等问题。信息组织、存取方法、文件共享、文件安全、文件完整性、磁盘空间分配