Section 1 - 操作系统引论
- 0.操作系统定义:是一组能有效组织和管理计算机硬件和软件资源,合理对各类操作进行调度,以方便用户使用的程序的集合
-
1.操作系统的作用
- OS 作为用户和电脑硬件系统之间的接口
- OS 作为计算机系统资源的管理者
- OS实现了对计算机资源的抽象(个人理解:对计算机的具体实现不关系,即面向对象思想)
-
2.操作系统的演变过程
- 未配置操作系统的计算机系统
- 人工操作方式(人工传输穿孔纸带)
- 脱机输入/输出(Off-Line I/O)方式(外围设备自动传输穿孔纸带)
- 单道批处理系统
- 多道批处理系统(作业保存在外存上排成队列,按照一定算法调入内存,达到利用 I/O 操作使 CPU 空挡闲置的时间,使 CPU 使用率提升)
- 分时系统(因为60年代计算机很稀缺,一台计算机被多人使用,但可以获得一定的及时响应)
- 实时系统(将时间作为关键参数,必须对接收到的信号做出及时的反应)
- 微机操作系统的发展
- 单用户单任务操作系统(只允许一位用户上机,只允许用户的一个程序运行,主要是8位/16位为微机上,如 MS-DOS,CP/M)
- 单用户多任务操作系统(只允许一位用户上机,但允许用户把程序分成多个任务,使这些任务并发执行)
- 多用户多任务操作系统(允许多个用户通过各自的终端,使用同一台机器,共享主机系统的各种资源,每个用户的程序又可分为多个任务,并发执行,一般用在大中型机器上,微机上应用的是 UNIX OS(Linux OS是 UNIX 一个重要变种,MAC OS 是基于 UNIX 内核重新开发))
- 未配置操作系统的计算机系统
-
3.操作系统的基本特性
-
并发
- 并行与并发区别:并行是多个任务在同一时刻内同时发生,并发是多个任务在同一时间内间隔进行
- 引入进程:进程是在系统中独立运行并作为资源分配的基本单位,由一组机器指令和数据、堆栈等组成的,
- 未引入进程的系统中,属于同一个应用程序的计算程序和 I/O 程序之间只能是顺序执行
- 引入进程后,计算程序和 I/O 程序可以并发进行
- 极大地提高系统资源的利用率,增加系统的吞吐量
-
共享
- 日常生活中的共享:如图书馆的书籍可以共享,但并未限定使用者必须在同一时间和同一地点阅读
- OS环境下的共享:又称为资源复用,指系统中的资源可供内存中多个并发执行的进程共同使用,既限定了时间(进程在内存期间),又限定了地点(内存),因为比较复杂,实现 OS 环境下的共享分为以下两种:
- 互斥共享方式
- 规定在一段时间内,只允许一个进程访问该资源,这种共享类型的资源称为临界资源
- 同时访问方式
- 允许在一段时间内由多个进程“同时”对它们进行访问,这个"同时"是指微观上进程访问该资源是交替进行的,比较常见的“同时”访问的资源是磁盘设备(即硬盘)
- 互斥共享方式
-
并发和共享的关系:
- 是多用户多任务 OS 的两个最基本的特征,又是互为存在的条件
-
虚拟:
- 将一个物理实体变为若干个逻辑上的对应为的功能称为”虚拟“,前者是实的,即实际存在的,后者是虚的,只是用户感觉上的东西
- 时分复用技术
- 利用某设备为一用户服务的空闲时间,转而去为其他用户服务,使设备得到最充分的利用
- 空分复用技术
- 利用存储器的空闲空间分区域存放和运行其他的多道程序,使得提高存储空间的利用率
- 单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,还需要引入虚拟存储技术
- 使用了虚拟存储技术的例子:如一个100MB 的程序可以在30MB 的内存空间上运行
- 虚拟存储技术原理:通过内存的分时复用,每次只把用户程序的一部分调入内存中运行,完成后把该部分取出,再换入另一部分到内存中运行
-
异步:
- 进程的异步性,进程是以人们不可预知的速度向前推进的。即内存中的每个进程,在何时能获得处理机运行,何时又提出某种资源请求而暂停,以及进程以怎样的速度向前推进,都是不可预知的
-
- 4.操作系统的主要功能
- 处理机的管理管理功能
- 进程控制:为任务创建进程、撤销(终止)已结束的进程,以及控制进程在运行过程中状态转换
- 进程同步:为了保证多个进程有条不紊的运行,系统中必须设置相应的进程同步机制。协调的方式有两种:
- 进程互斥方式:主要是对临界资源的访问。最简单的互斥方式,是通过为每个临界资源配置一把进程锁
- 进程同步方式:指相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调。
- 进程通信:一组相互合作的进程去完成一个共同的任务时,进程之间需要交换信息。
- 调度:
- 作业调度:从后备队列中按照一定算法选出若干个作业,为他们分配资源,将这些作业调入内存后,再分别为他们建立进程,使他们成为可能获得处理机的就绪进程,并插入就绪队列中
- 进程调度:是从进程的就绪队列中按照一定算法选出一个线程,分配处理机,设备运行现场,运行它
- 存储器管理功能:
- 内存分配:
- 主要任务:
- 1.为每道程序分配内存空间
- 2.提高存储器的利用率,尽量减少不可用的内存碎片
- 3.允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要
- 内存分配方式:
- 1.静态分配:运行过程中不允许为该作业再申请新的内存空间,也不允许作业在内存中"移动"
- 2.动态分配:允许运行过程中为该作业再申请新的附加内存空间,也允许作业在内存中"移动"
- 主要任务:
- 内存保护:
- 主要任务:
- 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰
- 决不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中去执行
- 实现原理:通过设置内存保护机制
- 一个简单的实现:通过设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。程序运行期间,对每条指令所要访问的地址进行 check,若发生越界,便发出越界终端请求,结束该程序的执行
- 主要任务:
- 地址映射:
- 因为在多道程序环境下,每道程序经编译和链接后形成的可装入程序地址都是从0开始的,但不能讲它们从”0“地址装入内存,所以导致各程序段的地址空间内的逻辑地址与它在内存空间内的地址不一致,为了保证程序的正常运行,存储器管理需要提供地址映射功能,即将地址空间内的逻辑地址转换为内存空间中与之对应的物理地址
- 内存扩充:
- 该功能呢并非物理上的扩充内存,而是利用虚拟存储技术,通过内存的分时调用来实现
- 内存分配:
- 设备管理功能:
- 缓存管理:在 I/O 设备与 CPU 之间引入缓存,来缓和 CPU 与 I/O 设备速度不匹配的矛盾,提高 CPU 利用率,有但缓存机制、双缓存机制等
- 设备分配:根据用户进程的 I/O 请求,系统现有资源情况以及按照某种设备分配策略,为之分配需要的设备
- 设备处理:设备处理程序又称为设备驱动程序。任务是用于实现 CPU 和设备控制器之间的通讯。由 CPU 向设备控制器发出 I/O 指令,要求设备控制器完成指定的 I/O 操作;反之 CPU 接收设备控制器发来的终端请求,并给出相应和处理
- 文件管理功能:
- 文件存储空间的管理:为文件分配必要的外存空间,实施统一管理,并具有存储空间分配和回收的功能
- 目录管理:为每个文件建立一个目录项,方便用户按照一定规则存取
- 文件的读/写管理和保护
- 读写管理:根据用户请求从外存中读取数据,或将数据写入外存
- 文件保护:防止文件被非法窃取和破坏
- 操作系统与用户之间的接口
- 用户接口:
- 联机用户接口:为联机用户提供,由一组键盘操作命令及命令解释程序组成,即命令行操作
- 脱机用户接口
- 图形用户接口:将 OS 的各种功能和应用程序用icon 直观逼真的表示出来
- 程序接口 :
- 是为了用户程序在执行中访问系统资源而设置的,是用户取得操作系统服务的唯一途径,方便应用程序开发者使用
- 用户接口:
- 现代操作系统的新功能
- 系统安全
- 网路的功能和服务
- 支持多媒体
- 处理机的管理管理功能
- 5.OS 结构化设计
- 5.1 传统的操作系统结构:
- 5.1.1 无结构操作系统:一组解决问题的代码的无序的组合
- 5.1.2 模块化结构 OS:按照功能详细划分为多个具有一定独立性和解决具体问题的模块,模块与模块间通过预留的接口进行交互,局限性在于开发时的问题,主要是接口使用的问题和开发是齐头并进的,但需要互相调用时,无法保证调用的代码是正确的,会有很多测试上的问题
- 5.1.3 分层式机构:设计 a0层,调用底层硬件,在经过繁多测试后,保证 ao 么有问题后,再设计 a1层,调用 a0层,以此类推,虽然解决了模块化 OS 结构的问题,但具有效率上的问题
- 5.2 客户/服务器模式
- 简称为 C/S(Client/Server)模式,在上世纪90年代后开始风靡全球,广泛采用这个模式
- 组成:
- 客户机:可处理一些本地业务,也可用通过 LAN 向服务器发送请求,请求某项服务,如查看文件等
- 服务器:一般为一个较大的机器,存储一些重要的文件和数据库系统,接收客户机的请求,做出相应的相应
- 网络系统:用于连接客户机和服务器
- 5.3 面向对象的程序设计
- 5.4 微内核 OS 结构
- 基本概念:
- 足够小的内核:不是完整的 OS,但是 具有OS 最基本的功能,如①与硬件联系最紧密的部分②一些较基本的功能③客户机与服务器之间的通信
- 基于客户机/服务器模式:在单机微内核操作系统中无一例外都采取了C/S 模式,在单机下,通过向微内核外的服务器发送请求,获得相应,实现大部分的功能,如向进程管理服务器,文件管理服务器等发送请求,这些都是作为进程来实现的
- 应用"机制与策略分离"原理:机制->实现某一功能的执行机构(放在内核中),策略->在机制基础上,利用一些参数和算法优化该功能(不再内核中)
- 采用面向对象技术:采用面向对象技术来设计
- 基本概念:
- 5.5 微内核的基本功能:
- 进程(线程)管理:进程的调度->机制部分,对于进程如何分类,优先级的确认,都属于策略,不放在内核中
- 低级存储器管理:如实现将用户空间的逻辑地址转换为内存空间的物理地址的页表机制和地址变换机制,这一部分是依赖硬件,放在微内核
- 中断和陷入处理:捕获中断和陷入事件,进行相应的前期处理,如中断保护和识别中断和陷入的类型
- 5.1 传统的操作系统结构: