面向对象操作系统的设计

上传人:人*** 文档编号:567565984 上传时间:2024-07-21 格式:PPT 页数:40 大小:167KB
返回 下载 相关 举报
面向对象操作系统的设计_第1页
第1页 / 共40页
面向对象操作系统的设计_第2页
第2页 / 共40页
面向对象操作系统的设计_第3页
第3页 / 共40页
面向对象操作系统的设计_第4页
第4页 / 共40页
面向对象操作系统的设计_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《面向对象操作系统的设计》由会员分享,可在线阅读,更多相关《面向对象操作系统的设计(40页珍藏版)》请在金锄头文库上搜索。

1、朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计第第10章章 面向对象操作系统的设计面向对象操作系统的设计10.1 面向对象的基本概念面向对象的基本概念10.2 面向对象和操作系统面向对象和操作系统10.3 面向对象操作系统的分类面向对象操作系统的分类舞姻甫沥厂贝股缺泉飞参防硅擂槽罪烽闷曝夫继籽蚌姨花廊赣秃朴仕申痔面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计10.1 面向对象的基本概念面向对象的基本概念 “面向对象面向对象”或或

2、“对象对象”的概念起源于的概念起源于20世纪世纪60年代年代末期。进入末期。进入80年代以后,随着计算机软、硬件技术年代以后,随着计算机软、硬件技术的发展,面向对象技术在数据库、程序设计语言、的发展,面向对象技术在数据库、程序设计语言、CAD/CAM、人工智能技术、程序设计以及操作系、人工智能技术、程序设计以及操作系统和计算机网络通信等几乎所有的软件领域都受到统和计算机网络通信等几乎所有的软件领域都受到了极大重视和广泛研究。特别是在操作系统领域中,了极大重视和广泛研究。特别是在操作系统领域中,由于面向对象技术除了在设计方法上更接近于设计由于面向对象技术除了在设计方法上更接近于设计人员脑子中的人

3、员脑子中的“思维形象思维形象”之外,它还具有隐蔽数之外,它还具有隐蔽数据以及由消息激活对象等特性,从而它比传统技术据以及由消息激活对象等特性,从而它比传统技术更容易应用于分布式操作系统的设计与实现。因此,更容易应用于分布式操作系统的设计与实现。因此,许多面向对象的操作系统都正在被研究和开发,以许多面向对象的操作系统都正在被研究和开发,以便用作分布式网络操作系统。便用作分布式网络操作系统。迟代段烈凉念茶棍瘤炎酚秤稽拘蛛迢涣许邦毋英喊寥铃敌惶绦衷闹食爹戚面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统

4、的设计例如例如Windows NT,Solaris 2.x和和mache等。这些系统等。这些系统的共同特点是:使用面向对象技术设计和实现操作的共同特点是:使用面向对象技术设计和实现操作系统,从而使得所实现的操作系统能够管理一个超系统,从而使得所实现的操作系统能够管理一个超大规模的、开放式的、自我发展的以及分布式的计大规模的、开放式的、自我发展的以及分布式的计算环境。这里,首先介绍面向对象的基本概念。算环境。这里,首先介绍面向对象的基本概念。炮匿涨在诞吮圾瞅跑臼母冯亢际墩躯邻蕊愉襄青甲须鹤渺市乾导梨洁赐仑面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮

5、妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计1. 对象和面向对象对象和面向对象对象可分为物理对象、抽象对象和计算机对象三个层对象可分为物理对象、抽象对象和计算机对象三个层次。计算机对象是把抽象对象的属性、特征和行为次。计算机对象是把抽象对象的属性、特征和行为数据化和过程化的结果。本书中所述对象都指计算数据化和过程化的结果。本书中所述对象都指计算机对象。机对象。对象是一个由一组数据集以及对这些数据集进行操作对象是一个由一组数据集以及对这些数据集进行操作的封装模块。对象接收其他对象发来的消息,并由的封装模块。对象接收其他对象发来的消息,并由对象自己根据本身的状态和所具有的功能决定是

6、否对象自己根据本身的状态和所具有的功能决定是否根据接收到的消息进行操作。另外,对象一般具有根据接收到的消息进行操作。另外,对象一般具有自己的存储结构,对存储内容的访问、操作和变更自己的存储结构,对存储内容的访问、操作和变更只能由对象自己完成。再者,为了区别不同的对象,只能由对象自己完成。再者,为了区别不同的对象,系统内的每一个对象都具有唯一的对象名。因此,系统内的每一个对象都具有唯一的对象名。因此,一般,一个对象由对象名、表示存储内容的对象状一般,一个对象由对象名、表示存储内容的对象状态以及对存储数据进行操作的过程集合组成。态以及对存储数据进行操作的过程集合组成。棋袜脊猪眼绎遮重版致缨靠美腊开

7、色稿蔼沧旱佯竖杭眷午拭莫宋厩伏鸯羚面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计把系统以及系统中的元素用对象及对象的集合表示来把系统以及系统中的元素用对象及对象的集合表示来构造的系统就是面向对象的系统。构造的系统就是面向对象的系统。面向对象的系统具有两个重要特性,即封闭性面向对象的系统具有两个重要特性,即封闭性(encapsulation)和继承性和继承性(inheritance)。封闭性。封闭性对应于系统中对象的分类抽象化,即每一种类型的对应于系统中对象的分类抽象化,即每一种类型的对象都

8、定义有对该类对象的属性及操作方法,且只对象都定义有对该类对象的属性及操作方法,且只允许按定义的方法对该类对象进行操作。换句话说,允许按定义的方法对该类对象进行操作。换句话说,一种类型对象的动态性质封闭于该类对象的属性和一种类型对象的动态性质封闭于该类对象的属性和方法之中。继承性对应于系统的一般化,即具有某方法之中。继承性对应于系统的一般化,即具有某些共同属性的对象所组成的类些共同属性的对象所组成的类(class)可继承它们可继承它们的超类的超类(superclass)所具有的属性和操作。所具有的属性和操作。足瘸闰派骆磨廊膊舟枯凉乾币娃拷郡丽忠石铬阜躁禽缠尽状狸兼敌锭打舶面向对象操作系统的设计面

9、向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计2. 对象的动作对象的动作被激活的对象在系统中怎样动作呢?一个面向对象的被激活的对象在系统中怎样动作呢?一个面向对象的系统应具备以下两种功能:第一,向其他对象发送系统应具备以下两种功能:第一,向其他对象发送消息。这是对象间相互通信的唯一手段。第二,能消息。这是对象间相互通信的唯一手段。第二,能生成或创建新的对象。这是用对象来描述系统变化生成或创建新的对象。这是用对象来描述系统变化所必须的手段。所必须的手段。3. 消息消息面向对象的系统中环境对某一对象发出消息以激活该面

10、向对象的系统中环境对某一对象发出消息以激活该对象,从而通知它需要做什么。消息中一般包含请对象,从而通知它需要做什么。消息中一般包含请求对象的标识符以及完成该工作所必需的信息,例求对象的标识符以及完成该工作所必需的信息,例如参数值等。另外,请求对象的对象名也可包含在如参数值等。另外,请求对象的对象名也可包含在消息中。消息中。疚妊乱捻老莱卷牌马济化奢嵌景赚狭锋廓罢骂帽绪粳坷骤冉漆页引辗堵屑面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计4. 类和实例类和实例具有相同属性和行为的对象集合称为类。换

11、句话说,具有相同属性和行为的对象集合称为类。换句话说,属于同一类中的对象具有相同的存储结构,使用相属于同一类中的对象具有相同的存储结构,使用相同的过程集合对数据进行操作。每一个类都具有一同的过程集合对数据进行操作。每一个类都具有一个反映其特征的型个反映其特征的型(type),型提供选择和区分对象,型提供选择和区分对象操作的依据。操作的依据。类也可以被看作是对象,而且,类具有分层构造特点,类也可以被看作是对象,而且,类具有分层构造特点,即从具有共同属性和行为特征的对象的集合中,可即从具有共同属性和行为特征的对象的集合中,可进一步抽出具有某些特殊属性或行为特征的对象构进一步抽出具有某些特殊属性或行

12、为特征的对象构成该类的子类;而该类又是该子类的超类。这些超成该类的子类;而该类又是该子类的超类。这些超类、类、子类等构成类的层次结构,子类继承其所类、类、子类等构成类的层次结构,子类继承其所有高层超类的属性和行为特征,但反过来,超类或有高层超类的属性和行为特征,但反过来,超类或类不具有子类所具有的独特的属性与行为特征。类不具有子类所具有的独特的属性与行为特征。抬佰渴觉疚蝇俱禾绚付耐衔业工傻虱狙讣磋昭裤炸戌询烫揩地戏灰筒缚画面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计一个类中的对象即是该类

13、的一个实例,实例具体描述一个类中的对象即是该类的一个实例,实例具体描述一个对象。一般来说,一个类中有多个实例。类和一个对象。一般来说,一个类中有多个实例。类和实例的关系近似于数据结构与具体数据的关系。实例的关系近似于数据结构与具体数据的关系。5. 过程或方法过程或方法过程或方法是定义于某一特定类的操作与法则。一种过程或方法是定义于某一特定类的操作与法则。一种类型的对象只能被事先定义好的过程或方法所操作。类型的对象只能被事先定义好的过程或方法所操作。不过,不同类型的对象可以分别包含同一过程或方不过,不同类型的对象可以分别包含同一过程或方法。例如,在实数子类和二进制数子类中定义法。例如,在实数子类

14、和二进制数子类中定义“+”法,则实数子类中的对象和二进制数子类中法,则实数子类中的对象和二进制数子类中的对象都可使用该方法改变自身的状态。显然,对的对象都可使用该方法改变自身的状态。显然,对于同一消息于同一消息(1,1),实数子类的输出结果是,实数子类的输出结果是2,而,而二进制子类的输出结果将是二进制子类的输出结果将是0。关于对象的几个主要关键词如图关于对象的几个主要关键词如图10.1所示。所示。墟勿谬京瘁鸯拟谁京桨言卒忘白扮姬另骇住叔唇八锡特亿蝎转己巍匆祖猜面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向

15、对象操作系统的设计图图10.1 关于面向对象技术的几个关键词关于面向对象技术的几个关键词鹃俱临得临惭庞扮呵推粘部宁键蝇屠馆楚取陡滤似碴痰奥褐边辣踏肥话戮面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计10.2 面向对象和操作系统面向对象和操作系统本节主要讲述为什么要把面向对象技术引入操作系统本节主要讲述为什么要把面向对象技术引入操作系统和怎样用面向对象技术开发操作系统。和怎样用面向对象技术开发操作系统。10.2.1 面向对象技术的引入面向对象技术的引入面向对象技术最初在操作系统中出现是在面向

16、对象技术最初在操作系统中出现是在20世纪世纪60年年代后期,代后期,J. Dennis等从资源保护的角度出发提出了等从资源保护的角度出发提出了权能权能(capability)的概念,权能的概念也是造成面的概念,权能的概念也是造成面向对象概念产生的重要因素之一。向对象概念产生的重要因素之一。义货垄蹈何瘴泥哄华仔冶恢个恢秀纸茁趴捻锡福贾往剩瓮侗辐锣零嗽陶猎面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计在操作系统中,无论是软件资源还是硬件资源,传统在操作系统中,无论是软件资源还是硬件资源,传统的

17、设计方法都是使用相应的表格或队列链等数据结的设计方法都是使用相应的表格或队列链等数据结构以及相应的标识符构以及相应的标识符(或过程名或过程名)来描述它们。对这来描述它们。对这些资源的访问和使用顺序则是由进程中的程序来规些资源的访问和使用顺序则是由进程中的程序来规定的。也就是说,对操作系统资源数据的使用是依定的。也就是说,对操作系统资源数据的使用是依靠程序员或设计人员所设计的算法来决定的。设计靠程序员或设计人员所设计的算法来决定的。设计人员必须保证这些算法的正确性,否则将会由于不人员必须保证这些算法的正确性,否则将会由于不当的访问操作带来不可估量的恶果。当的访问操作带来不可估量的恶果。首先开始解

18、决资源保护问题的尝试是分段。分段把一首先开始解决资源保护问题的尝试是分段。分段把一个进程的逻辑地址空间分成多个不连续的段,且每个进程的逻辑地址空间分成多个不连续的段,且每个段具有独立的逻辑意义和连续的段内地址。从而,个段具有独立的逻辑意义和连续的段内地址。从而,可以使用段表来进行地址变换和段内数据保护。例可以使用段表来进行地址变换和段内数据保护。例如,可以使用段表中的相应栏目来设置进程对某个如,可以使用段表中的相应栏目来设置进程对某个段的读写权限,从而起到保护该段的作用。段的读写权限,从而起到保护该段的作用。能漠碟柑烬碱忆鸦构欣抨触择与档恨情搏裂禹衡殉容绣悠继惟板乃购踩将面向对象操作系统的设计

19、面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计但是,由于段表是从属于进程的,因此,对于同一段但是,由于段表是从属于进程的,因此,对于同一段程序来说,在不同的进程中具有不同的段号,即其程序来说,在不同的进程中具有不同的段号,即其逻辑地址只在一个进程内有效。这样,对逻辑地址逻辑地址只在一个进程内有效。这样,对逻辑地址的访问权限就掌握在进程手中而不是段中或系统中。的访问权限就掌握在进程手中而不是段中或系统中。再者,对于长期保存的数据文件来说,文件系统中设再者,对于长期保存的数据文件来说,文件系统中设置有文件名和读写权

20、限检验等。这种保护方式又完置有文件名和读写权限检验等。这种保护方式又完全不同于对段的读写保护方式。是否有一种不依赖全不同于对段的读写保护方式。是否有一种不依赖于上下文关系和长期、短期之分的统一的数据保护于上下文关系和长期、短期之分的统一的数据保护方法呢?方法呢?J. Dennis在在1966年提出了对系统内的所有年提出了对系统内的所有“物体物体”赋予权能,实施统一保护的概念。赋予权能,实施统一保护的概念。剔釜叔彦君仇睁梁碑藻造孕慰驱慧惋惧名冷帛谱撮隘馅胞给馁拂武搅凋伶面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设

21、计面向对象操作系统的设计权能包括对象名和访问权。从权能的眼光看,系统内权能包括对象名和访问权。从权能的眼光看,系统内的所有物体都是对象,而每一个对象在访问另一个的所有物体都是对象,而每一个对象在访问另一个对象时,都必须提出自己的权能,只有被访问对象对象时,都必须提出自己的权能,只有被访问对象和操作在该权能限定的范围内,该访问才是正确的。和操作在该权能限定的范围内,该访问才是正确的。对于各用户或进程来说,系统为每个用户或进程设对于各用户或进程来说,系统为每个用户或进程设置一张权能表。该表中含有允许该用户或进程访问置一张权能表。该表中含有允许该用户或进程访问的所有对象的权能。这样,由权能表就规定了

22、该用的所有对象的权能。这样,由权能表就规定了该用户或进程可以操作和访问的范围以及封闭了各个对户或进程可以操作和访问的范围以及封闭了各个对象。再者,操作系统严格限制用户或进程任意修改象。再者,操作系统严格限制用户或进程任意修改权能表,从而保证了系统的完整性。如果把用户和权能表,从而保证了系统的完整性。如果把用户和进程也看作对象进程也看作对象(它们的确是对象它们的确是对象),则可以认为由,则可以认为由权能表把该对象可以使用的数据和操作封闭起来了。权能表把该对象可以使用的数据和操作封闭起来了。垢麓撂依宠妨爽泌劈挚宽奸耪糕垮扳德喷俗氛呆宴鲤港镐携垣饺这鼠函章面向对象操作系统的设计面向对象操作系统的设计

23、朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计另外,可以把权能表赋给任何一个过程,从而把过程另外,可以把权能表赋给任何一个过程,从而把过程的操作领域和操作进行封闭保护。的操作领域和操作进行封闭保护。图图10.2是使用权能表进行地址变换的例子。在图是使用权能表进行地址变换的例子。在图10.2中,由于每个段都被看作一个对象,因此,在一个中,由于每个段都被看作一个对象,因此,在一个进程是否可访问某段时除了给出段内相对地址之外,进程是否可访问某段时除了给出段内相对地址之外,还必须提出它所访问对象的权能,以验证它是否有还必须提出它所访问对象的

24、权能,以验证它是否有权访问该对象。权能中的对象名又进一步指向该对权访问该对象。权能中的对象名又进一步指向该对象的描述信息,例如对象数据在存储空间的位置、象的描述信息,例如对象数据在存储空间的位置、长度等。由对象描述信息和段内相对地址长度等。由对象描述信息和段内相对地址l就可得就可得到实际要访问的物理地址。到实际要访问的物理地址。臀咐擎怔掀感种踞阶逻择息矮旋越践障谤婶蔽向拘语侣烬胚嘶馏顺嘉赠蔽面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计图图10.2 使用权能表进行地址变换使用权能表进行地址

25、变换郴仆迫彼掐谣没当侍慎屋哼爆故圃起畜磊稽哮诈粹琅壳伯阉棘趟磅潦顿印面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计使用权能表的另一个好处就是做到了单级寻址,即无使用权能表的另一个好处就是做到了单级寻址,即无论待访问指令是在内存中还是在外存内,都可以通论待访问指令是在内存中还是在外存内,都可以通过权能表所指示的对象而找到它们。这样就可以把过权能表所指示的对象而找到它们。这样就可以把文件系统也纳入进程的逻辑空间中。使用权能表的文件系统也纳入进程的逻辑空间中。使用权能表的面向对象系统有面向对象系

26、统有hydra、starOS等。等。引入面向对象概念的另一个重要原因是引入面向对象概念的另一个重要原因是“对象对象”比起比起“算法算法+数据结构数据结构”方式更接近于人的思维。这表方式更接近于人的思维。这表现在两个方面:第一方面是用户使用面向对象的工现在两个方面:第一方面是用户使用面向对象的工具作为开发环境;另一方面是系统设计人员使用面具作为开发环境;另一方面是系统设计人员使用面向对象的概念设计出性能好、结构清晰和能力强的向对象的概念设计出性能好、结构清晰和能力强的操作系统。操作系统。溃观已余抒总耪恨皖咳太赔迭桥怕卫斧号惰旁拱腺郸蕴申肆固痪糜卖昭到面向对象操作系统的设计面向对象操作系统的设计朝

27、巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计进入进入20世纪世纪80年代中后期以来,为用户提供友好用户年代中后期以来,为用户提供友好用户接口的面向对象开发环境不断被开发出来。这些开接口的面向对象开发环境不断被开发出来。这些开发环境为用户提供各种直观的对象如窗口、按钮、发环境为用户提供各种直观的对象如窗口、按钮、菜单、翻滚条等。用户通过键盘或鼠标对这些对象菜单、翻滚条等。用户通过键盘或鼠标对这些对象进行操作。这些对象都含有自己的数据和过程以允进行操作。这些对象都含有自己的数据和过程以允许用户对其进行直接操作,而不必不停地激活应用许用户

28、对其进行直接操作,而不必不停地激活应用程序。另外,这些对象还向系统发送消息或事件以程序。另外,这些对象还向系统发送消息或事件以驱动其他对象完成相应的功能。驱动其他对象完成相应的功能。面向对象的操作系统得到广泛重视和研究的另一个重面向对象的操作系统得到广泛重视和研究的另一个重要因素是它适合于超大规模的、开放式分布环境。要因素是它适合于超大规模的、开放式分布环境。由于面向对象技术采用对象间发送消息来驱动对象由于面向对象技术采用对象间发送消息来驱动对象完成特定功能方法,且对象的定义不受距离和系统完成特定功能方法,且对象的定义不受距离和系统的限制,因此,面向对象的概念被广泛地用于分布的限制,因此,面向

29、对象的概念被广泛地用于分布式操作系统或网络操作系统。式操作系统或网络操作系统。蛰氯或谬伙对鉴农铂烷是存喧咱晦儒蔽市切蛾讳财荤籽茁鸯温梢配壤烛僳面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计10.2.2 面向对象操作系统的设计方法面向对象操作系统的设计方法用面向对象方法设计操作系统除了增强系统的安全功用面向对象方法设计操作系统除了增强系统的安全功能之外,还具有以下几个好处:能之外,还具有以下几个好处:(1) 通过对象的复用性降低开发操作系统的难度。操通过对象的复用性降低开发操作系统的难度。操

30、作系统中所设计的各类对象在第一次设计和开发时,作系统中所设计的各类对象在第一次设计和开发时,经过了设计、编码、测试和在开发出来后的使用中经过了设计、编码、测试和在开发出来后的使用中得到了提高和改进。复用这些软件既可以节省开发得到了提高和改进。复用这些软件既可以节省开发成本,又能提高系统的可靠性。面向对象设计技术成本,又能提高系统的可靠性。面向对象设计技术的使用将会极大地降低操作系统的开发难度。的使用将会极大地降低操作系统的开发难度。(2) 系统将具有更好的可扩展性以及可维护性。由于系统将具有更好的可扩展性以及可维护性。由于面向对象技术的封装特性,对象和对象之间的边效面向对象技术的封装特性,对象

31、和对象之间的边效应很小。这有利于产品的升级维护和更新。更重要应很小。这有利于产品的升级维护和更新。更重要的是,对于新的应用对象,面向对象系统可以很方的是,对于新的应用对象,面向对象系统可以很方便地将其链接到一起。便地将其链接到一起。甘娘亥脑蛀铭句力致肾许粥循煮语腥笔佛汞葫壹鸯意讽涸矩归信蔑爱耻诗面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计(3) 方便设计和系统组织,因为面向对象的思想与概方便设计和系统组织,因为面向对象的思想与概念更接近于现实世界。念更接近于现实世界。操作系统中的对象是对

32、操作系统管理信息和资源的抽操作系统中的对象是对操作系统管理信息和资源的抽象。对象拥有自己的状态或存储空间,而且,其状象。对象拥有自己的状态或存储空间,而且,其状态也就是存储内容,只能由预定义好的操作来改变。态也就是存储内容,只能由预定义好的操作来改变。而改变对象状态的操作又需要其他对象发来相应的而改变对象状态的操作又需要其他对象发来相应的消息后才能被启动。因此,也可以认为操作系统中消息后才能被启动。因此,也可以认为操作系统中的对象是受某种手段保护的物体。正如前面提到过的对象是受某种手段保护的物体。正如前面提到过的,以对象为要素构成的系统被称为面向对象的系的,以对象为要素构成的系统被称为面向对象

33、的系统。那么,怎样使用面向对象技术来设计和开发操统。那么,怎样使用面向对象技术来设计和开发操作系统呢?与开发其他面向对象的系统一样,其关作系统呢?与开发其他面向对象的系统一样,其关键是如何根据设计要求和目标来定义和画分对象、键是如何根据设计要求和目标来定义和画分对象、对象之间的结构以及对象之间的通信方法。对象之间的结构以及对象之间的通信方法。掸增刨鸯斥币织挟织壤露犯呻酒董曳慑熟魏秽椭囊图揽瘪拂笨述余绘股竖面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计1. 对象的定义和对象结构对象的定义和对

34、象结构对象的画分和定义有两种基本方法。一种是像面向对对象的画分和定义有两种基本方法。一种是像面向对象的语言象的语言smalltalk或或CLU那样,把系统内的所有物那样,把系统内的所有物体看作对象。另一种方法则是除了系统内部定义的体看作对象。另一种方法则是除了系统内部定义的默认对象之外,只提供一个对象生成工具,由用户默认对象之外,只提供一个对象生成工具,由用户根据需要自定义对象或生成对象实例。根据需要自定义对象或生成对象实例。对于把所有物体都看作对象的方法来说,由于只在类对于把所有物体都看作对象的方法来说,由于只在类中描述生成一个对象实例用的信息和对一个对象实中描述生成一个对象实例用的信息和对

35、一个对象实例进行操作的方法,因此,在网络环境下实现时,例进行操作的方法,因此,在网络环境下实现时,如果超类、类、子类以及对象实例之间的依赖关系如果超类、类、子类以及对象实例之间的依赖关系不在同一主机中的话,其实现将会较为困难。不在同一主机中的话,其实现将会较为困难。央臃谩踞银弱剔牧兢炯争妇崇元籽良哉所坎绚眯勃惕范而静猜棒亲舵澈司面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计在操作系统中常使用的是第二种方法,即定义默认对在操作系统中常使用的是第二种方法,即定义默认对象和提供生成对象与对象实例

36、的工具。这样,在单象和提供生成对象与对象实例的工具。这样,在单机系统中,人们可以按照机系统中,人们可以按照smalltalk或或C+等面向对等面向对象语言的方法把系统内所有物体看作局部对象,而象语言的方法把系统内所有物体看作局部对象,而把网络环境下的对象看作广域对象且具有不同的类把网络环境下的对象看作广域对象且具有不同的类型,从而解决了网络环境下对象的继承性问题。型,从而解决了网络环境下对象的继承性问题。不同的系统中对象的定义各异。一般来说,对象应被不同的系统中对象的定义各异。一般来说,对象应被定义成一个寻址保护的基本单位,它包括三个部分,定义成一个寻址保护的基本单位,它包括三个部分,即即 对

37、象名,对象类型,对象状态对象名,对象类型,对象状态 其中对象名是对象的逻辑标识符,系统内的所有对象其中对象名是对象的逻辑标识符,系统内的所有对象名构成一个对象名空间。对象类型指明该对象所属名构成一个对象名空间。对象类型指明该对象所属的类和可允许的操作。对象状态是该对象所存储的的类和可允许的操作。对象状态是该对象所存储的数据集合和权能。数据集合和权能。镁装种詹缚惺荧瓤柒咋饭钢澎绢豹值墟扰息鹤妆足胖疤诛杜杰刀城券脯丢面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计在在Hydra系统中,系统默认定

38、义的对象类型有:进程、系统中,系统默认定义的对象类型有:进程、过程、页、信号量、过程、页、信号量、I/O设备、数据、策略、端口、设备、数据、策略、端口、文件、通用对象和类型对象等,其中类型对象用来文件、通用对象和类型对象等,其中类型对象用来创建一种新的对象类型。再者,系统定义有一创建一种新的对象类型。再者,系统定义有一creat语句来创建任一对象类型的实例。语句来创建任一对象类型的实例。为了管理的方便和利用面向对象的继承性特点,系统为了管理的方便和利用面向对象的继承性特点,系统中的对象都按照一定的规律构成一定的层次结构。中的对象都按照一定的规律构成一定的层次结构。例如,在例如,在Muse系统中

39、,其对象就分为超级对象系统中,其对象就分为超级对象(meta-object)和一般对象和一般对象(object)。其中超级对象。其中超级对象定义一般对象的内部结构,并为一般对象提供一个定义一般对象的内部结构,并为一般对象提供一个最佳执行环境。图最佳执行环境。图10.3给出了给出了Muse的对象结构概念的对象结构概念图。图。控莎玫旁缆病何包恤页照颖绕幻揩掘濒菌振卒慧贮黔众枯娇蝴俄趟农园到面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计图图10.3 对象结构示例对象结构示例妆峙处柄元越趋峭拎足违

40、颧陶何俭熏眠酌吨睦绕辣豺戈咬史菲霹泅苏性嗓面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计2. 过程和通信过程和通信定义了对象类型之后,还必须定义控制和操作对象实定义了对象类型之后,还必须定义控制和操作对象实例用的过程。对不同的对象实例来说,能改变其状例用的过程。对不同的对象实例来说,能改变其状态的过程是不同的。而且过程在系统中也被看作对态的过程是不同的。而且过程在系统中也被看作对象,它们具有自己的权能表和自己的执行域。另外,象,它们具有自己的权能表和自己的执行域。另外,由于同一过程可被不同

41、的进程对象调用,因此,过由于同一过程可被不同的进程对象调用,因此,过程对象的执行域不是固定的,过程对象的执行域在程对象的执行域不是固定的,过程对象的执行域在过程对象被调用时发生转换。过程对象被调用时发生转换。对象和对象之间通过互相发送消息来启动对方的过程对象和对象之间通过互相发送消息来启动对方的过程进行操作以改变它们的状态,对象不能在没有消息进行操作以改变它们的状态,对象不能在没有消息驱动的情况下自由地进行操作或修改自己的状态。驱动的情况下自由地进行操作或修改自己的状态。对象之间的通信方法可以大致上分为两种。一种是对象之间的通信方法可以大致上分为两种。一种是远程过程调用远程过程调用(RPC),

42、远程过程调用可完成网络环,远程过程调用可完成网络环境下的对象之间的消息传递工作。境下的对象之间的消息传递工作。宏养盏俭份得缮梆酵煞关炸搐细御纽蚊曰奔演伍苍喊化语咐郧朽宴婿捆椎面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计图图10.4给出了网络环境下对象之间互通消息时的通信给出了网络环境下对象之间互通消息时的通信顺序结构。顺序结构。在图在图10.4中,中,netname_look_up和和send是送信对象的是送信对象的过程;过程;port_allocate、netname_check_in

43、以及以及receive是接收对象的过程。是接收对象的过程。另外,在网络环境下传递消息时,由于通信对象之间另外,在网络环境下传递消息时,由于通信对象之间没有共同的物理存储器,因此,不依靠参照参数的没有共同的物理存储器,因此,不依靠参照参数的办法来实现过程调用。而且,由于通信对象双方是办法来实现过程调用。而且,由于通信对象双方是并行执行的,因此,必须考虑对象之间的同步因素。并行执行的,因此,必须考虑对象之间的同步因素。图图10.5 给出了一种最典型的给出了一种最典型的RPC处理流程。处理流程。穿群佩啸绳滤拍漾洼睛滩盗贫良鸣糕巷涟牛砂氨眺樟锻择蛾锁镍只碳佳漆面向对象操作系统的设计面向对象操作系统的设

44、计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计图图10.4 利用网络环境的通信结构利用网络环境的通信结构拙纯别徒权描漳谊孺诫乏攘虞蛊吨痢嘱第项恃犊漫凑芜瞎缴到迄丸滥强郸面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计图图10.5 RPC的处理过程的处理过程伍殊者冷俺痹玫赖雏聚问榜佳负祭倚娶蛋怂鸥潦蜗狱伶椅咐耳岳雾可庐苦面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向

45、对象操作系统的设计面向对象操作系统的设计在图在图10.5中,由于客户对象必须区分所发出的过程调中,由于客户对象必须区分所发出的过程调用是否是远程调用,因而设有远程过程区分模块用是否是远程调用,因而设有远程过程区分模块stub,该模块把远程过程调用的有关参数进行组包,该模块把远程过程调用的有关参数进行组包后作为消息交给消息发送模块发出,并把远程过程后作为消息交给消息发送模块发出,并把远程过程调用返回的结果值进行拆包后交给原调用部分。调用返回的结果值进行拆包后交给原调用部分。远程过程调用使得系统可以在网络环境中执行不同的远程过程调用使得系统可以在网络环境中执行不同的对象。但是,在网络环境中执行的对

46、象的寻址范围对象。但是,在网络环境中执行的对象的寻址范围必须是在该对象的地址空间内。换句话说,在一个必须是在该对象的地址空间内。换句话说,在一个对象的权能中没有描述的过程或对象,不可能依靠对象的权能中没有描述的过程或对象,不可能依靠远程过程调用得到执行。远程过程调用得到执行。第二种方式是共有存储器方式传递消息。这种方式与第二种方式是共有存储器方式传递消息。这种方式与前面章节中讲述进程通信时所述方法大致相同。前面章节中讲述进程通信时所述方法大致相同。接仗卜袍连犊市至蔡匡匆睫错框唱辖豹堵饼塑召预县使眩峻驼祈坊靖亦爬面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末

47、屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计3. 进程和资源的关系进程和资源的关系在操作系统中,进程是动态的,而资源是静态的。无在操作系统中,进程是动态的,而资源是静态的。无论是传统操作系统设计方法,还是使用面向对象设论是传统操作系统设计方法,还是使用面向对象设计,都会涉及到如何为进程分配资源的问题。在传计,都会涉及到如何为进程分配资源的问题。在传统设计方法中,进程获得资源是通过系统调用(例统设计方法中,进程获得资源是通过系统调用(例如文件资源等)或过程调用(例如缓冲分配)等方如文件资源等)或过程调用(例如缓冲分配)等方法。法。在面向对象设计的操作系统中,进程和资源之间

48、的调在面向对象设计的操作系统中,进程和资源之间的调用关系是通过对象之间互相发送消息进行消息通信用关系是通过对象之间互相发送消息进行消息通信实现的。而这些消息的发送和接收又要依赖于对象实现的。而这些消息的发送和接收又要依赖于对象中所包含的过程来实现。中所包含的过程来实现。图图10.6给出了给出了Windows NT系统中使用的进程对象与系统中使用的进程对象与资源的关系。资源的关系。津恢节绩祥有染友董哎碗莆怕剁壬瞎沧迢缉远袒庚师敷鲤充饰怯检饼林侣面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计图

49、图10.6 NT进程对象与资源进程对象与资源踪沥赛甫鸽剿亲形都鹃溅茸庄刃铲袭疡祝劝荷丧尿诞皱滓询羔兵彬笔俱赘面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计如图如图10.6所示,所示,NT用户必须首先通过访问托肯用户必须首先通过访问托肯(Token)对象检验其身份的合法性之后才能有权)对象检验其身份的合法性之后才能有权创建相应的进程对象。进程对象的属性中包含有与创建相应的进程对象。进程对象的属性中包含有与它相关联对象指针的对象表,包括线程、文件以及它相关联对象指针的对象表,包括线程、文件以及

50、内存分区等。这里,线程、文件以及分区都可以是内存分区等。这里,线程、文件以及分区都可以是多于一个的。多于一个的。虚存空间管理对象将给进程对象分配相应的地址空间虚存空间管理对象将给进程对象分配相应的地址空间结构。进程自身不能修改这些数据结构。结构。进程自身不能修改这些数据结构。进程对象可以通过对象表访问其他对象。进程对象可以通过对象表访问其他对象。俺儒请隐镑导沛琉蛤男窜债笑足搭铲备寅亩党孙导奇考链剐肺睹何砸檄映面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计4. NT进程对象和线程对象进程对象

51、和线程对象NT的进程对象和线程对象如图的进程对象和线程对象如图10.7所示。所示。其中,进程号与线程号分别表示进程和线程的识别符,其中,进程号与线程号分别表示进程和线程的识别符,它们在系统中是唯一的。安全性描述则指出是谁创它们在系统中是唯一的。安全性描述则指出是谁创建该进程对象,以及谁可以访问或使用该对象。建该进程对象,以及谁可以访问或使用该对象。进程基本优先级是为进程中不同线程设置的,而线程进程基本优先级是为进程中不同线程设置的,而线程的动态优先级和静态优先级则分别指线程在执行过的动态优先级和静态优先级则分别指线程在执行过程中的优先级和线程动态优先级的下限。程中的优先级和线程动态优先级的下限

52、。线程上下文指相关寄存器中的值和那些定义线程执行线程上下文指相关寄存器中的值和那些定义线程执行状态的数据结构。状态的数据结构。默认处理器个数指线程可以同时执行的处理器个数。默认处理器个数指线程可以同时执行的处理器个数。最大资源限制指系统内存量、文件空间大小以及用户最大资源限制指系统内存量、文件空间大小以及用户进程可以使用的处理机时间。进程可以使用的处理机时间。也辜油键炭鸦幂签抒荐钦握诚踏桔吭柱撩茅傈雍向鼠亿禹药宣燃拎改位嫂面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计图图10.7 Wind

53、ows NT进程进程与线程对象描述与线程对象描述栈颊付亲焕本萧缘嫂笛谓威江灶婴焚肉漳凭窟购形占脑牺吾淡价瓶龚奸烁面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计进程的执行时间指该进程中所有线程的已执行时间之进程的执行时间指该进程中所有线程的已执行时间之和,而线程的执行时间则是线程在用户态和核心态和,而线程的执行时间则是线程在用户态和核心态两种执行模式下占有处理机的时间之和。两种执行模式下占有处理机的时间之和。I/O计数器和虚存操作计数器分别记录进程中各线程计数器和虚存操作计数器分别记录进程中

54、各线程对不同类型的对不同类型的I/O设备以及虚存进行操作的变量。设备以及虚存进行操作的变量。进程的断点则提供不同进程之间进行通信的通道。进程的断点则提供不同进程之间进行通信的通道。线程的异步调用标识指出该线程是否在进行异步过程线程的异步调用标识指出该线程是否在进行异步过程调用。线程的挂起数表示该线程未被恢复的挂起次调用。线程的挂起数表示该线程未被恢复的挂起次数。线程访问控制允许该线程暂时访问其他进程。数。线程访问控制允许该线程暂时访问其他进程。线程的结束断点也是为进程间通信预备的通道。进程线程的结束断点也是为进程间通信预备的通道。进程管理程序可通过该通道控制线程结束。管理程序可通过该通道控制线

55、程结束。进程和线程的结束状态则分别给出进程和线程终止的进程和线程的结束状态则分别给出进程和线程终止的理由。理由。瞪拴钟示宋幌姆堡饶蝉谎孪揪卸晨咎窃窖壬嵌绞综杨唇怀馒屉舟殖誊倘姑面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计10.3 面向对象操作系统的分类面向对象操作系统的分类面向对象的操作系统首先是为了保护公有资源而开发面向对象的操作系统首先是为了保护公有资源而开发的。自的。自20世纪世纪80年代初期第一个面向对象的操作系年代初期第一个面向对象的操作系统统Hydra开发成功以来,人们开发出

56、了许多不同种开发成功以来,人们开发出了许多不同种类的面向对象的操作系统。这些系统具有一个共同类的面向对象的操作系统。这些系统具有一个共同特点,就是无论何种对象,都可被看作是受保护的特点,就是无论何种对象,都可被看作是受保护的基本单位。因此,面向对象的系统具有比面向进程基本单位。因此,面向对象的系统具有比面向进程的系统更为广泛的意义,因为进程只是一种类型的的系统更为广泛的意义,因为进程只是一种类型的对象,且面向进程的系统只有在系统执行过程中才对象,且面向进程的系统只有在系统执行过程中才对有关资源提供保护。下面,根据面向对象的操作对有关资源提供保护。下面,根据面向对象的操作系统所提供保护的范围来对

57、现有面向对象的操作系系统所提供保护的范围来对现有面向对象的操作系统进行一个简单的归类。统进行一个简单的归类。淀喳佑敛项起澎稍费煮疑坞棋牌帖镊港模辕梨位掉弓嘲瓢脸侣拟铂勘祝骂面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计面向对象的操作系统可以分为三类,即数据受保护的面向对象的操作系统可以分为三类,即数据受保护的系统、数据和过程受保护的系统以及数据、过程和系统、数据和过程受保护的系统以及数据、过程和处理器受保护的系统。处理器受保护的系统。数据受保护的系统指把执行时必需的状态数据和管理数据受保护

58、的系统指把执行时必需的状态数据和管理用数据定义为对象加以保护的系统。这些被保护的用数据定义为对象加以保护的系统。这些被保护的数据可以是进程控制表、设备控制表、页表等。在数据可以是进程控制表、设备控制表、页表等。在数据受保护的系统中,对对象进行操作的过程是另数据受保护的系统中,对对象进行操作的过程是另外定义的。外定义的。数据和过程同时受保护的系统指那些对象中包括数据数据和过程同时受保护的系统指那些对象中包括数据以及对这些数据进行操作的过程的系统。不过,执以及对这些数据进行操作的过程的系统。不过,执行这些过程进行有关操作的处理器未包括在对象中。行这些过程进行有关操作的处理器未包括在对象中。数据、过

59、程和处理器同时受保护的对象是指那些本数据、过程和处理器同时受保护的对象是指那些本身具有执行能力的对象。身具有执行能力的对象。惠甚悔嗓创醋获剖赡颜目琉搭蛛味玩锌琴贸御牌彻棍来迄炮扶键逢咸署后面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计1. 数据受保护的系统数据受保护的系统数据受保护的系统的典型例子是数据受保护的系统的典型例子是Hydra。由于加强了。由于加强了数据保护,数据保护,Hydra将操作系统的功能作为一般用户将操作系统的功能作为一般用户程序程序(对象对象)来实现。在来实现。在Hyd

60、ra系统中,各种状态数系统中,各种状态数据和资源管理数据都被定义成对象且都具有进行访据和资源管理数据都被定义成对象且都具有进行访问控制的权能表。问控制的权能表。在在Hydra系统中,对象由具有唯一性的对象名、对象系统中,对象由具有唯一性的对象名、对象类型以及数据部分和权能表组成。对象名由用户指类型以及数据部分和权能表组成。对象名由用户指定,对象类型除了设备、文件、目录、过程、进程、定,对象类型除了设备、文件、目录、过程、进程、信号量等之外,还有用户用来生成新对象类型用的信号量等之外,还有用户用来生成新对象类型用的类型对象。权能表则是由该对象可以访问的对象名类型对象。权能表则是由该对象可以访问的

61、对象名及操作权限组成。及操作权限组成。履晰蝴稚悯爆共却跨癸谁砌佰楞廊会荡象锻遮撰椿硬獭分蝉仁防旭蛰品皑面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计尽管在尽管在Hydra中过程也被看作对象而受到保护,但由中过程也被看作对象而受到保护,但由于并不属于某个对象或某个对象类于并不属于某个对象或某个对象类(即即Hydra的对的对象中不包括操作数据的过程象中不包括操作数据的过程),因此,仍把,因此,仍把Hydra看作只是数据受保护的系统。看作只是数据受保护的系统。壤驻厘兵雄颜昂憋云酿九斥八步沤茬搐试

62、丰人怒除擒秸些童摊偷航柄绥肯面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计2. 数据和过程受保护的系统数据和过程受保护的系统数据和过程一体化的对象中,过程是作为对象的内部数据和过程一体化的对象中,过程是作为对象的内部过程存在的。不过,在这样的系统中,对象仍然是过程存在的。不过,在这样的系统中,对象仍然是静态的和被动的,过程由非对象的处理器执行。过静态的和被动的,过程由非对象的处理器执行。过程的执行有静态链接执行和动态链接执行两种方法。程的执行有静态链接执行和动态链接执行两种方法。特别是动态

63、链接执行涉及到如何动态地进行对象选特别是动态链接执行涉及到如何动态地进行对象选择和切换,比起将过程作为单独对象的方法来说要择和切换,比起将过程作为单独对象的方法来说要复杂得多。复杂得多。将对象和处理器分开考虑的模型被称为将对象和处理器分开考虑的模型被称为“对象线程模对象线程模型型” ,这里线程代表处理器,它只拥有状态信息和,这里线程代表处理器,它只拥有状态信息和堆栈等所必需的最小限度的上下文,操作系统由提堆栈等所必需的最小限度的上下文,操作系统由提供地址空间、过程的对象以及在该地址空间上执行供地址空间、过程的对象以及在该地址空间上执行有关过程的能动部分线程构成。在这样的系统中,有关过程的能动部

64、分线程构成。在这样的系统中,对象间的通信靠过程调用或远程过程调用完成。对象间的通信靠过程调用或远程过程调用完成。譬咙俏实惜即哗趁聪檬契丙际霍赊侮拓佬仿掷裂巨蜒园高巡葫锗参石疯钱面向对象操作系统的设计面向对象操作系统的设计朝巴沾娶跃蹿幂娇扎峻缸瘦钡绚枣挂挠吗优末屡孽阔哮妨裴聋瓜媚龄菊嘲面向对象操作系统的设计面向对象操作系统的设计3. 数据、过程和处理器受保护的系统数据、过程和处理器受保护的系统数据、过程和处理器三者都受保护的系统被称为动态数据、过程和处理器三者都受保护的系统被称为动态对象模型对象模型(active object model)系统。在这样的系系统。在这样的系统中,对象包括了数据、过

65、程以及执行这些过程的统中,对象包括了数据、过程以及执行这些过程的处理器。对象之间的通信要依靠事先规定的协议来处理器。对象之间的通信要依靠事先规定的协议来进行。再者,对象内的处理器除了完成一般操作之进行。再者,对象内的处理器除了完成一般操作之外,还负责管理对象内部的资源。外,还负责管理对象内部的资源。以动态对象为基础,有的系统还在对象中定义原语、以动态对象为基础,有的系统还在对象中定义原语、进程、并发等控制机制以提高系统的可靠性。进程、并发等控制机制以提高系统的可靠性。动态对象模型的最一般的实现方法是在通常的进程上动态对象模型的最一般的实现方法是在通常的进程上建立一个面向对象的环境。这样,对象的动态性质建立一个面向对象的环境。这样,对象的动态性质可由进程得到,而对象间的通信则可由进程间的通可由进程得到,而对象间的通信则可由进程间的通信完成。信完成。辉裸寿烽女哎拍店默她胸撵舒零遂掂盏净驳觅忙森阵碘爵扫迟笺鞭兵锻虫面向对象操作系统的设计面向对象操作系统的设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号