[转让]E家奶票# PennySaver - 省钱一族
c*m
1 楼
【 以下文字转载自 SanFrancisco 讨论区 】
发信人: wannafree (wannafree), 信区: SanFrancisco
标 题: 大家看看阿三在onsite的时候怎么黑我的
发信站: BBS 未名空间站 (Sun Sep 29 15:08:12 2013, 美东)
最近面试一个与file system有关系的公司,junior的职位,onsite有俩阿三(总共5个
人)。
其中一个阿三非常严肃,黑着个脸,本来是安排和我一起吃午餐,他拒绝吃,我一边吃
,他一边问我问题。下面是面试过程中两个问题以及他对我的feedback:
问题一:为什么context switch有big overhead?
我的回答如下:
Because context switch needs to invalidate caches, flush TLB, registers, and
store process related data, which all require a lot of cpu cycles. The new
process also takes time to warm up the cache and TLB.
他后来的feedback是:我对context switch的基本概念不了解 。。。
问题二:
why does the system call need to copy the file name into kernel space when
you call read()/wirte()/open()?
My answer:
User procs and kernel threads work in different address modes. User procs
cannot access kernel address which is in a protected mode. Kernel address
mode is mapped to either high or low 1GB of the user proc' VM. By coping the
file name into its own space, it will be more efficient from the
perspective of memory access.
Another reason may be to prevent the passed file names from being changed in
user space by somebody else.
后来他的feedback是:我对system call以及kernel address mode不了解
另一个阿三很nice,非常热情,先问了我一些问题,全都很顺利,后来coding,后来因
为时间有点不够(最后一个coding只留了15分钟,题目比较繁琐),在解释了主函数的
算法和corner case后,经的他同意省掉了一个辅助函数的coding。当时感觉非常好,
阿三也笑容满面,说well done。
后来的feedback说coding不熟练。
以前总还觉得身边的阿三还不错,这次就是亲身经历。工作很match,白人manager也有
有兴趣,结果被阿三这么一说,全都玩完了。onsite 5个人里有一个国人,但是却无能
为力。
发信人: wannafree (wannafree), 信区: SanFrancisco
标 题: 大家看看阿三在onsite的时候怎么黑我的
发信站: BBS 未名空间站 (Sun Sep 29 15:08:12 2013, 美东)
最近面试一个与file system有关系的公司,junior的职位,onsite有俩阿三(总共5个
人)。
其中一个阿三非常严肃,黑着个脸,本来是安排和我一起吃午餐,他拒绝吃,我一边吃
,他一边问我问题。下面是面试过程中两个问题以及他对我的feedback:
问题一:为什么context switch有big overhead?
我的回答如下:
Because context switch needs to invalidate caches, flush TLB, registers, and
store process related data, which all require a lot of cpu cycles. The new
process also takes time to warm up the cache and TLB.
他后来的feedback是:我对context switch的基本概念不了解 。。。
问题二:
why does the system call need to copy the file name into kernel space when
you call read()/wirte()/open()?
My answer:
User procs and kernel threads work in different address modes. User procs
cannot access kernel address which is in a protected mode. Kernel address
mode is mapped to either high or low 1GB of the user proc' VM. By coping the
file name into its own space, it will be more efficient from the
perspective of memory access.
Another reason may be to prevent the passed file names from being changed in
user space by somebody else.
后来他的feedback是:我对system call以及kernel address mode不了解
另一个阿三很nice,非常热情,先问了我一些问题,全都很顺利,后来coding,后来因
为时间有点不够(最后一个coding只留了15分钟,题目比较繁琐),在解释了主函数的
算法和corner case后,经的他同意省掉了一个辅助函数的coding。当时感觉非常好,
阿三也笑容满面,说well done。
后来的feedback说coding不熟练。
以前总还觉得身边的阿三还不错,这次就是亲身经历。工作很match,白人manager也有
有兴趣,结果被阿三这么一说,全都玩完了。onsite 5个人里有一个国人,但是却无能
为力。