1.3.2 共享
在OS环境下的资源共享或成为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。
互斥共享方式
当进程A要访问某资源时,必须先提出请求。若此时该资源空闲,系统便可将之分配给请求进程A使用,此后若再有其它进程也要也要访问该资源,只要A未用完则必须等待。仅当A进程访问完并释放系统资源后,才允许另一进程对该资源进行访问。
把在一段时间内只允许一个进程访问的资源,称为临界资源
同时访问方式
允许在一段时间内由多个进程“同时”对它们进行访问。(分时交替)
例:磁盘设备
并发和共享是多用户OS的两个最基本的特征,它们又是互为存在的条件
资源共享是以进程的并发执行为条件
系统不能对资源共享实时有效管理以协调好诸进程对共享的资源的访问,必然会影响到进程间并发执行的程度
1.3.3 虚拟
在OS中,把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为“虚拟”。
时分复用技术
时分复用技术能够提高资源利用率,它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到了充分利用。
虚拟处理机技术
利用多道程序技术,把一台物理上的处理机虚拟为多台逻辑上的处理机,在每台逻辑处理机上运行一道程序。
虚拟设备技术
将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备,这样便可以在一段时间内允许多个用户同时访问共享设备。
空分复用技术
空分复用技术利用存储器的空闲空间分区域存放和运行其它的多道程序,以此来提高内存的利用率。
虚拟存储技术实际上是实现内存的分时复用,即它可以通过分时复用内存的方式,使一道程序仅在远小于它的内存空间中运行。
1.3.4 异步
对于内存中的每个进程,在何时能获得处理机运行,何时有因提出某种资源请求而暂停,以及进程以怎样的速度向前推进,每道程序总共需要多少时间才能完成等等, 都是不可预知的。
进程是以不可预知的速度向前推进的,这就是进程的异步性。
1.4 操作系统的主要功能
1.4.1 处理机管理功能
处理机的分配和运行都是以进程为基本单位的,因而对处理机的管理可归结为对进程的管理。
处理机管理的主要功能有:创建和撤销进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定算法把处理机分配给进程。
进程控制
进程控制的主要功能就是为作业创建进程、撤销(终止)已结束的进程,以及控制进程在运行过程中的状态转换。
进程同步
进程同步机制的主要任务是为多个进程(含线程)的运行进行协调。
进程互斥方式
诸进程在对临界资源进行访问时,应采用互斥方式
为每一个临界资源配置一把锁W,当锁打开时,进程可以对该临界资源进行访问。
进程同步方式
在相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调。
信号量机制
进程通信
进程通信的任务是实现相互合作进程之间的信息交换。
调度
调度包括作业调度和进程调度两步:
作业调度
从后备队列中按照一定的算法选择出若干个作业,为它们分配运行所需的资源,在将这些作业调入内存后,分别为它们建立进程,使它们都成为可能获得处理机的就绪进程,并将它们插入就绪队列中。
进程调度
从进程的就绪队列中按照一定算法选出一个进程,将处理机分配给它,并未它设置运行现场,使进程投入执行。
1.4.2 存储器管理功能
存储器管理的主要任务是为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。
内存分配
为每道程序分配内存空间,使它们各得其所
提高存储器的利用率,尽量减少不可用的内存空间
允许正在允许的程序申请附加的内存空间,以适应程序和数据动态增长的需要
OS在实现内存分配时,可采取静态和动态两种方式
静态分配方式
每个作业的内存空间是在作业装入时确定的,在作业装入后的整个运行期间不允许该作业再申请新的内存空间,也不允许作业在内存中“移动”
动态分配方式
每个作业所要求的的基本内存空间在装入时是确定,但允许作业在运行过程中继续申请新的附加内存空间,以适应程序和数据的动态增长,也允许作业在内存中“移动”
内存保护
内存保护的主要任务是:
确保每道用户程序都仅在自己的内存空间内允许,彼此互不干扰
绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中去执行
设置两个界限寄存器,分别用于存放正在执行程序的上界和下界。在程序运行时,系统须对每条指令所要访问的地址进行检查,如果发生越界,便发出越界中断请求,以停止该程序的执行。
地址映射
能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能在硬件的支持下完成。
内存扩充
借助虚拟存储技术,从逻辑上扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序能并发运行。
请求调入功能
系统允许在仅装入部分用户和程序的情况下,便能启动该程序运行。
置换功能
若发现在内存中已无足够的空间来装入需要调入的程序和数据时,系统应能将内存中的一部分暂时不用的程序和数据调至硬盘上,以腾出内存空间,然后再将所需调入的部分装入内存。
1.4.3 设备管理功能
设备管理功能的主要任务:
完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作
提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备
缓冲管理
在I/O设备和CPU之间引入缓冲,可以有效缓和CPU和I/O设备速度不匹配的矛盾,提高CPU的利用率,进而提高系统吞吐量。
设备分配
根据用户进程的I/O请求、系统现有资源情况以及按照某种设备分配策略,为值分配其所需的设备。
设备处理
用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
设备处理过程是:首先检查I/O请求的合法性,了解设备状态是否是空闲的,读取有关的传递参数及设置设备的工作方式。然后向设备控制器发出I/O命令,启动I/O设备完成指定的I/O操作。
1.4.4 文件管理功能
文件管理的主要任务是对用户文件和系统文件进行管理以方便用户使用,并保证文件的安全性。
文件存储空间管理
为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存取速度。
目录管理
为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等,并对众多的目录项加以有效的组织,以实现方便的按名存取。
文件的读/写管理和保护
文件的读/写管理
根据用户请求,从外存中读取数据,或将数据写入外存。
文件保护
放置未经核准的用户存取文件;放置冒名顶替存取文件;放置以不正确的方式存取文件
1.4.5 操作系统与用户之间的接口
用户接口
用户可以通过该接口向作业发出命令以控制作业的运行。
联机用户接口
脱机用户接口
图形用户接口
程序接口
程序接口是为用户程序在执行中访问系统而设置的,是用户程序取得操作系统服务的唯一途径。
1.5 OS结构设计
1.5.1 传统操作系统结构
无结构操作系统
模块化结构OS
为使OS具有较清晰的结构,OS不再是由众多的过程直接构成的,而是按其功能精心地划分为若干个具有一定独立性和大小的模块。
image-20201121140655718
在模块-接口设计方法中,关键问题是模块的划分和规定好模块之间的接口。
模块独立性越高,各模块间的交互就越少,系统的结构也就越清晰。
内聚性:指模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越强。
耦合度:模块间相互联系和相互影响的程度。耦合度越低,模块独立性越强。
优点:
提高OS设计的正确性、可理解性和可维护性
增强OS的可适应性
加速OS的开发过程
问题:
对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求
设计者必须做出一系列的决定,每一个决定必须建立在上一个决定的基础上。“无序”
分层式结构OS
在目标系统An和裸机系统A0之间,铺设若干个层次的软件A1、A2、A3、…、An-1,使An通过An-1、An-2、…、A2、A1层,最终能在A0上运行。
自底向上的分层设计的基本原则是每一步设计都是建立在可靠的基础上,每一层仅能使用期底层所提供的功能和服务。
优点
易保证系统的正确性
易扩充和易维护性
缺点
系统效率降低
1.5.2 客户/服务器模式简介
可简称为C/S模式。
客户机
服务器
网络系统
交互过程
客户发送请求消息
服务器接收消息
服务器回送消息
客户机接收消息
优点
数据的分布处理和存储
便于集中管理
灵活性和可扩充性
易于改编应用软件
1.5.4 微内核OS结构
足够小的内核
微内核并非是一个完整的OS,而是将操作系统中最基本的部分放入微内核,其中包含
与硬件处理紧密相关的部分
一些较基本的功能
客户和服务器之间的通信
基于客户/服务器模式
image-20201121142737417
应用“机制与策略分离原理”
机制是指实现某一功能的具体执行机构,通常处于系统基层,在微内核操作系统中,将机制放在OS的微内核中。
策略是指在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标,通常处于系统高层。
采用面向对象技术
基于面向对象技术中的“抽象”和“隐蔽”的原则控制系统的复杂性,在进一步利用"对象"、“封装”、“继承"等概念来确保操作系统的"正确性”、“可靠性”、“易修改性”、"易扩展性"等,并提高操作系统的设计速度。
基本功能
进程(线程)管理
采用“机制与策略分离”原理
低级存储器管理
中端和陷入处理
优点
提高了系统的可扩展性
增强了系统的可靠性
可移植性强
提供了对分布式系统的支持
融入了面向对象技术
问题
微内核操作系统的运行效率有所降低
image-20201121144906146