目录
3.2 客户/服务器模式(Client-Server Model)
- 软件:
- 是指当计算机运行时,能提供所要求的功能和性能的指令和程序的集合,以及该程序能够正确地处理信息的数据结构;
- 规范的软件还应具有描述程序功能需求以及程序如何操作使用的文档;
- 软件工程:
- 是指运用系统的、规范的和可定量的方法,来开发、运行和维护软件;
- 目的是为了解决在软件开发中所出现的编程随意、软件质量不可保证以及维护困难等问题;
设计者主要任务是功能实现和系统高效,而不考虑操作系统的结构性。
- 其特点:
- 一组过程的集合;
- 各过程之间可以相互调用;
- 在操作系统内部不存在任何结构;
- 主要缺点:
- 操作系统庞大杂乱,缺乏清晰的程序结构,调试困难;
- 程序难以阅读和理解,增加了维护人员的负担;
20世纪60年代,OS采用“模块化程序设计”技术,模块由众多服务过程(模块接口)组成,可以随意调用其他模块中的服务过程;
- 优点:
- 具有一定灵活性,在运行中的高效率;
- 缺点:
- 功能划分和模块接口难保正确和合理;
- 模块之间的依赖关系(功能调用关系)复杂(调用深度和方向),降低了模块之间的相对独立性--不利于修改
- 有序分层的概念;
- 基本原则是每一层都仅使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得容易;
- 层次的设置:
- 程序嵌套;
- 运行频率;
- 公用模块;
- 用户接口;

- 把操作系统分成若干分别完成一组特定功能的服务进程,等待客户提出请求;而系统内核只实现操作系统的基本功能(如:虚拟存储、消息传递);
- 微内核(MicroKernel):
- 将更多操作系统功能放在核心之外,作为独立的服务进程运行;
- 服务进程,如进程服务器、存储管理服务器、文件服务器;
- 客户进程(系统客户和应用客户)--需支持多进程
微内核所提供的功能,通常都是一些最基本的功能:
- 进程管理;
- 存储器管理;
- 进程通信管理;
- I/O设备管理;
- 为了提高OS的灵活性和可扩充性而将OS划分为两部分, 一部分是用于提供各种服务的一组服务器(进程); 另一部分是内核,用来处理客户和服务器之间的通信;
- 所有这些服务器(进程)都运行在用户态。 当有一用户进程(现在称为客户进程)要求读文件的一个盘块时,该进程便向文件服务器(进程)发出一个请求 ;
- 将此应答回送给请求客户;内核还有与硬件直接相关的一些功能;

- 可维护性:容易修改与否称为可维护性;
- 改错性维护:改正已发现的错误;
- 适应性维护:修改软件,使之适应新的运行环境(硬件环境和软件环境);如:操作系统的移植。
- 完善性维护:增加新功能;
- 可靠性:
- 正确性:正确实现所要求的功能和性能;
- 稳健性:对意外(故障和误操作)作出适当的处理;
- 可理解性:易于理解,以方便测试、维护和交流;
- 性能:有效地使用系统资源;尽可能快地响应用户请求;
- 微内核结构:只给内核分配最基本的功能,可简化实现,提供灵活性;
- 多线程:把执行一个应用程序的进程划分成可以同时运行的多个线程。提高程序的执行效率。
- 对称多处理:有多个处理器共享同一个主存储器和I/O设备,可以执行相同的功能。提高并行性、可靠性;
- 分布式操作系统;
- 面向对象设计:提高模块独立性,便于扩展;
有兴趣的朋友还可以看一下下面的两篇,顺着看下去就好了: