操作系统第一章

计算机操作系统

第一章    操作系统引论

1       操作系统的目标和作用

1.1       在计算机系统上配置操作系统,其主要目标是:方便性、有效性、可扩充性和开放性。

1.1.1    方便性 便于理解计算机,通过接口方便使用。

1.1.2    有效性 提高系统资源利用率,提高系统的吞吐量。方便性和有效性是设计OS最重要的两个目标。

1.1.3    可扩充性 OS应方便修改、增加、以适应计算机硬件体系结构以及应用发展的要求。

1.1.4    开放性 世界各国制定了一系列的软、硬件标准,使得按照标准生产的软、硬件都能在本国范围内很好地相互兼容。

1.2       操作系统的作用

1.2.1    OS作为用户与计算机硬件系统之间的接口。

1.2.1.1   用户可以通过三种方式:命令方式、系统调用方式和图标-窗口方式来实现与操作系统的通信,并取得它的服务。

1.2.2    OS作为计算机系统资源的管理者

1.2.2.1   计算机系统中含有多种硬件和软件资源(四类):处理机、存储器、I/O设备以及文件(数据和程序)。

1.2.3    OS实现了对计算机资源的抽象

1.3       推动操作系统发展的主要动力

1.3.1    不断提高计算机资源利用率

1.3.2    方便用户

1.3.3    器件的不断更新换代

1.3.4    计算机体系结构的不断发展

1.3.5    不断提出新的应用需求

2       操作系统的发展过程

2.1       未配置操作系统的计算机系统

2.1.1    人工操作方式

2.1.1.1   用户独占全机

2.1.1.2   CPU等待人工操作

2.1.2    脱机输入/输出(Off-Line I/O)方式

2.1.2.1   主要优点:1.减少了CPU的空闲时间。                                                              2.提高了I/O速度

2.2       单道批处理系统

2.2.1    单道批处理系统(Simple Batch Processing System)的处理过程

2.2.2    单道批处理系统的缺点

2.2.2.1   系统中的资源得不到充分的利用。这是因为在内存中仅有一道程序,每逢该程序在运行中发出I/O请求后,CPU便处于等待状态,必须在其I/O完成后才能继续运行。

2.2.3    特征:自动性、顺序性、单道性。

2.3       多道批处理系统(Multiprogrammed Batch Processing System)

2.3.1    多道程序设计的基本概念

2.3.2    多道批处理系统的优缺点。                                                                                        1.资源利用率高。                                                                                        2.系统吞吐量大。                                                                                  3.平均周转时间长。                                                                               4.无交互能力。

2.3.3    多道批处理系统需要解决的问题

2.3.3.1   处理机争用问题。

2.3.3.2   内存分配和保护问题。

2.3.3.3   I/O设备分配问题。

2.3.3.4   文件的而组织和管理问题。

2.3.3.5   作业管理问题。

2.3.3.6   用户与系统的接口问题。

为使用户能方便的使用操作系统,OS还应提供用户与OS之间的接口。   为此,应在计算机系统中增加一组软件,用以对上述问题进行妥善、有效的处理。这组软件应包括:能有效地组织和管理四大资源的软件、合理地对各类作业进行调度和控制它们运行的软件,以及方便用户使用计算机的软件。正是这样一组软件构成了操作系统。

2.4       分时系统(Time Sharing System)

2.4.1    分时系统的引入

2.4.1.1   人—机交互

2.4.1.2   共享主机

2.4.1.3   便于用户上机

2.4.2    分时系统实现中的关键问题。在多道批处理系统中,用户无法与自己的作业进行交互的主要原因是:作业都先驻留在外存上,即使以后被调入内存,也要经过较长时间的等待后方能运行,用户无法与自己的作业进行交互。

2.4.2.1   及时接收  (配置多路卡的方式)

2.4.2.2   及时处理

为实现人-机交互,必须彻底地改变原来批处理系统的运行方式,转而采用下面的方式:

(1)、作业直接进入内存。

(2)、采用轮转运行方式。

2.4.3    分时系统的特征 分时系统与多道批处理系统相比,有以下明显的特性:

2.4.3.1   多路性

2.4.3.2   独立性

2.4.3.3   及时性

2.4.3.4   交互性

2.5       实时系统(Real Time System)

2.5.1    实时系统的类型

2.5.1.1   工业(武器)控制系统。  如火炮的自动控制系统、飞机的自动驾驶系统,以及导弹的制导系统等。

2.5.1.2   信息查询系统。    如飞机或火车的订票系统等

2.5.1.3   多媒体系统。         如在用DVD播放器所播放的数字电影中就包含了音频、视频和横向滚动的文字信息。

2.5.1.4   嵌入式系统。

2.5.2    实时任务的类型

2.5.2.1   周期性实时任务和非周期性实时任务。 周期性实时任务是指这样一类任务,外部设备周期性地发出激励信号给计算机,要求它按制定周期循环执行,以便周期性地控制某外部设备。反之,非周期性实时任务并无明显的周期性,但都必须联系一个截止时间(Deadline),或称为最后期限。它又可分为:1) 开始截止时间,指某任务在某时间以前必须开始执行;2) 完成截止时间,指某任务在某时间以前必须完成。

2.5.2.2   硬实时任务和软实时任务。硬实时任务(Hard Real-time Task, HRT)是指系统必须满足任务对截止时间的要求,否则可能出现难以预测的后果。用于工业和武器控制的实时系统,通常它所执行的是硬实时任务。软实时任务(Soft Real-time Task, SRT)也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影像也不会太大。诸如用于信息查询系统和多媒体系统中的实时系统,通常是软实时任务。

2.5.3    实时系统与分时系统特征的比较

2.5.3.1   多路性。

2.5.3.2   独立性。

2.5.3.3   及时性。

2.5.3.4   交互性。

2.5.3.5   可靠性。

2.6       微机操作系统的发展 。按微机的字长来划分:8位 16位 32位 64位。还可以按照运行方式划分:

2.6.1    单用户单任务操作系统

2.6.1.1   含义:只允许一个用户上机,且只允许用户程序作为一个任务运行,这是最简单的微机操作系统,主要配置在8位和16位危机上,最有代表性的单用户单任务操作系统是CP/M和MS-DOS。

2.6.2    单用户多任务操作系统

2.6.2.1   含义:只允许一个用户上机,但允许用户把程序分为若干个任务,使它们并发执行,从而有效地改善了系统的性能。

2.6.3    多用户多任务操作系统    UNIX OS,及其衍生版本(Solaris,Linux等)

2.6.3.1   含义:允许多个用户通过各自的终端,使用同一台机器,共享主机系统中的各种资源,而每个用户程序又可以进一步分为几个任务,使它们能并发执行,从而课进一步提高资源利用率和系统吞吐量。

3       操作系统的基本特性

3.1       并发(Concurrence)

3.1.1    并行与并发 并行性是指两个或多个事件在同一时刻发生。并发性是指两个或多个事件在同一时间间隔内发生。

3.1.2    引入进程 进程是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。 引入进程能极大地提高系统资源的利用率,增加系统的吞吐量。

3.2       共享(Sharing)       在OS环境下的资源共享或称为资源复用,是指系统中的资源可供内存中多个并发执行的进程共同使用。

3.2.1    互斥共享方式    系统中的某些资源,如打印机、磁带机等,虽然可以提供给多个进程(线程)使用,但应规定在一段时间内,只允许一个进程访问该资源。

3.2.2    同时访问方式    允许在一段时间内由多个进程“同时”对它们进行访问。这里的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。

并发和共享是多用户(多任务)OS的两个最基本的特征。它们又是互为存在的条件。即一方面资源共享是以进程的并发执行为条件的,若系统不允许并发执行也就不存在资源共享问题;另一方面,若系统不能对资源共享实施有效管理,以协调好诸进程对共享资源的访问,也必然会影响到诸进程间并发执行的程度,甚至根本无法并发执行。

3.3       虚拟(Virtual)  在OS中,把通过某种技术将一个物理实体变成若干逻辑上的对应物的功能称为“虚拟”。前者是实的,即实际存在的,后者是虚的,是用户感觉上的东西。相应地,把用于实现虚拟的技术称为虚拟技术。在OS中也是利用 时分复用 和 空分复用 技术来实现“虚拟”的。

3.3.1    时分复用技术    时分复用技术能提高资源利用率的根本原因是,它利用某设备为一用户服务的空闲时间,又转去为其他用户服务,使设备得到最充分的利用。

3.3.1.1   虚拟处理机技术。利用多道程序设计技术,为每道程序建立至少一个进程,让多道程序并发执行。         利用多道程序设计技术,可将一台物理上的处理机虚拟为多台逻辑上的处理机,在每台逻辑处理机上运行一道程序,我们把用户所感觉到的处理机称为虚拟处理器。

3.3.1.2   虚拟设备技术。 将一台物理I/O设备虚拟为多台逻辑上的I/O设备,并允许每个用户占用一台逻辑上的I/O设备。

3.3.2    空分复用技术    计算机中把空分复用技术用于对存储空间的管理,用以提高存储空间的利用率。                                                                                     如果说,多道程序技术是通过利用处理机的空闲时间运行其它程序,提高了处理机的利用率,那么,空分复用技术则是利用存储器的空闲空间分区域存放和运行其它的多道程序,以此来提高内存利用率。                                但是,单纯的空分复用存储器只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,还必须引入虚拟存储技术才能达到此目的。虚拟存储技术在本质上是实现内存的分时复用。

3.4       异步(Asynchronism)    进程是以人们不可预知的速度向前推进的,此即进程的异步性。

4       操作系统的主要功能    引入OS的主要目的是,为多道程序的运行提供良好的运行环境,以保证多道程序能有条不紊地、高效地运行,并能最大程度地提高系统中各种资源的利用率,方便用户的使用。为此,在传统的OS中应具有处理机管理、存储器管理、设备管理和文件管理等基本功能。此外,为了方便用户使用OS,还需要向用户提供方便的用户接口。

4.1       处理机管理功能        主要功能:创建和撤销进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。

4.1.1    进程控制  主要功能:为作业创建进程、撤销(终止)已结束的进程,以及控制进程在运行过程中的状态转换。

4.1.2    进程同步           为使多个进程能有条不紊地运行,系统中必须设置相应的进程同步机制。该机制的主要任务是为多个进程(含线程)的运行进行协调。常用的协调方式有:① 进程互斥方式,这是指诸进程在对临界资源进行访问时,应采用互斥方式。② 进程同步方式,指在相互合作去完成共同任务的诸进程间,由同步机构对它们的执行次序加以协调。

4.1.3    进程通信           当有一组相互合作的进程去完成一个共同的任务时,在它们之间往往需要交换信息。进程通信的任务是实现相互合作进程之间的信息交换。

4.1.4    调度

4.1.4.1   作业调度。作业调度的基本任务是从后备队列中按照一定的算法选择出若干个作业,为它们分配运行所需要的资源,在将这些作业调入内存后,分别为它们建立进程,使它们都称为可能获得处理机的就绪进程,并将它们插入就绪队列中。

4.1.4.2   进程调度。进程调度的任务是从进程的就绪队列中按照一定的算法选出一个进程,将处理机分配给它,并为它设置运行现场,使其投入执行。

4.2       存储器管理功能        存储器管理的主要任务,是为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存。为此,存储器管理应具有 内存分配和回收、内存保护、地址映射和内存扩充等功能。

4.2.1    内存分配

4.2.1.1   包括:① 内存分配数据结构:内存使用情况                                              ② 内存分配功能                                                                        ③ 内存回收功能

4.2.1.2   内存分配主要任务:

4.2.1.2.1   为每道程序分配内存空间,使它们“各得其所”。

4.2.1.2.2   提高存储器的利用率,尽量减少不可用的内存空间(碎片)。

4.2.1.2.3   允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。

4.2.1.3   内存分配方式:

4.2.1.3.1   静态分配方式。

4.2.1.3.2   动态分配方式。

4.2.2    内存保护  主要任务是:① 确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰。 ② 决不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行。

4.2.3    地址映射  为保证程序能正确运行,存储器管理必须提供地址映射功能,即能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址。该功能应在硬件的支持下完成。

4.2.4    内存扩充。内存扩充并非是从物理上去扩大内存的容量,而是借助于虚拟存储技术,从逻辑上扩充内存容量,使用户所感觉的内存容量比实际内存容量大得多,以便让更多的用户程序能并发执行。                               内存扩充机制实现以下功能:

4.2.4.1.1   请求调入功能,系统允许在仅装入部分用户程序和数据的情况下,便能启动该程序运行。

4.2.4.1.2   置换功能。

4.3       设备管理功能            主要任务:① 完成用户进程提出的I/O请求,为用户进程分配所需要的I/O设备,并完成指定的I/O操作。         ② 提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。                                            设备管理应具有缓冲管理、设备分配和设备处理以及虚拟设备等功能。

4.3.1    缓冲管理           如果在I/O设备和CPU之间引入缓冲,则可以有效地缓和CPU和I/O设备速度不匹配的矛盾,提高CPU利用率,进而提高系统吞吐量。

4.3.2    设备分配  基本任务是根据用户进程的I/O请求、系统现有资源情况以及按照某种设备分配策略,为之分配其所需要的设备。

4.3.3    设备处理           又称为设备驱动程序。基本任务是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之,由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。

4.4       文件管理功能       应具有对文件存储空间的管理、目录管理、文件的读/写管理以及文件的共享与保护等功能。

4.4.1    文件存储空间的管理

4.4.2    目录管理

4.4.3    文件的读/写管理和保护

4.4.3.1   文件的读/写管理。从外存读取数据,或将数据写入外存。

4.4.3.2   文件保护。① 防止未经核准的用户存取文件 ② 防止冒名顶替存取文件 ③ 防止以不正确的方式使用文件

4.5       操作系统与用户之间的接口

4.5.1    用户接口

4.5.1.1   联机用户接口

4.5.1.2   脱机用户接口

4.5.1.3   图形用户接口

4.5.2    程序接口

4.6       现代操作系统的新功能

4.6.1    系统安全   

4.6.1.1   认证技术

4.6.1.2   密码技术

4.6.1.3   访问控制技术

4.6.1.4   反病毒技术

4.6.2    网络的功能和服务

4.6.2.1   网络通信

4.6.2.2   资源管理

4.6.2.3   应用互操作

4.6.3    支持多媒体

4.6.3.1   接纳控制功能

4.6.3.2   实时调度

4.6.3.3   多媒体文件的存储

5       OS结构设计

5.1       传统操作系统结构

5.1.1    无结构操作系统

5.1.2    模块化结构系统

5.1.2.1   模块化程序设计技术的基本概念

5.1.2.2   模块独立性   衡量模块的独立性有以下两个标准

5.1.2.2.1   内聚性

5.1.2.2.2   耦合度

5.1.2.3   模块接口法的优点

5.1.2.3.1   提高OS设计的正确性、可理解性和可维护性。

5.1.2.3.2   增强OS的可适应性

5.1.2.3.3   加速OS的开发过程

5.1.2.4   模块接口法的缺点

5.1.2.4.1   在OS设计是,对个模块间的接口规定很难满足在模块设计完成后对接口的实际需求。

5.1.2.4.2   在OS设计阶段,设计者必须做出一系列的决定(决策),每一个决定必须建立在上一个决定的基础上。

5.1.3    分层式结构OS

5.1.3.1   分层式结构的基本概念

5.1.3.2   分层结构的优缺点

5.1.3.2.1   易保证系统的正确性

5.1.3.2.2   易扩充和易维护性

5.1.3.2.3   系统效率降低

5.2       客户/服务器模式(Client/Server Model)简介 简称C/S模式

5.2.1    客户/服务器模式的由来、组成和类型

5.2.1.1   客户机

5.2.1.2   服务器

5.2.1.3   网络系统

5.2.2    客户/服务器之间的交互

5.2.2.1   客户发送请求消息

5.2.2.2   服务器接收消息

5.2.2.3   服务器回送消息

5.2.2.4   客户机接收消息

5.2.3    客户/服务器模式的有点

5.2.3.1   数据的分布处理和存储。

5.2.3.2   便于集中管理。

5.2.3.3   灵活性和可扩充性。

5.2.3.4   易于改编应用软件。

5.2.4    不足之处:存在着不可靠性和瓶颈问题。在系统仅有一个服务器时,一旦服务器故障,将导致整个网络瘫痪。

5.3       面向对象的程序设计(Object-Orientated Programming)

5.3.1    面向对象技术的基本概念  该技术是基于“抽象”和“隐蔽”原则来控制大型软件的复杂度。

5.3.1.1   对象     

5.3.1.2   对象类

5.3.1.3   继承

5.3.2    面向对象技术的优点

5.3.2.1   通过“重用”提高产品质量和生产率

5.3.2.2   使得系统具有更好的易修改性和易扩展性。

5.3.2.3   更易于保证系统的“正确性”和可靠性。

5.4       微内核OS结构

5.4.1    微内核操作系统的基本概念

5.4.1.1   足够小的内核

5.4.1.2   基于客户/服务器模式

5.4.1.3   应用“机制与策略分离”原理

5.4.1.4   采用面向对象技术

5.4.2    微内核基本功能

5.4.2.1   进程(线程)管理

5.4.2.2   低级存储管理

5.4.2.3   中断和陷入处理

5.4.3    微内核操作系统的优点

5.4.3.1   提高了系统的可扩展性

5.4.3.2   增强了系统的可靠性

5.4.3.3   可移植性强

5.4.3.4   提供了对分布式系统的支持

5.4.3.5   融入了面向对象技术

5.4.4    微内核操作系统存在的问题

5.4.4.1   较之于早期的操作系统,微内核操作系统的运行效率有所降低。最主要原因是:在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换。

 

posted @ 2017-11-30 11:22  小懒鼠  阅读(349)  评论(0)    收藏  举报