【2024软考架构师自学笔记】1. 计算机系统基本知识


1.1 计算机系统概述

  • 计算机系统的定义与组成
    计算机系统 (Computer System) 是指用于数据管理的计算机硬件、软件及网络组成的系统。它是按人的要求接收和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统。
    计算机系统可划分为硬件(子系统)和软件(子系统)两部分。硬件由机械、电子元器件、磁介质和光介质等物理实体构成;软件是一系列按照特定顺序组织的数据和指令,并控制硬件完成指定的功能。
  • 计算机系统分类
    计算机系统的分类维度很多,也较为复杂,可以从硬件的结构、性能、规模上划分,亦可从软件的构成、特征上划分,或者从系统的整体用途、服务对象等进行分类。例如:
    • 嵌入式计算机:电信设备(基站、网络交换、移动终端等)、家用电子设备(视听设备)、可穿戴设备、医疗设备、交通设备等。
    • 通用计算机:个人计算机、网络服务器、超级计算机等。

1.2 计算机硬件

1.2.1 计算机硬件组成

  • 冯·诺依曼结构(普林斯顿结构):将计算机硬件划分为运算器、控制器、存储器、输入设备、输出设备 5个部分。但在现实的硬件中,控制单元和运算单元被集成为一体,封装为通常意义上的中央处理器(Central Processing Unit,CPU)。
    • 程序指令存储器和数据存储器合并在一起的存储器结构。
    • 指令和数据都通过相同的数据总线传输。
    • 一般用于PC处理器I3、I5、I7等。
  • 哈佛结构:
    • 有独立的程序指令存储器和数据存储器,可以并行读取,有较高的数据吞吐率。
    • 有4条总线:指令和数据的数据总线、地址总线。
    • 一般用于嵌入式处理器DSP

1.2.2 处理器

  • CPU的组成:
    • 运算器
      1. 算术逻辑单元ALU:数据的算术计算和逻辑计算。
      2. 累加寄存器AC:通用寄存器,为ALU提供工作单元,暂存数据。
      3. 数据缓存寄存器DR:写内存时,暂存指令和数据。
      4. 状态条件寄存器PSW:存状态标志和控制标志。
    • 控制器
      1. *程序计数器PC:存储下一条要执行指令的地址。
      2. 指令寄存器IR:存储即将执行的指令。
      3. 指令译码器ID:对指令中操作码字段进行解析。
      4. 时序部件:提供时序控制信号。
  • 专用处理器
    • GPU图形处理器:常有数百数千个内核,可并行运行大量计算。
    • DSP数字信号处理器:专用于实时的数字信号处理。
    • SoC片上系统:包含完整系统并有嵌入软件的全部内容的系统级芯片。
    • FPGA (Field Programmable Gate Array) 现场可编程逻辑门阵列。
    • MPU微处理器:微小型的处理器。
    • MCU微控制单元(单片机):芯片级计算机。
  • 国产处理器:海光(X86)、龙芯、飞腾、申威、兆芯等。
  • 指令集:
    • CISC复杂指令集:指令数量多,可变长格式,支持多种寻址方式,微程序控制技术(微码,可由程序员编码),以Intel、AMD的x86为代表。
    • RISC精简指令集,指令少,定长格式,操作寄存器,支持寻址方式少,硬布线逻辑控制为主,适合采用流水线,有效支持高级语言。以ARM和 Power为代表, RISC 已经成为计算机指令集发展的趋势。

1.2.3 存储器

  • 存储器的硬件结构可分为:ROM(BIOS)、SRAM、DRAM、NVRAM、Flash、EPROM、Disk等。
  • 按照与处理器的物理距离可分为4个层次:(分级存储体系)
    • 片上缓存:寄存器,在处理器核心中直接集成的缓存,程序员可编程操作(SRAM)
    • 片外缓存:Cache,高速缓存,按内容存取(相联存储器),对程序员透明的,不可编程操作,由硬件操作(SRAM)
    • 主存:内存(DRAM)
    • 外存:硬盘、U盘、光盘等
  • Cache
    突破冯诺依曼瓶颈,即CPU与存储速度不匹配问题,使用Cache可以改善系统性能依据是程序等局部性原理:
    • 时间局部性:程序某条指令执行后,不久该指令可能再次执行。典型原因就是程序中存在大量的循环操作,例如:for(i=0;i<10000;i++) { j=i+1}。
    • 空间局部性:程序访问某个存储单元,不久可能访问它的临近单元。其典型情况就是程序的顺序执行。
  • Cache访问命中率(命中率高低与其替换算法有关)
    如果h为Cache访问命中率,t1为Cache的周期时间,t2为主存的周期时间,以读操作为例,使用Cache+主存的系统平均周期为t3,则:t3=ht1+(1-h)t2,其中(1-h)又称失效率(未命中率)。(1uS92%+100uS8%=8.92uS)

主存编址计算

  • 字长:不固定,4bit、32bit(32位计算机)、64bit(64位计算机)
  • 字节:固定为8bit,计作B,1B=8bit
  • 存储单元个数 = 最大地址 - 最小地址 + 1
  • 存储器总容量 = 字长 * 存储单元个数
  • 计算机中的换算:
    • 1K = 2^10 (1024)
    • 1M = 2^20
    • 1G = 2^30
  • 16进制:
    • 计作H,ABCDEF表示10,11,12,13,14,15。例如:CBFFFH - A4000H = 28FFFH。
    • 16进制转10进制:逐位乘以16的次方之和。例如:2AF5H = 216^3 + A16^2 + F*16^1 + 5 = 10997
  • 例题:内存按字节编址,利用8k*4bit存储器芯片构成84000H到8FFFFH的内存共需多少片?
    • 存储器总容量 = (8FFFFH - 84000H + 1) * 8bit = (90000H - 84000H) * 8bit = C000H * 8bit = 12 * 16^3 * 8bit
    • 共需片数 = (12 * 16^3 * 8bit) / (8k * 4bit) = (12 * (222*2)^3 * 8bit) / (8k * 4bit) = (12 * 2^12 * 8bit) / (8 * 2^10 * 4bit) = 3 * 2^2 = 12

磁盘存取时间计算

  • 基本结构:磁头、磁柱、磁道、扇区
  • 读取磁盘数据时间包括:找磁道的时间、找块(扇区)的时间,即旋转延时(旋转周期)、传输时间
  • 存取时间 = 寻道时间 + 旋转延时 + 传输时间
  • 例题:某磁盘磁头从一个磁道移到另一个磁道的时间为10ms,文件在磁盘上非连续存放,逻辑上相邻数据块平均移动距离为10个磁道,每块的旋转延时时间和传输时间为100ms和2ms,则读取一个100块的文件需要多少ms时间?
    • (10*10 + 100+2) * 100 = 20200mS

磁盘优化分布计算

  • 例题:假设磁盘每个磁道划分为11个物理快(扇区),逻辑记录R0~R10顺序存放同一磁道上,如果磁盘旋转周期为33ms,磁头当前处在R0开始处,若系统使用单缓冲区顺序处理数据,每个记录处理时间为3ms,则处理这11条记录的最长时间是多少,经优化分布后处理这11条记录的最少时间少多少?
    • 读取单个记录的时间 = 33/11 = 3ms,处理R0的时间 = 3+3 = 6ms,由于单缓冲区每次只能有一条纪录,而磁盘在匀速旋转中,处理完R0纪录,磁头正好在R2开始位置,那么要读取R1,需要等到磁盘旋转10个物理快才能到R1开始位置读取,所以处理R1的时间 = 310 + 3+3 = 36ms,以此类推。结论:处理这11条记录的最长时间 = 6 + (310+3+3)*10 = 366ms。
    • 优化分布思路:以上在读取R0后,由于逻辑记录是顺序存放,读取其他的10记录都需等待3ms*10的旋转延时。所以可以调整逻辑记录的存放位置,让读取完R0后,磁头正好处于R1开始位置,省去选择延时,即R0、R6、R1、R7、R2、R8、R3、R9、R4、R10、R5,那么经过优化分布后处理者11条记录的时间 = (3+3)*11 = 66ms。

磁盘单缓冲区与多缓冲区计算

  • 例题:假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为15us,由缓冲区送入用户区时间为5us,用户区每块数据的处理时间为1us,若将大小为10个磁盘块的doc1文件逐块读入缓冲区,并送至用户区处理,那么使用单缓冲区需要花费的时间是多少?使用双缓冲区的时间是多少?
  • 正常思路:
    • 使用单缓冲区花费的时间 = (15+5)*10+1 = 201us
    • 使用双缓冲区花费的时间 = 15*10 + 5+1 = 156us
  • 流水线思路:总时长 = 流水线建立时间 + 流水线周期 * (循环次数-1)
    • 使用单缓冲区花费的时间 = (15+5+1) + (15+5)*(10-1) = 201us
    • 使用双缓冲区花费的时间 = (15+5+1) + 15*(10-1) = 156us

磁盘移臂调度算法

  • 调度算法
    • 先来先服务(FCFS):按申请提交的顺序
    • 最短寻道时间优先(SSTF):从最近开始
    • 扫描算法(SCAN):又称电梯算法,双扫描
    • 循环扫描(CSCAN):单扫描
  • 例题:假设磁头位于15号柱面上,进程采取最短寻道时间优先算法,系统的响应序列应为()?

数据传输控制方式I/O

  • 控制方式
    • 程序控制(查询)方式:分为无条件传送和程序查询方式两种。方法简单,I/O能力不高,严重CPU利用率。
    • 中断方式:CPU无须等待,提升CPU效率,中断时保存现场断电常见鼠标键盘此方式。
    • DMA方式:直接内存访问方式,使用硬件DMA控制器实现主存外设传输,比以上效率都高。常见硬盘为此方式。
    • 通道方式:属硬件方式,效率更高。
    • I/O处理机:属硬件方式,效率更高。

1.2.4 总线

总线 (Bus) 是指计算机部件间遵循某一特定协议实现数据交换的形式,即以一种特定格式按照规定的控制逻辑实现部件间的数据传输。

  • 总线特点:共享、分时(同一时刻仅允许一个部件向总线发送数据,部件可同时向总线接收数据)
  • 总线宽度:即总线的线数,会影响计算机指标,例如:假设地址总线的宽度为32位,那么可访问空间大小为2^32即4G,那么32位操作系统配4G内存比较合适。
  • 总线带宽:
  • 总线分类
    • 数据总线:在CPU和RAM之间传输数据。
    • 地址总线:用来指定在RAM中存储数据的地址。
    • 控制总线:将微处理器控制单元的信号传送到周边设备。
  • 按照总线在计算机中所处的位置划分为:
    • 内总线:芯片内部互连,也可称为片上总线。
    • 系统总线:计算机中CPU、 主存、 I/O 接口的总线
    • 外部总线:是计算机板和外部设备之间,或者计算机系统之间互联的总线,又称为通信总线。
  • 目前,计算机总线存在许多种类,常见的有:
    • 并行总线:多条双向数据线,效率高,适合近距离连接,主要为计算机内部总线,PCI、PCle和ATA(IDE) 等,例如:系统总线(计算机各部件)。
    • 串行总线:只包含一条双向数据线或两条单向数据线,数据按bit位以一定的速度和顺序串行发送,但适合长距离连接,多用于通信总线(计算机之间或计算机与其他系统间),主要包括USB、SATA、CAN、RS-232、RS-485、RapidIO和以太网等。分为:单工(只能单项发送或接收)、半双工(轮流实现发送和接收)、全双工(成对双向发送和接收)

流水线

  • 流水线时间计算公式:1条指令的执行时间(流水线建立时间) + (指令条数-1) * 流水线周期
    • 理论公式:(t1+t2+t3+…tk) + (n-1)*t
    • 实践公式:(k*t) + (n-1)*t (在使用理论公式无答案时用实践公式)
  • 流水线吞吐率计算公式:1/t 即流水线周期的倒数
  • 流水线加速比计算公式:顺序执行时间 / 使用流水线执行时间
  • 例题:某计算机采用5级流水线执行指令,设每条指令的执行时间由取指令2t、分析指令1t、取操作数3t、运算1t、和写回结果2t组成,并分别用5个子部件完成,该流水线最大吞吐率为多少?若连续输入10条指令,则流水线的加速比是多少?
    • 流水线最大吞吐率 = 1/3 (取操作数3t是该流水线的周期)
    • 流水线加速比 = (2+1+3+1+2)*10 / (2+1+3+1+2) + (10-1)3 = 5/2

校验码

  • 奇偶校验:在信息位后加上1位校验位。可检查1位错误,奇校验最终1的个数为奇数个,偶校验为偶数个。不可纠错(纠错是指:能定位到错误位,就可以二进制取反纠正)
  • CRC循环冗余校验:在信息位尾部增加多个校验位。也不可纠错。使用模2除法进行编码检验,使用xx和xx进行模2除法计算,余数不为0为出错。
  • 海明校验:分组奇偶校验,可检错,可纠错。校验位数计算公式:2^r >= m + 2 + 1(m为信息位位数),已知m求r。例如:已知m位10,则r=4,即至少需要4位校验位。
  • 模2除法:在做除法过程中不借位的除法。(类似异或运算:二者相同为假,二者相同为真,1+1=0、1+0=1、0+1=1、0+0=0)
  • 例题:原报文为10111,其生成多项式为G(x)=x^4 + x + 1,对其进行CRC编码后结果为?
    • 被除数:报文拼接上余数位,余数位由生成多项式的最高次系数决定,即:10111 0000
    • 除数:由生成多项式的系数二进制产生,x4为1、x3没有为0、x^2没有为0、x为1、1为1,即:10011
    • 进行模2除法 :10111000 /10011结果为1100(注意:如果余数不足4位,在高位补0)
    • CRC编码结果:101111100

1.2.5 接口

接口是指同一计算机不同功能层之间的通信规则。计算机接口有多种,常见的包括显示类接口 (HDMI、DVI 和 DVI等),音频输入输出类接口 (TRS、RCA、XLR等),网络类接口(RJ45、FC等), PS/2接口, USB接口, SATA接口, LPT打印接口和RS-232接口等。

1.2.6 外部设备

常见的外部设备包括键盘、鼠标、显示器、扫描仪、摄像头、麦克风、打印机、光驱、各型网卡和各型存储卡/盘等。

1.3 计算机软件

1.3.1 计算机软件概述

软件系统是指在计算机硬件系统上运行的程序、相关的文档资料和数据的集合。计算机软件用来扩充计算机系统的功能,提高计算机系统的效率。按照软件所起的作用和需要的运行环境的不同,通常将计算机软件分为系统软件和应用软件两大类。

  • 系统软件:是为整个计算机系统配置的不依赖特定应用领域的通用软件。这些软件对计算机系统的硬件和软件资源进行控制和管理,并为用户使用和其他应用软件的运行提供服务。
  • 应用软件:是指为某类应用需要或解决某个特定问题而设计的软件,如图形图像处理软件、财务软件、游戏软件和各种软件包等。可进一步把应用软件分为专用的应用软件和通用的应用软件两类。

1.3.2 操作系统

操作系统是计算机系统的资源管理者,管理计算机中运行的程序和分配各种软硬件资源。为用户提供友善的人机界面。为应用程序的开发和运行提供一个高效率的平台。

  • 操作系统的特征:并发性、共享性、虚拟性、不确定性
  • 操作系统的分类:
    1. 批处理操作系统,根据同时执行的作业数又分为单道批处理和多道批处理。一个作业由用户程序、数据和作业说明书(作业控制语言)3 个部分组成。
    2. 分时操作系统,将 CPU 的工作时间划分为许多很短的时间片,每个时间片分别为一个终端的用户提供服务或者执行一个作业。分时系统主要有 4 个特点:多路性、独立性、交互性和及时性。
    3. 实时操作系统,对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内快速做出反应,对可靠性要求很高,并且不强制要求用户交互。实时系统的应用非常广泛。
    4. 网络操作系统,使联网计算机能有效地共享网络资源,为网络用户提供各种服务和接口。特征包括硬件独立性和多用户支持等。
    5. 分布式操作系统,指为分布式计算机系统配置的操作系统。分布式操作系统是网络操作系统的更高级形式,它保持网络系统所拥有的全部功能,同时又有透明性、可靠性和高性能等特性。
    6. 嵌入式操作系统,运行在嵌入式智能设备环境中,对整个智能硬件以及它所操作、控制的各种部件装置等资源进行统一协调、处理、指挥和控制,特点是微型化、可定制、可靠性和易移植性。常采用硬件抽象层(Hardware Abstraction Layer,HAL)和板级支撑包(Board Support Package,BSP)来提高易移植性,常见的嵌入式实时操作系统有 VxWorks、μClinux、PalmOS、WindowsCE、μC/OS-II 和 eCos 等。

进程与线程

  • 进程:是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的独立单位。它由程序块、进程控制块(PCB)、和数据块三部分组成。进程是程序的一次执行过程。
    PCB是进程存在的唯一标志,内容包含进行标识符、状态、位置信息、控制信息,队列指针、优先级、现场保护区等。
    • 进程状态:三态模型:就绪、运行、阻塞,五态模型:挂起、活跃
  • 线程:不可独立分配和调度资源,有程序计数器、寄存器、栈构成。

PV操作

  • 基本概念
    • PV操作:是一种实现进程互斥与同步的有效方法,它与信号量处理相关联。P操作将进程从运行态转化为阻塞态,直到它被另一个进程唤醒;V操作则将一个处于阻塞态的进程唤醒。这种操作在操作系统中用于管理并发进程中的临界区,确保对共享资源(临界资源)的正确和安全访问。
    • 信号量:表示资源的使用情况。信号量S>0表示有S个资源可用;S=0表示无资源可用;S<0则表示S等待队列中的进程个数。P操作获取一个资源,因此S-1,V操作释放一个资源,因此S+1。
    • 临界资源:一次仅允许一个进程使用的资源,如打印机。
    • 临界区:各个进程访问临界资源的那一段代码。
    • 前趋图:表现进程中事务之间先后顺序的制约关系。
    • 箭线:前趋图中的箭头线代表信号,流出为V操作,流入为P操作。
    • 直接制约关系:先后为直接制约关系
    • 间接制约关系:同字母的(受资源制约的)为间接制约关系
  • 应用案例
    • 如前趋图所示:先执行A和B,在执行C,然后再执行D和E,使用PV 操作来实现控制:
      • 使用信号量 S1、S2、S3、S4 。
      • 在执行 A 操作时,执行 V(S1)。
      • 在执行 B 操作时,执行 V(S2)。
      • 在执行 C 操作时,执行 P(S1)、P(S2)、V(S3)、V(S4)。
      • 在执行 D 操作时,执行 P(S3)。
      • 在执行 E 操作时,执行 P(S4)。
    • 如前趋图所示,先执行进程P1、P2,在执行P3,然后再执行P4、P5,用PV操作来控制这5个进程的同步与互斥:

死锁

两个以上的进程在竞争资源造成阻塞,永远在相互等待的现象称为死锁。

  • 死锁产生四大条件:
    • 互斥:互斥资源是产生进程死锁原因
    • 保持等待:进程保持资源
    • 不剥夺:
    • 环路等待:A等待B,B等待A
  • 避免死锁的办法:
    • 顺序分配
  • 例题:系统有3个进程,这3个进程都需要5个系统资源,系统至少有多少个资源,不可能发生死锁?
    • 设资源数n,若n<5产生死锁(1个进程需要5个资源,不够死锁),若n=5-12可能死锁(若平均分配时产生死锁),若n>=13可以避免死锁。
  • 计算公示:资源数n >= 进程数 * (需要的系统资源数-1) + 1

存储管理-页式存储

将程序与内存划分成同样大小的块,以页为单位将程序调入内存。将页和内存中对应位置关系以表记录下来叫做页表。页表包含:用户程序中的页号(逻辑页号)、程序中的地址(逻辑地址=页号+页内地址,页内地址固定不变)、物理地址=(页帧号+页内地址)、状态位(0、1表示是否在内存)、访问位、修改位。优点:利用率高,碎片小,分配及管理简单。缺点:增加了系统开销,可能产生抖动现象。

  • 逻辑地址与物理地址的转换:
    • 例如:页式存储系统中,每个页的大小为4KB,那页内地址需要多少位二进制表示?(注意默认按字节编址即1B=8bit)4KB/1B=2^12,需要12位。如果逻辑地址10 1100 1101 1110的页号为10即2。
  • 页式存储的淘汰原则:(淘汰原因:页块调入内存满时,须踢出去的不用的页块)
    首先检查状态位为1的(0不在内存)-》访问位为0(1最期访问过,可能还用,保留)-》修改位为0(1修改过,可能用,保留)
  • 例题:进程P有8个页面,页号分别为0-7,页面大小4k,假设给进程P分配了4个存储快,页面变换表如下,若进程P要访问逻辑地址5148H,那物理地址为多少?若要访问的页面6不在内存,那么应该淘汰几号页面?
页号页帧号状态位访问位修改位
0-000
17111
25101
3-000
4-000
53111
6-000
79110
  • 页面大小(即存储单元大小)4k=2^12,所以需要12位2进制表示页内地址,那么逻辑地址5148H的148为页内地址(不会变化),5为页号,那么查表5对应页帧号为3,所以物理地址为3148H。2最近没放问过,淘汰2号。

存储管理-段式存储

页式存储只是按大小划分逻辑空间,没有考虑逻辑连续性,为此出现段式存储。段式存储即按用户作业中的自然段划分逻辑空间,然后调入内存,段长度可以不一样。由段表记录:段号、段长、基址构成。逻辑段地址=段号+段内偏移量,调入内存后根据段号找基址,实际位置=基址+偏移量。

  • 优点:多道程序共享内存,各段程序修改互不影响。
  • 缺点:内存利用率低,内存碎片浪费大。
  • 例题:判断逻辑地址是否能转换为物理地址。

存储管理-段页式存储

段式、页式存储相结合,结合两点优势,但增加了管理复杂度,执行速度大大下降。

  • 段号 页号 页内地址组成

1.3.3 数据库

数据库 (DataBase,DB) 是指长期存储在计算机内、有组织的、统一管理的相关数据的集合。具有较小的冗余度、较高的数据独立性和易扩展性,可为多个用户共享。

  • 数据库分类:
    • 关系型数据库,如:OracleDB、Mysql、SqlServer
    • 键值数据库,如:Redis、Memcached
    • 列存储数据库,如:HBase、Druid
    • 文档数据库 ,如:mongoDB、Apache CouchDB
    • 搜索引擎数据库,如:Elasticsearch、Apache Solr、Apache Lucene
    • 图形数据库?
    • 向量数据库?
  • 关系型数据库
    数据模型是数据特征的抽象,它是对数据库组织方式的一种模型化表示,是数据库系统的核心与基础。它具有数据结构、数据操作和完整性约束条件三要素。
    关系可以理解为二维表。一个关系模型就是指用若干关系表示实体及其联系,用二维表的形式存储数据。
    数据库设计的特点有:从数据结构即数据模型开始,并以数据模型为核心展开,这是数据库设计的一个主要特点;静态结构设计与动态行为设计分离;试探性;反复性和多步性。
    目前已有的数据库设计方法可分为4类,即直观设计法、规范设计法、计算机辅助设计法和自动化设计法。常用的有基于3N F 的设计方法、基于实体联系 (E-R) 模型的数据库设计方法、基于视图概念的数据库设计方法、面向对象的关系数据库设计方法、计算机辅助数据库设计方法、敏捷数据库设计方法等。
  • 关系数据库设计的基本步骤
    数据库设计分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用程序设计和运行维护6个阶段,如图:
    • 需求分析:在用户调查的基础上,通过分析逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。
    • 概念结构设计:在需求分析的基础上,依照需求分析中的信息需求,对用户信息加以分类、聚集和概括,建立信息模型,并依照选定的数据库管理系统软件,把它们转换为数据的逻辑结构,再依照软硬件环境,最终实现数据的合理存储。这一过程也称为数据建模。最著名、最常用的方法是 E-R 方法
    • 逻辑结构设计:是在概念结构设计基础上进行的数据模型设计
    • 物理结构设计:是对已确定的数据库逻辑结构,利用 DBMS所提供的方法、技术,以较优的存储结构和数据存取路径、合理的数据存放位置以及存储分配,设计出一个高效的、可实现的数据库物理结构。
    • 应用程序设计:是DBMS 的二次开发
    • 运行维护:
  • 分布式数据库
    是针对地理上分散,而管理上又需要不同程度集中管理的需求而提出的一种数据管理信息系统。满足分布性、逻辑相关性、场地透明性和场地自治性的数据库系统被称为完全分布式数据库系统。
    分布式数据库系统的特点是数据的集中控制性、数据独立性、数据冗余可控性、场地自治性和存取的有效性。
    我国《分布式数据库系统标准》中把分布式数据库抽象为4层:为全局外层、全局概念层、局部概念层和局部内层。
  • 常用数据库管理系统:Oracle、DB2、Sybase、Mysql、SqlServer等
  • 大型数据库管理系统的特点:7个方面

1.3.4 文件系统

文件(File)是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。文件系统是操作系统中实现文件统一管理的一组软件和相关数据的集合,是专门负责管理和存取文件信息的软件机构。
文件的类型如下:
(1)按性质和用途分类可将文件分为系统文件、库文件和用户文件。
(2)按信息保存期限分类可将文件分为临时文件、档案文件和永久文件。
(3)按保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件。
(4)UNIX 系统将文件分为普通文件、目录文件和设备文件(特殊文件)。
文件的逻辑结构可分为两大类:一是有结构的记录式文件,它是由一个以上的记录构成的文件;二是无结构的流式文件,它是由一串顺序字符流构成的文件。
文件的物理结构(文件组织方法):连续结构、链接结构、索引结构、多重索引方式
文件的存取方法:顺序存取和随机存取

  • 文件空闲空间管理方法:
    • 空闲区表:空闲表中包含序号、空闲区的第1块号、空闲块的块数和状态等信息,适用于连续文件结构。
    • 位示图:建立一张位示图 (Bitmap),每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用,位示图的大小由磁盘空间的大小(物理块总数)决定,位示图的描述能力强,适合各种物理结构。
    • 空闲块链:每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,不需要磁盘分配表,节省空间。
    • 成组链接法: UNIX 系统采用该方法
  • 文件的共享:硬链接、符号链接。
  • 文件的保护:存取控制矩阵、存取控制表(UNIX采用,把用户分成三类:文件主、同组用户和其他用户,每类用户的存取权限为可读、可写、可执行以及它们的组合)、用户权限表、密码。

文件管理-索引结构

  • 索引:即一种地址指向,指向物理块,可以理解位物理块号。
  • 索引表:一般的索引文件结构由 13 个结点组成,其中 0-9 为直接索引,第 10 个结点为一级间接索引,第 11 个结点为二级间接索引,第 12 个结点为三级间接索引。直接索引:索引表直接指向数据;一级间接索引(访问1次磁盘):索引表指一级索引表,一级索引表指向数据(访问2次磁盘);二级简介索引表:以此类推。(文件在逻辑上一定是连续的,在物理上可以是分散的)
  • 索引节点个数计算:
  • 例题1:
    10号索引指向一个物理块,物理块大小1KB,内容是一个一级间接索引表,一个索引占用4字节,这个表能放多少索引节点(物理块号)?最大索引号是多少?能够表示的文件长度是多少?那么二级间接索引表呢?
    • 索引节点个数 = 1KB/4B=256个
    • 最大索引号 = 256 = (x- 10)+1 = 265(注意地址从10号开始的,使用地址个数计算公式:个数=最大地址-最小地址 + 1)
    • 能够表示的文件长度 = 256 * 1KB = 256KB
    • 二级索引个数:256*256=65536个
    • 二级最大索引号:65536 = (x-266) + 1 = ?
    • 能够表示的文件长度 = 65536 * 1KB = 65536KB
  • 例题2:(根据逻辑块号找招物理块号,附图表:逻辑块号5对应物理块号58,261对应187)
    现有一个文件系统采用索引结点管理模式,物理块大小为 1KB。每个索引结点有 32KB 的存储空间,每个地址项占4字节,磁盘索引块和磁盘数据块大小均为 1KB。其中 0 - 4 用直接地址索引,5 - 6 用一级间接地址索引,7 用二级间接地址索引,逻辑块号为 5 和 261 的物理块号在哪里?
    • 逻辑块号5对应物理块号为:每个磁盘索引块的索引个数 = 1KB/4B = 256个,逻辑块号5为一级间接索引表,所以逻辑块号范围为5-x号, x = [256 = (x-5)+1] = 260号,那么261号是下一个磁盘索引块的起始号,经看附图表得知,逻辑块号5号对应58号物理块号,261对应187。

文件管理-位视图

记录磁盘中空闲占有情况方法有:空闲区表法、空闲链表法、位实图法、成组链接法。

  • 位视图法:按字分组记录,即以字为单位记录(每个字一般为16比特位,32比特位等)空闲情况的表,行为字即每条记录,列为比特位数。(注意:编号是以0开始,第几个的编号为x-1)。
  • 例题:某字长为32位计算机文件系统采用位视图法,若磁盘容量为300GB,物理块大小为1MB,那么位视图大小为多少个字?
    • 物理块数 = 300GB/1MB = 300 * 2^10 个,即可以表示300*2^10个比特位,那么位视图字数 = 300 * 2^10 / 32 = 9600个。

文件管理-树形目录结构

也称为多级目录结构,UINX常采用。

  • 文件属性:R只读、A存档属性、S系统文件、H隐藏文件
  • 文件名组成:驱动器号、路径、主文件名、扩展名
  • 目录:绝对路径、相对路径

1.3.5 网络协议

规定了通信时的数据格式、数据传送时序以及相应的控制信息和应答信号等。常用的网络协议包括局域网协议(Local Area Network,LAN)、广域网协议(Wide Area Network, WAN)、无线网协议和移动网协议。互联网使用的是 TCP/IP 协议簇。

1.3.6 中间件

为应用软件与各种操作系统之间使用的标准化编程接口和协议,可以起承上启下的作用,使应用软件的开发相对应用 应用 独立于计算机硬件和操作系统,并能在不同的系中间件(分布式系统服务) 统上运行,实现相同的应用功能。

  • 中间件分类:
    (1)通信处理(消息)中间件,保证系统能在不同平台之间通信,例如 MQSeries。
    (2)事务处理(交易)中间件,实现协调处理顺序、监视和调度、负载均衡等功能,例如Tuxedo。
    (3)数据存取管理中间件,为不同种类数据的读写和加解密提供统一的接口。
    (4)Web 服务器中间件,提供 Web 程序执行的运行时容器,例如 Tomcat、JBOSS 等。
    (5)安全中间件,用中间件屏蔽操作系统的缺陷,提升安全等级。
    (6)跨平台和架构的中间件,用于开发大型应用软件。
    (7)专用平台中间件,为解决特定应用领域的开发设计问题提供构件库。
    (8)网络中间件,包括网管工具、接入工具等。

1.3.7 软件构件

又称组件,是一个自包容、可复用的程序集。最重要的特性是自包容与可重用。

  • 软件构件的组装模型一般开发过程:设计构件组装、建立构件库、构建应用软件、测试与发布
  • 构件组装模型的优点:易扩展、可重用、并行开发。
  • 构件组装模型的缺点:设计不好难以实现优点,考虑可重用性得对其他方面做出让步,增加学习使用构件的成本,第三方构件的质量会影响软件质量。
  • 商用构件的标准规范
    (1)OMG 的公共对象请求代理架构(Common Object Request Broker Architecture,CORBA)
    是一个纯粹的规范而不是产品,主要分为 3 个层次:对象请求代理(Object Request Broker,ORB)、公共对象服务和公共设施。采用 IDL 定义接口,并易于转化为具体语言实现。
    (2)SUN 的 J2EE,定义了完整的基于 Java 语言开发面向企业分布的应用规范,其中 EJB 是
    J2EE 的构件标准,EJB 中的构件称为 Bean,可以分为会话 Bean、实体 Bean 和消息驱动 Bean。
    (3)Microsoft 的 DNA 2000,采用 DCOM/COM/COM+作为标准的构件。

1.3.8 应用软件

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


1.4 嵌入式系统及软件

嵌入式系统 (Embedded System) 是为了特定应用而专门构建且将信息处理过程和物理过程紧密结合为一体的专用计算机系统。嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁减的软、硬件集成于一体的专用计算机系统。

1.4.1 嵌入式系统组成及特点

  • 嵌入式系统的组成:
    • 嵌入式处理器:分为民用(0~70℃)、工业(是−40~85℃)和军用(是−55~150℃)
    • 相关支撑硬件
    • 嵌入式操作系统:微型化、专业化、实时性、可裁剪性、可配置和安全性等特征
    • 支撑软件
    • 应用软件
  • 嵌入式系统分为硬件层、抽象层、操作系统层、中间件层和应用层。(分层图)
  • 嵌入式系统的特点:
    专用性强、技术融合、软硬一体软件为主、比通用计算机资源少、程序代码固化ROM中、需专门开发工具和环境、体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强、对安全性和可靠性的要求高。

1.4.2 嵌人式系统的分类

根据不同用途可将嵌入式系统划分为嵌入式实时系统和嵌入式非实时系统两种。而实时系统又可分为强实时(Hard Real-Time)系统和弱实时(Weak Real-Time)系统。从安全性要求看,嵌入式系统还可分为安全攸关(Safety-Critical 或 Life-Critical)系统和非安全攸关系统。

嵌入式硬件

  • 传统的嵌入式系统组成:主要由嵌入式微处理器、存储器、总线逻辑、定时/计数器、看门狗电路、
    I/O 接口和外部设备等部件组成。
  • 嵌入式微处理器分类:MPU微处理器、MCU微控制器(单片机)、DSP数字信号处理器、GPU(图像处理器)、SoC(片上系统)。
  • 存储器类型:
    • RAM随机存取存储器
      • DRAM动态随机存取存储器(电容)
      • SRAM静态随机存取存储器(晶体管)
    • ROM只读存储器
      • MROM掩膜型只读存储器
      • PROM可编程只读存储器
      • EPROM可擦可编程只读存储器
      • EEPROM电可擦可编程只读存储器
      • Flash快闪存储器
  • 内(外)总线
    • 根据传输的信息种类分类:数据总线、地址总线、控制总线。
    • 根据连接部件分类:片内总线、系统总线或板级总线、局部总线、通信总线。
    • 按照数据传输的方向分为:单工总线和双工总线(半双工总线和全双工总线)。
    • 按照总线使用的信号类型分为:并行总线和串行总线。
  • 看门狗电路
    是嵌入式系统必须具备的一种系统恢复能力,可防止程序出错或者死锁。主要由输入端、寄存器、计数器和狗叫模块构成。通过寄存器对看门狗进行基本设置,计数器计算狗叫时间,狗叫模块决定看门狗超时后发出的中断或复位方式。程序正常运行时 MCU 会在输入端定期“喂狗”,超时不“喂狗”就会触发狗叫模块,一般是重启 MCU。

1.4.3 嵌入式软件的组成及特点

嵌入式系统的最大特点就是系统的运行和开发是在不同环境中进行的,通常将运行环境称为“目标机”环境,称开发环境为“宿主机”环境。宿主机与目标机之间通过串口、网络或 JTAG 接口连接。由于宿主机和目标机的指令往往是不同的,嵌入式系统的开发通常需要交叉平台开发环境支持,基本开发工具是交叉编译器、交叉链接器和源代码调试器。

  • 嵌入式软件的特点:
    • 可剪裁性:能够根据系统功能需求,通过工具进行适应性功能的加或减。可剪裁性通常采用的设计方法包括静态编译、动态库和控制函数流程实现功能控制等。
    • 可配置性:具备根据系统运行功能或性能需要而被配置的能力。设计方法包括数据驱动、静态编译和配置表等。
    • 强实时性:设计方法包括表驱动、配置、静/动态结合、汇编语言等。
    • 安全性:设计方法包括编码标准、安全保障机制、 FMECA (故障模式、影响及危害性分析)。
    • 可靠性:设计方法包括容错技术、余度技术和鲁棒性设计等。
    • 高确定性:设计方法包括静态分配资源、越界检查、状态机、静态任务调度等。
  • 嵌入式系统设计一般要考虑低功耗,软件设计也要考虑低功耗设计,软件低功耗设计一般采用:编译优化技术、软硬件协同设计和算法优化。
  • 嵌入式软件的开发与传统的软件开发方法的差异:

1.4.4 安全攸关软件的安全性设计

  • 安全攸关系统(Safety-Critical System):
    是指其不正确的功能或者失效会导致人员伤亡、财产损失等严重后果的计算机系统。美国电气和电子工程协会 (IEEE) 将安全攸关软件定义为:“用于一个系统中,可能导致不可接受的风险的软件”。NASA 8719.13A给出了软件安全 (Safety) 的定义,即“在软件生命周期内,应用安全性工程技术,确保软件采取积极的措施提高系统安全性,确保降低系统安全性的错误,使其减少或控制在一个风险可接受的水平内”。如何设计一款高安全、高可靠的嵌入式软件,已成为软件业亟待解决的问题。
  • Do-178 标准
    Do-178 标准中的 Software Considerations in Airborne System and Equipment Certifcation 是美国FAA制定的一套民用飞机适航标准中针对机载软件而制定的“机载系统/设备合格审定中的软件考虑”唯一标准,此标准被航空、航天等安全攸关领域普遍采用。
  • DO-178B对高安全软件开发的要求:
    目标、过程、数据是软件适航的基本要求,是 DO-178B 的精髓,它贯穿在整个软件生命周期各个过程之中。DO-178B 仅仅定义的是软件生命周期过程。
  • 在DO-178B 中软件的安全等级: A灾难性的、B危害性的、C严重的、D不严重的、E没有影响的。
  • DO-178B标准将软件生命周期分为:
    • 软件计划过程
    • 软件开发过程
      • 软件需求过程
      • 软件设计过程
      • 软件编码过程
      • 集成过程
    • 软件综合过程
      • 软件验证过程
      • 软件配置管理过程
      • 软件质量保证过程
      • 审定联络过程
  • DO-178与CMMI差异
  • DO-178与 能力成熟度模型集成 (CMMI)是目前承担安全攸关软件开发企业最为关注的两个标准

1.5 计算机网络

1.5.1 网络的基本概念

  • 网络发展四个阶段:诞生阶段、形成阶段、互联互通阶段、高速发展阶段
  • 基本功能:数据通信、资源共享、管理集中化、实现分布式处理、负荷均衡
  • 基本指标
    • 性能指标:从速率、带宽、吞吐量和时延等不同方面来度量计算机网络的性能。
    • 非性能指标:从费用、质量、标准化、可靠性、可扩展性、可升级性、易管理性和可维护性等来度量。

1.5.2 通信技术

  • 基本知识
    • 信道:在通信中的数据包括模拟信号和数字信号,通过信道来传输,信息传输就是信源和信宿通过信道收发信息的过程。信道可分为逻辑信道和物理信道。
    • 复用技术:是指在一条信道上同时传输多路数据的技术,如 TDM 时分复用、FDM 频分复用和 CDM 码分复用等。
    • 多址技术:是指在一条线上同时传输多个用户数据的技术,在接收端把多个用户的数据分离,如 TDMA 时分多址、FDMA 频分多址和 CDMA 码分多址等。
  • 5G通信
    基于 OFDM优化的波形和多址接入、实现可扩展的 OFDM 间隔参数配置、OFDM加窗提高多路传输效率、灵活框架设计、大规模MIMO、毫米波、频谱共享、先进的信道编码设计。

1.5.3 网络技术

  • 局域网(以太网)
    是一种计算机局域网组网技术,由 IEEE 802.3 定义。以太网数据帧的最小长度必须不小于 64 字节,最大长度一般是 1518 字节。设置最小帧长是为了避免冲突,最小帧长是根据网络中检测冲突的最长时间来定的。
    • 以太网拓扑结构:总线型、星型、树型、环型、网状。
    • 以太网帧结构:DMAC(目的终端MAC地址)-》 SMAC(源MAC地址)-》Length/Type(字段长度)-》DATA/PAD(具体数据)-》FCS(帧校验字段)。
    • 以太网最小帧长:由于CSMA/CD算法限制,以太网帧的最小长度为64字节。
    • 最大传输距离:以太网的最大传输距离没有严格限制,由线路质量、信号衰减程度等因素决定。
    • 流量控制:流量过大,发生端口阻塞。
  • 无线局域网(Wireless Local Area Networks,WLAN)
    采用 IEEE 802.11 标准,有 a、b、g、n、ac 等子标准,802.11n 传输速率可达 200Mb/s,802.11ac 则可达 1Gb/s。WLAN 拓扑结构有点对点型、Hub 型和完全分布型。点对点型用于网络互联和延长;HUB 型用于终端接入;完全分布型则处于理论探讨阶段无具体应用。
    - WLAN拓扑结构主要有3种形式:点对点型、 HUB 型和全分布型。
  • 城域网(Metropolitan Area Network,MAN)
    是在单个城市范围内所建立的计算机通信网,采用 IEEE 802.6 标准。通常分为 3 个层次:核心层、汇聚层和接入层。
  • 广域网(WAN)
    是一种将分布于更广区域的计算机设备联接起来的网络,需要使用路由器和网关设备。广域网由通信子网与资源子网组成。广域网可以分为公共传输网络、专用传输网络和无线传输网络 3 类。广域网相关技术有同步光网络(SONET)、同步数字体系(SDH)、数字数据(DDN)、帧中继(FR)和异步传输技术(ATM)。
  • 移动通信网
    其发展经历了 1G 模拟信号传输、2G 数字通信技术、3G 扩展频谱、4G 快速发展繁荣、5G 多业务、多技术融合等 5 代。5G 网络的主要特征为服务化架构和网络切片。1)服务化架构(Service-Based Architecture,SBA)可以实现网络功能的灵活定制和按需组合,以及软件快速迭代和升级。2)网络切片技术可以在单个物理网络中切分出多个分离的逻辑网络用于不同业务。5G 还引入了基于灵活以太网(Flexible Ethernet,FlexE)的硬切片技术。

1.5.4 组网技术

  • 网络设备:
    • 集线器:提供大量可供线缆连接的端口达到部署星状拓扑网络的目的。
    • 中继器(工作在物理层):在转发帧时重新产生不失真的电信号。
    • 网桥(数据链路层)
    • 交换机(数据链路层):交换机功能包括集线功能、中继功能、桥接功能、隔离冲突域功能。交换机协议有:(1)生成树协议(STP),可以很好地解决链路环路问题。(2)链路聚合协议,可以提升与邻接交换设备之间的端口带宽和提高链路可靠性。
    • 路由器(网络层):路由功能由路由器(Router)来提供,包括异种网络互连、子网协议转换、数据路由、速率适配、隔离网络、报文分片和重组、备份和流量控制。路由器协议主要有:
      (1)内部网关协议(Interior Gateway Protocol,IGP):指在一个自治系统(Autonomous System,AS)内运行的路由协议。(2)外部网关协议(Exterior Gateway Protocol,EGP):指在 AS 之间的路由协议。EGP 是为简单的树型拓扑结构设计的。(3)边界网关协议(Border Gateway Protocol,BGP):Internet 的网络规模庞大,网络情况复杂,EGP 已不适用,在 EGP 的经验之上制定了新的网关协议即 BGP,也是 Internet 上唯一的网关协议。
    • 防火墙
  • 交换技术
    • 交换机的主要功能:集线功能、中继功能、桥接功能、隔离冲突域
    • 基本交换原理:交换机需要实现的功能有:
      • 转发路径学习。根据收到数据帧中的源MAC 地址建立该地址同交换机端口的映射,写入MAC地址表中。
      • 数据转发。如果交换机根据数据帧中的目的 MAC地址在建立好的MAC 地址表中查询到了,就向对应端口进行转发。
      • 数据泛洪。如果数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发,也就是泛洪。广播帧和组播帧向所有端口(不包括源端口)进行转发。
      • 链路地址更新。MAC地址表会每隔一定时间(如300s ) 更新一次。
    • 交换机协议
      • 生成树协议 (STP) :解决链路环路问题(如果在一个交换网络中两台设备之间连接多条链路时就会产生环路。而环路的出现会导致数据转发异常)。
      • 链路聚合协议:提高链路可靠性,或提升与邻接交换设备之间端口带宽,如802.3ad。
  • 路由技术
    路由功能由路由器(Router)来提供,包括异种网络互连、子网协议转换、数据路由、速率适配、隔离网络、报文分片和重组、备份和流量控制。路由器协议主要有:
    (1)内部网关协议(Interior Gateway Protocol,IGP):指在一个自治系统(Autonomous System,AS)内运行的路由协议。
    (2)外部网关协议(Exterior Gateway Protocol,EGP):指在 AS 之间的路由协议。EGP 是为简单的树型拓扑结构设计的。
    (3)边界网关协议(Border Gateway Protocol,BGP):Internet 的网络规模庞大,网络情况复杂,EGP 已不适用,在 EGP 的经验之上制定了新的网关协议即 BGP,也是 Internet 上唯一的网关协议。
  • 相关协议
    • 网络协议:
      • OSI/RM体系结构:
        • 应用层:处理网络应用
        • 表示层:管理数据表示方式
        • 会话层:建立和维护会话连接
        • 传输层:端到端传输
        • 网络层:在源节点和目的节点之间传输
        • 数据链路层:提供点到点的帧传输
        • 物理层:在物理链路上传输比特流
    • TCP/IP协议集
      TCP/IP 的主要特性为逻辑编址、路由选择、域名解析、错误检测和流量控制以及对应用程序的支持等。TCP/IP是个协议族,主要包括:
      • 因特网协议 (IP):网络层,IPv6 被称为“下一代互联网协议”,IP 数据报的目的地址有单播、多播/组播、任播。IPv4 to IPv6 过渡技术主要有:双协议栈技术、隧道技术、NAT-PT 技术。
      • 传输控制协议 (TCP):传输层,TCP 是可靠的、面向连接的网络协议。具有差错校验和重传、流量控制、拥塞控制等功能。适用于数据量比较少,且对可靠性要求高的场合。
      • 用户数据报协议 (UDP):传输层,UDP 是不可靠的、无连接的网络协议。UDP 适合数据量大,对可靠性要求不是很高,但要求速度快的场合。
      • 虚拟终端协议 (TELNET):应用层表示层会话层
      • 文件传输协议 (FTP):应用层表示层会话层
      • 电子邮件传输协议 (SMTP):应用层表示层会话层
      • 网上新闻传输协议 (NNTP) :应用层表示层会话层
      • 超文本传送协议 (HTTP):应用层表示层会话层

1.5.5 网络工程

  • 网络建设工程
    可分为网络规划、网络设计和网络实施 3 个环节。
    (1)网络规划以需求为导向,兼顾技术和工程可行性。
    (2)网络设计包括逻辑设计和物理设计,逻辑设计指网络结构设计、网络技术选型、IP 地址
    和路由设计、网络冗余设计以及网络安全设计等;物理设计指布线设计、机房设计、设备选型等。
    网络冗余设计的目的就是避免网络组件单点失效造成应用失效;备用路径是在主路径失效时启用,其和主路径承担不同的网络负载;负载分担是网络冗余设计中的一种设计方式,其通过并行链路提供流量分担来提高性能;网络中存在备用链路时,可以考虑加入负载分担设计来减轻主路径负担。
    (3)网络实施包括工程实施计划、网络设备验收、设备安装和调试、系统试运行和切换、用户培训等。
  • 分层设计
    网络设计一般采用分层的方式,分为接入层、汇聚层、核心层。
    (1)接入层:直接面向用户连接或访问网络的部分,主要解决相邻用户之间的互访需求,并
    且为这些访问提供足够的带宽,接入层还应当适当负责一些用户管理功能(如地址认证、用户认证、计费管理等),以及用户信息收集工作(如用户的 IP 地址、MAC 地址、访问日志等)。
    (2)汇聚层:是核心层和接入层的分界面,完成网络访问策略控制、数据包处理、过滤、寻址,以及其他数据处理的任务。汇聚层的存在与否要视网络规模大小而定。
    (3)核心层:网络主干部分称为核心层,核心层的主要目的在于通过高速转发通信,提供优化、可靠的骨干传输结构,因此,核心层交换机应拥有更高的可靠性、性能和吞吐量。核心层的设备采用双机冗余热备份是非常必要的,也可以使用负载均衡功能来改善网络性能。

1.6 计算机语言

1.6.1 计算机语言的组成

计算机语言主要由一套指令组成,而这种指令一般包括表达式、流程控制和集合三大部分内容。表达式又包含变量、常量、字面量和运算符。流程控制有分支、循环、函数和异常。合包括字符串、数组、散列表等数据结构。编程人员可以通过这些指令来指挥计算机进行各种工作。

1.6.2 计算机语言的分类

  • 机器语言:即机器指令,是一种二进制代码,由操作码和地址码,一条指令由操作码、操作数的地址、操作结果的存储地址、下条指令的地址。(面向机器的语言)
  • 汇编语言:用英文字母符号代替代一个特定指令的二进制串,例如,用ADD代表加法, MOV代表数据传递,使得人类容易理解,这种程序设计语言就称为汇编语言,即第二代计算机语言。专门负责将这些符号翻译成二进制的机器语言,这种翻译程序被称为汇编程序。(面向机器的语言)
    • 语句 (Statements) :是汇编语言程序的基本组成单位。汇编语言源程序中有3种语句:
      • 指令语句:又称为机器指令语句,将其汇编后能产生相应的机器代码,这些代码能被CPU直接识别并执行相应的操作。基本的指令有ADD、SUB和 AND 等
      • 伪指令语句:经汇编后不产生机器代码,例如为变量分配存储单元地址,给某个符号赋一个值等。
      • 宏指令语句(或宏调用语句):将多次重复使用的程序段定义为宏。
      • 指令语句和伪指令语句格式,由如下4个字段 (Fields) 组成:
        1. 名字字段 (Name Field):是一条指令的符号地址,用冒号“:”作为名字字段的结束符。
        2. 操作符字段 (Operator Field):表示程序在运行时CPU完成的操作功能,如MOV、ADD和 SUB等,如数据定义伪指令 DB、DW、DD; 段定义伪指令SEGMENT; 过程定义伪指令PROC等。
        3. 操作数字段 (Operand Field):
        4. 注释字段 (Comment Field):以分号“;”大头,其内容不影响程序和指令的功能。
  • 高级语言
    • C、C++、Java、Python等
  • 建模语言
    • 1)UML组成3要素:UML的基本构造块(事物、关系) 、图、运用于整个语言的公用机制。
    • 事物:
      • 结构事物:通常是模型的静态部分,包括类 (Class)、 接口 (Interface)、 协 作 (Collaboration)、 用 例 (Use Case)、 主动类 (Active Class)、 构件 (Component)、 制 品 (Artifact) 和结点 (Node)。
      • 行为事物:是模型的动态部分,包括交互 (Interaction)、 状态机(State Machine) 和活动 (Activity)。
      • 分组事物:是UML模型的组织部分,最主要的分组事物是包 (Package)。 包是把元素组织成组的机制,这种机制具有多种用途。结构事物、行为事物甚至其他分组事物都可以放进包内。
      • 注释事物:注释事物是 UML模型的解释部分。
    • 关系:依赖、关联、泛化、实现
    • 图:可视化,图是对系统的投影。UML 2.0 提供了13种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、部署图、组合结构图、包图、交互概览图和计时图。序列图、通信图、交互概览图和计时图均被称为交互图。
      • 用例图 (Use Case Diagram) 展现了一组用例、参与者 (Actor) 以及它们之间的关系。用例之间有扩展关系(<>) 和包含关系(<>), 参与者和用例之间有关联关系,用例与用例、参与者与参与者之间有泛化关系。用例图用于对系统的静态用例视图进行建模。
    • 2)UML 5种视图
      • 用例视图、逻辑视图、进程视图、实现视图、部署视图(用例视图居于中心地位)。
  • 形式化语言:
    • 形式化方法:是把概念、判断、推理转化成特定的形式符号后,对形式符号表达系统进行研究的方法,是用具有精确语义的形式语言书写的程序功能描述,它是设计和编制程序的出发点,也是验证程序是否正确的依据。
    • 形式化方法分类:
      • 面向对象的形式化方法,如Z语言
      • 面向属性的形式化方法,如OBJ3、Larch等方法
      • 基于并发性的形式化方法,如CCS、ACP、CSP、LOTOS 等
      • 四是基于实时性的形式化方法,如TRIO、RTOZ 等方法

1.7 多媒体

媒体 (Media) 是承载信息的载体,即信息的表现形式(或者传播形式),如文字、声音、图像、动画和视频等。按照 ITU-T建议的定义,媒体可分为感觉媒体、表示媒体、显示媒体、存储媒体和传输媒体。

  • 视音频技术
    • 视音频编码:.mpg、.avi、*.mov、mp4、.rm、*ogg
    • 视音频压缩方法:无损压缩常见的格式有WAV、PCM、TTA、FLAC、AU、APE、TAK和 WavPack(WV) 等;有损压缩常见的格式有MP3、Windows Media Audio(WMA)、Ogg Vorbis(OGG) 等。
  • 通信技术
    通常包括了数据传输信道技术和数据传输技术
  • 数据压缩技术
    • 即时压缩和非即时压缩:即时/非即时压缩的区别在于信息在传输过程中被压缩还是信息压缩后再传输。即时压缩一般应用在影像、声音数据的传送中。即时压缩常用到专门的硬件设备,如压缩卡等。
    • 数据压缩和文件压缩
    • 无损压缩与有损压缩
  • 虚拟现实 (VR)/增强现实 (AR) 技术
    • VR/AR 技术主要分为桌面式、分布式、沉浸式和增强式4种
    • VR/AR技术发展方向:数据采集与优化传输技术、交互与情形实时再现技术

1.8 系统工程

1.8.1 系统工程基本概念

系统工程是运用系统方法,对系统进行规划、研究、设计、制造、试验和使用的组织管理技术。

1.8.2 系统工程方法

  • 霍尔的三维结构:将系统工程分7个阶段和7个步骤,分为规划、拟订方案、研制、生产、安装、运行、更新7个时间阶段。包括明确问题、确定目标、系统综合、系统分析、优化、决策、实施7个逻辑步骤。
  • 切克兰德方法:将工作过程分为7个步骤,认识问题、根底定义、建立概念模型、比较及探寻、选择、设计与实施、评估与反馈。
  • 并行工程方法:目标是提高质量、降低成本、缩短产品开发周期和产品上市时间。
  • 综合集成法:钱学森等首次把处理开放的复杂巨系统的方法命名为从定性到定量的综合集成法。是从整体上考虑并解决问题的方法论。
  • WSR 系统方法:是物理 (Wuli)- 事理 (Shili)-人理 (Renli) 方法论的简称。

1.8.3 系统工程的生命周期

  • 生命周期阶段:
    • 探索性研究阶段:目的是识别利益攸关者的需求,探索创意和技术。
    • 概念阶段:目的是细化利益攸关者的需求,探索可行概念,提出有望实现的解决方案。
    • 开发阶段:目的是细化系统需求,创建解决方案的描述,构建系统,验证并确认系统。
    • 生产阶段:的目的是生产系统并进行检验和验证。
    • 使用阶段:目的是运行系统以满足用户需求。
    • 保障阶段:目的是提供持续的系统能力。
    • 退役阶段:目的是存储、归档或退出系统。
  • 生命周期方法:
    • 计划驱动方法:计划驱动方法提供一种基础的框架,为生命周期流程提供规程。
    • 渐进迭代式开发:该方法允许为项目提供一个初始能力,随之提供连续交付以达到期望的系统。适用于较小的、不太复杂的系统。
    • 精益开发:源于丰田,精益思想是一个动态的、知识驱动的、以客户为中心的过程,通过这一过程使特定企业的所有人员以创造价值为目标不断地消除浪费。
    • 敏捷联盟致力于开发迭代和敏捷的方法,寻求更快、更好的软件和系统开发方法,挑战更
      多的传统模型。

1.8.4 基于模型的系统工程MBSE

  • MBSE的定义:
    MBSE (Model-Based Systems Engineering,MBSE) 是建模方法的形式化应用,以使建模方法支持系统需求、分析、设计、验证和确认等活动,这些活动从概念性设计阶段开始,持续贯穿到设计开发以及后来的所有生命周期阶段。
  • MBSE 的三大支柱:
    • 建模语言:SysML(Systems Modeling Language)
    • 建模工具
    • 建模思路

1.9 系统性能

1.9.1 性能指标

  • 计算机的性能指标:时钟频率(主频)、运算速度、运算精度、内存的存储容量、存储器的存取周期……等等。
  • 路由器的性能指标:吞吐量、端口吞吐量、全双工线速转发能力、背靠背帧数、路由表能力、背板能力、丢包率、时延、时延抖动、 VPN支持能力……等等。
  • 交换机的性能指标:交换机类型、配置、支持的网络类型、最大ATM端口数、最大SONET端口数、最大FDDI端口数、背板吞吐量、缓冲区大小、最大MAC地址表大小……等等。
  • 网络的性能指标:评价网络的性能指标有设备级性能指标、网络级性能指标、应用级性能指标、用户级性能指标和吞吐量。
  • 操作系统的性能指标:评价操作系统的性能指标有系统上下文切换、系统响应时间、系统的吞吐率(量)、系统资源利用率、可靠性和可移植性。
  • 数据库管理系统的性能指标:衡量数据库管理系统的主要性能指标包括数据库本身和管理系统两部分,有数据库的大小、数据库中表的数量、单个表的大小、表中允许的记录(行)数量、单个记录(行)的大小、表上所允许的索引数量、数据库所允许的索引数量、最大并发事务处理能力、负载均衡能力、最大连接数,等等。
  • Web 服务器的性能指标:最大并发连接数、响应延迟和吞吐量。

1.9.2 性能计算

性能指标计算的主要方法有定义法、公式法、程序检测法和仪器检测法。
常用的性能指标的计算过程 (Millions of Instructions Per Second,MIPS) 的计算方法、峰值计算、等效指令速度(吉普森 (Gibson) 法)。

1.9.3 性能设计

  • 性能调整
    当系统性能降到最基本的水平时,性能调整由查找和消除瓶颈组成。对于数据库系统,性能调整主要包括CPU/内存使用状况、优化数据库设计、优化数据库管理以及进程/线程状态、硬盘剩余空间、日志文件大小等;对于应用系统,性能调整主要包括应用系统的可用性、响应时间、并发用户数以及特定应用的系统资源占用等。
  • 阿姆达尔解决方案
    阿姆达尔 (Amdahl) 定律是指计算机系统中对某一部件采用某种更快的执行方式所获得的系统性能改变程度,取决于这种方式被使用的频率,或所占总执行时间的比例。阿姆达尔定律定义了采用特定部件所取得的加速比。假定人们使用某种增强部件,计算机的性能就会得到提高,加速比定义如下:
    加速比 = 不使用增强部件时完成整个任务的时间 / 使用增强部件时完成整个任务的时间

1.9.4 性能评估

  • 基准测试程序
    把应用程序中用得最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序 (benchmark)。 基准测试程序有整数测试程序Dhrystone、 浮点测试程序 Linpack、Whetstone基准测试程序、 SPEC 基准测试程序和 TPC基准程序。
  • Web 服务器的性能评估
    常见的Web服务器性能评测方法有基准性能测试、压力测试和可靠性测试。
  • 系统监视
    进行系统监视的方法通常有3种方式:一是通过系统本身提供的命令,如UNIX/Linux 中的
    W、ps、last,Windows 中的 netstat等;二是通过系统记录文件查阅系统在特定时间内的运行状态;三是集成命令、文件记录和可视化技术,如 Windows的Perfmon应用程序。

特别说明

以上内容为个人学习笔记,难免有疏漏错误,欢迎指正。
主要学习资料为希赛精讲视频、软考达人、《系统架构设计师考试32小时通关第二版》、《系统架构设计师考试大纲第二版》、《系统架构设计师教程第二版》等,如有不妥请告知。

  • 31
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值