网工 传输介质

双绞线

  1. 工作原理
    • 光纤通信基于光的全反射原理。光线在光纤内部以一定的角度传播,由于光纤内部材料(通常是玻璃或塑料)与外部材料(包层)之间的折射率差异,光线会在光纤内部不断反射并向前传播。
  2. 类型
    • 多模光纤 (MMF):允许不同模式的光同时传播,适用于短距离通信。
    • 单模光纤 (SMF):只允许单一模式的光传播,具有更低的衰减和更高的带宽能力,适用于长距离通信。

1. 单模光纤 (Single Mode Fiber, SMF)

  • 光源
    • 单模光纤通常使用激光二极管(Laser Diodes, LDs)作为光源。
    • 激光二极管发射的光波长非常稳定,可以集中在一个非常窄的光谱范围内。
    • 激光二极管通常发射的波长范围在1310nm和1550nm之间,这两个波长区域是单模光纤的低损耗窗口。
  • 特点
    • 单模光纤支持单一模式的光传播,因此可以传输更远的距离而几乎没有色散效应。
    • 激光二极管发出的光束非常窄,可以在单模光纤中以接近直线的方式传播。
    • 由于单模光纤的衰减较小,因此可以支持更长距离的传输,适合长距离通信应用。

2. 多模光纤 (Multi Mode Fiber, MMF)

  • 光源
    • 多模光纤通常使用发光二极管(Light Emitting Diodes, LEDs)或垂直腔面发射激光器(Vertical-Cavity Surface-Emitting Lasers, VCSELs)作为光源。
    • LED光源发出的光波长范围较宽,而VCSELs的光谱范围介于LED和激光二极管之间。
    • LED光源通常发射的波长在850nm左右,而VCSELs可以发射850nm或1310nm的光。
  • 特点
    • 多模光纤支持多个模式的光传播,这意味着光线以不同的角度进入光纤,从而在光纤内部形成不同的传播路径。
    • 由于多模光纤中存在模式色散,使得多模光纤的传输距离相对较短。
    • LED光源的成本相对较低,但其发射的光谱较宽,导致模式色散较大,限制了传输距离。
    • VCSELs的成本比LED稍高,但其发射的光谱较窄,可以减少模式色散,适合更长距离的传输。

总结

  • 单模光纤通常使用激光二极管作为光源,适用于长距离通信。
  • 多模光纤通常使用LED或VCSEL作为光源,适用于短距离通信或局域网应用。

网工 程序局部性原理

程序局部性原理是计算机科学中的一个重要概念,它描述了程序执行过程中的一种常见现象,即程序倾向于重复访问最近使用过的数据和指令。这种现象可以分为两种类型:时间局部性和空间局部性。

时间局部性 (Temporal Locality)

时间局部性是指如果一个存储位置被访问了一次,那么在不久的将来,这个位置很可能会再次被访问。这是因为程序往往具有循环和递归的特性,导致某些代码段和数据会被反复执行和访问。

空间局部性 (Spatial Locality)

空间局部性是指如果一个存储位置被访问了一次,那么在不久的将来,其附近的存储位置也很有可能被访问。这是因为在大多数情况下,数据是连续存储的,程序通常会顺序地访问这些数据。

局部性原理的重要性

局部性原理的重要性在于它为设计高效的缓存系统提供了理论基础。通过利用时间局部性和空间局部性,缓存可以有效地预测哪些数据更有可能被再次访问,并将它们保留在高速缓存中以加快访问速度。

应用实例

以下是几个应用局部性原理的例子:

  1. 缓存 (Caching)
    • CPU 缓存:CPU 设计中包含了多级缓存,以利用局部性原理来提高数据访问速度。
    • 内存缓存:操作系统会在内存中保留经常使用的数据和代码,以减少访问磁盘的次数。
  2. 虚拟内存管理
    • 页式存储:当进程试图访问的页面不在物理内存中时,操作系统会将最近最少使用的页面从物理内存中换出,以便将新的页面换入。
  3. 文件系统缓存
    • 文件系统通常会缓存最近访问过的文件块,以减少磁盘 I/O 操作。
  4. 数据库系统
    • 数据库管理系统利用缓存技术来优化查询性能,通过缓存最近查询过的数据来减少磁盘访问。
  5. Web 缓存
    • Web 浏览器和代理服务器通常会缓存最近访问过的网页,以减少网络延迟。

局部性原理与内存管理

在内存管理中,局部性原理是设计高效页面置换算法的基础。例如,最近最少使用 (LRU) 算法就是基于时间局部性的原理,选择最近最久未使用的页面进行替换,以期望保留更有可能被再次访问的页面在内存中。

通过理解局部性原理,系统设计者可以更好地优化系统性能,特别是在涉及缓存和内存管理方面。

网工 内存管理

页式存储

页式存储是现代操作系统中常用的一种内存管理技术。在这种机制下,程序的逻辑地址空间被划分为固定大小的页面,而物理内存也被划分为同样大小的页框(或称为物理页面)。这种划分使得内存管理更加高效,并支持虚拟内存的概念。

下面是一些关于页式存储的关键点:

  1. 页面和页框
    • 页面(Page):程序逻辑地址空间中的固定大小块。
    • 页框(Page Frame):物理内存中的固定大小块,用于存放页面。
  2. 页面大小
    • 页面大小通常是2的幂次方,例如4KB、8KB等。页面大小的选择需要平衡多个因素,包括寻址开销、碎片率和TLB(Translation Lookaside Buffer)命中率。
  3. 页表
    • 每个进程都有一个页表,它记录了逻辑页面与物理页框之间的映射关系。
    • 页表中的每一项称为页表项(Page Table Entry, PTE),通常包含物理页框号、有效位(是否已分配给某个页面)、保护位(读写权限)等信息。
  4. 地址转换
    • 地址转换由硬件的MMU(Memory Management Unit)完成,MMU根据页表将逻辑地址转换成物理地址。
    • 逻辑地址由两部分组成:页面号和页内偏移量。MMU使用页面号索引页表以找到对应的物理页框号,然后加上页内偏移量得到最终的物理地址。
  5. 缺页处理
    • 当进程试图访问的页面不在物理内存中时,会发生缺页中断(Page Fault)。
    • 缺页中断由操作系统处理,它负责从磁盘加载缺失的页面到物理内存,并更新页表。
  6. 页面置换算法
    • 当物理内存空间不足时,需要使用页面置换算法来决定从物理内存中替换出哪个页面,以便腾出空间给新的页面。
    • 常见的页面置换算法包括最近最少使用(LRU)、先进先出(FIFO)和最优置换算法(Optimal)等。
  7. 分层页表和反向映射
    • 对于大内存空间,通常采用多级页表结构来减少页表占用的内存。
    • 反向映射允许物理内存到逻辑地址的映射,这对于调试和监控系统行为很有帮助。

页式存储提供了灵活性和安全性,允许操作系统实现虚拟内存、内存保护和内存共享等功能。

页号是把虚拟地址分为多少个页,通过页号和页内地址找到虚拟地址(数据),

通过一个具体的例子来说明如何进行程序逻辑地址到物理地址的转换。

虚拟地址转换为物理地址过程

假设条件

  1. 页面大小:设定为4KB(即 2的12次方字节)。
  2. 逻辑地址空间:假设为32位地址空间,这意味着地址范围是从0到2的32次方-1
  3. 物理内存大小:假设为1GB(即 2的30次方字节)。

计算页面数量

  1. 逻辑页面数量:由于地址空间为32位,页面大小为4KB,我们可以计算逻辑页面的数量。逻辑地址空间大小为 2的32次方字节,每个页面大小为 2的12次方字节,所以逻辑页面数量为 2的32次方除以2的12次方=2的20次方
  2. 物理页框数量:物理内存大小为1GB,每个页框也是4KB,所以物理页框数量为

1GB = 1,073,741,824 字节 (因为 1GB = 2^30 字节) 每个页框大小为 4KB = 4096 字节 (因为 1KB = 2^10 字节)

那么物理页框的数量就是总字节数除以每个页框的字节数:

物理页框数量 = 1,073,741,824 字节 / 4096 字节/页框 = 262,144 页框

因此,1GB的物理内存可以划分为262,144个4KB大小的页框。

页表结构

  • 页表项大小通常为4字节,因此页表本身占用的内存为2的20次方乘以4等于2的22次方 字节,即4MB。
  • 每个页表项包含物理页框号,以及其他控制信息(例如有效位、读写权限等)。

地址转换过程

假设我们要访问的逻辑地址为 0x12345678

  1. 计算页面号:逻辑地址可以分为两部分:页面号和页内偏移量。页面号可以通过逻辑地址除以页面大小来计算,即 0x12345678/2的12次方。在32位地址空间中,页面号占用20位(因为 2的20次方个页面),页内偏移量占用12位。因此,页面号为 0x12345页内偏移量为 0x678
  2. 查询页表:使用页面号 0x12345作为索引去查询页表,假设该页表项中记录的物理页框号为 0x345678
  3. 计算物理地址:将物理页框号 0x345678左移12位(即乘以 2的12次方)再加上页内偏移量 0x678 得到最终的物理地址。因此,物理地址为 0x34567800+0x678=0x34567E78。

总结

  • 逻辑地址:0x12345678
  • 页面号:0x12345
  • 页内偏移量:0x678
  • 物理页框号:0x345678(假设)
  • 物理地址:0x34567E78

这就是一个简单的逻辑地址到物理地址转换的例子。请注意,在实际的操作系统中,页表可能还会包含其他的信息,如访问权限、修改标志等。此外,对于更大的地址空间,可能会使用多级页表来减少页表的大小。

示例

进程P有8个页面,页号分别为0~7,页面大小为4K,假设系统给进程P分配了4个存储块,进程P的页面变换表如下所示。表中状态位等于1和0分别表示页面在内存和不在内存。

  1. 若进程P要访问的逻辑地址为十六进制5148H,则该地址经过变换后,其物理地址应为十六进制XXXX
  2. 如果进程P要 访问的页面6不在内存,那么应该淘汰页号为XXXX的页面(也就是需要调入页面6淘汰一个页面)

第一题:

根据题意,页面大小为4K,逻辑地址为十六进制5148H页号为5,页内地址为148H,查页表后可知页帧号(物理块号)为3,该地址经过变换后,其物理地址应为页帧号3拼上页内地址148H,即十六进制3148H。
之所以第一位为5,即可以通过查表来转换物理地址,最后拼上页内地址

主要的逻辑如下:

  • 5148H转换为二进制为0101 0001 0100 1000
  • 由于页面大小为4K字节,也就是12次方,对应上方二进制的后12位即为页内地址
  • 通过查表可知,前面4个二进制代表5,对应表格为3。 最后拼接后面的地址 即3 148

第二题(先看访问位再看修改位,如果最近被访问过则不替换,如果都被访问了再看修改位)

据题意,页面变换表中状态位等于1和0分别表示页面在内存或不在内存,所以1、2、5和7号页面在内存。当访问的页面4不在内存时,系统应该首先淘汰未被访问的页面,因为根据程序的局部性原理,最近未被访问的页面下次被访问的概率更小;如果页面最近都被访问过,应该先淘汰未修改过的页面,因为未修改过的页面内存与辅存一致, 故淘汰时无须写回辅存,使系统页面置换代价更小。

综上分析,1、5和7号页面都是最近被访问过的,但2号页面最近未被访问过,故应该淘汰2号页面。

页面置换算法

页面置换算法是内存管理中的一个重要组成部分,用于决定当物理内存空间不足时,应该从内存中替换掉哪些页面。这些算法的目标是在保证进程运行效率的同时,尽量减少缺页中断的次数,以降低系统的整体响应时间和提高性能。

下面是几种常见的页面置换算法:

  1. 先进先出(FIFO, First-In First-Out)
    • 这是最简单的页面置换算法。
    • 它总是选择最早进入内存的页面进行替换。
    • FIFO 算法可能导致“Belady 异常”,即增加物理页面的数量反而会导致更多的缺页中断。
  2. 最近最少使用(LRU, Least Recently Used)
    • LRU 算法选择最近最久未使用的页面进行替换。
    • 实现 LRU 需要维护一个能够快速查找每个页面最后使用时间的数据结构,这可能增加硬件成本。
    • 在软件实现中,LRU 可以通过链表或其他数据结构来近似实现。
  3. 最近未使用(NRU, Not Recently Used)
    • NRU 是一种简化的 LRU 算法,它基于每个页面的一个位来标记页面是否在最近的时间段内被访问过。
    • 如果所有页面都被标记为最近使用过,则随机选择一个页面进行替换。
  4. 最佳置换算法(Optimal)
    • 这是一种理论上的算法,它总是选择未来最长时间内不会被访问的页面进行替换。
    • 由于它需要预知未来,所以在实际系统中无法实现,但它提供了一个基准,用于衡量其他算法的性能。
  5. 最近未用过(NUB, Never Used Before)
    • NUB 算法选择从未被使用过的页面进行替换,适用于刚启动的应用程序或新加载的页面。
  6. 时钟置换算法(Clock)
    • 时钟算法结合了 LRU 和 NRU 的思想。
    • 每个页面有一个位来标记是否最近被访问过,以及一个指针来遍历页面。
    • 算法遍历页面列表,找到第一个未被访问过的页面进行替换,并将所有被访问过的页面标记为未访问状态。
  7. 第二次机会(Second Chance)
    • 这是时钟算法的一个变体。
    • 当算法遍历时,如果页面的访问位被设置,则将其清除而不立即替换页面,给页面一个“第二次机会”。
    • 这种方法有助于减少频繁替换最近使用过的页面的情况。
  8. 工作集(Working Set)
    • 工作集算法考虑进程当前的工作集,即一段时间内访问的所有页面。
    • 算法选择那些不在工作集内的页面进行替换,从而减少缺页中断。
  9. 最近最少使用近似(Approximate LRU, A-LRU)
    • A-LRU 是 LRU 的近似实现,通常使用缓存行中的计数器来近似页面的使用情况。
    • 计数器越低的页面被认为越少使用,从而被选择替换。

每种算法都有其优点和缺点,选择哪种算法取决于具体的应用场景和系统设计的需求。例如,LRU 被广泛认为是性能较好的算法之一,但由于其实现复杂度较高,有时会选择时钟算法或其变体作为替代方案。

示例

https://wenku.csdn.net/answer/ff8e13cb931f4d7983abc7c02a8463cc

进程有4个页面,页号为0〜3,页面变换表及状态位、访问位和修改位的含义如下 图所示。若系统给该进程分配了3个存储块,当采用第二次机会页面替换算法时,当访问的页面1不在内存时,淘汰表中页号为 (D) 的页面代价最小。

页帖号就是物理块号,

不在内存中,是不能淘汰不在内存中的页号,当状态位和访问位都为1时,看修改位,先淘汰未修改过的,因为根据时间局限性,页面没被修改过,则不久以后也不会被修改,如下图所示:

分页内存管理的核心是将虚拟内存空间和物理内存空间皆划分为大小相同的页面,并以页面作为内存空间的最小分配单位,下图给出了内存管理单元的虚拟的物理页面翻译过程,假设页面大小为4KB,那么CPU发出虚拟地址0010000000000100,其访问的物理地址是( )。

解析:页面大小为4KB 即2的12次方,虚拟地址中后12位去掉,得到0010是对应的物理块2得到110地址,所以物理地址是110000000000100

为了解决程序比内存大的问题,我们可以允许一个进程的部分虚拟页面存放在物理页面之外,也就是磁盘上。在需要访问这些外部虚拟页面时,再将其调入物理内存。由此,交换系统的所有缺陷均被克服。

内存管理单元对虚拟地址的翻译只是对页面号的翻译,即将虚拟页面号翻译成物理页面号。而对于偏移值,则不进行任何操作。这是因为虚拟页表和物理页表大小完全一样,虚拟页面里的偏移值和物理页面里的偏移值完全一样,因此无须翻译。

在页式存储管理系统中,地址寄存器(也称为虚拟地址或线性地址)被分为两部分:页号(Page Number)和页内偏移(Offset)。给定的信息是地址寄存器长度为 24 位,其中页号占 12 位。这意味着剩余的 12 位用于页内偏移。

采用ECC校验技术,一个8位的数据产生的ECC码要占用5位的空间,一个32位的数据产生的ECC码要占用( )位的空间。

本题考查服务器技术的相关概念。ECC( Error Checking and Correcting ,错误检查和纠正)不是一种内存类型,而是一种内存技术。ECC纠错技术也需要额外的空间来存储校正码,但其占有的位数跟数据的长度并非成线性关系。ECC将信息进行8比特位的编码,采用这种方式可以恢复1比特的错误。每一次数据写入内存的时候,ECC码使用一种特殊的算法对数据进行计算,其结果称为校验位(Check Bits)。然后将所有校验位加在一起的和是“校验和”(checksum),校验与数据一起存放。当这些数据从内存中读出时,采用同一算法再次计算校验和,并和前面的计算结果相比较,如果结果相同,说明数据是正确的,反之说明有错误,ECC可以从逻辑上分离错误并通知系统。当只出现单比特下位错误的时候,ECC可以把错误改正过来不影响系统运行。一个8位的数据产生的ECC码要占用5位的空间,16位数据需占用6位;而32位的数据则只需再在原来基础上增加一位,即7位的ECC码即可,以此类推。

网工 数据通信基本术语

数据通信涉及许多术语和技术,下面列出了一些常见的数据通信术语及其含义:

1. 基本术语

  • 比特 (Bit): 二进制位,数据通信中的最小单位,只有两种状态:0 或 1。
  • 字节 (Byte): 由 8 个比特组成的数据单元。
  • 波特率 (Baud Rate): 每秒信号的变化次数,对于二进制信号来说,波特率等于比特率。
  • 比特率 (Bit Rate): 每秒传输的比特数,通常用 bps(bits per second)表示。
  • 吞吐量 (Throughput): 在给定时间内实际成功传输的数据量,通常也用 bps 表示。

2. 通信信道相关术语

  • 信道 (Channel): 数据传输的物理路径或逻辑路径。
  • 带宽 (Bandwidth): 信道能够传输信号的最大频率范围,通常用 Hz 表示。
  • 信噪比 (Signal-to-Noise Ratio, SNR): 信号功率与噪声功率的比率,通常用分贝 (dB) 表示。
  • 调制 (Modulation): 将数字信号转换成适合在信道上传输的模拟信号的过程。
  • 解调 (Demodulation): 将模拟信号转换回数字信号的过程。

3. 通信模型相关术语

  • 源 (Source): 发送数据的设备或软件。
  • 目的地 (Destination): 接收数据的设备或软件。
  • 发送器 (Transmitter): 负责将数据转换为适合传输的形式并发送出去的设备。
  • 接收器 (Receiver): 负责接收并解码数据的设备。
  • 协议 (Protocol): 控制数据通信的标准或规则集合。

4. 传输模式

  • 基带传输 (Baseband Transmission): 直接使用原始数字信号进行传输的方法。
  • 宽带传输 (Broadband Transmission): 使用频分复用技术将多个信号组合在单个信道上进行传输的方法。
  • 全双工 (Full-Duplex): 同时支持双向数据传输的通信方式。
  • 半双工 (Half-Duplex): 支持双向数据传输但不能同时进行的通信方式。
  • 单工 (Simplex): 只支持单向数据传输的通信方式。

5. 错误检测与纠正

  • 奇偶校验 (Parity Check): 一种简单的错误检测机制,通过添加一个额外的比特来确保数据中 1 的总数为奇数或偶数。
  • 循环冗余校验 (CRC, Cyclic Redundancy Check): 一种常用的错误检测算法,通过生成一个校验和来检测数据传输中的错误。
  • 前向纠错 (FEC, Forward Error Correction): 一种错误纠正技术,允许接收方在不请求重新传输的情况下自动纠正错误。

6. 编码与压缩

  • 曼彻斯特编码 (Manchester Encoding): 一种自定时的编码方案,每个比特都包含一个中间电平跳变。
  • 脉冲编码调制 (PCM, Pulse Code Modulation): 一种将模拟信号转换为数字信号的编码方法。
  • 霍夫曼编码 (Huffman Coding): 一种基于频率的无损数据压缩方法。

7. 多路复用

  • 频分多路复用 (FDM, Frequency Division Multiplexing): 不同用户使用不同频率范围来共享同一个信道。
  • 时分多路复用 (TDM, Time Division Multiplexing): 不同用户在不同的时间片内使用相同的信道。
  • 码分多址 (CDMA, Code Division Multiple Access): 用户使用独特的码序列来共享信道。

8. 网络架构

  • 局域网 (LAN, Local Area Network): 一个较小地理范围内的网络。
  • 广域网 (WAN, Wide Area Network): 跨越较大地理范围的网络。
  • 城域网 (MAN, Metropolitan Area Network): 介于 LAN 和 WAN 之间的网络规模。

9. 其他重要术语

  • 协议栈 (Protocol Stack): 组织在一起完成特定功能的一系列协议。
  • 互联网协议 (Internet Protocol, IP): 规定了如何在网络中寻址和路由数据包。
  • 传输控制协议 (Transmission Control Protocol, TCP): 提供面向连接的、可靠的字节流服务。
  • 用户数据报协议 (User Datagram Protocol, UDP): 提供无连接的服务,数据传输简单快速,但可靠性较低

网工 模拟信号

模拟信号是在时间和幅度上连续变化的信号,它们可以用来表示各种物理现象,如声音、图像或温度等。模拟信号的特性包括振幅、频率和相位,并且可以通过电子设备如放大器、滤波器等进行处理。

特性

  • 振幅: 信号强度的最大值。
  • 频率: 信号每秒重复的次数,单位是赫兹 (Hz)。
  • 周期: 完成一次完整波动所需的时间。
  • 相位: 信号相对于参考点的位置。

应用

模拟信号在很多领域都有广泛的应用,比如:

  • 音频: 音乐、语音等都是以模拟信号形式存在的。
  • 视频: 电视信号通常是模拟信号。
  • 无线电: FM 和 AM 广播使用模拟信号。
  • 传感器: 温度计、压力计等传感器输出的是模拟信号。

模拟信号的优缺点

  • 优点:
    • 直观易理解:模拟信号更接近自然界的现象。
    • 易于产生和处理:许多自然信号本身就是模拟信号。
    • 高保真度:理论上可以达到无限精度。
  • 缺点:
    • 易受干扰:模拟信号容易受到电磁干扰和其他噪声的影响。
    • 不易存储和复制:模拟信号的精确复制比较困难。
    • 不易远距离传输:信号会衰减,需要放大器来增强信号。

模拟信号的处理

  • 放大: 通过增加信号振幅来增强信号。
  • 滤波: 通过去除不需要的频率成分来改善信号质量。
  • 调制: 将低频信号加载到高频载波上以便于传输。
  • 解调: 从已调制信号中恢复原始信号。

模拟信号与数字信号的转换

模拟信号和数字信号之间可以互相转换,这种转换通常通过模数转换器 (ADC) 和数模转换器 (DAC) 实现。

  • 模数转换 (ADC): 将模拟信号转换为数字信号的过程。
  • 数模转换 (DAC): 将数字信号转换为模拟信号的过程。

模拟信号的例子

  • 音频: 声音波形是一种典型的模拟信号。例如,人说话的声音可以通过麦克风捕捉并转换成电信号。
  • 视频: 传统的电视广播使用模拟信号传输图像和声音。
  • 无线电: FM 和 AM 广播使用模拟信号传输音乐和语音节目。
  • 传感器: 温度传感器、压力传感器等通常输出模拟电压信号。