操作系统结构
操作系统的结构,是指操作系统各部分程序的存在方式及互相关系。常见的操作系统体系结构有三种:
整体式结构
首先确定操作系统的总体结构功能,然后将总功能分解为若干个子功能,实现每个子功能的程序称为模块。再按照功能将上述每个大模块分解为若干个较小的模块,如此下去,直至每个模块仅包含单一功能或密切联系的小功能为止,即分解为最基本的模块为止。最后通过接口将所有模块连接起来形成一个整体。因此,也称为模块组合结构,其关键在于接口。
优点:结构紧密,接口简单直接,系统效率较高
系统中的模块不是根据程序和数据本身的特性而是根据他们完成的功能来划分的,数据基本作为全程量使用。
模块组合结构的缺点
1.模块间转接随便,各模块互相牵连,独立性差,系统结构不清晰。
2.数据基本上作为全程量处理,系统内所有模块的任一程序均可对其进行存取和修改,关系复杂;更换或者修改一个模块,需要弄清各模块间的接口,困难复杂。
3.常以大型表格为中心,为保证数据完整性,往往采用全局关中断办法,从而限制了系统的并发性。
层次式结构
层次结构就是把操作系统的所有功能模块,按功能流图的调用次序,分别将这些模块排列成若干层,各层之间的模块只能是单向依赖或单向调用(如只允许上层或外层模块调用下层或内层模块)关系。将整体式结构的无序性变为有序性。
优点:化整为零(功能分解);结构清晰、不构成循环;易于调试、易于修改、易于扩充、易于维护、易于保证正确性(增加或替换一层不影响其它层)
如何分层?无统一规律,必须要依据总体功能设计和结构设计中的功能流图和数据流图进行分层,大致的分层原则如下:
1.把与硬件有关和与硬件无关的模块截然分开,而把与硬件有关的BIOS放在最内层。硬件环境改变时只需修改这一层即可。
2.把计算机系统多种操作方式(前台分时作业、后台批处理方式作业、实时控制等)共同要使用的基本部分放在内层,而把随不同操作方式而改变的部分放在外层。
微内核(客户机/服务器)结构
采用客户机/服务器结构的操作系统适宜于应用在网络环境下分布式处理的计算环境,这种体系又称微内核结构,特点如下:
1.运行在核心态的内核:内核提供所有操作系统基本都具有的那些操作,只提供了一个很小的功能集合。
2.运行在用户态的并以客户机/服务器方式运行的进程层:除内核部分外,操作系统所有的其他部分被分成若干个相对独立的进程,每一个进程实现一组服务,称为服务进程。
客户机/服务器运行模式:
客户机进程与服务器进程之间的通信是采用发送消息进行的,这是因为每个进程属于不同的虚拟地址空间,它们之间不能直接通信,必须通过内核进行,而内核则是被映射到每个进程的虚拟地址空间内的,它可以操纵所有进程。客户机进程发出消息,内核将消息传给服务进程。服务进程执行相应的操作,其结果又通过内核用发消息方式返回给客户机进程。
客户机/服务器运行模式的优点:
将操作系统分成若干个小的并且自包含的分支(服务进程),每个分支运行在独立的用户进程中,相互之间通过规范一致的方式接收发送或消息而联系起来。操作系统在内核中建立起了最小的机制,而把策略留给用户空间中的服务进程,这带来了很大的灵活性。
可靠:分支独立只包含,单一故障不影响其它。
灵活:方便增加新的服务功能。
适宜于分布式环境:不同服务进程可以运行在不同处理器或计算机上。
客户机/服务器运行模式的缺点:
所有的用户进程只能通过微内核相互通信,微内核本身就成为系统的瓶颈,在一个通信很频繁的系统中,微内核往往不能提供很好的效率。
实例:
卡内基-梅隆大学研制的Mach操作系统;Windows NT的早期版本等
扫码关注本人微信公众号,有惊喜奥!公众号每天定时发送精致文章!回复关键词可获得海量各类编程开发学习资料!
例如:想获得Python入门至精通学习资料,请回复关键词Python即可。