美文网首页
第1章 操作系统概述-2

第1章 操作系统概述-2

作者: 盆栽木只 | 来源:发表于2018-09-24 14:51 被阅读0次

1.3 操作系统的基本特性

各种典型操作系统各有特色,但均具有共同的基本特征:

并发、共享、虚拟、异步

多道并发是最根本的特征,并发引出五大管理功能,同时也使OS有了更多的特征

1.并发concurrence

并行性:两个或多个事件在同一时刻发生

并发性:两个或多个事件在同一时段发生

理解CPU并发

        单处理器系统中,多道程序在宏观上看似并行,实际在微观上是多道程序占用cpu交替执行的,并不是真正的“并行”。多处理器系统才有CPU并行。

单处理器系统中的并行

        在硬件技术支持的条件下,CPU 和 I/O操作能实现并行,这也是多道程序设计能够提高效率的原因之一。

* 并发和进程是现代OS最重要的基本概念 *

2.共享sharing

系统中的资源可供内存中多个并发执行的进程(线程)共同使用。主要有两种共享方式:

互斥共享方式:

                对临界资源(如打印机)采用该方式,资源分配给某进程后未释放前,不能被其他进程所用。

                临界资源(独占资源):一段时间内只允许一个进程访问的资源。

同时访问方式:

                对允许“同时”访问的资源(如磁盘)采用该方式,但“同时”仍然是“宏观并行微观串行”的,不是真正的同时

并发和共享互为存在的条件

                多个程序并发才导致了资源需要共享

                资源共享若没有协调好,必然影响程序的并发执行

3. 虚拟virtual

通过某种技术把一个物理实体变为若干个逻辑对应物(用户感觉上的东西),两种实现方式:

时分复用

                一个物品被多人分时使用,在一段时间内就表现为每个人都有一个该物品可用,1虚拟为n。

空分复用

                一个物品划分为多个部分,多个人每人都有一部分可用,主观上看也是1虚拟成n。

虚拟处理机

                时分复用:多道程序分时间使用一个cpu,直观上似乎n个程序有n个CPU一样。

虚拟打印机

                时分复用:对一台打印机的n个打印请求进行时间的合理调配,直观上就产生互斥性质的打印机可共享使用,似乎有n个打印机的效果。

虚拟磁盘

                时分复用:多个程序可“同时”读写

                空分复用:1个硬盘对应成4个逻辑区

虚拟内存

                时分复用:一块内存空间分时的分配给多个进程使用,逻辑上扩大内存空间。

            空分复用:充分利用内存空闲空间,提高内存利用率

虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。用于实现虚拟的技术,就称为虚拟技术。

4.异步性asynchronism

指进程的执行顺序和执行时间的不确定性

进程的运行速度不可预知

                由于资源等因素限制,进程通常不能一气呵成地执行完,多个进程并发执行是“时走时停”的,不可预知每个进程的运行推进快慢;

允许异步,但结果应正确

                只要环境相同,无论快慢,结果应该相同(可再现性),这需要进程互斥和同步手段来保证。

1.4 操作系统的主要功能

1.处理机管理功能

        传统多道程序系统,处理机分配和运行都以进程为基本单位,对处理机的管理,就是对进程的管理。引入线程后,也包括对线程的管理。

        主要解决内存中多道并发执行的“进程”如何占用CPU,如何运行的问题。

1)进程控制:

                为作业创建进程、撤销已结束的进程,控制进程在运行过程中的状态转换。以及线程的创建撤销等。(可理解为对单个进程基本信息进行管理)

2)进程同步:

                为多个进程运行进行协调(包括互斥和同步)

3)进程通信:

                用来实现在相互合作进程间的信息交换;(直接通信和网络通信)

4)调度:

                作业调度(入内存)和进程调度(分配CPU)

2. 存储器管理功能

1)内存分配:为每道程序分配内存空间(包产到户)具体分配涉及许多细节:

                            分配方式:动态、静态

                            分配机制需要的数据结构、分配算法、回收内存功能

2)内存保护:确保每道用户程序都只在自己的内存空间中运行

                            需要一个硬件——界限寄存器,存放正在执行进程的内存上下界,每条指令的访问地址都要进行越界检查,一般用硬件实现检查

3)地址映射(变换):进程的逻辑地址到内存物理地址的映射。

                            程序编译形成的目标程序地址都是从0开始,是逻辑地址

                            真正调入内存某个空间存放的地址是物理地址

4)内存扩充:用虚拟存储技术解决内存容量不足的问题;

                            请求调入功能

                            页面置换功能

3. 设备管理功能

1)缓冲管理:匹配CPU和外设的速度,提高两者的利用率和并行操作程度;

2)设备分配:按某种设备分配策略,为之分配所需的设备;

                应设置设备控制表等数据结构记录设备及其控制器的标识符和状态;不同的设备,分配方式不同

3)设备处理:设备处理程序即驱动程序,及时X响应设备控制器请求,实现CPU和设备控制器之间的通信。

4. 文件管理功能

1)存储空间的管理:分配外存空间,提高外存的利用率,提高文件系统的运行速度;

                需要相应的数据结构,记录文件存储空间的使用情况;要有对存储空间分配和回收的功能

2)目录管理:为文件建立目录项,并有效组织,实现方便的按名存取;提供快速的目录查询手段,提高文件检索速度;还需实现文件共享。

3)文件的读写管理和保护:读写操作与有效的存取控制功能。

5. 用户接口

1)命令接口

        用户可通过键盘终端发出命令以控制作业的运行。

                联机用户接口:由一组磁盘操作命令和命令解释程序组成。

                脱机用户接口:由一组作业控制语言组成,如批处理文件。

2)程序接口

                用户程序在执行中访问系统资源而设置,由一组系统调用组成。

                早期汇编语言才能使用,后高级语言及C语言中都给出了系统调用对应的库函数。

3)图形接口

1.5 操作系统的结构


1.传统的OS结构

1)无结构OS

                早期开发OS,只追求实现和效率,缺乏贯穿的设计思想。是一组过程的集合。

问题:

                过程互相调用,没有清晰的结构

                程序错误很多,调试复杂,阅读维护困难

2)模块化OS结构

20世纪60年代出现的一种程序设计技术。基于“分解”和“模块化”原则来控制大型软件的复杂度。

                制定功能模块

                规定各模块接口

                划分子模块

称为模块——接口的设计方法,关键是模块的划分和规定接口。

优点

                提高设计的正确性、可理解性和可维护性;

                增强了OS的可适应性,可选用相应功能模块,也可进行增减和修补以满足新需求;

                加速了开发过程;

问题:

                设计初期,模块划分和接口规定不精确并且很难保证完全正确;接口规定与实际完成的模块需求不匹配会发生装配困难。

                各模块的设计齐头并进,没有决策顺序,是一种“无序“模块,模块间仍会有复杂依赖关系,反而可能会使OS结构不清晰。

3)分层式OS结构

                改进设计方式,变无序为有序——分层的思想

                在物理机器上逐渐添加具有一定功能的软件层,每一层仅使用底层提供的功能和服务。(功能流水线)

优点

                易保证系统正确性

                易扩充和维护

缺点

                分层单向依赖,执行一个功能,总要自下而上地穿越多层,增加系统通信开销,降低了效率。

2.微内核OS结构

                Micro Kernel操作系统结构于20世纪80年代后期发展起来。尤其在多处理机环境下,更适用微内核技术。

                与客户/服务器技术,面向对象技术同时发展起来的。微内核OS结构以OS为核心,以C/S为基础,采用了面向对象程序设计方法。

1)Client/Server模式

        三部分组成:客户端、服务器、网络系统

        交互方式:客户请求,服务器接收消息,回送消息,客户接收消息,四步。

        优点:数据分布处理和存储;灵活可扩充,易于修改维护,仍方便集中管理。

2)面向对象编程技术Object-Orientated Programming

        具有相同属性、规则的事物抽象成对象,利用被封装的数据结构对具体对象实例进行操作。

        进程、线程、消息、存储器都可抽象成对象。

        可修改、扩充,具有继承性,容易保证正确和可靠性。

3)微内核

        精心设计、实现一个可在其上构建通用OS的基础内核,该内核程序运行在核心态,开机常驻内存。

        当前微内核操作系统结构仍没有一致公认的定义,但可从以下4方面进行描述:

                1)足够小的内核

                                微内核并非一个完整的OS。与硬件紧密相关,实现较基本功能,复杂客户和服务器通信。

                2)基于C/S模式

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

                                机制——实现某一功能的具体执行机构,位于基层;策略——借助某些参数和算法实现功能优化或达到不同功能目标,位于系统高层。

                4)采用面向对象技术


微内核包含的基本功能

                进程(线程)管理,包括进程调度、进程通信、进程同步等;低级存储管理;中断和陷入处理。

                调度算法、虚拟内存的页面置换算法等都放入外部服务器中实现。

微内核的优点

                灵活、可扩充:可选配功能服务器模块

                增强可靠性:内核是稳定的核心,只有它能直接访问硬件。服务器在用户态出错绝不会导致系统瘫痪。

                可移植性:操作系统绝大部分(各种服务器程序)与硬件平台无关,在不同硬件平台间移植时修改比较小。

                该机制尤其适用于分布式系统

                采用面向对象技术,减少开发开销

微内核存在的问题

                运行效率降低

                一次客户请求需要多次消息传递和用户/内核模式的上下文切换,开销增大。

                有的服务需要借助其他服务,则需要的切换开销更大。

如何改善

                重新把一些常用基本功能由服务器移入内核。代价就是内核容量增大,接口定义和性能也将受影响。

微内核系统举例——Mach OS

                美国卡内基梅隆Carngie-Mellon大学研制

                它实现了一个微小的内核,包括线程调度、消息传递、虚拟内存和设备驱动。除这些之外,其它各种应用程序接口、文件系统、网络等等都运行在用户模式下。

                然而,在Mach微内核操作系统的商用实现中,基本上所有的文件系统、网络和内存管理代码都运行在内核模式。因为纯微内核系统过于低效,在商用上是不切实际的。

Windows NT

                是微内核的,严格意义上讲,是混合内核

                它让一些微核结构运行在用户空间的代码运行在内核空间,这样让内核的运行效率更高些。

LINUX

                单内核,层次化设计了模块机制

        从整体上看,在当前的硬件条件下,微内核在效率上的损失小于其在结构上获得的收益,故而选取微内核成为操作系统的一大潮流。微内核结构将是21世纪的主流OS结构。它可有效支持多处理机,非常适用分布式系统。

相关文章

  • 第1章 操作系统概述-2

    1.3 操作系统的基本特性 各种典型操作系统各有特色,但均具有共同的基本特征: 并发、共享、虚拟、异步 多道并发...

  • 操作系统的概述2

    操作系统的发展过程 由于计算机硬件的不断发展,其功能越来越复杂。计算机硬件的构成部件已经经历了电子管,晶体管,小规...

  • 计算机操作系统知识大纲

    第一章 操作系统概述 1 操作系统的基本概念操作系统的概念操作系统的特征操作系统的目标和功能 2 操作系统的发展与...

  • 操作系统笔记

    操作系统原理——华中科技大学苏曙光已完结 1.操作系统概述2.操作系统逻辑结构3.操作系统的用户界面(1)操作系统...

  • Shell典型应用之系统信息及运行状态获取

    1.Linux操作系统信息获取 1-1.概述 1-2.获取操作系统基本信息 获取为哪一种操作系统: 获取操作系统版...

  • Linux简单命令

    linux 操作系统 一.linux 操作系统概述 1.常见操作系统- 服务端操作系统 : linux、unix、...

  • 操作系统概述

    1.操作系统的基本概念 计算机系统:硬件 操作系统 应用程序和永华(自上而下)操作系统 管理各种计算机硬件 为应用...

  • 操作系统概述

    我们平常所说的计算机,严格的讲应该指的是计算机系统,它包含硬件(如CPU,内存,显示器,打印机等)和软件(在硬件中...

  • 操作系统概述

    1、计算机硬件结构: 2、计算机存储层次: 3、简述开机启动过程: pc主板上的rom芯片,pc关机后,rom的数...

  • 操作系统概述

    操作系统的定义和作用 定义:操作系统是计算机系统中的一个系统软件,是一些程序模块的集合。 作用: (1)资源管理:...

网友评论

      本文标题:第1章 操作系统概述-2

      本文链接:https://www.haomeiwen.com/subject/akacoftx.html