===第一章操作系统引论======(3)https://developer.aliyun.com/article/1415707
1.5.2 客户/服务器模式(C/S)简介
客户/服务器模式的由来、组成和类型
(1)客户机:通常是在一个LAN网络上连接有多台网路工作站(简称客户机),每台客户机都是一个自主计算机,具有一定的处理能力,客户进程在其上运行,平时他处理一些本地业务,也可以发一个消息给服务器,用来请求某项服务。
(2)服务器:通常是一台规模较大的机器,在其上驻留有网络文件系统或数据库系统等,它应能为网上所有用户提供一种或多种服务。一直在工作状态,被动等待来自客户机的请求。接收到客户端请求后去完成客户端请求,并将结果送回。
(3)网络系统:用于连接所有客户机和服务器,实现他们之间通信和网络资源共享的系统。
客户/服务器之间的交互分为以下四步
(1)客户发送请求消息
(2)服务器接收消息
(3)服务器回送消息
(4)客户机接收消息
3.客户/服务器模式的优点
C/S模式之所以能成为在分布式系统和网络环境下软件的一种主要工作模式,是由于该模式具有传统集中模式所无法比拟的一系列优点。
(1)数据的分布处理和存储。由于客户机具有相当强的处理和存储能力,可进行本地处理和数据的分布存储,从而摆脱了由于把一切数据都存放在主机中而造成的既不可靠又
容易产生瓶颈现象的困难局面。
(2)便于集中管理。尽管CIS模式具有分布处理功能,但公司(单位)中的有关全局的重要信息、机密资料、重要设备以及网络管理等,仍可采取集中管理方式,这样可较好地保障系统的“可靠”和“安全”。
(3)灵活性和可扩充性。C/S 模式非常灵活,极易扩充。理论上,客户机和服务器的数量不受限制,其灵活性还表现在可以配置多种类型的客户机和服务器上。
(4)易于改编应用软件。在客户/服务器模式中,对于客户机程序的修改和增删,比传统集中模式要容易得多,必要时也允许由客户进行修改。
基本客户/服务器模式的不足之处是存在着不可靠性和瓶颈问题。在系统仅有一个服务器时,一旦服务器故障,将导致整个网络瘫痪。当服务器在重负荷下工作时,会因忙不过来而显著地延长对用户请求的响应时间。如果在网络中配置多个服务器,并采取相应的安全措施,则这种不足可加以改善。
1.5.3 面向对象的程序设计技术简介
与可以独立的对它进行测试 面向对象技术的基本概念:该技术是基于“抽象”和“隐藏”原则来控制大型软件的复杂度的。如果在OS中的各类实体如进程、线程、消息、存储器和文件等都是用了对象这一概念,相应的,就有了进程对象、线程对象、消息对象、存储器对象和文件对象等。
面向对象的优点:
(1)通过“重用”提高产品质量和生产率
(2)使系统具有更好的易修改性和易扩展性
(3)更易于保证系统的“正确性”和“可靠性”
对象是构成操作系统的基本单元,由于可以独立地对它进行测试,易于保证每个对象的正确性和可靠性,因此也就比较容易保证整个系统的正确性和可靠性。此外,封装对对象类中的信息进行了隐蔽,这样又可有效地防止未经授权者的访问和用户不正确的使用,有助于构建更为安全的系统。
1.5.4 微内核OS结构
- 微内核操作系统的基本概念
(1)足够小的内核:
通常包含有:
①与硬件处理紧密的部分
②一些较基本的功能
③客户和服务器之间的通信
这些OS最基本的部分只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小
(2)基于客户/服务器模式
由于客户/服务器模式具有非常多的优点,故在单机微内核操作系统中几乎无一例外地采用客户/服务器模式,将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现,如用于提供对进程(线程)进行管理的进程(线程)服务器、提供虚拟存储器管理功能的虚拟存储器服务器、提供I/O设备管理的I/O设备管理服务器等,它们都是被作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现信息交互的。图1-11示出了在单机环境下的客户/服务器模式。
(3)采用“机制与策略分离”原理
微内核操作系统中,通常将机制放在OS的微内核中。正亦如此,才有可能将内核做得很小
(4)采用面向对象技术
微内核的基本功能
(1)进程(线程)管理
(2)低级存储器管理
(3)终端和陷入处理
微内核操作系统的优点
由于微内核结构是建立在模块化、层次化结构的基础上的,并采用客户/服务器模式和面相对象的程序设计技术,因此,微内核结合的操作系统是集各种技术优点之大成,因而使之具有如下优点;
(1)提高了系统的可拓展性
(2)增强了系统的可靠性
(3)可移植性强
(4)提供了对分布式系统的支持
(5)融入了面向对象技术
微内核操作系统存的问题
应当指出,在微内核操作系统中,由于采用了非常小的内核,客户/服务器模式和消息传递机制虽给微内核操作系统带来了许多优点,但由此也使微内核os存在着潜在缺点,其中最主要的是,较之早期的操作系统,微内核操作系统的运行效率有所降低。
效率降低最主要的原因是,在完成一次客户对操作系统提出的服务请求时,需要利用消息实现多次交互和进行用户/内核模式与上下文的多次切换。然而,在早期的OS中,用户进程在请求取得OS服务时,- -般只需进行两次上下文的切换: - -次是在执行系统调用后由.用户态转向系统态时;另一次是在系统完成用户请求的服务后,由系统态返回用户态时。
在微内核OS中,由于客户和服务器、服务器和服务器之间的通信都需通过微内核,致使同样的服务请求至少需要进行四次上下文切换。第一次是发生在客户发送请求消息给内核,以请求取得某服务器特定的服务时;第二次是发生在由内核把客户的请求消息发往服务器时;第三次是当服务器完成客户请求后,把响应消息发送到内核时:第四次是在内核将响应消息发送给客户时。
实际情况是往往还会引起更多的上下文切换。例如,当某个服务器自身尚无能力完成客户请求而需要其它服务器的帮助时,如图1-12所示,其中的文件服务器还需要磁盘服务器的帮助,这时就需要进行8次上下文的切换
为了改善运行效率,可以重新把一些常用的操作系统基本功能由服务器移入微内核中。这样可使客户对常用操作系统功能的请求所发生的用户/内核模式和上下文的切换的次数由四次或八次降为两次。但这又会使微内核的容量明显地增大,在小型接口定义和适应性方面的优点也有所下降,并提高了微内核的设计代价。
本章思维导图