操作系统的结构设计

[b][color=red] 软件工程的基本概念[/color][/b]
[b] 1.软件的含义[/b]
所谓[b]软件[/b],是指当计算机运行时,能提供所要求的功能和性能的指令和程序的集合,该程序能够正确地处理信息的数据结构;作为[b]规范软件[/b],还应具有描述程序功能需求以及程序如何操作使用的文档。如果说,硬件是物理部件,那么,软件则是一种逻辑部件,它具有与硬件完全不同的特点。

[b]2. 软件工程的含义[/b]
[b]软件工程[/b]是指运用系统的、规范的和可定量的方法,来开发、运行和维护软件;或者说,是采用工程的概念、原理、技术和方法,来开发与维护软件,其目的是为了解决软件开发中所出现的编程随意、软件质量不可保证以及维护困难等问题。

[b][color=red]传统的操作系统结构[/color][/b]
操作系统是一个十分复杂的大型软件。为了控制该软件的复杂性,在开发OS时,先后引入了分解、模块化、 抽象和隐蔽等方法。开发方法的不断发展,促进了OS结构的更新换代。这里,我们把第一代至第三代的OS结构, 称为传统的OS结构,而把微内核的OS结构称为现代OS结构。

[b]1. 无结构操作系统[/b]
在早期开发操作系统时,设计者只是把他的注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。 此时的OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构,因此,这种OS是无结构的,也有人把它称为整体系统结构。
此时程序设计的技巧,只是如何编制紧凑的程序,以便于有效地利用内存、对GOTO语句的使用不加任何限制,所设计出的操作系统既庞大又杂乱,缺乏清晰的程序结构。这一方面会使所编制出的程序错误很多,给调试工作带来很多困难;另一方面也使程序难以阅读和理解,增加了维护人员的负担。
[b]2.模块化OS结构[/b]
1) [color=red]模块化结构[/color]
模块化程序设计技术,是最早(20世纪60年代)出现的一种程序设计技术。该技术是基于“分解”和“模块化”原则来控制大型软件的复杂度的。为使OS具有较清晰的结构,OS不再是由众多的过程直接构成,而是将OS按其功能划分为若干个具有一定独立性和大小的模块。每个模块具有某方面的管理功能,如进程管理模块、存储器管理模块、I/O设备管理模块和文件管理模块等,并规定好各模块间的接口, 使各模块之间能通过该接口实现交互,然后再进一步将各模块细分为若干个具有一定管理功能的子模块,如把进程管理模块又分为进程控制、 进程同步、 进程通信和进程调度等子模块, 同样也要规定各子模块之间的接口。若子模块较大时,再进一步将它细分。图 1-5 示出了由模块、子模块等组成的模块化OS结构。
2) [color=red]模块化OS的优缺点[/color]
[quote]
(1)提高了OS设计的正确性、 可理解性和可维护性。
(2) 增强了OS的可适应性。
(3) 加速了OS的开发过程。
[/quote]
模块化结构设计的缺点有二。首先,在开始设计OS时,对模块的划分及对接口的规定并不精确, 而且还可能存在错误,因而很难保证按此规定所设计出的模块会完全正确, 这将使在把这些模块装配成OS时发生困难;其次,从功能观点来划分模块时,未能将共享资源和独占资源加以区别; 由于管理上的差异,又会使模块间存在着复杂的依赖关系使OS结构变得不清晰.
[b]3.分层式OS结构[/b]
[color=red]1) 有序分层的基本概念[/color]
从改进设计方式上说,应使我们的每一步设计都是建立在可靠的基础上。我们可以从物理机器开始, 在其上面先添加一层具有一定功能的软件A1, 由于A1是建立在完全确定的物理机器上的,在经过精心设计和几乎是穷尽无遗的测试后,可以认为A1是正确的;然后再在A1上添加一层新软件A2,……,如此一层一层地自底向上增添软件层,每一层都实现若干功能,最后总能构成一个能满足需要的OS.
[color=blue]分层式结构设计的基本原则[/color]是:[color=red]每一层都仅使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得容易[/color], 例如,在调试第一层软件A1时,由于它只使用了物理机器提供的功能,因此它将与其所有的高层软件A2,……,An无关; 同样在调试A2时,它也只使用了A1和物理机器所提供的功能, 而与其高层软件A3, ……,An无关,这样,一旦发现Ai出现错误时,通常该错误只会局限于Ai,因为它与所有其高层的软件无关,而Ai层以下的各层软件,又都经过仔细的调试。

[color=red]2) 层次的设置[/color]
(1) 程序嵌套。 通常OS的每个功能的实现, 并非是只用一个程序便能完成的,而是要经由若干个软件层才有可能完成。因此在划分OS层次时,首先要考虑在实现OS 的每个功能时所形成的程序嵌套。例如,作业调度模块须调用进程控制模块;在为某作业创建一进程时,进程控制模块又须调用内存管理模块为新进程分配内存空间,可见,进程控制模块应在内存管理模块之上; 而作业调度模块又应在更高层。
(2) 运行频率。在分层结构中,各层次软件的运行速度是不同的,因为A1层软件能直接在物理机器上运行, 故它有最高的运行速度。随着层次的增高,其相应软件的运行速度就随之下降,因而An层软件的运行速度最低。 为了提高OS的运行效率,应该将那些经常活跃的模块放在最接近硬件的A1层,如时钟管理、进程调度,通常都放在A1层。
(3) 公用模块。应把供多种资源管程程序调用的公用模块, 设置在最低层,不然,会使比它低的层次模块由于无法调用它而须另外配置相应功能的模块。例如,用于对信号量进行操作的原语Signal和Wait.
(4) 用户接口。为方便用户(程序),OS向用户提供了“用户与OS的接口”,如命令接口、程序接口以及图形用户接口。这些接口应设置在OS的最高层,直接提供给用户使用。

[b][color=red]微内核OS结构[/color][/b]
[color=red]1. 客户/服务器模式(Client-Server Model)[/color]
[b]1) 基本概念[/b]
为了提高OS的灵活性和可扩充性而将OS划分为两部分, 一部分是用于提供各种服务的一组服务器(进程),如用于提供进程管理的进程服务器、提供存储器管理的存储器服务器提供文件管理的文件服务器等,所有这些服务器(进程)都运行在用户态。 当有一用户进程(现在称为客户进程)要求读文件的一个盘块时,该进程便向文件服务器(进程)发出一个请求;当服务器完成了该客户的请求后,便给该客户回送一个响应。 操作系统的另一部分是内核,用来处理客户和服务器之间的通信, 即由内核来接收客户的请求,再将该请求送至相应的服务器;同时它也接收服务器的应答, 并将此应答回送给请求客户。 此外,在内核中还应具有其它一些机构,用于实现与硬件紧密相关的和一些较基本的功能。
[b]2) 客户/服务器模式的优点[/b]
[quote]
(1)提高了系统的灵活性和可扩充性。
(2) 提高了OS的可靠性。
(3) 可运行于分布式系统中
[/quote]。

[color=red]2.面向对象的程序设计技术(Object-Orientated Programming) [/color]
[b]1) 面向对象技术的基本概念[/b]
面向对象技术是20世纪80年代初提出并很快流行起来的。该技术是基于“抽象”和“隐蔽”原则来控制大型软件的复杂度的。[color=red]所谓对象,是指在现实世界中具有相同属性、服从相同规则的一系列事物的抽象,而把其中的具体事物称为对象的实例[/color]。OS中的各类实体如进程、线程、消息、存储器等,都使用了对象这一概念,相应地,便有进程对象线程对象、 存储器对象等。
[b]2) 面向对象技术的优点[/b]
[quote]
(1) 可修改性和可扩充性。由于隐蔽了表示实体的数据和操作,因而可以改变对象的表示而不会影响其它部分, 从而可以方便地改变老的对象和增加新的对象。
(2) 继承性。继承性是面向对象技术所具有的重要特性。继承性是指子对象可以继承父对象的属性,这样,在创建一个新的对象时, 便可减少大量的时空开销。
(3) 正确性和可靠性。由于对象是构成操作系统的基本单元,可以独立地对它进行测试,这样,比较易于保证其正确性和可靠性,从而比较容易保证整个系统的正确性和可靠性。
[/quote]
[color=red]3. 微内核技术[/color]
[b] 1)微内核技术的引入[/b]
所谓[color=blue]微内核技术[/color],是指精心设计的、能实现现代OS核心功能的小型内核,它与一般的OS(程序)不同, 它更小更精炼,它不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存。微内核并非是一个完整的OS, 而只是为构建通用OS提供一个重要基础。由于在微内核OS结构中,通常都采用了客户/服务器模式,因此OS的大部分功能和服务,都是由若干服务器来提供的, 如文件服务器、作业服务器和网络服务器等。
[b]2) 微内核的基本功能[/b]
微内核所提供的功能,通常都是一些最基本的功能,如进程管理、存储器管理、进程间通信、 低级I/O功能。
[quote]
(1) 进程管理。
(2) 存储器管理。
(3) 进程通信管理。
(4) I/O设备管理。
[/quote]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值