计算机操作系统(第四版)之引论要点梳理

操作系统引论



OS 的目标和作用

OS 的目标:
1. 方便性 2. 有效性 3. 可扩充性 4. 开放性

OS 的作用:
1. OS 作为用户与计算机硬件系统之间的接口。
2. OS 作为计算机系统资源的管理者。
对处理器、存储器、I/O 设备以及文件(数据和程序)这四类资源进行有效的管理。
3. OS 实现了对计算机资源的抽象。
把在裸机上覆盖了一层 I/O 设备管理软件的机器称为扩充机器或虚机器,I/O设备管理软件实现了对计算机硬件操作的第一个层次的抽象。
文件管理软件实现了对硬件资源操作的第二个层次的抽象。

OS 的发展过程

无操作系统的计算机系统:
1. 人工操作方式。
2. 脱机输入/输出方式。
该技术是事先将装有用户程序和数据的纸带(或卡片)装入纸带输入机(或卡片机),在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。当 CPU 需要这些程序和数据时,再从磁带上将其高速地调入内存。类似地,当 CPU 需要输出时,可由 CPU 直接高速地把数据从内存送到磁带上,然后再在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。
由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说,它们是在脱离主机的情况下进行的,故称为脱机输入/输出方式。

单道批处理系统:
先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下使这批作业能一个接一个地连续处理。

多道批处理系统:
用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”;然后,由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源。(利用 CPU 空闲时间)

分时系统:
为了实现人——机交互,需要
(1)作业直接进入内存。
(2)采用轮转运行方式。
系统规定每个作业只能运行一个时间片,然后便暂停该作业的运行,并立即调度下一个作业运行。

实时系统:
将时间作为关键参数,必须对所接收到的某些信号做出“及时”或“实时”的反应。

微机操作系统的发展:
1. 单用户单任务操作系统。
2. 单用户多任务操作系统。
3. 多用户多任务操作系统。

OS 的基本特性

并发:
1. 并行性和并发性(Concurrence)是既相似又有区别的两个概念,并行性是指两个或多个事件在同一时刻发生;而并发性是指两个或多个事件在同一时间间隔内发生。
2. 引入进程 。
在一个未引入进程的系统中,在属于同一个应用程序的计算程序和 I/O 程序之间,两者只能是顺序执行。
所谓进程,是指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
多个进程之间可以并发执行和交换信息。

共享:
1. 互斥共享方式。
规定在一段时间内只允许一个进程访问这个资源。
把在一段时间内只允许一个进程访问的资源称为临界资源(或独占资源)。
2. 同时访问方式。
允许在一段时间内由多个进程“同时”对这些资源进行访问。这里所谓的“同时”,在单处理机环境下是宏观意义上的,而在微观上,这些进程对该资源的访问是交替进行的。

虚拟:
1. 时分复用技术。
利用处理机的空闲时间来运行其它程序,以提高处理机的利用率。
2. 空分复用技术。
只能提高内存的利用率,并不能实现在逻辑上扩大存储器容量的功能,且必须引入虚拟存储技术才能达到此目的。而虚拟存储技术在本质上是实现内存的分时复用。

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

OS 的主要功能

  1. 处理机管理功能。
  2. 存储器管理功能。
  3. 设备管理功能。
  4. 文件管理功能。
  5. 操作系统与用户之间的接口。
  6. 现代操作系统的新功能。

OS 结构设计

传统操作系统结构:
1. 无结构操作系统。
2. 模块化结构 OS。
将 OS 按其功能精心地划分为若干个具有一定独立性和大小的模块,然后再进一步将各模块细分为若干个具有一定功能的子模块。
衡量模块的独立性的两个标准:(1)内聚性 (2)耦合度。
3. 分层式结构 OS。
将一个操作系统分为若干个层次,每层又由若干个模块组成,各层之间只存在着单向的依赖关系,即高层仅依赖于紧邻它的低层。

微内核 OS 结构:
1. 足够小的内核
微内核并非是一个完整的 OS,而只是操作系统中最基本的部分。
2. 基于客户/服务器模式
3. 应用“机制与策略分离”原理
所谓机制,是指实现某一功能的具体执行机构。而策略,则是在机制的基础上,借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。
例如,为实现进程(线程)调度功能,须在进程管理中设置一个或多个进程(线程)优先级队列;能将指定优先级进程(线程)从所在队列中取出,并将其投入执行。由于这一部分属于调度功能的机制部分,应将它放入微内核中。而对于用户(进程)如何进行分类,以及其优先级的确认方式或原则,则都属于策略问题,可将它们放入微内核外的进程(线程)管理服务器中。
4. 采用面向对象技术


继续加油~

猜你喜欢

转载自blog.csdn.net/yo_bc/article/details/80964401