清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 第10章面向对象操作系统的设计 101面向对象的基本概念 102面向对象和操作系统 10.3面向对象操作系统的分类
第10章 面向对象操作系统的设计 10.1 面向对象的基本概念 10.2 面向对象和操作系统 10.3 面向对象操作系统的分类
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 10.1面向对象的基本概念 “面向对象”或“对象”的概念起源于20世纪60年 代末期。进入80年代以后,随着计算机软、硬件技 术的发展,面向对象技术在数据库、程序设计语言 CAD/CAM、人工智能技术、程序设计以及操作系 统和计算机网络通信等几乎所有的软件领域都受到 了极大重视和广泛研究。特别是在操作系统领域中, 由于面向对象技术除了在设计方法上更接近于设计 人员脑子中的“思维形象”之外,它还具有隐蔽数 据以及由消息激活对象等特性,从而它比传统技术 更容易应用于分布式操作系统的设计与实现。因此, 许多面向对象的操作系统都正在被研究和开发,以 便用作分布式网络操作系统
10.1 面向对象的基本概念 “面向对象”或“对象”的概念起源于20世纪60年 代末期。进入80年代以后,随着计算机软、硬件技 术的发展,面向对象技术在数据库、程序设计语言、 CAD/CAM、人工智能技术、程序设计以及操作系 统和计算机网络通信等几乎所有的软件领域都受到 了极大重视和广泛研究。特别是在操作系统领域中, 由于面向对象技术除了在设计方法上更接近于设计 人员脑子中的“思维形象”之外,它还具有隐蔽数 据以及由消息激活对象等特性,从而它比传统技术 更容易应用于分布式操作系统的设计与实现。因此, 许多面向对象的操作系统都正在被研究和开发,以 便用作分布式网络操作系统
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 例如 WindOws nt, Solaris2x和 mache等。这些系统 的共同特点是:使用面向对象技术设计和实现操作 系统,从而使得所实现的操作系统能够管理一个超 大规模的、开放式的、自我发展的以及分布式的计 算环境。这里,首先介绍面向对象的基本概念
例如Windows NT,Solaris 2.x和mache等。这些系统 的共同特点是:使用面向对象技术设计和实现操作 系统,从而使得所实现的操作系统能够管理一个超 大规模的、开放式的、自我发展的以及分布式的计 算环境。这里,首先介绍面向对象的基本概念
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 1.对象和面向对象 对象可分为物理对象、抽象对象和计算机对象三个 层次。计算机对象是把抽象对象的属性、特征和行 为数据化和过程化的结果。本书中所述对象都指计 算机对象。 对象是一个由一组数据集以及对这些数据集进行操 作的封装模块。对象接收其他对象发来的消息,并 由对象自己根据本身的状态和所具有的功能决定是 否根据接收到的消息进行操作。另外,对象一般具 有自己的存储结构,对存储内容的访问、操作和变 更只能由对象自己完成。再者,为了区别不同的对 象,系统内的每一个对象都具有唯一的对象名。因 此,一般,一个对象由对象名、表示存储内容的对 象状态以及对存储数据进行操作的过程集合组成
1. 对象和面向对象 对象可分为物理对象、抽象对象和计算机对象三个 层次。计算机对象是把抽象对象的属性、特征和行 为数据化和过程化的结果。本书中所述对象都指计 算机对象。 对象是一个由一组数据集以及对这些数据集进行操 作的封装模块。对象接收其他对象发来的消息,并 由对象自己根据本身的状态和所具有的功能决定是 否根据接收到的消息进行操作。另外,对象一般具 有自己的存储结构,对存储内容的访问、操作和变 更只能由对象自己完成。再者,为了区别不同的对 象,系统内的每一个对象都具有唯一的对象名。因 此,一般,一个对象由对象名、表示存储内容的对 象状态以及对存储数据进行操作的过程集合组成
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 把系统以及系统中的元素用对象及对象的集合表示 来构造的系统就是面向对象的系统 面向对象的系统具有两个重要特性,即封闭性 ( encapsulation)和继承性( inheritance)封闭性对应 于系统中对象的分类抽象化,即每一种类型的对象 都定义有对该类对象的属性及操作方法,且只允许 按定义的方法对该类对象进行操作。换句话说, 种类型对象的动态性质封闭于该类对象的属性和方 法之中。继承性对应于系统的一般化,即具有某些 共同属性的对象所组成的类( class)可继承它们的超 类 superclass)所具有的属性和操作
把系统以及系统中的元素用对象及对象的集合表示 来构造的系统就是面向对象的系统。 面向对象的系统具有两个重要特性,即封闭性 (encapsulation)和继承性(inheritance)。封闭性对应 于系统中对象的分类抽象化,即每一种类型的对象 都定义有对该类对象的属性及操作方法,且只允许 按定义的方法对该类对象进行操作。换句话说,一 种类型对象的动态性质封闭于该类对象的属性和方 法之中。继承性对应于系统的一般化,即具有某些 共同属性的对象所组成的类(class)可继承它们的超 类(superclass)所具有的属性和操作
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 2.对象的动作 被激活的对象在系统中怎样动作呢?一个面向对象 的系统应具备以下两种功能:第一,向其他对象发 送消息。这是对象间相互通信的唯一手段。第二, 能生成或创建新的对象。这是用对象来描述系统变 化所必须的手段。 3.消息 面向对象的系统中环境对某一对象发出消息以激活 该对象,从而通知它需要做什么。消息中一般包含 请求对象的标识符以及完成该工作所必需的信息, 例如参数值等。另外,请求对象的对象名也可包含 在消息中
2. 对象的动作 被激活的对象在系统中怎样动作呢?一个面向对象 的系统应具备以下两种功能:第一,向其他对象发 送消息。这是对象间相互通信的唯一手段。第二, 能生成或创建新的对象。这是用对象来描述系统变 化所必须的手段。 3. 消息 面向对象的系统中环境对某一对象发出消息以激活 该对象,从而通知它需要做什么。消息中一般包含 请求对象的标识符以及完成该工作所必需的信息, 例如参数值等。另外,请求对象的对象名也可包含 在消息中
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 4.类和实例 具有相同属性和行为的对象集合称为类。换句话说, 属于同一类中的对象具有相同的存储结构,使用相 同的过程集合对数据进行操作。每一个类都具有 个反映其特征的型(type),型提供选择和区分对象 操作的依据。 类也可以被看作是对象,而且,类具有分层构造特 点,即从具有共同属性和行为特征的对象的集合中, 可进一步抽出具有某些特殊属性或行为特征的对象 构成该类的子类;而该类又是该子类的超类。这些 超类、类、子类等构成类的层次结构,子类继承其 所有高层超类的属性和行为特征,但反过来,超类 或类不具有子类所具有的独特的属性与行为特征
4. 类和实例 具有相同属性和行为的对象集合称为类。换句话说, 属于同一类中的对象具有相同的存储结构,使用相 同的过程集合对数据进行操作。每一个类都具有一 个反映其特征的型(type),型提供选择和区分对象 操作的依据。 类也可以被看作是对象,而且,类具有分层构造特 点,即从具有共同属性和行为特征的对象的集合中, 可进一步抽出具有某些特殊属性或行为特征的对象 构成该类的子类;而该类又是该子类的超类。这些 超类、类、子类等构成类的层次结构,子类继承其 所有高层超类的属性和行为特征,但反过来,超类 或类不具有子类所具有的独特的属性与行为特征
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 个类中的对象即是该类的一个实例,实例具体描 述一个对象。一般来说,一个类中有多个实例。类 和实例的关系近似于数据结构与具体数据的关系。 5.过程或方法 过程或方法是定义于某一特定类的操作与法则。 种类型的对象只能被事先定义好的过程或方法所操 作。不过,不同类型的对象可以分别包含同一过程 或方法。例如,在实数子类和二进制数子类中定义 “+”法,则实数子类中的对象和二进制数子类中的 对象都可使用该方法改变自身的状态。显然,对于 同一消息(1,1),实数子类的输出结果是2,而二 进制子类的输出结果将是0。 关于对象的几个主要关键词如图10.所示
一个类中的对象即是该类的一个实例,实例具体描 述一个对象。一般来说,一个类中有多个实例。类 和实例的关系近似于数据结构与具体数据的关系。 5. 过程或方法 过程或方法是定义于某一特定类的操作与法则。一 种类型的对象只能被事先定义好的过程或方法所操 作。不过,不同类型的对象可以分别包含同一过程 或方法。例如,在实数子类和二进制数子类中定义 “+”法,则实数子类中的对象和二进制数子类中的 对象都可使用该方法改变自身的状态。显然,对于 同一消息(1,1),实数子类的输出结果是2,而二 进制子类的输出结果将是0。 关于对象的几个主要关键词如图10.1所示
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 关键词 基本定义 对象由数据和过程构成的实际世界中实体的抽象。 对象类具有相同属性和动作行为的对象集合 对象实例类中的一个具体对象其届性被赋予具体值。 属性 对象中所包含的数据变量 过程(服务)对对象进行操作的函数。 封装实例的属性和行为的封闭。封装后的属性只能被对象名调用;封装后的属性只能被过程访间闰。 包含 两个实例之间的一种关系,包含对象与被包含对象之间用指针链接。 图101关于面向对象技术的几个关键词
图10.1 关于面向对象技术的几个关键词
清华大学出版社 000000 TSINGHUA UNIVERSITY PRESS 10.2面向对象和操作系统 本节主要讲述为什么要把面向对象技术引入操作系 统和怎样用面向对象技术开发操作系统。 1021面向对象技术的引入 面向对象技术最初在操作系统中出现是在20世纪60 年代后期, J. Dennis等从资源保护的角度出发提出 了权能( capability)的概念,权能的概念也是造成面 向对象概念产生的重要因素之一
10.2 面向对象和操作系统 本节主要讲述为什么要把面向对象技术引入操作系 统和怎样用面向对象技术开发操作系统。 10.2.1 面向对象技术的引入 面向对象技术最初在操作系统中出现是在20世纪60 年代后期,J. Dennis等从资源保护的角度出发提出 了权能(capability)的概念,权能的概念也是造成面 向对象概念产生的重要因素之一