c***G 发帖数: 88 | 1 这两年毕业找工作找得很磕磕碰碰,很感谢版上的国人的面经让我最终找到了工作。在
这贴些这两年面过的几家公司一些面积,很惭愧,这些全都跪了。
板上和LeetCode上有的就都不提了,就贴几个我觉得在这个版上不常见到的题目吧。
Pure Storage
i = 0;
五个进程同时run
for (int k = 0; k < 5; k++)
++i;
i最后可能的最大值和最小值。
Tintri
print(x,y,z)函数的参数在堆栈上的顺序, 是x,y,z 还是z,y,x
Google
用正则表达式表达浮点数
i = 0;
五个进程同时run
while(true) {
++i;
print i;
}
所有可能打印的sequence。(瞬间跪了,我至今都不知道这个要怎么回答)
好像还问了个如果是2个进程的话,可否出现打印序列是1,2,2,3,3,3,4,,,
Vmware:
Page Fault的原理
GDB的原理
解释下当你在电脑上输入www.google.com后,从开始请求到最后返回结果的整个过程。 |
j******o 发帖数: 4219 | |
T****U 发帖数: 3344 | 3 Google
i = 0;
五个进程同时run ++i; print i;
可能出现的所有sequence。(瞬间跪了,我至今都不知道这个要怎么回答)
这题应该是第一个数是1-5中任意一个,第二个数是2-5任意一个。。。
[1-5][2-5][3-5][4-5]5
而且后面一个数不小于前面一个数
【在 c***G 的大作中提到】 : 这两年毕业找工作找得很磕磕碰碰,很感谢版上的国人的面经让我最终找到了工作。在 : 这贴些这两年面过的几家公司一些面积,很惭愧,这些全都跪了。 : 板上和LeetCode上有的就都不提了,就贴几个我觉得在这个版上不常见到的题目吧。 : Pure Storage : i = 0; : 五个进程同时run : for (int k = 0; k < 5; k++) : ++i; : i最后可能的最大值和最小值。 : Tintri
|
n*******s 发帖数: 17267 | 4 狗家那个,可以从最大是5,4,3,2,1依次求解
又看了一眼,while(true), 草! |
x*******9 发帖数: 138 | |
i******w 发帖数: 214 | 6 g的应该是线程
就是所有的数都出现5遍 顺序可以是穿插的
两个线程不可能出现那种情况
【在 c***G 的大作中提到】 : 这两年毕业找工作找得很磕磕碰碰,很感谢版上的国人的面经让我最终找到了工作。在 : 这贴些这两年面过的几家公司一些面积,很惭愧,这些全都跪了。 : 板上和LeetCode上有的就都不提了,就贴几个我觉得在这个版上不常见到的题目吧。 : Pure Storage : i = 0; : 五个进程同时run : for (int k = 0; k < 5; k++) : ++i; : i最后可能的最大值和最小值。 : Tintri
|
s**x 发帖数: 7506 | |
s*******i 发帖数: 698 | 8 arguments在stack上那道题哪一点扯谈了?
要回答的好至少可以提到arguments一般是通过register传递,stack growth的方向,
calling convention的基本概念以及很多unpredictible的东西 不是那么简单就能回
答好的。
【在 j******o 的大作中提到】 : G和VM的题目还靠点谱,上两家完全是扯淡
|
s*******i 发帖数: 698 | 9 有个while循环。
感觉应该是[1-5][2-6][3-7]... 并且后一个数不小于前一个数。不确定考虑情况完全
没有。
所以两个线程是[1-2][2-3][3-4]... 并且后一个数不小于前一个数。他那个序列不满足
【在 T****U 的大作中提到】 : Google : i = 0; : 五个进程同时run ++i; print i; : 可能出现的所有sequence。(瞬间跪了,我至今都不知道这个要怎么回答) : 这题应该是第一个数是1-5中任意一个,第二个数是2-5任意一个。。。 : [1-5][2-5][3-5][4-5]5 : 而且后面一个数不小于前面一个数
|
c***G 发帖数: 88 | 10
满足
建议你可以先想想++i;到底是怎么做的,我觉得至少有以下几步:
1. 从mem取值到寄存器
2. 在寄存器上进行计算
3. 寄存器的值写回到mem。
如果我没记错的话,G问的那个sequence是可能的。
我觉得两道题思路差不多,可是G这道复杂太多了。
满足
【在 s*******i 的大作中提到】 : 有个while循环。 : 感觉应该是[1-5][2-6][3-7]... 并且后一个数不小于前一个数。不确定考虑情况完全 : 没有。 : 所以两个线程是[1-2][2-3][3-4]... 并且后一个数不小于前一个数。他那个序列不满足
|
|
|
c***G 发帖数: 88 | 11 对,主要是问你怎么设计编译器来handle像printf();这种可以传任意多个参数的函数。
【在 s*******i 的大作中提到】 : arguments在stack上那道题哪一点扯谈了? : 要回答的好至少可以提到arguments一般是通过register传递,stack growth的方向, : calling convention的基本概念以及很多unpredictible的东西 不是那么简单就能回 : 答好的。
|
f********y 发帖数: 156 | 12 这个最大应该是25(全部串行),最小5,因为 i 不是atomic的
Pure Storagei = 0; 五个线程同时runfor (int k = 0; k < 5; k ) i;
i最后可能的最大值和最小值。 |
f********y 发帖数: 156 | 13 这道题,是不是从1开始的 递增数列,每个数字可以出现1-5次?
Googlei = 0;五个进程同时run i; print i;可能出现的所有sequence。(瞬间跪了
,我至今都不知道这个要怎么回答)这题应该是第一个数是1-5中任意........
【在 T****U 的大作中提到】 : Google : i = 0; : 五个进程同时run ++i; print i; : 可能出现的所有sequence。(瞬间跪了,我至今都不知道这个要怎么回答) : 这题应该是第一个数是1-5中任意一个,第二个数是2-5任意一个。。。 : [1-5][2-5][3-5][4-5]5 : 而且后面一个数不小于前面一个数
|
T****U 发帖数: 3344 | 14 应该是num1<=num2<=num3<=num4<=num5
【在 f********y 的大作中提到】 : 这道题,是不是从1开始的 递增数列,每个数字可以出现1-5次? : : Googlei = 0;五个进程同时run i; print i;可能出现的所有sequence。(瞬间跪了 : ,我至今都不知道这个要怎么回答)这题应该是第一个数是1-5中任意........
|
g*******d 发帖数: 495 | 15 如果i的定义没有加volatile,那么编译器很可能会优化为只第一次访问时从memory
load一次,后面的就直接用register里面的值,也就是说各个线程各玩各的i
【在 c***G 的大作中提到】 : 对,主要是问你怎么设计编译器来handle像printf();这种可以传任意多个参数的函数。
|
g*******d 发帖数: 495 | 16 我觉得pure这题,如果i没有volatile,那么几个线程很有可能是这样的(但是取决于
编译器)
load i
for loop without load/store i
store i
所以可能的结果是:5, 10, 15, 20, 25
【在 f********y 的大作中提到】 : 这个最大应该是25(全部串行),最小5,因为 i 不是atomic的 : Pure Storagei = 0; 五个线程同时runfor (int k = 0; k < 5; k ) i; : i最后可能的最大值和最小值。
|
f********y 发帖数: 156 | 17 没错,还要就是每个数最多出现5次,因为同一个数最多被5个不同threads 打印
应该是num1
【在 T****U 的大作中提到】 : 应该是num1<=num2<=num3<=num4<=num5
|
k***e 发帖数: 1931 | 18 注意printf是个可变参数长度的函数。
【在 s*******i 的大作中提到】 : arguments在stack上那道题哪一点扯谈了? : 要回答的好至少可以提到arguments一般是通过register传递,stack growth的方向, : calling convention的基本概念以及很多unpredictible的东西 不是那么简单就能回 : 答好的。
|
k***e 发帖数: 1931 | 19 不至于要设计编译器吧,就是考基本概念:stdcall, cdecl, thiscall, fastcall
naked call,这几种属于常见的基础知识。
数。
【在 c***G 的大作中提到】 : 对,主要是问你怎么设计编译器来handle像printf();这种可以传任意多个参数的函数。
|
x*****a 发帖数: 610 | 20 求问这些知识在哪里可以学到?
【在 s*******i 的大作中提到】 : arguments在stack上那道题哪一点扯谈了? : 要回答的好至少可以提到arguments一般是通过register传递,stack growth的方向, : calling convention的基本概念以及很多unpredictible的东西 不是那么简单就能回 : 答好的。
|
b*******y 发帖数: 2048 | 21 同问
【在 x*****a 的大作中提到】 : 求问这些知识在哪里可以学到?
|
c***G 发帖数: 88 | 22 问的是没有优化的情况,不然题目就太简单了
【在 g*******d 的大作中提到】 : 我觉得pure这题,如果i没有volatile,那么几个线程很有可能是这样的(但是取决于 : 编译器) : load i : for loop without load/store i : store i : 所以可能的结果是:5, 10, 15, 20, 25
|