操作系统精髓与设计原理(原书第6版) 第二章操作系统概述 学习笔记(1)

                                       第二章  操作系统概述

 


2.1 操作系统的目标和功能


1 操作系统:控制应用程序执行的程序,并充当应用程序和计算机之间的接口。

2 操作系统的目标:方便,有效,扩展能力。

    方便:操作系统是计算机更易于使用。

    有效:操作系统允许以更有效地方式使用计算机系统资源。

    扩展能力:在构造操作系统时,允许在不妨碍服务的前提下有效的开发、测试和引进心得系统功能。

3 作为用户/计算机接口的操作系统

操作系统提供以下7个方面的服务

  1. 程序开发:操作系统提供各种工具和服务,帮助程序员开发程序。例如编辑器和调试器。严格来说这些实用工具程序不属于操作系统核心,由操作系统提供,称为应用程序开发工具。
  2. 程序运行:运行程序需要把指令和数据载入到内存中,初始化I/O设备和文件,准备其他资源。操作系统帮助人们处理这些调度问题。
  3. I/O设备访问:每个I/O设备需要特定的指令集和控制信号,操作系统隐藏了这些细节并提供了统一的接口。
  4. 文件访问控制:操作系统可以提供保护机制来控制对文件的访问。
  5. 系统访问:操作系统控制对整个系统的访问以及对某个特殊系统资源的访问。访问功能模块可以提供对资源和数据的保护,以避免未授权用户的访问。还必须解决资源竞争时的冲突问题。
  6. 错误检测和响应:操作系统对每一种错误提供响应以清除错误条件,使其对正在运行的程序影响最小。
  7. 记账:操作系统可以收集对各种资源使用的统计信息。

4 作为资源管理器的操作系统

    4.1操作系统作为控制机制的特点:

           1) 它与普通软件作用相同,是由处理器执行的一段程序或一组程序(主要区别在于指令的意图)。

           2) 它经常会释放控制,而且必须依赖处理器才能恢复控制。

    4.2 操作系统控制处理器使用其他系统资源,并控制其他程序的执行时机。

    4.3 操作系统中有一部分在内存中,其中包括内核程序(kernel或nucleus)和当前正在使用的其他操作系统程序。内核程序包含操作系统最常使用的功能。内存的其余部分包含用户程序和数据,它的分配由操作系统和处理器中的存储管理硬件联合控制。

5 操作系统的易扩展性

    5.1操作系统不断发展的原因:

           1)硬件升级和新型硬件的出现:如,图形终端和页面式终端代替了行滚动终端。

           2)新的服务:用户需求的不断提升

           3)纠正错误:任何一个操作系统都会有错误,逐渐暴露出来并引进补丁程序。

     5.2 在构造操作系统时,应该采用模块化的结构,清楚的定义模块间的接口,并备有说明文档。


2.2 操作系统的发展


1 作业:一个程序称为作业。

2 串行处理出现的两个主要问题:

  1. 调度:大多数装置都使用了一个硬拷贝的登记表预定机器时间,会出现登记时间与工作时间不相符问题。
  2. 准备时间:程序运行之前的准备需要花费大量的时间。

3 串行处理反映了用户必须顺序访问计算机的事实。

4 简单批处理方案的思想:通过使用监控程序类的操作系统,用户不再直接访问机器,计算机操作人员把作业按照顺序组织成一批,并将整批作业放入输入设备中,供监控程序使用。每个程序处理完后返回到监控程序,同时,监控程序自动加载下一个程序。

5 “控制权交给作业”仅仅意味着处理器当前取和执行的都是用户程序中的指令,而“控制权返回给监控程序”是指处理器当前从监控程序中取指令并执行指令。

6 监控程序或者批处理操作系统,只是一个简单的计算机程序,它依赖于处理器可以从内存的不同部分取指令的能力,以交替的获取或释放控制权。

7 监控程序或者批处理操作系统还考虑了其他硬件功能:

     内存保护:当用户程序正在执行时,不能改变包含监控程序的内存区域,否则发生错误并取消改=该作业。

     定时器:用于防止一个作业独占系统。

     特权指令:某些机器指令设置为特权指令,只能由监控程序执行。I/O指令属于特权指令。

     中断:具备中断这个特征使得操作系统在让用户程序放弃控制权或者从用户程序获得控制权的时候更加灵活。

8 用户程序执行在用户态,特权指令不允许执行。监控程序运行在内核态(系统态),可以执行特权指令,而且受保护的内存区域也是可以访问的。

9 用户程序和监控程序交替执行的缺点:部分内存交付给了监控程序;监控程序消耗了一部分机器时间。

10 多道程序设计:一种处理操作,它在两个或多个程序间交错处理每个进程。

11 多道处理程序必须依赖于某些计算机硬件功能(最显著的是支持I/O中断和直接存储访问的硬件)。通过中断驱动的I/O或者DMA,处理器可以为一个作业发出I/O命令,当设备控制器执行I/O操作时,处理器执行另一个作业;当I/O操作完成时,处理器被中断,控制权传递给操作系统中的中断处理程序,然后操作系统把控制权传递给另一个作业。

12 多道处理程序体现出对内存管理和调度算法的必要性。

13 分时技术:多个用户分享处理器时间

14 分时系统中,多个用户可以通过终端同时访问系统,由操作系统控制每个用户程序以很短的时间为单位交替执行。

15 第一个分时系统时MIT开发的兼容分时系统(CTSS).

16 多道批处理和分时的比较:

(1)主要目标:多道批处理是为了充分利用处理器,分时是为了减小响应时间。

(2)操作系统指令源:多道批处理是由作业提供的作业控制语言命令,而分时时从终端键入的命令。

17 时间片技术:在固定的时间间隔内,当前用户被剥夺,另一用户被载入。

18 假设有四个交互用户,其存储器需求如下:

JOB 1:15000     JOB 2:20000     JOB 3:5000     JOB 4:10000

分时系统操作具体过程如下:

19 如果内存中有多个作业,必须保护他们不互相干扰。有多个交互用户时,必须对文件系统进行保护,只有授权用户才可以访问某个特定文件,还必须处理资源竞争问题。


2.3 主要的成就


1 操作系统开发中的5个重要的理论进展:进程,内存管理,信息保护和安全,调度和资源管理,系统结构。

2 进程定义:

● 一个正在执行的程序

● 计算机中正在运行的程序的一个实例。

● 可以分配给处理器并由处理器执行的一个实体。

● 由单一的顺序的执行进程,一个当前状态和一组相关的系统资源所描述的活动单元。

3 计算机系统发展的三条主线:多道程序批处理操作、分时和实时事务系统

    多道陈程序设计是为了让处理器和I/O设备同时保持忙碌状态,以实现最大效率,其关键机制是在响应表示I/O事务结束的信号时,操作系统对内存中驻留的不同程序进行处理器切换。

    分时设计是为了能及时响应每个用户的要求,但是由于成本问题,又要可以同时支持多个用户。采用时间片技术实现分时系统。

    实时事务处理系统与分时系统一样最重要的都是系统响应时间。区别在于实时事务处理局限于一个或几个应用,而分时系统的用户可以从事程序开发、作业执行以及使用各种各样的应用程序。(例如航空公司的预定系统属于实时服务处理系统)

4.实时事务的处理

每一个服务请求在业务处理系统中以一个事务的方式运行,通过对一定业务数据的处理来完成客户的请求,并向客户返回数据。通常,这种应用程序有大量的客户同时执行更改实时数据的事务。

一个实时事务的处理过程应该是支持多用户、多进程的,同时支持高完整性的数据共享。此外还应具备如下条件:

(1)程序和数据可以集中存放在本地;

(2)为满足需求,可根据需要添加硬件,具有一定的灵活性;

(3)在满足数据和流程完整性的前提下,可以通过网络来访问数据。

5 操作系统产生错误的主要原因是:

(1)不正确的同步;设计不正确的信号机制可能导致信号丢失或者接受重复信号。

(2)失败的互斥:必须设计某种互斥机制保证一次只允许一个进程对一部分数据进行事务处理。

(3)不确定的程序操作:当程序共享内存并且处理器控制他们交错执行时,可能会因为重写相同的内存区域而发生不可预测的互相干扰。

(4)死锁:两个或多个程序互相挂起等待。

6 进程可以看作是由三部分组成:一段可执行的程序,程序所需的相关数据,程序的执行上下文(这是根本)。

7 执行上下文:又称进程状态。是操作系统用来管理和控制进程所需的内部数据。(这种内部信息和进程是分开的,因为操作系统不允许进程直接访问)。上下文包括操作系统管理进程以及处理器执行进程所需要的所有信息。包括了各种处理器寄存器的内容(例如程序计数器和数据寄存器),还包括操作系统使用的信息(例如进程优先级以及进程是否等待特定I/O事件的完成)。

8 对于下图所示的进程管理的方法,主要通过建立进程索引寄存器(包含当前正在控制处理器的进程在进程表中的索引)来实现。程序计数器和所有的数据引用相对于基址寄存器被解释,并且不能超过界限寄存器中的值,这样可以保证内部进程间不会相互干涉。

9 操作系统的存储管理职责:

(1)进程隔离:操作系统必须保护独立的进程,防止相互干涉各自的存储空间,包括数据和指令。

(2)自动分配和管理:程序应该根据需要在存储层次间动态地分配,而操作系统有效的实现分配问题,仅在需要时才给作业分配存储空间。

(3)支持模块化程序设计:程序员应该能够定义程序模块,并且动态的创建、销毁模块,改变模块大小。

(4)保护和访问控制:操作系统必须允许一部分内存可以由各种用户以各种方式进行访问。

(5)长期存储:在计算机关机之后可以进行长时间地存储。

10 页:在分时系统中,进程由许多固定大小的块组成,这些块称为页。

11 虚地址与实地址:

虚地址由页号和页中地偏移量组成,指的是存在于虚拟内存中地地址。(有时在磁盘中,有时在主存中)

实地址指的是在主存中的真实地址。

12  分页系统提供了程序中使用的虚地址与内存中的实地址(物理地址)之间的动态映射。

13  有了动态映射硬件,下一步逻辑步骤是消除一个进程的所有页同时驻留在内存中的要求。一个进程的所有页都保留在磁盘中,当进程执行时,一部分分页在内存中。如果需要访问的某一页不在内存中,存储管理硬件可以检测到,然后安排载入这个缺页。这个配置称作虚拟内存.虚拟存储器及其寻址如下图所示:

 

14  程序语言的指令都可以访问虚拟存储器区域中的程序和数据,可以通过给每个进程一个唯一的不重叠的虚拟存储器空间来实现进程隔离,可以通过虚拟存储器空间的一小部分重叠实现内存共享。

15  在虚拟存储器寻址过程中,产生这个地址访问的进程必须被挂起。操作系统设计者的任务是开发开销很少的地址转换机制,以及可以减少各级存储器级间交换量的存储分配策略。

16  与操作系统相关的安全和保护问题可以分为4类:
●可用性:保护系统不被打断。
●保密性:保证用户不能读到未授权访问的数据。
●数据完整性:保护数据不被未授权修改。
●认证:涉及用户身份的正确认证和消息或数据的合法性。

17  任何资源分配和调度策略都必须考虑三个因素:
●公平性:通常希望给竞争使用某一特定资源的所有进程提供几乎相等和公平的访问机会。
●有差别的响应性:操作系统可能需要区分有不同服务要求的不同作业类。操作系统将试图做出满足所有要求的分配和调度决策,并且动态地做出决策。
●有效性:操作系统希望获得最大的吞吐量和最小的响应时间,并且在分时的情况下,能够容纳尽可能多的用户。这些标准相互矛盾,在给定状态下寻找适当的平衡是操作系统中一个正在进行研究的问题。

18  时间片轮转:依次给队列中的每一个进程一定的时间,时间片轮转技术使用一个环形队列。

19  长期队列是等待使用处理器的新作业的列表。操作系统通过把长期队列中的作业转移到短暂队列中,实现往系统中添加作业。

20   每个I/O设备都有一个I/O队列,可能有多个进程请求使用同一个I/O设备。所有等待使用一个设备的进程在该设备的队列中排队,同时操作系统必须决定把可用的I/O设备分配给哪一个进程。正如下图所示:

21  一个功能完善的操作系统的大小和它所处理的任务的困难性,导致了4个让人遗憾但又普遍存在的问题:

●操作系统在交付使用时就习惯地表现出落后,这就要求有新的操作系统或升级老的系统。

●随着时间的推移会发现越来越多潜在的缺陷,这些缺陷必须及时修复。

●总是难以达到期望的性能

●理论表明,不可能开发出即复杂的又不易受各种包括病毒、蠕虫和未授权访问之类的安全性攻击的操作系统。

22  为管理操作系统的复杂性并克服这些问题,有几点是显而易见的:
软件必须模块化的,这有助于组织软件开发过程、限定诊断范文和修正错误
模块相互之间必须有定义很好的接口 ,接口必须尽可能简单,这不但可以简化程序设计任务,还可以使系统的扩展更加容易。

23  从高层来看待操作系统结构的视角,操作系统的设计层次如下图:

第1层:由电路组成,处理的对象是寄存器、门电路等。

第2层: 处理器指令集合。机器语言指令集合允许的操作。

第3层:增加了过程与子过程的概念,以及调用/返回操作。

第4层:引入了中断。处理器能够保存当前环境,调用中断处理程序。

前4层严格来说不是操作系统的一部分,而是构成了处理器的硬件。从第5层开始到达了操作系统。

第5层:引入了进程的概念,用来表示程序的执行。

第6层:处理计算机的辅助存储设备。在这一层出现了定义读/写头和实际传输数据块的功能。第6层依赖第5层对操作的调度和当一个操作完成后通知等待进程该操作已完成的能力。

第7层:为进程创建一个逻辑地址空间。

第7层之前操作系统处理的都是单处理器的资源。从第8层开始,操作系统处理外部对象。

第8层:处理进程间的信息和消息通信。管道为进程间的数据流提供的一个逻辑通道。

第9层:支持称为文件的长期存储。

第10层:提供访问外部设备的标准接口。

第11层:负责维护系统资源和对象的外部标识符与内部标识符间的关联。外部标识符是应用程序与用户使用的名字,内部标识符是一个地址或可被低层使用、用于定位和控制一个对象的其他指示符。这些关联在目录中维护。

第12层:提供一个支持进程的功能完善的软件设施。第5层只维护与进程相关的处理器寄存器内容和用于调度进程的逻辑,而第12层支持进程管理所需的全部信息,这包括进程的虚地址空间、可能与进程发生交互的对象和进程的列表以及对交互的约束、在进程创建后传递给进程的参数和操作系统在控制进程时可能用到的其他特性。

第13层:用户提供操作系统的一个界面。


(2.4-2.8见下一篇博客)

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值