学习笔记02-系统架构设计师

status
Published
slug
learnnote-02-system-architechture-designer
type
Post
category
Technology
date
Apr 6, 2025
tags
笔记
系统架构设计师
summary
《系统架构设计师教程》第1章的学习笔记

第2章 计算机系统基础知识

计算机系统概述

  • 计算机系统(Computer System)是指用于数据管理的计算机硬件、软件及网络组成的系统
    • 计算机系统一般指由硬件子系统和软件子系统组成的系统,简称为计算机
      • 硬件由机械、电子元器件、磁介质和光介质等物理实体构成
        • 例如处理器、存储器、输入输出设备等
      • 软件是一系列按照特定顺序组织的数据和指令,并控制硬件完成指定的功能
        • 计算机软件可分为系统软件和应用软件
          • 系统软件:支持应用软件的运行,为用户开发应用软件提供平台支撑的软件
            • 如:操作系统、编译工具
          • 应用软件:指计算机用户利用计算机的软、硬件资源为某一专门的应用目的而开发的软件
            • 如:办公软件、娱乐软件
    • 连接多个计算机以实现计算机间数据交换能力的网络设备,称为计算机网络,简称网络
  • 计算机系统的分类:
    • notion image
💡
《系统架构设计师教程》的学习笔记,主要记录了阅读书籍过程中的相关知识点
  • 本文为第2章的内容,概念繁多,仅记录重点

计算机硬件

  • 计算机组成结构源于冯·诺依曼计算机结构(现代计算机系统发展的基础),其将计算机硬件划分为5部分:
    • 运算器、控制器、存储器、输入设备、输出设备
    • 现实的硬件构成
      • 控制单元和运算单元被集成为一体,封装为通常意义上的处理器
      • 输入设备和输出设备则经常被设计者集成为一体,按照传输过程被划分为总线、 接口外部设备
  • 处理器(Central Processing Unit,CPU):计算机系统运算和控制的核心部件
    • 指令集按照复杂程度分为复杂指令集(CISC)和精简指令集(RISC)
      • CISC 以Intel、AMD的x86CPU 为代表
      • RISC 以ARM和 Power为代表。
    • 典型的处理器体系结构示意图
      • notion image
        解释:
        • 指令部件通过MMU-Cache 的存储结构,从内存等存储设备中取得相应的软 件代码指令并完成译码和控制操作,控制存取部件从存储设备中取得新的数据,控制寄存器组为运算器准备有关寄存器数据,并准备好结果寄存器,控制整型、浮点、向量等运算部件开展运算。运算部件、寄存器单元、存取部件将执行结果通知完成部件,并在完成部件中完成结果的排队,由完成部件向指令部件反馈执行结果,控制指令的顺序执行、跳转等时序
    • 专用目的的处理器芯片:
      • 图形处理器GPU:一种特殊类型的处理器,具有数百或数千个内核,经过优化可并行运行大量计算,在深度学习和机器学习领域得到了广泛应用。
      • 信号处理器DSP:专用于实时的数字信号处理,通过采用饱和算法处理溢出问题,通过乘积累加运算提高矩阵运算的效率,以及为傅里叶变换设计专用指令等方法,在各类高速信号采集的设备中得到广泛应用。
      • 现场可编程逻辑门阵列FPGA
  • 存储器(Memory):利用半导体、磁、光等介质制成用于存储数据的电子设备
    • 存储器采用分层体系,按照与处理器的物理距离可以分为4个层次
      • 片上缓存:在处理器核心中直接集成的缓存,一般为SRAM结构,实现数据的快速读取
        • 容量较小,一般为16kB~512kB, 按照不同的设计可能划分为一级或二级
      • 片外缓存:在处理器核心外的缓存,需要经过交换互联开关访问,一般也由SRAM构成
        • 容量较片上缓存大,可以为256kB~4MB。 按照层级被称为 L2Cache或 L3Cache,或者称为平台 Cache(PlatformCache)
      • 主存(内存):通常采用DRAM结构,以独立的部件/芯片存在,通过总线与处理器连接。
        • DRAM依赖不断充电维持其中的数据,,容量在数百M B 至数十G B 之间。
      • 外存:可以是磁带、磁盘、光盘和各类Flash等介质器件,设备访问速度慢,但容量大,在掉电后能够保持其数据(但不是永久性,存在一定的年限)
        • Nor Flash容量一般在MB级别
        • 磁盘容量在GB和TB级别
  • 总线(Bus):指计算机部件间遵循某一特定协议实现数据交换的形式,以一种特定格式按照规定的控制逻辑实现部件间的数据传输
    • 根据总线在计算机中所处的位置划分为
      • 内总线:用于各类芯片的内部互连,也可称为片上总线 (On-Chip Bus) 或片内总线。
      • 系统总线:指计算机中CPU、主存、I/O接口的总线
        • 随着多总线结构的发展,系统总线的含义发生了变化
          • 狭义的系统总线为CPU与主存、通信桥连接的总线
          • 广义上系统总线还应包括计算机系统内,经由系统总线再次级联的总线(称为局部总线)
      • 外部总线:计算机板与外部设备之间,或计算机系统之间互联的总线,又称为通信总线
    • 桥(Bridge):总线之间通过桥实现连接,主要实现总线协议间的转换
    • 常见的性能指标:总线带宽、服务质量Qos、总线时延、总线抖动等
    • 种类划分:
      • 常见类型
        • 并行总线:PCI、PCle和ATA(IDE)
        • 串行总线:USB、SATA、CAN、RS-232、RS-485、RapidIO和以太网等
      • 专业领域划分:
        • 航空领域:ARINC429、ARINC659、ARINC664和 MIL-STD-1553B 等
        • 工业控制领域:CAN、IEEE1394、PCI、PCle和VME等
  • 接口:指同一计算机不同功能层之间的通信规则
    • 类型
      • 显示类接口 (HDMI、DVI 和 DVI等)
      • 音频输入输出类接口 (TRS、RCA、XLR等)
      • 网络类接口(RJ45、FC等)
      • PS/2接口
      • USB接口
      • SATA接口
      • LPT打印接口
      • RS-232 接口
    • 一种总线可能存在多种接口,总线通过接口实现连接
  • 外部设备:也称为外围设备,是计算机的非必要设备,包括所有的输入输出设备以及部分存储设备(外存)。
    • 通过接口实现与计算机主体的连接,并通过指令、数据实现预期的功能
    • 常见的类型:键盘、鼠标、显示器、扫描仪、摄像头、麦克风、打印机、光驱、各型网卡和各型存储卡/盘等
    • 在移动和穿戴设备中,常见的包括加速计、 GPS、 陀螺仪、感光设备和指纹识别设备等
    • 在工业控制、航空航天和医疗等领域,常见的有测温仪、测速仪、轨迹球、各型操作面板、红外/NFC等感应设备、各种场强测量设备、功率驱动装置、各型机械臂、各型液压装置、油门杆和驾驶杆,等等

计算机软件

  • 定义:计算机软件是指计算机系统中的程序及其文档,是计算任务的处理对象和处理规则的描述
    • 计算任务:任何以计算机为处理工具的任务都是计算任务
    • 处理对象:数据((如数字、文字、图形、图像和声音等,只是表示无含义)或信息(数据及有关的含义)
    • 处理规则:一般指处理的动作和步骤
    • 文档是为了便于了解程序所需的阐述性资料
  • 软件系统:指计算机硬件系统上运行的程序、相关的文档资料和数据的集合
    • 计算机软件用来扩充计算机系统的功能,提高计算机系统的效率
    • 按照软件所起的作用和需要的运行环境的不同,通常将计算机软件分为系统软件和应用软件两大类
      • 系统软件:为整个计算机系统配置的不依赖特定应用领域的通用软件
        • 对计算机系统的硬件和软件资源进行控制和管理,并为用户使用和其他应用软件的运行提供服务
        • 根据功能的不同,划分为:操作系统、程序设计语言翻译系统、数据库管理系统和网络软件
      • 应用软件:是指为某类应用需要或解决某个特定问题而设计的软件
        • 如图形图像处理软件、财务软件、游戏软件和各种软件包等

操作系统

  • 定义:操作系统是计算机系统的资源管理者, 包含对系统软、硬件资源实施管理的一组程序,首要作用是通过CPU管理、存储管理、设备管理和文件管理对各种资源进行合理地分配,改善资源的共享和利用成都,最大限度地发挥计算机系统的工作效率,提高计算机系统在单位时间内处理工作的能力
  • 地位:是配置在计算机硬件上的第1层软件,它向下管理裸机及其中的文件,向上为其他的系统软件(汇编程序、编译程序、数据库管理系统等)和大量应用软件提供支持,以及为用户提供方便使用系统的接口
  • 组成:由操作系统内核和其他许多附加的配套软件所组成,包括图形用户界面程序、常用的应用程序(如日历、计算器、资源管理器和网络浏览器等)、实用程序(任务管理器、磁盘清理程序、杀毒软件和防火墙等)以及为支持应用软件开发和运行的各种软件构件(如应用框架、编译器和程序库等)。
    • 操作系统内核:指的是能提供进程管理(任务管理)、存储管理、文件管理和设备管理等功能的软件模块
      • 操作系统重最基本的部分,用于为众多应用程序访问计算机硬件提供服务
      • 内核通常驻留在内存中,以CPU的最高优先级运行,能执行指令系统中的特权指令,具有直接访问各种外设和全部主存空间的特权,负责对系统资源进行管理和分配。
  • 作用:
      1. 管理计算机中运行的程序和分配各种软硬件资源。
          • 资源管理功能主要包括处理器管理、存储管理、文件管理、 I/O 设备管理等几个方面
      1. 为用户提供友善的人机界面。
          • 操作系统向用户提供图形用户界面 (GUI),用户可以通过鼠标、触屏等输入指令,使用户能够比较直观、灵活、有效地使用计算机。
      1. 为应用程序的开发和运行提供一个高效率的平台。
          • 操作系统屏蔽了几乎所有物理设备的技术细节,它以规范、高效的方式(例如系统调用、库函数等)向应用程序提供了有力的支持,为开发和运行其他系统软件及各种应用软件提供了一个平台
    • 还具有辅导用户操作(帮助功能)、处理软硬件错误、监控系统性能、保护系统安全等许多作用
  • 特征:
    • 并发性:多个程序同事运行
    • 共享性:操作系统的资源可以被多个并发的进程/线程同时使用
    • 虚拟性:操作系统的管理技术,将硬件实体虚拟化
    • 不确定性:多个进程并发执行,因此各个进程的执行状况不可预知,不确定,程序执行结果可能不唯一。
  • 分类:
    • 批处理操作系统:分为单道批处理和多道批处理
      • 单道批处理:一次只有一个作业装入内存执行,当一个作业运行结束后,随即自动调入同批的下一个作业,从而节省了作业之间的人工干预时间
        • 作业由用户程序、数据和作业说明书(作业控制语言)组成
      • 多道批处理:允许多个作业装入内执行,每当运行中的一个作业由于输入/输出操作需要调用外部设备时,就把CPU交给另一个等待运行的作业,从而将主机与外部设备的工作由串行改变为并行
        • 3个特点:多道、宏观上并行运行和微观上串行运行。
    • 分时操作系统:一个计算机系统与多个终端设备连接,分时操作系统将CPU的工作时间划分为许多时间片,轮流为各个终端的用户服务
      • 操作系统每次对用户程序都能做出及时响应
      • 4个特点:多路性、独立性、交互性和实时性
    • 实时操作系统:实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。对于可靠性的要求比较高
      • 实时系统分为实时控制系统和实时信息处理系统
        • 实时控制系统:主要用于生产过程中的自动控制,例如数据自动采集、武器控制、火炮自动控制、飞机自动驾驶和导弹的制导系统等
        • 实时信息处理系统:主要用于实时信息处理,例如订票系统、情报检索系统
    • 网络操作系统:使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务软件和有关协议的集合
      • 功能:
        • 包括高效、可靠的网络通信
        • 对网络中共享资源的有效管理
        • 提供电子邮件、文件传输、共享硬盘和打印机等服务
        • 网络安全管理
        • 提供互操作能力
      • 特点:
        • 硬件独立性:网络操作系统可以运行在不同的网络硬件上,通过网桥或路由器与其他网络连接
        • 多用户支持:能同时支持多个用户对网络的访问,应对信息资源提供完全的安全和保护功能
    • 分布式操作系统:由多个分散的计算机经连接而成的计算机系统,无主次之分,任意两台计算机可以通过通信交换信息,为为分布式计算机系统配置的操作系统称为分布式操作系统。
      • 分布式操作系统能直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输协调工作,并为用户提供一个统一的界面与标准接口
      • 用户通过统一的界面实现操作和使用系统资源,使系统中若干台计算机相互协作完成共同的任务,有效地控制和协调诸任务的并行执行
      • 特定:保持网络系统的全部功能,同时具有透明性、可靠性和高性能
    • 微型计算机操作系统:微型计算机操作系统,如Windows/Linux/Mac OS
    • 嵌入式操作系统:运行在嵌入式智能设备幻境中,对整个智能阴间以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制
      • 特点:
        • 微型化:从性能和成本考虑,要求占用资源和系统代码量少
        • 可定制:从减少成本和缩短研发周期考虑,要求能运行在不同微处理器平台,能针对硬件变化进行结构和功能上的配置,以满足不同应用需要
        • 实时性:嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,实时性要求较高
        • 可靠性:要提供容错和防故障措施
        • 易移植性:为了提高系统的易移植性,通常采用硬件抽象层 (Hardware Abstraction Level,HAL) 和板级支撑包 (Board Support Package,BSP) 的底层设计技术。
      • 常见的嵌入式实时操作系统有VxWorks、μClinux、PalmOS、WindowsCE、μC/OS-ⅡI和eCos 等。

数据库

  • 定义:数据库 (DataBase,DB) 是指长期存储在计算机内、有组织的、统一管理的相关数据的集合。不仅描述事物的数据本身,还包括相关事物之间的联系
    • 数据按照一定格式存放,具有较小的冗余度、较高的数据独立性和易扩展性,可为多个用户共享
  • 分类:关系型数据库和非关系型数据库
    • 根据存储体系划分
      • 关系型数据库:把复杂的数据结构归结为简单的二元关系,对数据的操作几乎全部建立在一个或多个关系表格上
        • 通过对关联表格的分类、合并、连接或选取等运算来实现数据库的管理
      • 键值数据库:使用简单的键值方法来存储数据,将数据存储为键值对集合,其中键作为唯一标识符
      • 列存储数据库:列式存储是相对于传统关系型数据库的行式存储来说的
      • 文档数据库:可存放并获取文档,可以是XML、JSON、BSON 等格式,这些文档具备可述性 (Self-Describing), 呈现分层的树状结构 (Hicrarchical Tree Data Structure),可以包含映射表、集合和纯量值
        • 文档数据库可视为其值可查的键值数据库
      • 搜索引擎数据库:应用在搜索引擎领域的数据存储形式,以特定的格式存储,确保检索时的性能最优
  • 关系数据库:
    • 数据模型是数据特征的抽象,是对数据库组织方式的一种模型化表示,是数据库系统的核心与基础
      • 具有的三要素:数据结构、数据操作和完整性约束条件
    • 关系:可以理解为二维表,一个关系模型就是指用若干关系表示实体及其联系,用二维表的形式存储数据
    • 数据库设计:包括结构特性和行为特性的设计
      • 特点:
        • 从数据结构即数据模型开始,并以数据模型为核心展开
        • 静态结构设计与动态行为设计分离
        • 试探性
        • 反复性
        • 多步性
      • 设计方法分类:直观设计法、规范设计法、计算机辅助设计法和自动化设计法
      • 常见的设计方法:基于3N F 的设计方法、基于实体联系 (E-R) 模型的数据库设计方法、基于视图概念的数据库设计方法、面向对象的关系数据库设计方法、计算机辅助数据库设计方法、敏捷数据库设计方法等。
      • 设计的基本步骤:
        • 需求分析:明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求
        • 概念结构设计:也称为数据建模,在需求分析的基础上,按照信息需求,对用户信息加以分类、聚集和概括,建立信息模型,并根据选定的数据库管理系统软件,将信息转换为数据的逻辑结构,最终实现数据的合理存储
          • 设计数据库概念模型的最著名、最常用的方法是 E-R 方法。采用E-R方法的数据库概念结构设计可分为三步:设计局部 E-R 模型、设计全局E-R模型以及全局 E-R模型的优化。
        • 逻辑结构设计:在概念结构设计基础上进行的数据模型设计,可以使层次、网状模型和关系模型。
          • 主要任务为:确定数据模型,将E-R图转换为制定的数据模型,确定完整性约束,确定用户视图
        • 物理结构设计:在物理设备上的存储结构和存储方法称为数据库的物理结构
          • 是对已确定的数据库逻辑结构,利用DBMS所提供的方法、技术,以较优的存储结构和数据存取路径、合理的数据存放位置以及存储分配,设计出一个高效的、可实现的数据库物理结构
        • 应用程序设计:是DBMS的二次开发,一方面是对用户信息的存储,另一方面是对用户处理要求的实现
          • 该阶段要做的工作有:选择设计方法、制订开发计划、选择系统架构和设计安全性策略
          • 设计方法:结构化设计方法和面向对象设计方法
          • 安全策略主要指硬件平台、操作系统、数据库系统、网络及应用系统的安全
        • 运行维护:主要有数据库的转储和恢复,数据库的安全性和完整性控制,数据库性能的监督、分析和改造,数据库的重组和重构等
  • 分布式数据库:是针对地理上分散,而管理上又需要不同程度集中管理的需求而提出的一种数据管理信息系统
    • 特点:
      • 数据的集中控制性
      • 数据独立性
      • 数据冗余可控性
      • 场地自治性
      • 存储的有效性
    • 完全分布式数据库系统:满足分布性、逻辑相关性、场地透明性和场地自治性的数据库系统被称为完全分布式数据库系统
      • notion image
    • 分布式系统体系结构:
      • 四层模式,包括全局外层、全局概念层、局部概念层和局部内层
    • 应用领域有分布式计算、 Internet应用、数据仓库、数据复制以及全球联网查询等
  • 数据库管理系统(DBMS)
    • Oracle、IBM DB2、Sybase、Microsoft SQL Server
  • 大型数据库管理系统的特点
      1. 基于网络环境的数据库管理系统
      1. 支持大规模应用:可支持数千个并发用户、多达上百万的实物出出力和超过数百GB的数据容量
      1. 提供的自动锁功能使得并发用户可以安全而高效地访问数据
      1. 可以保证系统的高度安全性
      1. 提供方便而灵活的数据备份和换肤方法及设备镜像功能,还可以利用操作系统提供容错功能,确保设计良好的应用中的数据在发生意外的情况下可以最大限度地被恢复
      1. 提供多种维度数据完整性的手段
      1. 提供了方便易用的分布式处理功能

文件系统

  • 文件是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合
    • 文件是一种抽象机制,隐藏了硬件和实现细节,提供了将信息保存在外存上而且便于以后读取的手段,使用户不必了解信息存储的方法、位置以及存储设备实际操作方式便可存取信息
    • 一个文件包括文件体和文件说明
      • 文件提是文件真实的内容
      • 文件说明是操作系统为了管理文件所用到的信息,包括文件名、文件内部标识、文件类型、文件存储地址、文件长度、访问权限、建立时间和访问时间等
  • 文件系统是操作系统重实现文件统一管理的一组软件和相关数据的集合,是专门负责管理和存取文件信息的软件机构
    • 文件系统的功能包括:
      • 按名存取
      • 统一的用户接口
      • 并发访问和控制
      • 安全性控制
      • 优化性能
      • 差错恢复
  • 文件类型
    • 文件分类的目的是对不同文件进行管理,提高系统效率,提高用户界面友好性。
    • 按文件的性质和用途分类:系统文件、库文件和用户文件
    • 按信息保存期限分类:临时文件、档案文件和永久文件
    • 按文件的保护方式分类:只读文件、读/写文件、可执行文件和不保护文件
    • UNIX系统将文件分为:普通文件、目录文件和设备文件(特殊文件)
  • 文件系统类型:常用的文件系统类型有FAT、VFAT、NTFS、Ext2和 HPFS等。
  • 文件结构:指文件的组织形式
    • 逻辑结构:从用户角度看到的文件组织形式称为文件的逻辑结构
      • 有结构的记录式文件:由一个以上的记录构成的文件
        • 所有的记录通常都是描述一个实体集的,有着相同或不同数目的数据项,记录的长度可分为定长和不定长
      • 无结构的流式文件:由一串顺序字符流构成的文件
        • 文件体为字节流,不划分记录,通常采用顺序访问方式
          • 每次读/写访问可以指定任意数据长度,其长度以字节为单位
        • 流式文件的访问,是利用读/写指针指出下一个要访问的字符
    • 物理结构:文件在文件存储器上的存放方式称为文件的物理结构。
      • 文件的物理结构指文件的内部组织形式,即文件在物理存储设备上的存放方法
      • 文件的逻辑块号到物理块号的转换也是由文件的物理结构决定的。
      • 常见的文件物理结构:
        • 连接结构(顺序结构):将逻辑上连续的文件信息依次存放在连续编号的物理块上
          • 只要知道文件的起始物理块号和文件的长度,就可以很方便地进行文件的存取。
        • 链接结构(串联结构):将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有指针指向下一个物理块
          • 只需要知道文件的第1个物理块号,就可以按链指针查找整个文件
        • 索引结构:将逻辑上连续的文件信息存放在不连续的物理块中,系统为每个文件建立一张索引表
          • 索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中
        • 多个物理块的索引表:索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上
          • 根据单个文件大小的不同,其索引表占用的物理块个数也不同,一般占一个或几个物理块。
          • 多个物理块的索引表可以有两种组织方式
            • 链接文件
            • 多重索引方式
  • 文件存取的方式和存储空间的管理
    • 文件的存取方式:即读/写文件存储器上的一个物理块的方式
      • 顺序存取:是指对文件中的信息按顺序依次进行读/写
      • 随机存取:对文件中的信息可以按任意的次序随机地读/写
    • 文件存储空间的管理
      • 磁盘分配表:外存空闲空间管理的数据结构
      • 空闲空间管理方法:
        • 空闲区表:将外存空间上的一个连续的未分配区域称为“空闲区”
          • 操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表现对应一个空闲区,包含序号、空闲区的第1块号、空闲块块数和状态等信息
          • 适用于连续文件结构
        • 位示图:在外存上建立一张位示图,记录文件存储器的使用情况
          • 每一位对应文件存储器上的一个物理块
            • 取值0或1分别表示空闲/占用
          • 主要特点是位示图的大小由磁盘空间的大小(物理块总数)决定,位示图的描述能力强,适合各种物理结构。
        • 空闲块链:每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表
          • 链表的头指针放在文件存储器的特定位置上(如管理块中),不需要磁盘分配表,节省空间
          • 每次申请空闲物理块只需根据链表的头指针取出第1个空闲物理块,根据第一个空闲物理块的指针可找到第2个空闲物理块,依此类推。
        • 成组链接法: UNIX 系统采用该方法,类似于空闲块链
          • 例如:在实现时系统将空闲块分成若干组,每100个空闲块为一组,每组的第1个空闲块登记了下一组空闲块的物理盘块号和空闲块总数。
  • 文件共享和保护
    • 文件共享:指不同用户进程使用同一文件,不仅是不同用户完成同一任务所必须的功能,还可以节省大量的主存空间,减少由于文件复制而增加的访问外存次数
      • 文件共享有多种形式,采用文件名和文件说明分离的目录结构有利于实现文件共享。
      • 文件链接的类型
        • 硬链接:指两个文件目录表目指向同一个索引结点的链接,即不同文件名与同一个文件实体的链接
          • 该链接也称为基于索引结点的链接
          • 文件删除时必须要首先删除(关闭)所有的硬链接,才能删除被共享的文件
        • 符号链接:符号链接建立新的文件或目录,并与原来文件或目录的路径名进行映射
          • 当访问一个符号链接时,系统通过该映射找到原文件的路径,并对其进行访问
    • 文件保护:文件系统对文件的保护常采用存取控制的方式进行
      • 存取控制,就是规定不同的用户对文件的访问有不同的权限,以防止文件被未经文件主同意的用户访问
      • 存储控制方法:
        • 存取控制矩阵:二维矩阵,一维列出所有用户,一维列出全部文件
          • 矩阵中的每个元素A,表示第i个用户对第j 个文件的存取权限
            • 通常,存取权限有可读 R、 可写W、 可执行X 以及它们的组合,
        • 存储控制表:存取控制矩阵由于太大往往无法实现,改进方法是按照用户对文件的访问权利的差别对用户进行分类,由于某一文件往往只与少数几个用户有关,所以这种分类可以使存取控制表简化
          • UNIX系统采用方法,它将用户分为三类:文件主、同组用户和其他用户
          • 每类用户的存取权限为可读、可写、可执行以及它们的组合
        • 用户权限表:改进存储控制矩阵的方法,以用户或用户组为单位将用户可存取的文件集中起来存入表中。
          • 表中的每个表目表示该用户对应文件的存取权限
        • 密码:在创建文件时,由用户提供一个密码,文件存入时使用密码加密,读取时需要使用密码进行解密

中间件

  • 定义:作为应用软件与各种操作系统之间使用的标准化编程接口和协议,承上启下, 使应用软件的开发相对独立于计算机硬件和操作系统,并能在不同的系统上运行,实现相同的功能
    • 属于基础软件的一大类,属于各服用软件的范畴
    • 处在操作系统、网络和数据库之上,应用软件的下层
  • 按照在分布式系统中承担的职责不同分类
    • 通信处理(消息)中间件
      • 在分布式系统中,保证系统能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输
    • 事务处理(交易)中间件
      • 在分布式系统中,每项事务通常需要多台服务器上的程序按顺序协调完成,一旦中间发生某种故障,不但要完成恢复工作,而且要自动切换系统保证系统永不停机,实现高可靠性运行。
      • 具有监视和调度整个系统的功能,确保大量事务能在多台应用服务器上实时并发运行,并进行负载平衡的调度
    • 数据存取管理中间件
      • 可以使用多种不同的数据服务器,为在网络上虚拟缓冲存取、格式转换、解压等带来方便
    • Web服务器中间件
      • 一种用于接收和处理HTTP请求的软件,基于HTTP协议进行修改和扩展等
    • 安全中间件
      • 提供安全措施,如防火墙、加密和认证等
    • 跨平台和架构的中间件
      • 在分布式系统中,集成各结点上的不同系统平台上的构建或新老版本的构件
    • 专用平台中间件
      • 为特定应用领域设计领域参考模式,建立相应架构,配置相应的构件库和中间件
      • 为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)
    • 网络中间件
      • 包括网管、接入、网络测试、虚拟社区和虚拟缓冲等

软件构件

  • 定义:构件又称为组件,是一个自包容、可复用的程序集。构件是一个程序集,或者说是一组程序的集合
    • 该集合整体向外提供统一的访问接口,构件外部只能通过接口来访问构件,而不能直接操作构件的内部
  • 重要特性:自包容和可重用
  • 基于软件构件的软件开发:
    • 在需求分析定义出软件功能后,通过对构件的组装设计,将系统划分为一组构件的集合,明确构件之间的关系。独立完成每一个构件(可重用or第三方构件)后,组装为系统
    • 构件是独立的、自包容的,因此架构的开发也是独立的,构件之间通过接口相互协作
  • 构件组装模型的一般开发过程:
    • notion image
  • 构件组装模型的优点:
    • 构件的自包容性让系统的扩展变得更加容易;
    • 设计良好的构件更容易被重用,降低软件开发成本;
    • 构件的粒度较整个系统更小,因此安排开发任务更加灵活;
    • 可以将开发团队分成若干组,并行地独立开发构件
  • 构件组装模型的缺点:
    • 不良的构件设计会降低构件组装模型的重用度
    • 重用度可能会影响性能
    • 增加学习成本
    • 第三方构件库的质量会最终影响到软件的质量
  • 商用构件的标准规范
    • CORBA:公共对象请求代理架构 (Common Object Request Broker Architecture, CORBA) 主要分为3个层次:对象请求代理、公共对象服务和公共设施。
      • 对象请求代理 (Object Request Broker,ORB) 规定了分布对象的定义(接口)和语言映射,实现对象间的通信和互操作
      • 公共对象服务:可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务
      • 公共设施:定义了构件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则
    • J2EE:SUN给出了完整的基于Java语言开发面向企业分布的应用规范
      • 在分布式互操作协议上, J2EE 同时支持远程方法调用 (Remote Method Invocation,RMI) 和互联内部对象请求代理协议 (Internet Inter-ORB Protocol,IIOP)
      • 在服务器端分布式应用的构造形式,则包括了 Java Servlet、JSP、EJB等多种形式,以支持不同的业务需求
      • Java应用程序具有跨平台的特性,J2EE快速发展
      • EJB(Enterprise Java Beans):使得用 Java 基于构件方法开发服务器端分布式应用成为可能
        • EJB是业务逻辑层的中间件技术,提供了事务处理的能力
        • EJB中的Bean可以分为会话Bean 和实体Bean,前者维护会话,后者处理事务,通常由Servlet负责与客户端通信,访问EJB, 并把结果通过JSP 产生页面传回客户端。
    • DNA 2000:是 Microsoft在推出Windows 2000系列操作系统平台的基础上,在扩展了分布计算模型以及改造BackOffice系列服务器端分布计算产品后发布的新的分布计算架构和规范
      • 融合了如事务处理、可伸缩性、异步消息队列和集群等最先进的分布计算理论和思想
      • DNA可以开发基于 Microsoft平台的服务器构件应用,其中,如数据库事务服务、异步通信服务和安全服务等,都由底层的分布对象系统提供。

应用软件

  • 是为了利用计算机解决某类问题而设计的程序的集合,是为满足用户不同领域、不同问题的应用需求而提供的软件。
  • 分为通用软件和专用(定制)软件

嵌入式系统及软件

  • 嵌入式系统:为了特定应用而专门构建且将信息处理过程和物理过程紧密结合为一体的专用计算机系统
  • 嵌入式软件:是指可运行在嵌入式系统中的程序代码和帮助这些软件开发所用的工具或环境软件的总称

嵌入式系统的组成及特点

  • 嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁减的软、硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。
  • 嵌入式系统的组成
    • 嵌入式处理器:
    • 相关支撑硬件:
    • 嵌入式操作系统:
    • 支撑软件:
    • 应用软件:

© Shansan 2021 - 2026