自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 收藏
  • 关注

原创 计算机网络 网络层:控制平面(二)

例如,一个路由选择网络控制。

2025-06-26 14:55:13 1002 1

原创 计算机网络 网络层:控制平面

通过回顾图 4-2 和图 4-3 ,迅速建立起学习网络控制平面的环境。在这里,转发表(在基于目的地转发的场景中)和流表(在通用转发的场景中)是链接网络层的数据平面和控制平面的首要元素。我们知道这些表定义了一台路由器的本地数据平面转发行为。看到在通用转发的场景下,所采取的动作(4.4.2 节)不仅包括转发一个分组到达路由器的每个输出端口,而且能够丢弃一个分组 、复制一个分组和/或重写第 2 ,3 或 4 层分组首部字段。本章中,学习这些转发表和流表是如何计算、维护和安装的。

2025-06-25 23:10:08 1167

原创 计算机网络 网络层:数据平面(二)

并且。

2025-06-25 19:43:25 1391

原创 计算机网络 网络层:数据平面(一)

图4-1 显示了一个简单网络,其中有H1 和 H2 两台主机,在 H1 与 H2 之间的路径上有几台路由器。假设 Hl 正在向 H2 发送信息,考虑这些主机与中间路由器的网络层所起的作用。H1 中的网络层取得来自于 H1 运输层的报文段,将每个报文段封装成一个数据报,然后向相邻路由器 R1发送该数据报。在接收方主机 H2,网络层接收来自相邻路由器R2 的数据报,提取出运输层报文段,并将其向上交付给 H2 的运输层。每台路由器的数据平面的主要作用是从其输入链路向其输出链路转发数据报;控制平面的主要作用是。

2025-06-19 14:48:43 1039

原创 操作系统导论 第42章 崩溃一致性:FSCK 和日志

在每个表中,时间向下增加表中的每一行显示可以发出或可能完成写入的逻辑时间。例如,在数据日志协议(见表42.1)中,事务开始块(TxB)的写入和事务的内容可以在逻辑上同时发出,因此可以按任何顺序完成。但是,在上述写入完成之前,不得发出对事务结束块(TxE)的写入。同样,在事务结束块提交之前写入数据和元数据块的加检查点无法开始。水平虚线表示必须遵守的写入顺序要求。对元数据日志协议也显示了类似的时间线。请注意,在逻辑上,数据写入可以与对事务开始的写入和日志的内容一起发出。但是,必须在事务结束发出之前发出并完成。

2025-06-12 17:34:17 776

原创 操作系统导论 第 41 章 局部性和快速文件系统

并将它们。

2025-06-04 19:23:25 693

原创 操作系统导论 第40章 文件系统实现

然后,对真实文件系统进行一系列研究,以了解它们在实践中有何区别。

2025-06-04 16:39:53 1139

原创 操作系统 第 39 章 插叙:文件和目录

这一部分加上虚拟化拼图中最关键的一块:持久存储。永久存储设备永久地(或至少长时间地)存储信息,如或持久存储设备与内存不同。内存在断电时,其内容会丢失,而。因此,操作系统必须特别注意这样的设备:用户用它们保存真正关心的数据。操作系统应该如何?都?有哪些重要方面?从总体上看 API:与 UNIX 文件系统交互时看到的接口。

2025-06-03 17:38:05 1025

原创 操作系统导论 第38章:廉价冗余磁盘阵列(RAID)

我们如何构建一个大型、快速和可靠的存储系统?关键技术是什么?不同方法之间的折中是什么?本章将介绍(Redundant Array of Inexpensive Disks),更多时候称为,这种技术一起构建更快、更大、更可靠的磁盘系统。从看,RAID 看起来像一个。在,RAID 是一个复杂的庞然大物,。硬件 RAID 非常像一个,专门用于管理一组磁盘。与单个磁盘相比,RAID 具有许多优点。一个好处就是。。另一个好处是。大型数据集需要大型磁盘。最后,RAID可以提高。

2025-05-28 17:32:31 1035 2

原创 操作系统导论 第37章:磁盘驱动器

第36章介绍了的一般概念,并展示了。。数十年来,这些驱动器一直是(即将探讨)的大部分发展都是基于它们的行为。因此,在构建管理它的文件系统软件之前,有必要先了解。现代磁盘驱动器?是什么??如何提高性能?

2025-05-28 17:32:25 795

原创 操作系统导论 第36章:I/O设备

先介绍的概念,并展示。当然,I/O对计算机系统非常重要。设想一个程序没有任何输入(每次运行总会产生相同的结果),或者一个程序没有任何输出(为什么要运行它?显而易见,为了让计算机系统更有趣,输入和输出都是需要的。因此,常见的问题如下:关键问题:如何将 I/O 集成进计算机系统中I。

2025-05-28 10:02:50 1012

原创 操作系统导论——第32章 常见并发问题

研究集中在4个重要的开源应用:MySQL(流行的数据库管理系统)、Apache(著名的 Web 服务器)、Mozilla(著名的Web 浏览器)和 OpenOffice(微软办公套件的开源版本)。研究人员通过检查这几个代码库已修复的并发缺陷,将开发者的工作变成量化的缺陷分析。 理解这些结果,有助于我们了解在成熟的代码库中,实际出现过哪些类型的并发问题。 表32.1 是 Lu 及其同事的研究结论。可以看出,共有105个缺陷,其中大多数是非死锁相关的(74个),剩余 31个是死锁缺陷。另外,可以

2025-05-25 19:09:14 1100

原创 计算机网络 第三章:运输层(三)

在 TIME_WAIT 状态中所消耗的时间是与具体实现有关的,而典型的值是 30 秒、 1分钟或 2分钟。经过等待后,连接就正式关闭,客户端所有资源(包括端口号)将被释放。图 3-42 图示了服务器端的 TCP 通常要经历的一系列状态,其中假设客户开始连接拆除。这些状态变迁是自解释的。在这两个状态变迁图中,只给出了 TCP 连接是如何正常地被建立和拆除上面的讨论假定了客户和服务器都准备通信,即。

2025-05-22 16:18:57 1285 2

原创 计算机网络 第三章:运输层(二)

该分组经过。

2025-05-22 12:29:44 1531

原创 操作系统导论——第31章 信号量

信号量是有一个整数值的对象,可以用两个函数来操作它。在 POSIX 标准中,是sem_wait() 和 sem_post()。因为信号量的初始值能够决定其行为,所以首先要初始化信号量,才能调用其他函数与之交互,如图31.1所示。sem_t s;其中申明了一个信号量 s,通过第三个参数,将它的值初始化为 1。sem_init() 的第二个参数,在看到的所有例子中都设置为 0,表示信号量是在同一进程的多个线程共享的。信号量初始化之后,调用 sem_wait() 或 sem_post() 与之交互。

2025-05-20 10:35:05 1118 3

原创 操作系统导论——第30章 条件变量

线程可以使用条件变量(condition variable),来等待一个条件变成真。条件变量是一个显式队列,当某些执行状态(即条件,condition)不满足时,线程可以把自己加入队列,等待(waiting)该条件。另外某个线程,当它改变了上述状态时,就可以唤醒一个或者多个等待线程(通过在该条件上发信号),让它们继续执行。Dijkstra 最早在“ 私有信号量 ”[D01] 中提出这种思想。Hoare 后来在关于观察者的工作中,将类似的思想称为条件变量[H74]。

2025-05-20 10:34:07 950

原创 计算机网络 第三章:运输层(一)

运输层协议为运行在不同主机上的应用进程之间提供了逻辑通信 (logic communication) 功能。从应用程序的角度看,通过逻辑通信,运行不同进程的主机好像直接相连一样;实际上,这些主机也许位于地球的两侧,通过很多路由器及多种不同类型的链路相连。应用进程使用运输层提供的逻辑通信功能彼此发送报文,而无须考虑承载这些报文的物理基础设施的细节。图3-1 图示了逻辑通信的概念。如图 3-1 所示,运输层协议是在端系统中而不是在路由器中实现的。在发送端,运输层将。

2025-05-19 19:51:19 1300

原创 操作系统导论——第29章 基于锁的并发数据结构

通过锁可以使数据结构线程安全(thread safe)。当然,具体如何加锁决定了该数据结构的正确性和效率?挑战是:对于特定数据结构,如何加锁才能让该结构功能正确?进一步,如何,能够保证高性能,让许多线程同时访问该结构,即。

2025-05-13 19:19:52 700 1

原创 操作系统导论——第28章 锁

通过对的介绍,看到了并发编程的一个最基本问题:希望,但由于单处理器上的中断(或者多个线程在多处理器上并发执行),做不到。本章介绍了,直接解决这一问题。程序员在源代码中加锁,。

2025-05-13 19:19:35 779

原创 操作系统导论——第27章 插叙:线程API

操作系统应该提供哪些创建和控制线程的接口?这些接口如何设计得易用和实用?

2025-05-09 20:33:40 1013

原创 操作系统导论——第26章 并发:介绍

指令。回忆一下,eax=51。因此,最后的 mov 指令执行, 将值保存到内存,

2025-05-09 20:33:30 708

原创 计算机网络 第二章:应用层(四)

对于这样的实现,客户程序和服务器程序必须遵守由该 RFC 所规定的规则。例如,

2025-04-23 14:41:14 916

原创 计算机网络 第二章:应用层(三)

下面给出 DNS 工作过程的总体概括,集中在主机名到 IP 地址转换服务方面。假设运行在用户主机上的某些应用程序(如 Web 浏览器或邮件阅读器)需要将主机名转换为 IP 地址。这些应用程序将调用 DNS 的客户端,并指明需要被转换的主机名(在很多基于 UNIX 的机器上,应用程序为了执行这种转换需要调用函数用户主机上的 DNS 接收到后,向网络中发送一个 DNS 查询报文。所有的 DNS 请求和回答报文使用 UDP 数据报经端口 53 发送。

2025-04-23 14:41:06 1326

原创 操作系统导论——第22章 超越物理内存:策略

在虚拟内存管理程序中,如果拥有大量空闲内存,操作就会变得很容易。。内存不够时,这种情况下,由于。确定要踢出(evict) 哪个页(或哪些页)封装在操作系统的(replacement policy)中。操作系统如何决定?这个决定由系统的替换策略做出,替换策略通常会遵循一些通用的原则(下面将会讨论),但也会包括一些调整,以避免特殊情况下的行为。

2025-04-15 13:10:03 1104 4

原创 操作系统导论——第21章 超越物理内存:机制

到目前为止,一直假定地址空间非常小,能。事实上,假设每个正在运行的进程的地址空间都能放入内存。再放松这些假设,并假设需要。为了达到目的,需要在再加上一层。目前为止,一直假设都常驻在。但是,为了支持更大的地址空间,。。因此,一般来说也。在现代系统中,(hard disk drive)通常能够满足这个需求。因此,在存储层级结构中,。操作系统如何利用大而慢的设备,透明地提供巨大虚拟地址空间的假象?为什么要为进程支持巨大的地址空间?。

2025-04-15 13:09:50 886

原创 操作系统导论——第20章 分页:较小的表

因此,页表的这两页就驻留在内存中。因此,多级页表的工作方式:它只是。

2025-04-14 19:42:19 983

原创 操作系统导论——第19章 分页:快速地址转换(TLB)

使用作为核心机制来实现,可能会带来较高的性能开销。使用分页,就要将,并且需要。因为这些一般存储在中,所以在转换虚拟地址时,。每次指令获取、显式加载或保存,都要额外读一次内存以得到转换信息,这慢得无法接受。因此我们面临如下问题:如何才能加速虚拟地址转换,尽量避免额外的内存访问?需要什么样的硬件支持?操作系统该如何 支持?硬件。增加所谓的,它就是频繁发生的虚拟到物理地址转换的。对每次内存访问,硬件先检查TLB,看看其中是否有期望的转换映射,如果有,就完成转换(很快),不用访问页表 (其中有全部的转换映射)

2025-04-14 18:54:17 1410

原创 操作系统导论 第18章 分页:介绍

操作系统有两种方法,来解决大多数问题。①第一种是,就像虚拟内存管理中的分段。遗憾的是,这个解决方法存在 有的问题。具体来说,,随着时间推移,分配内存会变得比较困难。。在虚拟内存中,我们称这种思想为,可以追溯到一个早期的重要系统,Atlas[KE+62, L78]。,每个单元称为。相应地,我们把看成是定长槽块的阵列,叫作。。我们的挑战是:如何通过页来实现虚拟内存,从而的问题?基本技术是什么?如何让这些技术运行良好, 并?

2025-04-01 14:43:09 914

原创 操作系统导论 第17章:空闲空间管理

管理空闲空间当然可以很容易,我们会在讨论分页概念时看到。如果需要管理的空间被划分为固定大小的单元,就很容易。在这种情况下,只需要,如果有请求,。如果要管理的空闲空间,管理就变得困难(而且有趣)。这种情况出现在(如malloc()和free()),或者(segmentation) 的方式实现虚拟内存。在这两种情况下,出现了(external fragmentation)的问题: 空,后续的请求可能失败,因为没有一块足够大的连续空闲空间,即使这时总的空闲空间超出了请求的大小。上面展示了该问题的例子。

2025-03-31 13:56:53 895

原创 计算机网络 第二章:应用层(1)

应用层协议定义①交换报文的类型,例如请求报文和响应报文。② 各种报文类型的语法,如报文中的各个字段及这些字段是如何描述的。③ 字段的语义,即这些字段中的信息的含义。④ 确定一个进程何时以及如何发送报文,对报文进行响应的规则。有些应用层协议是。

2025-03-29 18:41:01 1042

原创 计算机网络 第二章:应用层(2)

HTTP 服务器是无状态的。这简化了服务器的设计,并且允许工程师们去开发可以同时处理数以千计的 TCP 连接的高性能 Web 服务器。然而一个 Web 站点通常希望能够识别用户,可能是因为服务器希望限制用户的访问,或者因为它希望把内容与用户身份联系起来。为此, HTTP 使用了 cookie。cookie 在 [RFC 6265 ]中定义,它。目前大多数商务 Web 站点都使用了 cookie。;;;使用图 2-10 ,我们通过一个典型的例子看看 cookie 的工作过程。

2025-03-29 18:40:45 910

原创 操作系统导论——第16章 分段

到目前为止,我们一直假设。利用基址和界限寄存器,操作系统很容易将不同进程重定位到不同的物理内存区域。。从图16.1 中可知,如果我们,那么。因此,另外,如果剩余物理内存无法提供连续区域来放置完整的地址空间,进程便无法运行。这种基址加界限的方式看来并不像我们期望的那样灵活。因此怎样支持大地址空间,同时栈和堆之间(可能)有大量空闲空间?在之前的例子里,地址空间非常小,所以这种浪费并不明显。但设想一个32位(4GB)的地址空间,通常的程序只会使用几兆的内存, 但需要整个地址空间都放在内存中。

2025-03-27 14:51:22 816

原创 操作系统导论——第15章 机制:地址转换

需要两种 CPU 模式。操作系统在特权模式(privileged mode,或内核模式可以访问整个机器资源。应用程序在用户模式(user mode)运行只能做有限的操 作。只要一个位,也许保存在处理器状态字(processor status word)中,就能说明当前的 CPU运行模式。在一些特殊的时刻(如系统调用、异常或中断),CPU 会切换状态。

2025-03-27 13:37:18 1015

原创 操作系统导论——第 9 章 调度:比例份额

这时,算法选择最小的行程值,是C,执行并增加为80(C的步长是40)。然后C再次运行(依然行程值最小),行 程值增加到120。现在运行A,更新它的行程值为200(现在与B相同)。然后C再次连续运行两次,行程值也变为200。此时,所有行程值再次相等,这个过程会无限地重复下去。表9.1 展示了一段时间内调度程序的行为。可以看出,

2025-03-25 13:43:02 913

原创 操作系统导论——第8章 调度:多级反馈队列

多级反馈队列需要解决两方面的问题。。这通过。然而,,而这又是 SJF(或 STCF)等算法所必需的。(如用户坐在屏幕前,等着进程结束)很好的交互体验,。然而,像轮转这样的算法虽然降低了响应时间,周转时间却很差。关键问题:没有完备的知识如何调度??

2025-03-25 11:51:37 1526

原创 计算机网络 第一章:计算机网络和因特网(2)

分组交换网中的时延、丢包和吞吐量。

2025-03-23 18:01:02 1403

原创 操作系统导论——第14章 插叙:内存操作API

本章所关注的问题:在 UNIX/C 程序中,理解如何分配和管理内存是构建健壮和可靠软件的重要基础。?哪些错误需要避免?

2025-03-23 17:13:50 920

原创 操作系统导论——第13章 抽象:地址空间

从内存来看,早期的机器并没有提供多少抽象给用户。基本上,如图13.1所示操作系统曾经是,在内存中(在本例中,从),然后有一个,目前在物理内存中(在本例中,从),。这里几乎没有抽象,用户对操作系统的要求也不多。

2025-03-22 17:16:21 1038

原创 操作系统导论——第7章:进程调度

先做一些简化假设。这些假设与系统中运行的进程有关,有时候统称为。确定工作负载是。一个完全可操作的调度准则。

2025-03-22 15:46:23 984 2

原创 计算机网络 第一章:计算机网络和因特网(1)

协议定义了在两个或多个通信实体之间交换的报文的格式和顺序以及在报文发送和/或接收一条报文或其他事件方面所采取的动作。

2025-03-17 19:13:09 1074

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除