引言
这五题的难度还好,本来解完充满自信来着,不小心看了下下午论述题,我瞬间没自信了 :cry:
碎碎念
思考人生这种事情也确实是空闲的人会思考的,忙起来后也就没时间去胡思乱想了 但忙过头了说不定也会想呢
我如今应该是意识到自己之前的两点不足了。首先是总觉得随时都能复习;其次是“学无止境”这个观念的误用。
应该先从学无止境开始吧。“学无止境”本身是正确的,但是我对这个概念的理解有些偏颇。我一直认为知识是无限的,总觉得自己不可能完全掌握任何东西,也因此产生了“什么都不会”的心态。实际上,虽然知识的确无穷无尽,但并不意味着每个领域都必须完全精通才能实际应用。有时,掌握其中一部分内容已经足够应对工作和任务了
例如我常常在通过一门考试之后,依然会觉得自己一无所知,仍然无法胜任相关工作。然而,客观来说,只要掌握了必要的部分内容,就已经具备了完成相关任务的能力。这个心态可能和我过去受到的教育有关,常常听到类似“世界很大”“所学远远不够”“真正的高手有多厉害”等话语。这种观念在一定程度上鼓励了学习,却也让我过于关注自身的不足,逐渐失去了原本的信心
像是现在我听到的多数学生也是会“我什么都做不到”之类的话语,可能有部分原因是这种观念带来的副作用
然后就是随时都能复习的想法。倒也不是复习,更像是一种“随时可以查阅”的依赖心理。我之前备考日语 N2 时候读到一篇文章,讲述了没有文字的人如何学习之类的,因为没有文字的记载,对于知识的获取如上课可能是此生只有一次机会听到该内容,所以必须全部努力记下来才行;文章还提到了我们因为网络很便利而不去记忆一些东西,并且认为网络能检索到的东西都是自己的知识,但假如网络不能用的话事实上是不知道那些内容的,所以真正属于自己的知识是那些已经内化到记忆中的东西。
回到我的情况,我也是因为觉得可以随时看,比如某条 Linux 命令啦或某段算法代码之类的而不去记忆,造成一种我以为我会,但用的时候并不能写出来,实际上应该属于不会的范畴。这样反复的经历也加深了前面提到的“什么都不会”的感觉。
总结一下,首先应当意识到未被记忆的东西应该属于不会,并且胜任某件作业或者可以成为某种角色所需掌握的知识是有边界的,不用去尝试完全精通
感觉写出来和想表达的意思还是有点偏差,文笔不好还使用了 ChatGPT,就这样吧
21
容量が a M バイトでアクセス時間がxナノ秒の命令カッシュと、容量が b M バイトでアクセス時間がyナノ秒の主記憶をもつシステムにおいて、CPUからみた、主記憶と命令キャッシュとを合わせた平均アクセス時間を表す式はどれか。ここで、読み込みたい命令コードが命令キャッシュに存在しない確率をrし、キャッシュ管理に関するオーバヘッドは無視できるものとする。
\[\begin{align} ア &\frac{(1-r)\cdot a}{a+b} \cdot x +\frac{r \cdot b}{a+b} \cdot y \\ イ &(1-r) \cdot x + r \cdot y \\ ウ &\frac{r \cdot a}{a+b} \cdot x + \frac{(1-r) \cdot b}{a+b} \cdot y \\ エ &r \cdot x + (1-r) \cdot y \end{align}\]题目翻译:容量为 a MB、访问时间为 x 纳秒的指令缓存和容量为 b MB、访问时间为 y 纳秒的主存储器构成的系统中,从 CPU 的角度来看,主存储器和指令缓存的平均访问时间的表达式是哪一个?其中,所需的指令代码不存在于指令缓存中的概率为 r,可以忽略与缓存管理相关的开销
- 命中缓存时间是 $(1-r) \times x$
- 未命中缓存,读取主存时间为 $r \times y$
所以答案选 イ
22
データベースサーバのクラスタリング技術の特徴のうち、シェアードエブリシングはどれか。
ア クラスタリング構成にして可用性を高めることによって、故障発生時に担当していた範囲のデータを待機系のサーバに引き継ぐことができる。
イ サーバごとに管理する対象データが決まっているので、1台のサーバに故障が発生すると故障したサーバが管理する対象データを処理できなくなり、システム全体の可用性が低下する。
ウ データを複数の磁気ディスクに分割配置し、更にサーバと磁気ディスクが1対1に対応しているので、複数サーバを用いた並列処理ができる。
エ 負荷を分散し、全てのサーバのリソースを有効活用できることに加えて、データを共有することによって1台のサーバに故障が発生したときでも処理を継続することができる。
题目翻译:在数据库服务器的集群技术 (clustering) 特性中,以下哪一项描述了 Shared Everything 的特点
ア 通过集群配置提高可用性,故障发生时可以将负责的范围内数据转交给备用服务器
イ 每个服务器负责管理特定数据,因此如果某个服务器发生故障,则无法处理该服务器负责的数据,系统的整体可用性会下降
ウ 数据被分割并放置在多个磁盘上,服务器和磁盘之间是一对一的对应关系,因此可以利用多个服务器进行并行处理
エ 在负载分散的同时可以有效利用所有服务器资源,并且通过共享数据,即使某一台服务器发生故障,也能继续处理
Shared Everything 是一种数据库集群架构,在该架构中,所有服务器共享相同的数据存储。这样一来,任何一台服务器的资源都可以访问和处理数据库中的所有数据,从而提高系统的冗余性和容错能力。如果一台服务器出现故障,其他服务器可以接管该服务器的任务,不会导致系统整体不可用。所以答案选 エ
选项 ア 描述的是主备架构;选项 イ 描述的是 Shared Nothing 架构;选项 エ 描述的是 Shared Disk 架构 (最后俩架构看看就好 doge)
23
幾つかのサブシステムから成るシステムの信頼性に関する記述のうち、適切なものはどれか。
ア あるサブシステムで発生したフォールトの影響が他のサブシステムに波及することを防ぐフォールトマスグは、システムのMTBFは変化させないが、MTTRの短縮につながる。
イ サブシステムにフォールトが検出されたとき、再試行すると正しい結果が得られる場合もあるので、再試行はシステムのMTBFの向上とMTTRの短縮につながる。
ウ サブシステムの稼働中に行われるフォールトの検出は、システムを停止せず行われるので、システムのMTTRは変化させないが、MTBFの向上につながる。
エ フォールトが発生したあるサブシステムを切り離して、待機系のサブシステムに自動で切り替えるフェールオーバーは、システムのMTBFは変化させないが、MTTRの短縮につながる。
题目翻译:以下关于由多个子系统组成的系统的可靠性的描述中,哪一项是正确的
ア 故障隔离 (Fault Masking) 防止某个子系统中发生的故障影响到其他子系统,虽然不改变系统的平均无故障时间 (MTBF) ,但可以缩短平均修复时间 (MTTR)
イ 当检测到子系统中有故障时,重试可能会得到正确的结果,因此重试会提升系统的 MTBF,并缩短 MTTR
ウ 在子系统运行过程中进行的故障检测不会停止系统,因此不会改变系统的 MTTR,但可以提升 MTBF
エ 发生故障的子系统会被隔离,并自动切换到备用子系统的故障转移 (Failover) 机制不会改变系统的 MTBF,但可以缩短 MTTR
对于多子系统组成的系统来说,可靠性通常取决于 MTBF 和 MTTR。MTBF is Mean Time Between Failures. MTTR is Mean Time To Repair (Recovery).
Fault Masking (故障隔离) 确保故障不会蔓延至其他子系统。故障隔离的确减少了受故障影响的子系统数量,帮助快速修复,但不会直接影响系统的 MTBF,因为它只是隔离了故障,而不是防止故障的发生
重试在系统中可以用于处理偶发的错误。但它属于容错机制,并不能提高系统整体的 MTBF 。因为系统的根本故障没有减少,这一机制只是避免了某些操作失败
故障检测能在运行过程中提升系统的 MTBF,但与 MTTR 无关
Failover (故障转移) 将故障系统切换至备用系统,提升系统恢复能力。这种方式通过快速替换故障系统,确实有效地缩短了 MTTR,但不会影响 MTBF,因为它只是缩短了恢复时间
总之 ア 和 エ 我是没明白,答案选 エ。可能故障隔离不是直接恢复被故障影响的功能或组件,而故障切换在缩短恢复时间方面更加直接有效吧
24
$t_{1} \sim t_{10}$ の時刻でスケジュールされたトランザクション $T_1 \sim T_4$ がある。時刻 $t_{10}$ で $T_1$ が commit を発行する直前の、トランザクションの待ちグラフを作成した。a に当てはまるトランザクションはどれか。ここで、select(X) は共有ロックを掛けて資源 X を参照することを表し、update(X) は専有ロックを掛けて資源 X を更新することを表す。これらのロックは、commit された時にアンロックされるものとする。また、トランザクションの待ちグラフの矢印は、$T_i \rightarrow T_j$ としたとき、$T_j$ がロックしている資源のアンロックを、$T_i$ を待つことを表す。
(トランザクションのスケジュール$t_1$)
時刻 | $T_1$ | $T_2$ | $T_3$ | $T_4$ |
---|---|---|---|---|
$t_1$ | select(A) | |||
$t_2$ | select(B) | |||
$t_3$ | select(B) | |||
$t_4$ | select(A) | |||
$t_5$ | update(B) | |||
$t_6$ | select(C) | |||
$t_7$ | select(C) | |||
$t_8$ | update(C) | |||
$t_9$ | update(A) | |||
$t_{10}$ | commit |
(トランザクションの待ちグラフ)
ア $T_1$
イ $T_2$
ウ $T_3$
エ $T_4$
题目翻译:在时刻 $t_{1} \sim t_{10}$ 之间,调度了事务 $T_1 \sim T_4$ 。在时刻 $t_{10}$ 时,事务 $T_1$ 在 commit 前,构建了事务的等待图。请问在图中位置 a 所指的事务是哪一个?这里,select(X) 表示对资源加共享锁并读取,update(X) 表示对资源加排他锁并修改。所有的锁会在事务提交时解锁。并且在等待图中,箭头 $T_i \rightarrow T_j$ 表示事务 $T_i$ 正在等待事务 $T_j$ 解锁其持有的资源
关于数据库的并发控制 (X 锁和 S 锁) 可以参见: https://blog.yexca.net/archives/92
这里首先共享锁 (S 锁) 是可以被其他事务读取的,所以并不会发生阻塞,也就是一直到 $t_5$ 时刻 $T_4$ 的 update(B) 想对资源 B 加排他锁 (X 锁) ,但资源 B 此事被 $T_2$ 和 $T_3$ 加共享锁而阻塞,图中受到两个阻塞的有 b 和 c 。也就是 $T_4$ 可能是 b 或者 c
然后 $t_8$ 时刻 $T_2$ 想对 C 加排他锁,此时资源 C 被 $T_1$ 和 $T_2$ 阻塞,所以 $T_1$ 阻塞 $T_2$ 。图中只有一个阻塞的是 a 。基本可以断定其就是 $T_2$
最后 $t_9$ 想对 A 施加排他锁,此时 A 被 $T_1$ 和 $T_4$ 施加共享锁,所以被其阻塞,符合条件的有 b 和 c 。
之后就是提交释放锁了,未被阻塞的只有 $T_1$ 所以是 d,根据上述分析可以知道 a 是 $T_2$ 、b 是 $T_4$ 、c 是 $T_3$ 。所以答案选 イ
25
図は、既存の電話機とPBXを使用した企業内の内線網を、IPネットワークに統合する場合の接続構成を示している。図中の $a \sim c$ に該当する装置の適切な組合せはどれか。
- | a | b | c |
---|---|---|---|
ア | PBX | VoIPゲートウェイ | ルータ |
イ | PBX | ルータ | VoIPゲートウェイ |
ウ | VoIPゲートウェイ | PBX | ルータ |
エ | VoIPゲートウェイ | ルータ | PBX |
题目翻译:图中展示了一个企业内部的内线网络在整合到 IP 网络时的连接构成。请问图中 $a \sim c$ 所对应的设备正确组合是哪一项
- | a | b | c |
---|---|---|---|
ア | PBX | VoIP 网关 | 路由器 |
イ | PBX | 路由器 | VoIP 网关 |
ウ | VoIP 网关 | PBX | 路由器 |
エ | VoIP 网关 | 路由器 | PBX |
为了将传统电话系统整合进 IP 网络结构,需要一些设备:
- PBX (Private Branch Exchange,专用分支交换机):这是传统电话系统的核心设备,负责管理和控制企业内部电话的交换与连接
- VoIP 网关:充当传统电话系统与 IP 网络之间的桥梁,将模拟信号转换为 IP 数据包,以便在 IP 网络上传输
- 路由器:负责在 IP 网络上管理和转发数据包,确保数据包能够到达目的地
所以答案选 ア