GATE 2018 CS 组 3

2025年03月17日 | 阅读 9 分钟

33) 考虑以下无符号 8 位定点二进制数表示:

b7 b6 b5 b4 b3 . b2 b1 b0

其中二进制小数点位于 b 3 和 b 2 之间。假设 b7 是最高有效位。下面列出的一些十进制数无法在上​​述表示中精确表示。

(i) 31.500     (ii) 0.875     (iii) 12.100     (iv) 3.001

以下哪个陈述是正确的?

  1. 以上 (i), (ii), (iii), (iv) 都无法精确表示
  2. 只有 (ii) 无法精确表示
  3. 只有 (iii) 和 (iv) 无法精确表示
  4. 只有 (i) 和 (ii) 无法精确表示

答案:C

说明

(i) 31.500 可以表示为:

(31.5)10 = (11111.100)2
        = 24 + 23 + 22 + 21 + 20 + 2-1
        = 16 + 8 + 4 + 2 + 1 + 0.5 = (31.05)10

(ii) 0.875 可以表示为:

(0.875)10 = (00000.111)2
        = 2-1 + 2-2 + 2-3
        = 0.50 + 0.25 + 0.125
        = (0.875)10

我们无法用无符号 8 位定点二进制数表示 (iii) 和 (iv)。

因此,正确答案是选项 C。


34) 处理器物理地址空间的大小为 2P 字节。字长为 2W 字节。缓存大小为 2N 字节。每个缓存块的大小为 2M 字。对于 K 路组相联缓存,标签字段的长度(以比特为单位)是?

  1. P - N - log2K
  2. P - N + log2K
  3. P - N - M - W - log2K
  4. P - N - M - W + log 2K

答案: B

说明

已知,
物理地址空间 = 2p 字节
字长 = 2w 字节(即,每个字的大小为 2W 字节)
缓存大小 = 2n 字节
标签大小 = 2X 字节
偏移位 = M
块大小 = 2m 字 = 2m * 2w 字节 = 2(m+w) 字节

由于它是 K 路组相联缓存,缓存中的每个组将包含 K 个块。

行数 = 缓存大小 / 块大小 = 2(n-m-w)
组数 = 行数 / K = 2(n-m-w)/K

我们知道,

标签位数 = 主内存位数 - 组位数 - 偏移位数
   x = P - W - (N - M - W - log2k ) - M
         = P - W - N + M + W + log2k - M
         = P - N + log2k


35) 考虑以下语言:

I. {am bn cp dq | m + p = n + q, 其中 m, n, p, q ≥ 0}
II. { am bn cp dq | m = n 且 p = q, 其中 m, n, p, q ≥ 0}
III. { am bn cp dq | m = n = p 且 p ≠ q, 其中 m, n, p, q ≥ 0}
IV. { am bn cp dq | mn = p + q, 其中 m, n, p, q ≥ 0}

以上哪些语言是上下文无关的?

  1. 仅 I 和 IV
  2. 仅 I 和 II
  3. 仅 II 和 III
  4. 仅 II 和 IV

答案: B

说明

I. 考虑:
   { am bn cp dq | m + p = n + q, 其中 m, n, p, q ≥ 0}
   m + p = n + q 或 m-n = q-p。

给定语言中的字符串是 --> {ε ab, ad, bc, cd, abcd, abbc, aabb, aadd, acdd, bbcc, ccdd, aaabdd, aaabbd, bcccdd, aabcdd, ........}

从以上可以看出,给定语言是上下文无关文法,因此可以为该文法设计下推自动机 (PDA)。

II. 考虑:
   { am bn cp dq | m = n 且 p = q, 其中 m, n, p, q ≥ 0}
   因为 m = n 且 p = q

给定语言中的字符串是 --> { ε, ab, cd, abcd, aabbcd, abccdd, aaabbbccdd, .......}

从以上可以看出,给定语言是上下文无关文法,因此可以为该文法设计下推自动机 (PDA)。

III. 考虑:
   { am bn cp dq | m = n = p 且 p ≠ q, 其中 m, n, p, q ≥ 0}
   m=n=p 且 p ≠ q

它不是上下文无关文法。因此无法为该文法设计下推自动机 (PDA)。

IV. 考虑:
   { am bn cp dq | mn = p + q, 其中 m, n, p, q ≥ 0}
   mn = p+q,不是上下文无关的。

它不是上下文无关文法。因此无法为该文法设计下推自动机 (PDA)。

因此,选项 (B) 是正确答案。


36) 考虑以下问题。L(G) 表示由文法 G 生成的语言。L(M) 表示由机器 M 接受的语言。

(I) 对于无限制文法 G 和字符串 w,w ∈ L(G) 吗?
(II) 给定一个图灵机 M,L(M) 是正则的吗?
(III) 给定两个文法 G1 和 G2,L( G1 ) = L(G2) 吗?
(IV) 给定一个 NFA N,是否存在一个确定性 PDA P 使得 N 和 P 接受相同的语言?

以下哪个陈述是正确的?

  1. 只有 I 和 II 是不可判定的
  2. 只有 III 是不可判定的
  3. 只有 II 和 IV 是不可判定的
  4. 只有 I、II 和 III 是不可判定的

答案: D

说明

-> 在第一个选项中,无限制文法的成员资格问题(即 REL)是不可判定的,因为可能进入无限循环。

-> 在第二个选项中,每个正则语言都是 REL(不可判定),但 REL 可能正则也可能不正则。

-> 在第三个选项中,没有给出文法的类型,因此 REL 中的等价问题是不可判定的。

-> 在第四个选项中,每个正则语言都是确定性 CFL,这是一个琐碎的属性,是可判定的。

因此,选项 (D) 是正确答案。


37) 词法分析器使用以下模式来识别字母表 {a,b,c} 上的三种标记 T1、T2 和 T3。

T1 : a? (b|c) * a
T2 : b? (a|c) * b
T3 : c? (b|a) * c

注意,“x?”表示符号 x 出现 0 次或 1 次。另请注意,分析器会输出匹配最长可能前缀的标记。如果字符串 bbaacabc 被分析器处理,以下哪个是它输出的标记序列?

  1. T1 T2 T3
  2. T1 T1 T3
  3. T2 T1 T3
  4. T3 T3

答案: D

说明

给定字符串 = bbaacabc

最长的可能前缀是 bbaac,它可以从 T3 获得。abc 是另一个可能的前缀,它将从 T3 获得。因此,正确选项是 D。


38) 考虑表达式 a#b$c$d#e#f 的以下解析树,涉及两个二元运算符 $ 和 #。

GATE CS Set 3

对于给定的解析树,以下哪个是正确的?

  1. $ 具有更高的优先级且是左结合的;# 是右结合的
  2. # 具有更高的优先级且是左结合的;$ 是右结合的
  3. $ 具有更高的优先级且是左结合的;# 是左结合的
  4. # 具有更高的优先级且是右结合的;$ 是左结合的

答案: A

说明

因为我们知道,出现在较低级别的运算符会先计算。因此 $ 具有更高的优先级和左结合性。而 # 是右结合性。

因此,选项 (A) 是正确答案。


39) 在一个系统中,有三种类型的资源:E、F 和 G。四个进程 P0、P1、P2 和 P3 并发执行。最初,进程已使用名为 Max 的矩阵声明了它们的最大资源需求,如下所示。例如,Max[P2, F] 是 P2 所需的 F 实例的最大数量。在任何给定状态下分配给各个进程的资源实例数量由名为 Allocation 的矩阵给出。

GATE CS Set 3

考虑一个系统状态,该状态具有如下所示的 Allocation 矩阵,并且在该状态下,只有 3 个 E 实例和 3 个 F 实例可用资源。

从死锁避免的角度来看,以下哪个陈述是正确的?

  1. 系统处于安全状态。
  2. 系统不处于安全状态,但如果再提供一个 E 实例,系统将处于安全状态。
  3. 系统不处于安全状态,但如果再提供一个 F 实例,系统将处于安全状态。
  4. 系统不处于安全状态,但如果再提供一个 G 实例,系统将处于安全状态。

答案: A

说明

Max分配需求可用
EFGEFGEFGEFG
P0431101330330
P1214112102431
P2133103030534
P3541200341646

可用 (3, 3, 0),可以满足 P0 或 P2 的请求。

如果我们选择 P0 <3, 3, 0>。那么完成后,我们将拥有 (3, 3, 0) + (1, 0, 1) = (4, 3, 1)
如果我们选择 P2 <0, 3, 0>。那么完成后,我们将拥有 (4, 3, 1) + (1, 0, 3) = (5, 3, 4)
如果我们选择 P1 <1, 0, 2>。那么完成后,我们将拥有 (5, 3, 4) + (1, 1, 2) = (6, 4, 6)
如果我们选择 P3 <3, 4, 1>。那么完成后,我们将拥有 (6, 4, 6) + (2, 0, 0) = (8, 4, 6)

因此,执行顺序是:P0->P2->P1->P3。那么系统处于安全状态。

因此,选项 (A) 是正确答案。


40) 考虑生产者-消费者同步问题的以下解决方案。共享缓冲区大小为 N。定义了三个信号量 empty、full 和 mutex,其初始值分别为 0、N 和 1。信号量 empty 表示缓冲区中供消费者读取的可用槽数。信号量 full 表示缓冲区中供生产者写入的可用槽数。下面的代码中的占位符变量 P、Q、R 和 S 可以分配给 empty 或 full。有效的信号量操作是:wait() 和 signal()。

制作人Consumer
do{
wait(P);
wait(mutex);
//向缓冲区添加项
signal(mutex);
signal(Q);
}while(1);
do{
wait(R);
wait(mutex);
//从缓冲区消耗项
signal(mutex);
signal(S);
}while(1);

以下哪个 P、Q、R 和 S 的赋值将产生正确的解决方案?

  1. P: full, Q: full, R: empty, S: empty
  2. P: empty, Q: empty, R: full, S: full
  3. P: full, Q: empty, R: empty, S: full
  4. P: empty, Q: full, R: full, S: empty

答案:C

说明

已知,
Empty = 0(表示已填充的槽数)。
Full = N(可用空槽数)
Mutex = 1

在生产者-消费者问题中,当缓冲区中的槽为空时,生产者会放置一个项,当缓冲区已满时,它会等待。在给定的问题中,当缓冲区中有可用槽时,full 将为 0;当缓冲区中没有可用槽时,P:full。

现在,当生产者将一个项放入缓冲区时,这意味着缓冲区中消费者开始读取的可用槽数增加。所以 Q:empty。

同样,当缓冲区中没有可供消耗的项时,消费者会等待。这可以通过 wait(empty) 来表示。所以 R:empty

一旦消费者消耗了一个项,这意味着缓冲区中可供生产者写入的可用槽数增加了。所以 S:full。

因此,选项 (C) 必须是正确答案。


GATE 2018 CS 组 3-1
GATE 2018 CS Set 3-2
GATE 2018 CS Set 3-3
GATE 2018 CS Set 3-4
GATE 2018 CS Set 3-6
GATE 2018 CS Set 3-7
GATE 2018 CS Set 3-8
GATE 介绍
下一个主题GATE 2018 CS Set 3-6