1.5 操作系统的结构模型全解(小白也能看懂)


1.5 操作系统的结构模型

操作系统的结构模型是指操作系统的内部组织方式,它定义了操作系统的各个组成部分以及它们之间的交互关系。以下是一些常见的操作系统结构模型:

  1. 单体结构(Monolithic)

    • 单体结构的操作系统将所有的系统服务和功能集成在一个大型的内核中。这种模型在早期操作系统中非常普遍。
    • 优点:实现简单,性能较高。
    • 缺点:可扩展性差,维护困难,安全性问题。
  2. 分层结构(Layered)

    • 分层结构将操作系统的功能分解成多个层次,每一层提供一组特定的服务,并且只与相邻层次交互。
    • 优点:结构清晰,易于理解和维护。
    • 缺点:层与层之间的接口定义复杂,可能会影响性能。
  3. 微内核(Microkernel)

    • 微内核模型将操作系统的核心功能(如进程管理、内存管理、设备驱动等)最小化,只保留在内核中,其他功能(如文件系统、网络协议栈等)则作为用户空间的服务运行。
    • 优点:安全性高,可扩展性好,易于维护。
    • 缺点:性能可能受到影响,因为用户空间和内核空间的交互需要更多的上下文切换。
  4. 客户-服务器模型(Client-Server)

    • 在这种模型中,操作系统提供服务的组件(服务器)和请求服务的组件(客户端)通过网络进行通信。
    • 优点:分布式处理,灵活性高,易于扩展。
    • 缺点:网络通信可能会引入延迟和复杂性。
  5. 模块化结构(Modular)

    • 模块化结构将操作系统分解成多个独立的模块,每个模块负责一组特定的功能,模块之间通过定义良好的接口进行交互。
    • 优点:易于开发和维护,模块可以独立更换或升级。
    • 缺点:模块间的接口设计和协调可能比较复杂。
  6. 事件驱动模型(Event-Driven)

    • 事件驱动模型的操作系统通过响应事件(如用户输入、硬件中断等)来执行操作,而不是按照预先定义的顺序执行任务。
    • 优点:响应速度快,适合实时系统和交互式系统。
    • 缺点:编程模型复杂,难以预测系统行为。
  7. 服务导向架构(Service-Oriented Architecture, SOA)

    • SOA模型将操作系统服务作为独立的服务组件,通过服务请求和响应进行交互。
    • 优点:高度模块化,易于集成和扩展。
    • 缺点:服务间的通信可能增加系统复杂性。

每种结构模型都有其特定的适用场景和优缺点,操作系统的设计者会根据系统的需求和目标选择合适的结构模型。随着技术的发展,现代操作系统往往采用混合结构,结合多种模型的优点来构建。

1.5.1 整体式模型

整体式模型又称为模块式结构模型,是操作系统最早采用的一种结构设计方法。

**整体式模型采用模块化程序设计技术。**首先,把一个要设计的软件划分为功能相对独立的模块,并规定好模块之间的调用关系,然后分别对各个模块进行设计和调试,最后再按照它们之间的接口关系把各个模块连接起来。

在整体式系统中,当发生系统调用时,先将调用参数装入预定的寄存器或堆栈中,然后执行中断指令,机器由用户态切换到核心态,控制权转到操作系统。操作系统检查调用参数,以确定应执行哪条系统调用。然后,操作系统检查系统调用表,确定需要调用的服务过程。结束系统调用后,又把控制返回给用户程序。

整体式模型的优缺点

  • 优点:结构紧密,组合方便,自由的调用使得系统效率较高。
  • 缺点:
    (1)系统扩充困难:模块调用关系复杂,修改其中的一个 模块,容易产生错误。
    (2)系统可靠性降低:复杂的调用关系,使得各模块之间可以互相调用,以至构成了循环,容易使系统陷于死锁。

在这里插入图片描述

1.5.2 层次式模型

层次模型首先把复杂的操作系统模块划分为从低到高的若干个层次,并且规定,高一层的模块只能调用低层的模块,而不能调用比它更高层次的模块。

通常,低层模块只提供基本的功能,随着层次的提高,模块的功能越来越强。由于层次间的这种单向依赖关系,使得设计和调试低层模块时不必考虑高层模块的实现,这就简化了操作系统的实现过程

全序层次式模型

层次式结构模型的操作系统中,如果不仅各层之间是单向依赖的,而且同层次各模块之间也相互独立不允许同层次调用,则称这种层次结构是全序的

全序层次式模型结构是理想型结构,但实际实现是很困难的

在这里插入图片描述
半序层次式模型

通常能够保证各层之间单向依赖,但同层次模块之间可能有相互调用关系各层之间的依赖不构成循环,但某些层次内部可能有循环依赖关系,这种层次式模型结构是半序的。
在这里插入图片描述
层次式模型结构的优缺点

  • 优点:
    (1)易保证正确性:自下而上的设计方法,使系统模块之间都是有序的,或者说是建立在较为可靠的基础之上的,这样比较容易保证整个系统的正确性。
    (2)易扩充和易维护性:在系统中增加、修改或替换一个层次中的模块,只要不改变相应层次间的接口,就不会影响其他层次。这使得系统维护和扩充变得更加容易。
  • 缺点:
    由于分层是单向依赖的,这就必须在相邻层之间建立层次间的通信机制。操作系统每执行一个功能,通常要穿越多个层次,这无疑会增加系统的通信开销,从而造成系统效率的下降

1.5.3 微内核与客户-服务器模型

传统操作系统结构中,通常把操作系统的全部或者大部分内容作为操作系统的内核。随着操作系统功能越来越复杂多样,内核部分也就越来越大,难以管理。

微内核操作系统,其思路是将操作系统的内核功能模块化,把非基本的功能模块从内核中移走,仅仅保留那些最基本的核心部分功能。这样做使得操作系统的核心部分很小,因此叫做微内核。

微内核操作系统具有可扩展性强,可靠性高,可移植性好等优点。当前比较流行的、能支持多处理机运行的操作系统,几乎全部都采用了微内核结构。

客户-服务器模型

  • 微内核并不是完整的操作系统,它通常仅仅实现与硬件紧密相关的处理、通信和其它一些较基本的功能,那些微内核以外的操作系统功能需要采用其它方法实现。
  • 将操作系统中最基本的部分放入微内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。例如提供对进程(线程)进行管理的进程(线程)服务器,提供虚拟存储器管理功能的虚拟存储器服务器,提供I/O设备管理的I/O设备管理服务器等,它们都是被作为进程来实现。这就是客户-服务器模型

客户-服务器模型的基本思想

  • 操作系统分为两大部分,一部分是运行在核心态的微内核;另一部分是运行在用户态的进程,这些进程相对独立,每个进程实现一类服务,称之为服务器进程。
  • 用户进程与服务器进程之间形成了客户-服务器关系,当客户请求某类服务时,运行在核心态下的操作系统内核把消息传给相应的服务器进程,由服务器进程执行具体操作,结果经由内核以消息的形式返回给用户。
    在这里插入图片描述

客户-服务器模型的优点

(1)可扩展性强:当操作系统需要扩展新功能时,只须在相应的服务器进程中增加新的功能,或再增加专门的服务器进程即可。
(2)提高了可靠性:每个服务器进程在分配给它的内存分区中以独立进程的方式运行,因此可以防止其他进程对它的影响。此外,由于服务器进程运行在用户态,不能直接访问硬件或侵犯内核,具有较高的安全性。
(3)适合分布式系统环境:客户/服务器模式同样适用于网络服务,并且使用消息传递方式进行通信,因而本地服务器可以很方便地把消息发送给远程用户。而对客户来说,是从远程得到的服务还是从本地得到的服务并不重要。

1.5.4 面向对象模型

  • 利用面向对象方法设计的操作系统称为面向对象模型操作系统。面向对象模型的操作系统把系统中的所有资源都看作对象,例如进程、线程、消息、文件、设备、存储区、缓冲区和信号量等。对象封装的属性和方法描述了该资源的各类信息和可执行的操作。对象与对象之间通过相互发送消息来启动对方过程执行操作,以改变自己的状态。对象不能在没有消息驱动的情况下,自主地进行操作或修改自己的状态。
  • 利用面向对象设计方法中的封装、继承和多态,可以更有效地实施系统保护,降低操作系统的设计难度和开发成本,并提高系统的可维护性。

面向对象模型的优点

(1)通过对象“复用”提高产品质量和生产率:通过“复用” 对象,可以大大缩短开发周期,降低开发成本,提高系统质量。
(2)使系统具有更好的易修改性和易扩充性:通过封装,可隐蔽对象中的变量和方法,因而当改变对象中的变量和方法时,不会影响到其他部分。另外,通过利用继承特性,可显著地减少开发的时空开销,使系统具有更好的易扩充性和灵活性。
(3)更易于保证系统的正确性和可靠性:对象是构成操作系统的基本单元,由于可以独立地对它进行测试,易于保证每个对象的正确性和可靠性。此外,封装对对象类中的信息进行了隐蔽,这样又可有效地防止未经授权者的访问或用户不正确的使用,有助于构建更为安全的系统。

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值