diff --git "a/\350\275\257\344\273\266\350\256\276\350\256\241\345\270\210\347\254\224\350\256\260.md" "b/\350\275\257\344\273\266\350\256\276\350\256\241\345\270\210\347\254\224\350\256\260.md" index ec7cb5e14eec3cb783cbd56c7fc168f5458309d2..9d000dabf0443f6a6b105e571a94dcd4d589b3fb 100644 --- "a/\350\275\257\344\273\266\350\256\276\350\256\241\345\270\210\347\254\224\350\256\260.md" +++ "b/\350\275\257\344\273\266\350\256\276\350\256\241\345\270\210\347\254\224\350\256\260.md" @@ -54,36 +54,40 @@ ## 2.1 R进制转十进制(按权展开法) -![image-20230414090848095](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414090848095.png) +![](软件设计师笔记_files/image-20230414090848095.png)) ## 2.2 十进制转 R进制(短除法) - 注意:94 得到二进制是0101 1110,**下图有误**,需要计算**到0的余数**; +![](软件设计师笔记_files/image-20230414091508578.png)) -![image-20230414091508578](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414091508578.png) + ## 2.3 二进制转 八进制与十六进制(划分3和4位进行按权展开计算) - 比如二进制 转 八进制:110 = 1x2^2 + 1x2^1 + 0x2^0 = 6;(**每三位二进制数转为 一位 八进制**)从右往左,不足补0; - 比如二进制转十六进制: 1000 = 2^3+0x2^2+0x2^1+0x2^0 = 8; (**每四位二进制数转为一位 十六进制**) +![](软件设计师笔记_files/image-20230414093918918.png)) -![image-20230414093918918](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414093918918.png) + ## 2.4 原码、反码、补码、移码 - **符号位**为左边的第一位,正数的为0 ,负数为1; - **正数** 原码、反码、补码一致;**移码**是补码符号位取反; - **负数**的**反码**为 **符号位不变**以原码其他位 **取反**,**补码**是反码加1位,**移码**是补码的符号位取反; +![](软件设计师笔记_files/image-20230414094249204.png)) -![image-20230414094249204](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414094249204.png) + ## 2.5 原码、反码、补码取值范围 - 比如 n = 8,2^7=128 ; 原码与反码表示: -127 至 127 (因为有**正负0都表示不同的编码**所以各减1); - **补码**表示:-128至127;(因为正0 和负0 都是8个0,所以少占用一个编码); +![](软件设计师笔记_files/image-20230414095639304.png)) -![image-20230414095639304](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414095639304.png) + ## 2.6 浮点数运算 @@ -103,8 +107,8 @@ - 尾数计算:比如1x10^3 和1.119x10^2进行计算,转化为1x10^3 和 0.119x10^3进行计算; - 结果格式化:保证尾数的值只能是个位; - 对阶时,小数向大数看齐;对阶是通过较小数的尾数右移实现的; - -![image-20230414113117803](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414113117803.png) +![](软件设计师笔记_files/image-20230414113117803.png)) + ## 2.7 逻辑运算 @@ -137,7 +141,9 @@ 4. 时序部件(Timing Control Unit)是CPU中的一个模块,负责控制和调节CPU内部各个组成部分之间的**时序关系**。它通常包括计时器、时钟发生器等模块,可以**确保指令和数据在正确的时间被读取和写入寄存器、缓存和内存**中,以及确保各个部件之间协同工作的顺序和时间关系符合CPU设计要求; -![image-20230414113729781](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414113729781.png) + + +![](软件设计师笔记_files/image-20230414113729781.png)) ## 3.3 计算机体系结构 Flynn分类法 @@ -152,20 +158,22 @@ Flynn主要根据指令流和数据流来分类,分为四类: ④多指令流多数据流机器(MIMD) M1MD机器可以同**时执行多个指令流**,这些指令流分别对**不同数据流进行操作**。例如,**intel和AMD的双核处理器**就属于MIMD的范畴。 - -![image-20230414124156941](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414124156941.png) +![](软件设计师笔记_files/image-20230414124156941.png)) + ## 3.4 CISC 与 RISC - CISC代表复杂指令集计算机(Complex Instruction Set Computer),是一种计算机处理器架构的类型,其指令集非常丰富和复杂。CISC处理器通常具有**高度优化的指令集**,这些指令可以在单个指令中**执行多个低级操作**,从而提高了处理器的效率和性能。然而,由于指令集的复杂性,CISC处理器的设计和实现成本较高,且难以实现高性能的并行处理; - RISC代表精简指令集计算机(Reduced Instruction Set Computer),是一种计算机处理器架构的类型,其指令集相对较少和简单。RISC处理器通常执行基本指令,每个指令只**执行一个低级操作**,并**使用流水线技术来实现高性能并行处理**。由于其指令集简单,RISC处理器的设计和实现成本相对较低,且易于实现高性能的并行处理。近年来,大多数计算机处理器都采用了RISC设计,例如ARM和PowerPC; -![image-20230414175725994](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414175725994.png) +![](软件设计师笔记_files/image-20230414175725994.png)) + ## 3.5 流水线 - 坐标中格子数字,表示正在执行的指令; -![image-20230414180655233](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414180655233.png) +![](软件设计师笔记_files/image-20230414180655233.png)) + ## 3.6 流水线计算 @@ -187,7 +195,8 @@ Flynn主要根据指令流和数据流来分类,分为四类: - 理论计算: 第一段 为建立时间 2+2+1ns ,其他为 一个流水线周期 总数99x2, 全部完毕需要时间5+99*2 = 203; - 实际计算: 3表示三段 全部完毕需要时间 (3+99)*2 = 205; -![image-20230414181010961](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414181010961.png) +![](软件设计师笔记_files/image-20230414181010961.png)) + ## 3.7 流水线吞吐率计算 - 流水线的吞吐率 = 总指令数(100)/ 流水线的执行时间 (203);数据使用上题数据; @@ -197,21 +206,24 @@ Flynn主要根据指令流和数据流来分类,分为四类: - 不使用流水线的执行时间:相当于每个指令是执行2+2+1=5ns再 5*100条指令=500; -![image-20230414184424041](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414184424041.png) +![](软件设计师笔记_files/image-20230414184424041.png)) + - 一条指令完成需要消耗的时间片:(t+t+t+3t) - 总共是4个任务占用的时间区:(t+t+t+3t)x4 - 每个指令时间区是:15t,4个流水段的总的时间区是 15tx4 - 流水线效率 = (t+t+t+3t)x4 / 15t x 4 -![image-20230414184346733](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414184346733.png) +![](软件设计师笔记_files/image-20230414184346733.png)) + ## 3.8 层次化存储结构 - 1bit = 8byte; 1kb = 1024byte;1M = 1024kb; - 时间局部性原理,在短时间内会再次使用内存中数据Cache,提高速度; - BIOS(Basic Input Output System)(基本输入输出系统)是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息; -![image-20230414184523585](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414184523585.png) +![](软件设计师笔记_files/image-20230414184523585.png)) + ## 3.9 Cache概念 @@ -227,13 +239,15 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - h表示Cache 命中率; - 系统的平均周期 = h x t1(Cache周期时间) + (1 - h) x t2(主存储器周期); -![image-20230414185420565](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414185420565.png) +![](软件设计师笔记_files/image-20230414185420565.png)) + ## 3.10局部性原理 - 空间局部性:对于数组的处理,邻近的距离的空间并立即访问; - 时间局部性原理: 在短时间内会再次使用内存中数据Cache; -![image-20230414185744862](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414185744862.png) +![](软件设计师笔记_files/image-20230414185744862.png)) + ## 3.11主存 - 分类 @@ -241,7 +255,8 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - 只读存储器:在断电之后依然能保存数据; -![image-20230414190126518](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414190126518.png) +![](软件设计师笔记_files/image-20230414190126518.png)) + ## 3.12 主存 - 编址 @@ -282,7 +297,8 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - 答案: (B)112K个地址单元、(A) 4位; -![image-20230414190324294](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230414190324294.png) +![](软件设计师笔记_files/image-20230414190324294.png)) + ## 3.13 磁盘结构和参数 @@ -293,7 +309,8 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - 磁盘调度管理中,先进行**移臂**调度寻找**磁道**,再进行**旋转**调度寻找扇区。 - 最好的寻道时间就是磁盘不旋转就在当前位置,最坏的寻道时间是旋转一周的时间; -![image-20230417095323964](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417095323964.png) +![](软件设计师笔记_files/image-20230417095323964.png)) + @@ -308,13 +325,15 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - 最长时间是:(3+33) x 10 +6 = 366; - 最短时间(可以把存储信息优化分布),可以间隔一个逻辑记录比如R0与R1 之间间隔R6, 所以读取完一个R0 需要 3ms(读取)+3ms(处理),总共11个,总共最少时间是 6*11 = 66ms; -![image-20230417100001522](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417100001522.png) +![](软件设计师笔记_files/image-20230417100001522.png)) + ### 试题二 -![image-20230510225952348](软件设计师笔记_files/image-20230510225952348.png) +![](软件设计师笔记_files/image-20230510225952348.png)) + 硬盘容量分为非格式化容量和格式化容量两种,计算公式如下:非格式化容量=面数×(磁道数/面)×内圆周长×最大位密度 @@ -322,7 +341,8 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 ### 试题三 -### ![image-20230524155404507](软件设计师笔记_files/image-20230524155404507.png) +![](软件设计师笔记_files/image-20230524155404507.png)) + 答:若系统采用CSCAN (单向扫描)调度算法,在返程时是不响应用户请求的,因此系统的柱面响应序列为15→20→30→2→5→6→8。 可见,按照CSCAN (单向扫描)调度算法的响应序列为⑦⑩①②④③⑥⑤⑧⑨。 @@ -346,7 +366,8 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - **外部总线**是指计算机与外围设备之间传输数据和控制信息的电路集合; - **内部总线**是指计算机内部各个组成部分之间传输数据和控制信息的电路集合; -![image-20230417104129059](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417104129059.png) +![](软件设计师笔记_files/image-20230417104129059.png)) + # 4. 系统可靠性分析 ## 1.1 串联系统与并联系统 @@ -354,11 +375,13 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - `串联模型`只有整个环节都正常,才能正确;R表示可靠度,所以其公式: R = R1xR2x...xRn;(x表示相乘) - `失效率`不可靠计算,不准确; -![image-20230417104923540](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417104923540.png) +![](软件设计师笔记_files/image-20230417104923540.png)) + - 1 - R 表示`失效率`,再通过 1- 失效率(如果有多个失效率就是用乘积)得到最终可靠度; -![image-20230417105258041](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417105258041.png) +![](软件设计师笔记_files/image-20230417105258041.png)) + ## 1.2 模冗余系统 与 混合系统 @@ -366,7 +389,8 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - R1等通过表决器通过多个相同输入,选中多个输出的可靠值; -![image-20230417110010334](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417110010334.png) +![](软件设计师笔记_files/image-20230417110010334.png)) + ## 1.3 差错控制 @@ -378,7 +402,8 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - 常用**三种校验码**: 奇偶校验码、海明码、循环冗余校验码(CRC); - **循环冗余校验码**广泛应用于数据通信领域和磁介质存储系统,利用生产多项式为k个数据位产生r个校验位来进行编码,器编码长度为 k+r; -![image-20230417110216328](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417110216328.png) +![](软件设计师笔记_files/image-20230417110216328.png)) + ## 1.4 海明校验码 @@ -396,7 +421,8 @@ Cache的出现是基于两种因素:首先是由于**CPU的速度和性能提 - r2的校验码是根据 7 和 6 和 5等于中有 2^2 ,所以根据规律 r2 = I4 异或 I3 异或 I2; 其他同理; - **纠错**是根据**传送的校验位数**和**数据中的校验位**进行 **异或操作**就可以判断出 出错位置;一旦**信息出错就以当前位置取反**; -![image-20230417111111118](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417111111118.png) +![](软件设计师笔记_files/image-20230417111111118.png)) + # 5. 操作系统基本原理 @@ -421,7 +447,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 5.易移植性,为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术。 -![image-20230417114023308](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417114023308.png) +![](软件设计师笔记_files/image-20230417114023308.png)) + - 前趋图(precedence diagram)是一种用于表达任务或活动之间关系的图形工具,通常应用于项目管理中。前趋图中每个节点代表一个任务或活动,节点之间的箭头表示它们之间的先后关系; - 位示图(bitmap)是一种存储位图数据的数据结构,通常用于计算机图形学和操作系统中。它将图像分成一个个小块,每个小块对应一个二进制位,表示该位置是否有颜色或像素点; @@ -431,7 +458,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 2. 板级初始化完成嵌入式微处理器以外的其他硬件设备的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。 3. 系统初始化过程以软件初始化为主,主要进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作,包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。 -![image-20230417114123612](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417114123612.png) +![](软件设计师笔记_files/image-20230417114123612.png)) + ## 5.2 进程管理 - 进程状态 @@ -470,7 +498,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 进程状态的转换是由操作系统内核根据进程的行为和系统资源的情况进行的。例如,当一个进程需要I/O操作时,它会被从运行状态转换到阻塞状态,直到I/O完成,此时它会被重新放入就绪队列等待下一次调度。 -![image-20230417114515106](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417114515106.png) +![](软件设计师笔记_files/image-20230417114515106.png)) + ## 5.3 进程管理 - 前趋图 @@ -503,14 +532,16 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 前趋图是操作系统进程管理中一个重要的概念,对于理解和解决进程间的依赖问题非常关键。 -![image-20230417114804311](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417114804311.png) +![](软件设计师笔记_files/image-20230417114804311.png)) + ## 5.4 进程管理-同步、互斥 - **同步**是指协调多个程序或线程之间的**执行顺序和时序**,以保证它们能够正确地协同工作; - **互斥**是为了防止多个进程或线程**同时访问某个共享资源**而引入的一种机制,只有获得了**互斥锁(Mutex)**才能**访问该资源**,从而避免竞态条件(Race Condition)等问题; -![image-20230417114906227](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417114906227.png) +![](软件设计师笔记_files/image-20230417114906227.png)) + ## 5.6 PV操作 @@ -520,24 +551,28 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 信号量是PV操作中的变量; - 缓存溢出是需要PV操作解决; -![image-20230417160710324](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417160710324.png) +![](软件设计师笔记_files/image-20230417160710324.png)) + - 前提生产了一个产品,S1初始值 为 1 ,S2 初始值0; - 通过P(S1)将 S1 - 1 得到 S1为 0; - 再通过V(S2) 将 S2 + 1 得到 S2 为1; -![image-20230417161858092](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417161858092.png) +![](软件设计师笔记_files/image-20230417161858092.png)) + - P 操作进行阻塞(小于0),V 不能进行阻塞(大于0); - P操作会先检查信号量是否可用(**小于 0 就阻塞**),如果可用就使用它,否则就等待; - V操作(也称为signal操作)会增加一个信号量的值,同时唤醒可能正在该信号量等待队列中等待的进程; - a1 进行 V(S1)操作请求付款操作,b1进行P(S1)操作阻塞付款流程,a2进行P(S2)操作等待收营员收费等操作,在b2进行 V(S2)操作收营员消磁等操作; -![image-20230417163108123](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417163108123.png) +![](软件设计师笔记_files/image-20230417163108123.png)) + -![image-20230417170529358](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417170529358.png) +![](软件设计师笔记_files/image-20230417170529358.png)) + - P 操作是 减 1 ,小于0 就是放入阻塞队列中; @@ -546,11 +581,13 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 箭头 结束位置为 P操作,箭头开始位置为 V 操作; - a和b 分别为 V(S1)和V(S2)进行操作,c 和 d 分别进行 (P(S1), P(S2))和 (V(S3),V(S4)) ,e和f 进行 P(S3)和P(S4) -![image-20230417170710263](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417170710263.png) +![](软件设计师笔记_files/image-20230417170710263.png)) + ### 试题一 -![image-20230511174516502](软件设计师笔记_files/image-20230511174516502.png) +![](软件设计师笔记_files/image-20230511174516502.png)) + 信号量初值等于资源数量,即为2,由于同时最多有2个进程访问打印机,其余进程必须处理等待状态,故S的最小值为-(n-2); @@ -565,16 +602,18 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 ``` - -![image-20230417172557027](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417172557027.png) +![](软件设计师笔记_files/image-20230417172557027.png)) + - 不造成死锁条件: 互斥、保持和等待 、 不剥夺、环路等待; -![image-20230417173531500](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417173531500.png) +![](软件设计师笔记_files/image-20230417173531500.png)) + ### 银行家算法 -![image-20230417173757995](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417173757995.png) +![](软件设计师笔记_files/image-20230417173757995.png)) + ### 银行家算法例子 @@ -582,7 +621,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 优先执行可以继续执行,并执行完成后会释放资源; - 所以 根据 剩余资源,P2 优先执行后会释放,之后就是P4进行执行并释放,类似这样推导结果对比出; -![image-20230417173925931](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230417173925931.png) +![](软件设计师笔记_files/image-20230417173925931.png)) + ## 5.8 存储管理- 分区存储组织 @@ -597,7 +637,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 循环首次适应法: 循环遍历存放; -![image-20230418162230997](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418162230997.png) +![](软件设计师笔记_files/image-20230418162230997.png)) + ## 5.9 存储管理 - 页式存储 @@ -605,7 +646,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 逻辑地址和物理地址的页内地址是一致;页号和块号不定相同; - 逻辑地址的**页号** 通过**页表查到**对应页号的**块号**; -![image-20230418162624481](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418162624481.png) +![](软件设计师笔记_files/image-20230418162624481.png)) + ### 练习题 @@ -615,7 +657,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 淘汰页号就要淘汰在内存中的页,因为3和4 都不在内存中,访问位为1 是需要访问的,所以页号为1 的访问位为0,**淘汰页就是 1号页**; - 系统应该首先淘汰未被访问的页面,因为根据程序的局部性原理,最近未被访问的页面下次被访问的概率更小,如果页面最近都被访问过,应该先淘汰未修改过的页面,因为 **未修改过的页面内存和辅存一致**,故**淘汰时无需写回辅存**,使系统**页面置换代价小**; -![image-20230418163657364](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418163657364.png) +![](软件设计师笔记_files/image-20230418163657364.png)) + ## 5.10 存储管理 - 段式存储组织 @@ -624,7 +667,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 段表存:段号、段长、基址; - 寻址空间指的是一个计算机系统中**可用于存储数据和程序的内存地址范围**。它决定了系统能够寻址的最大内存容量以及程序能够访问的**内存位置**。通常情况下,寻址空间的大小取决于计算机系统使用的位数,如32位或64位等。在一个进程中,它的寻址空间通常被分为多个区域,包括**代码段、数据段、堆栈段**等,每个区域有其特定的访问权限和用途。 -![image-20230418165540945](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418165540945.png) +![](软件设计师笔记_files/image-20230418165540945.png)) + ## 5.11存储管理 - 段页式存储组织 @@ -632,11 +676,13 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 是页式和段式的综合;先分段再分页; -![image-20230418170407018](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418170407018.png) +![](软件设计师笔记_files/image-20230418170407018.png)) + ### 试题一 -![image-20230512102147386](软件设计师笔记_files/image-20230512102147386.png) +![](软件设计师笔记_files/image-20230512102147386.png)) + 从题目给出的段号、页号、页内地址位数情况,可以推算出每一级寻址的寻址空间。如:已知页内地址是从第 0 位到第 11 位,共 12 个位,所以一个页的大小为:2^12=4K。页号是从第 12 位到第 23 位,共 12 个位,所以一个段中有 2^12=4096 个页。段号是从第 24 位到第 31 位,共 8 个位,所以一共有 2^8=256 个段。 @@ -646,7 +692,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 快表是一种常见的缓存机制,可以将常用的数据放在快表中,以加速对这些数据的访问; - 如果系统中没有使用快表,则每次访问数据时都需要从主存(或磁盘)中读取数据,这会导致访问速度变慢; -![image-20230418170623630](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418170623630.png) +![](软件设计师笔记_files/image-20230418170623630.png)) + ## 5.13 存储管理 - 页面置换算法 @@ -654,7 +701,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 将程序分为多个页,但只能存储几个页,算法只存要使用的页; - 抖动:加入资源页后,缺页数量反而增加了 ; -![image-20230418170923171](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418170923171.png) +![](软件设计师笔记_files/image-20230418170923171.png)) + - 行头表示要访问页面的序列; - 列头(1,2,3)表示内存3个页面; @@ -662,14 +710,16 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 如果内存页满了,淘汰就会淘汰最先进入的页号; - 当把内存页数从3达到4的时候,如下列表计算出缺页数是10 大于之前的内存页数3,就是为抖动; -![image-20230418171719853](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418171719853.png) +![](软件设计师笔记_files/image-20230418171719853.png)) + ### 试题一 - 总共只能容纳内存空间为3个页,访问页号2的时候发现空间不足,需要淘汰,FIFO 就会淘汰最先进入,LRU会淘汰不是最近使用的5号页; - 勾选表示 缺页; -![image-20230418172526962](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418172526962.png) +![](软件设计师笔记_files/image-20230418172526962.png)) + ### 试题二 @@ -678,7 +728,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 页面大小为1K ,就是一个K就是一个块,swap指令是需要存两个块,理论是两次缺页中断,而指令只会产生1次缺页中断;而数据A和B是都占用2次缺页,所以总共位 5次缺页中断; - 缺页表示不存在内存块中; -![image-20230418173217941](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230418173217941.png) +![](软件设计师笔记_files/image-20230418173217941.png)) + @@ -691,7 +742,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 二级间接索引可以存的大小为 4K x 1024 x 1024容量; - 影响文件系统可靠性因素之一是文件系统的一致性问题。很多文件系统是先读取磁盘块到主存,在主存进行修改,修改完毕再写回磁盘。例如读取某磁盘块,修改后再将信息写回磁盘前系统崩溃,则文件系统就可能会**出现不一致性状态**。如果这些未被写回的磁盘块是索引节点块、目录块或空闲块,特别是**系统目录文件**,那么对**系统的影响相对较大,且后果也是不堪设想的**。通常解决方案是采用文件系统的一致性检查,一致性检查包括块的一致性检查和文件的一致性检查。 -![image-20230419112024307](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419112024307.png) +![](软件设计师笔记_files/image-20230419112024307.png)) + ### 试题一 @@ -700,10 +752,12 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 一个物理盘块是1K大小,一个地址是4字节,每个盘块可以存 1K / 4 = 256个地址;而逻辑号5到261号大小就是 261 - 5 = 256 个地址,所以只能是下一个盘块的第一个187; - 101号物理块是iaddr[7]其采用的是二级间接地址索引; -![image-20230419114626644](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419114626644.png) +![](软件设计师笔记_files/image-20230419114626644.png)) + ## 5.15 文件和树型目录结构 -![image-20230419144230332](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419144230332.png) +![](软件设计师笔记_files/image-20230419144230332.png)) + ## 5.16 空闲存储空间的管理 @@ -716,7 +770,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 这些方法各有优缺点例如,空闲区表法需要维护一个表格,占用了一定的内存,但查找未使用内存块的速度相对较快;空闲链表法需要指针操作,可能会造成额外开销,但更加灵活。位示图法可以减少内存开销,但需要进行位运算等操作。成组链接法则将内存分组,能够高效地利用碎片化的空闲内存; -![image-20230419144550746](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419144550746.png) +![](软件设计师笔记_files/image-20230419144550746.png)) + ### 试题一 @@ -725,15 +780,18 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 第几位是从0 位置开始,因为 131 * 32 = 4192 表示 0 - 4191,而4192为0 位置,4193为 1位置,4194为2 位置 ,4195为3位置; - 所以系统应该将该字的第3位置“1” 答案:B; -![image-20230419145450275](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419145450275.png) +![](软件设计师笔记_files/image-20230419145450275.png)) + ### 试题解答 -![image-20230419150443870](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419150443870.png) +![](软件设计师笔记_files/image-20230419150443870.png)) + ### 试题二 -![image-20230511163558821](软件设计师笔记_files/image-20230511163558821.png) +![](软件设计师笔记_files/image-20230511163558821.png)) + 1GB=1024MB,*1MB*=1024KB,1KB=1024B,1B(字节)=8bits(比 特) @@ -765,7 +823,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 用户级I/O层:发出I/O调用。 -![image-20230419151235875](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419151235875.png) +![](软件设计师笔记_files/image-20230419151235875.png)) + 实时是指计算机对于外来信息能够以足够快的速度进行处理,并在**被控对象允许的时间范围内做出快速响应**。因此,实时操作系统与分时操作系统的第一点区别是交互性强弱不同,**分时系统交互型强**,**实时系统**交互性弱但**可靠性要求高**;第二点区别是对响应时间的敏感牲强,对随机发生的外部事件必须在被控制对象规定的时间做出及时响应并对其进行处理;第三点区别是系统的设计目标不同,分时系统是设计成一个多用方的通用系统,交互能力强;而实时系统大都是专用系统。 @@ -776,13 +835,15 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 总体来说,SPOOLING技术已成为一种基本的I/O管理技术,广泛应用于许多领域,包括操作系统、数据库、网络通信等; - I/O软件隐藏了I/O操作实现的细节。I/O软件向用户提供的是逻辑接口。I/O软件将硬件与较高层次的软件隔离开来,而最高层软件向应用提供一个友好的、清晰且统一的接口,方便用户使用。 -![image-20230419153234150](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419153234150.png) +![](软件设计师笔记_files/image-20230419153234150.png)) + ## 5.19 微内核 - 操作系统 - 微内核是一种操作系统内核设计思想,它将操作系统中的**基本功能进行细分**,并将其封装成**独立的进程或者服务**。相比于传统的单内核设计,**微内核的优点**在于更好的**灵活性、可移植性和安全性**。但是,由于**微内核在进程间切换时的开销较大**,在实际应用中常常面临性能问题。 -![image-20230419173939044](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230419173939044.png) +![](软件设计师笔记_files/image-20230419173939044.png)) + # 6. 数据库 @@ -794,7 +855,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 重点 ER模型、关系代数与元组演算、规范化理论等; -![image-20230420150351295](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420150351295.png) +![](软件设计师笔记_files/image-20230420150351295.png)) + ## 6.2 三级模式 - 两级映射 @@ -811,7 +873,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 数据库系统通过这样的三级模式和两级映射来实现不同用户对同一数据库的不同需求,并且使得数据在物理存储层次上与逻辑组织层次上相分离。这种分层方式使得数据库系统更加灵活、易于维护和扩展。 -![image-20230420150500446](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420150500446.png) +![](软件设计师笔记_files/image-20230420150500446.png)) + ## 6.3 数据库设计过程 @@ -824,7 +887,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 在以上过程中,需要注意保证数据库的可扩展性、安全性、可靠性和高效性,并遵循规范化的设计原则和标准化的开发流程。 -![image-20230420151500702](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420151500702.png) +![](软件设计师笔记_files/image-20230420151500702.png)) + ## 6.4 E-R模型 @@ -839,12 +903,13 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - E-R模型是数据库设计的基础,可以用来设计关系型数据库的结构; - -![image-20230420154047143](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420154047143.png) +![](软件设计师笔记_files/image-20230420154047143.png)) + - 先画局部E-R模型再合并; -![image-20230420155259464](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420155259464.png) +![](软件设计师笔记_files/image-20230420155259464.png)) + ### 试题一 @@ -854,7 +919,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 一个多对多的两个实体(学生和课程关系),多对多的联系必须转为一个实体,所以必须最少转为 3 个关系; - 多对多的三个联系 m、n、p的关系,首先三个实体转为3个关系,联系转为1个关系,最少可转换为 4 个关系模式; -![image-20230420155618573](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420155618573.png) +![](软件设计师笔记_files/image-20230420155618573.png)) + ## 6.5 关系代数 @@ -882,19 +948,22 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 以上操作是关系代数中的基本操作,可以通过这些操作来描述和操作关系型数据库中的数据; -![image-20230420164945761](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420164945761.png) +![](软件设计师笔记_files/image-20230420164945761.png)) + - 笛卡尔积就是 两个表关系的乘积; - 投影是选列的操作,选出需要的,没有去掉重复的; - 选择是选出对应的行数; -![image-20230420165432889](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420165432889.png) +![](软件设计师笔记_files/image-20230420165432889.png)) + - 连接操作是去掉重复公共的字段; - 连接的条件默认是自然连接,表示相同的字段做连接操作比如使用sno字段; - R1▷◁R2为自然联接,**自然联接**是一种特殊的**等值联接**,它要求两个关系中进行比较的分量**必须是相同的属性**,并且在结果集中**将重复属性列去掉**; -![image-20230420170304851](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420170304851.png) +![](软件设计师笔记_files/image-20230420170304851.png)) + ## 6.6 规范化理论 - 函数依赖 @@ -903,7 +972,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 主键是两个属性的组合键,组合键可以确定关系C,而组合键中的键也可以确定关系C,就是部分函数依赖; - 传递性依赖就是A可以确定B 而B又可以确定C ,而B不能确定A,因为如果确定的话,A和B就是等价的,就不是传递性依赖了; -![image-20230420171108043](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420171108043.png) +![](软件设计师笔记_files/image-20230420171108043.png)) + ## 6.7 规范化理论 - 价值与用途 @@ -912,7 +982,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 插入异常:是两个主键确定才能插入,如果只有一个主键就会插入异常; - 删除异常:因为冗余,删除了不该删除的数据; -![image-20230420172751020](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420172751020.png) +![](软件设计师笔记_files/image-20230420172751020.png)) + ## 6.8 规范化理论 - 键 @@ -922,7 +993,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - **主键**:是一种特殊的候选键,用于唯一标识关系中的每一条记录。主键必须是**唯一的,不允许为空**,并且不能被修改; - **外键**: 指在一个关系中,引用**另一个关系的主键作为自己的一个属性**,用于建立关系之间的联系; -![image-20230420173424922](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230420173424922.png) +![](软件设计师笔记_files/image-20230420173424922.png)) + ## 6.9 规范化理论 - 求候选键 @@ -930,7 +1002,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 入度为0 的属性 以该属性集合为起点,遍历有向图,能正常遍历图中的所有结点,则该属性集为关系模式候选键; - 当入度为0的属性集不能遍历图中所有结点,则可以将中间结点(有入度,也有出度)并入 入度为0 的集中,直到可以遍历所有结点,就为候选键; -![image-20230421111541622](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230421111541622.png) +![](软件设计师笔记_files/image-20230421111541622.png)) + ### 试题 一 @@ -939,7 +1012,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 例2:注意ABD ->E 必须画到一个点,再从点到E; 依据图所以ABDC为候选键,才能遍历所有节点; - 例3: 依据图,A可以到B和C,而B也可以到A和C ,所以候选关键字是A和B; -![image-20230421111723289](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230421111723289.png) +![](软件设计师笔记_files/image-20230421111723289.png)) + ## 6.10 规范化理论 - 范式 @@ -950,13 +1024,15 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 5. 第四范式(4NF):多值依赖。即如果一个关系表中有多个多值依赖关系,应该将其拆分为多个关系表。 6. 第五范式(5NF):联合依赖。即如果一个关系表中有多个联合依赖关系,应该将其拆分为多个关系表。 -![image-20230421114103288](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230421114103288.png) +![](软件设计师笔记_files/image-20230421114103288.png)) + ### 第一范式 - 关系R不满足1NF, 应该把高级职称人数去掉, 转为 教授、副教授; -![image-20230421165237233](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230421165237233.png) +![](软件设计师笔记_files/image-20230421165237233.png)) + ### 第二范式 @@ -966,7 +1042,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 如果需要插入 新的学分信息,但不存在学生号选择,所以不能插入,插入异常; - 如果学生信息删除了,学分也就删除;删除异常; -![image-20230421165504893](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230421165504893.png) +![](软件设计师笔记_files/image-20230421165504893.png)) + ### 第三范式 @@ -974,7 +1051,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - 单主属性是不存在部分依赖的关系; - 解决方案:将DNO、DNAME、LOCATION可以划为一个表关系、脱离出来;把SNO、SName 、DNO作为一个表关系; -![image-20230423111951762](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230423111951762.png) +![](软件设计师笔记_files/image-20230423111951762.png)) + ### BC范式 @@ -984,7 +1062,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - BC范式的决定因素是候选键; - 函数式依赖关系有 SJ =》T 、T =》J ;左侧为决定因素,但T不是候选键;所以不是BC范式; -![image-20230423112657784](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230423112657784.png) +![](软件设计师笔记_files/image-20230423112657784.png)) + ### 规范化理论 - 例题 @@ -993,7 +1072,8 @@ PCB(进程控制块,Process Control Block)是操作系统内部的一种 - (2)需要员工表关联到部门关系,员工对部门是多对1的关系,所以需要在员工表3中加入部门号; - (3)增加关系模式,需要每种商品只能由一个部门负责关系,所以只需要 销售(职工号、商品号、日期、数量); -![image-20230423141729709](D:\BaiduNetdiskDownload\思想Java\软件设计师考试笔记\软件设计师笔记_files\image-20230423141729709.png) +![](软件设计师笔记_files/image-20230423141729709.png)) +