网工 数据交换技术

在网络中,数据交换技术是指在网络节点之间传输数据包的方式。数据交换技术对于确保数据在网络中的有效传输至关重要。以下是几种主要的数据交换技术:

  1. 电路交换(Circuit Switching)
    • 原理:在数据传输之前建立一条专用的物理连接路径。
    • 特点:提供固定带宽的连接,适合语音通信等实时应用。
    • 示例:传统电话网络(PSTN)
  2. 报文交换(Message Switching)
    • 原理:将整个消息作为一个整体在网络中传输。
    • 特点:消息在到达目的地之前可能需要在多个节点存储转发。
    • 应用:较少使用,因为效率较低且延迟较高。
  3. 分组交换(Packet Switching)
    • 原理:将数据分割成小的数据包在网络中独立传输。
    • 特点:数据包可以在网络中选择最佳路径,提高了网络资源的利用率。
    • 示例:互联网、局域网(LAN)、广域网(WAN)
    分组交换又可以分为两种主要类型:
    • 数据报交换(Datagram Switching):
      • 原理:每个数据包独立路由,可能走不同的路径。
      • 特点:每个数据包都包含完整的目的地址信息,灵活性高但可能导致数据包乱序。
      • 示例:互联网上的大部分流量。
    • 虚电路交换(Virtual Circuit Switching):
      • 原理:为每个会话建立一个虚拟连接路径,数据包沿着相同的路径传输。
      • 特点:提供有序的数据包传输,类似于电路交换但更加灵活。
      • 示例:x.25、帧中继、ATM(异步传输模式)
  4. 标签交换(Label Switching)
    • 原理:类似于虚电路交换,但使用标签来标识数据包的路径。
    • 特点:提供快速的数据包转发,适合多媒体和实时应用。
    • 示例:MPLS(多协议标签交换)
  5. 软件定义网络(SDN)交换
    • 原理:将网络控制平面与数据平面分离,通过软件集中管理网络。
    • 特点:提供灵活的网络配置和管理能力。
    • 示例:OpenFlow交换机

目前的交换方式主要有报文交换,分组交换和电路交换。其中分组交换实际上是数据包最大长度恒定的报文交换,根据其具体的工作机制的不同,可以分为以下三种:

数据报交换:类似于报文交换,只是数据包是定长的。

虚电路交换:类似于电路交换,只不过链路是逻辑的、数据包是定长的。

信元交换:数据包定长为53B,而且采取的是面向连接的虚电路方式。

对比项虚电路数据报
是否建立连接需要先建立连接,再传数据不需要建立连接
地址每个分组含有虚电路号每个分组都有源和目的端地址
分组顺序总是按发送顺序到达目的端(不乱序)排序发送,不一定按序接收(乱序)
路由选择在虚电路连接建立时进行,所有分组均按同一路由每个分组独立选择路由
路由器出故障所有通过了故障路由器的虚电路均不能工作出故障的路由器可能会丢失分组,一些路由可能会发生变化
典型网络X.25、帧中继、ATMIP

总结

  • 电路交换:适用于需要固定带宽的实时应用,如电话通信。
  • 报文交换:较少使用,主要用于存储转发系统。
  • 分组交换:互联网和大多数现代网络的基础。
    • 数据报交换:适用于互联网上的大多数流量。
    • 虚电路交换:适用于需要有序传输的应用。
  • 标签交换:适用于需要快速转发和多媒体应用。
  • 软件定义网络(SDN)交换:提供高度灵活的网络管理和配置能力。

这些数据交换技术各有优势和适用场景,网络设计师和工程师会根据具体的应用需求选择合适的数据交换技术。

电路交换的特点

  1. 固定带宽
    • 电路交换为每个连接提供固定的带宽,这使得它非常适合语音通信等实时应用。
  2. 低延迟
    • 由于连接是专用的,因此可以提供低延迟的数据传输。
  3. 高可靠性
    • 由于连接是预先建立的,因此可以提供较高的数据传输可靠性。
  4. 资源独占
    • 在连接期间,通信路径上的资源被独占使用,即使数据暂时没有传输也会占用这些资源。

电路交换的应用

  1. 传统电话网络(PSTN):
    • 电路交换是传统电话网络(Public Switched Telephone Network, PSTN)的核心技术。
  2. 专用线路
    • 在一些需要固定带宽和低延迟的应用场景中,电路交换仍然被使用。
  3. ISDN(Integrated Services Digital Network)
    • ISDN是一种使用电路交换技术的综合业务数字网络,可以提供语音和数据服务。

POTS

POTS(Plain Old Telephone System,普通老式电话系统)是指传统的电话服务,它基于电路交换技术。POTS是最早的电话通信系统之一,至今仍在许多地区使用。以下是关于POTS和电路交换的一些关键信息:

POTS的工作原理

  1. 建立连接
    • 当一方拨打电话时,电话网络会在呼叫者和被叫者之间建立一条专用的物理连接。
    • 这个过程涉及电话交换机(如自动交换局,Automated Switching Office, ASO)之间的连接。
  2. 数据传输
    • 一旦连接建立,双方就可以通过这条专用连接进行通话。
    • 由于连接是专用的,因此通话不受其他通信的影响,可以提供固定的带宽和低延迟。
  3. 拆除连接
    • 通话结束后,连接会被拆除,释放所占用的资源。

电路交换的特点

  1. 固定带宽
    • 电路交换为每次通话提供固定的带宽,这使得它非常适合语音通信等实时应用。
  2. 低延迟
    • 由于连接是专用的,因此可以提供低延迟的数据传输。
  3. 高可靠性
    • 由于连接是预先建立的,因此可以提供较高的数据传输可靠性。
  4. 资源独占
    • 在连接期间,通信路径上的资源被独占使用,即使通话暂时中断也会占用这些资源。

POTS的应用

  1. 传统电话服务
    • POTS是传统电话服务的基础,用于语音通话。
  2. 传真服务
    • POTS还可以用于发送和接收传真。
  3. 报警系统
    • 一些安全报警系统仍然使用POTS线路进行通信。

POTS与现代通信技术的比较

  • POTS
    • 基于电路交换技术。
    • 提供固定带宽和低延迟。
    • 适合语音通信等实时应用。
  • VoIP(Voice over IP)
    • 基于分组交换技术。
    • 提供灵活的带宽分配和高效率。
    • 适合互联网电话等非实时应用。

POTS的局限性

  • 资源浪费:即使没有通话,连接路径上的资源也被占用。
  • 灵活性较低:无法动态分配带宽。
  • 扩展性较差:难以应对突发流量。

POTS的现状

尽管POTS技术历史悠久,但随着技术的发展,许多国家和地区正在逐步转向基于IP的通信技术,如VoIP(Voice over IP)。然而,POTS仍然在某些地区和应用中发挥作用,特别是在需要固定带宽和低延迟的场景中。

总结

POTS是基于电路交换技术的传统电话系统,它为用户提供固定带宽和低延迟的语音通信服务。尽管POTS在许多方面已经被现代通信技术所取代,但它在某些特定应用中仍然保持着一定的作用。

网工 码元概念与多路利用

码元(Symbol)是在数据通信中用来表示信息的基本单位。在数字通信系统中,码元通常是指传输过程中使用的信号元素或信号状态。码元可以是二进制的(仅包含两个可能的状态,例如0和1),也可以是多进制的(包含两个以上的状态)。

码元的基本概念

  • 码元: 用于表示数据的一个信号状态或元素。
  • 码元速率 (Symbol Rate): 每秒传输的码元数量,通常用波特(Baud)表示。

码元与比特的关系

在二进制系统中,每个码元代表一个比特(bit),因此码元速率等于比特率。然而,在多进制系统中,一个码元可以表示多个比特的信息。例如,在四进制系统中,每个码元可以表示2比特的信息。

码元速率与比特率的关系

码元速率和比特率之间的关系可以通过以下公式表示:

示例

假设在一个通信系统中使用的是四进制调制(每个码元可以表示4种状态),那么每个码元可以表示2比特的信息。如果码元速率为1000 Baud,则比特率为:

码元调制技术

不同的调制技术使用不同数量的状态来表示码元,常见的调制技术包括:

  • 幅度键控 (ASK, Amplitude Shift Keying): 通过改变信号的幅度来表示不同的码元。
  • 频率键控 (FSK, Frequency Shift Keying): 通过改变信号的频率来表示不同的码元。
  • 相位键控 (PSK, Phase Shift Keying): 通过改变信号的相位来表示不同的码元。
  • 正交幅度调制 (QAM, Quadrature Amplitude Modulation): 结合幅度和相位的改变来表示更多的码元状态。

码元的应用

码元的概念在数据通信和信号处理中有广泛应用,例如:

  • 数字调制: 通过选择适当的调制技术来提高数据传输效率。
  • 多路复用: 利用不同的码元来区分不同的数据流。
  • 编码: 通过对码元进行编码来实现错误检测和纠正。

示例计算

假设我们有一个使用16-QAM调制的通信系统,这意味着每个码元可以表示4比特的信息。如果码元速率为1000 Baud,则比特率为:

多路复用的概念

在通信领域,“多路复用”(Multiplexing)是一个重要的概念,它指的是在一个通信信道上同时传输多个信号的技术。多路复用使得多个用户或多个数据流可以在同一个物理信道上共享带宽,从而提高了通信效率和网络资源的利用率。

多路复用的主要类型包括:

  1. 频分多路复用(Frequency Division Multiplexing, FDM):
    • 在FDM中,不同的信号分配在不同的频率带上进行传输。每个信号都有自己的频率范围,这些频率范围互不重叠,从而避免了信号之间的干扰。
    • 例如,传统的模拟电话系统中,多个电话通话通过不同的频率带宽在同一根电缆上传输。
  2. 时分多路复用(Time Division Multiplexing, TDM):
    • TDM将时间划分为一系列相等的时间段(时隙),不同信号在不同的时间段内占用信道进行传输。
    • 例如,数字电话系统中,多个通话轮流占用同一根电缆的不同时间片进行传输。
  3. 波分多路复用(Wavelength Division Multiplexing, WDM):
    • WDM主要用于光纤通信中,不同的信号在不同的光波长上传输。
    • 通过这种方式,可以在同一根光纤上同时传输多个独立的数据流。
  4. 码分多址/多路复用(Code Division Multiple Access/Multiplexing, CDMA/CDM):
    • CDMA/CDM允许不同用户使用不同的编码序列在同一时间、同一频率上发送数据。
    • 通过独特的编码序列,接收端可以解码并分离出各个用户的信号。
  5. 空分多路复用(Space Division Multiplexing, SDM):
    • SDM通过使用多条物理路径(例如多模光纤或多条天线)来传输不同的信号,实现多路复用。
  6. 统计时分多路复用(Statistical Time Division Multiplexing, STDM):
    • STDM是TDM的一种变体,它根据实际数据需求动态分配时间片,从而更高效地利用带宽。

多路复用技术在现代通信系统中极为重要,它不仅应用于有线通信,如电话线路和光纤通信,也广泛应用于无线通信,如移动通信和卫星通信。

示例:

复用技术是把多个低速通道组合成一个高速通道的技术,它可以有效地提高数据链路的利用率,使一条高速主干链路同时为多条低速接入链路服务,也就是让远程网络的干线同时远距离传输大量的语音和数据。复用技术最常用的两个设备是复用器和分路器,它们统称为多路器(MUX)。复用器在发送端根据约定规则将多个低带宽信号合成一个高带宽信号;分路器则根据约定规则再将高带宽信号分解成多个低带宽信号。

示例:

10个9.6Kb/s的信道按时分多路复用在一条线路上传输,在统计TDM情况下,假定每个信道只有30%的时间忙,复用线路的控制开销为10%,那么复用线路的带宽应该()

所以,复用线路的带宽应该至少为 31.68Kb/s。

1. 频分复用 (FDM)

典型应用

  • 广播系统
    • AM/FM收音机:不同电台分配不同频率(如88.1MHz、102.5MHz),用户通过调频选择频道。
    • 电视信号:模拟电视时代,每个频道占用6MHz带宽(如NTSC制式)。
  • 有线电视(CATV)
    • 同轴电缆中复用数十个电视频道,通过滤波器分离信号。
  • 无线通信(早期蜂窝网络)
    • 1G网络(如AMPS)采用FDM划分用户信道。

关键特点

  • 需保护频带防止干扰,适合模拟信号传输。

2. 时分复用 (TDM)

典型应用

  • 传统电话网络(PSTN)
    • T1/E1线路:T1(1.544Mbps,24路语音)、E1(2.048Mbps,32路),每路语音分配固定时隙。
    • ISDN:数字电话网络,基于TDM技术。
  • 移动通信(2G/3G/4G)
    • GSM(2G):将频带划分为时隙,8用户共享同一频率(TDMA)。
    • LTE(4G):结合TDM和FDM(OFDMA)。
  • 光纤通信(SDH/SONET)
    • 通过TDM实现多路光信号同步传输(如STM-1速率155.52Mbps)。

关键特点

  • 严格时钟同步,高效利用带宽,适合数字信号。

3. 波分复用 (WDM)

典型应用

  • 长距离光纤骨干网
    • DWDM(密集波分复用):单光纤传输80+波长(如C波段1530~1565nm),每波长承载10Gbps~400Gbps。
      • 案例:跨洋海底光缆(如FASTER电缆,60Tbps容量)。
    • CWDM(粗波分复用):波长间隔20nm,成本低,用于城域网。
  • 数据中心互联(DCI)
    • 通过WDM实现服务器集群间高速互联(如Facebook的Open Optical Network)。
  • 5G前传网络(eCPRI)
    • 利用WDM节省光纤资源,连接基站和核心网。

关键特点

  • 依赖光放大器(EDFA)和光分插复用器(OADM),适合大容量传输。

4. 其他复用技术补充

码分复用 (CDM/CDMA)

  • 应用:3G移动通信(WCDMA)、GPS卫星信号。
  • 原理:通过唯一编码区分用户,抗干扰强。

正交频分复用 (OFDM)

  • 应用:Wi-Fi(802.11a/g/n/ac)、4G/5G(OFDMA)、数字电视(DVB-T)。
  • 原理:将信道划分为正交子载波,抗多径干扰。

网工 传输介质

双绞线

  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码即可,以此类推。

Index