找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 15682|回复: 6
收起左侧

[PureStorage] Pure Storage 两次onsite

[复制链接]

15

主题

8

精华

304

积分

高级会员

Rank: 3Rank: 3

积分
304
发表于 10-22-2016 10:08 AM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
网上投的,
& T5 m' M; {( t( w; @12版本OA
. Y& K! v1 @) V5 L第一次onsite- x7 t* w( G" W
1. buddy system,要求操作非常效率,主要考虑读取连续的内存进入memory,这样会使cache的命中率增加。' S- r, K5 R2 Z2 A2 V9 B
2. register and fire task,mutex + condition variable
! k6 |) K  J  _  M8 p9 p6 w# s- A5 S( q; V都是老题,但是follow up 超级的多,记不住了。
% t7 ~3 q8 J/ G3 U5 Z0 G6 q7 V  a+ G, S9 k6 Y
第二次onsite( }4 V; p( n- H) ~
1. 用户会随机call int get_call_id(), 已经有 get_ids(int num_of_id, int *buf),get ids from disk or database,consume 1s per call。实现get_call_id(),我是一步一步来的,先实现一个单线程的,满足average小于要求的,然后多线程,然后improve,用了mutex和condition variable。最后还用到了tcp congestion control(1. slow start 2. congestion avoid 3. congestion recovery, 有兴趣的可以网上查一下) 的机制来处理动态分配buf的要求。9 n. S2 {, T: O. L* Z; r$ y" A
  @* Z3 z, F. e& X, I3 z- N. Y- v
2. lc sort color 要求swap次数最少。那个经典的法国国旗算法不work,不能保证swap最少,最优解是on时间o1space,我没给出最优解,给出了on时间onspace的。
! O$ G4 s6 ~. B6 G) K: R2 A
, v  Z" W* }4 N" a3.1 给了一段简单的代码,实际就是memcpy的实现。讨论下什么情况不work(两个buf有overlap的时候不work),怎么改进,用memmove改进,然后实现memmove
7 M* \- J5 U' ?) U3.2  给了另外一段代码,五个线程,对一个global变量x做5次++,问这个代码有什么问题。thread concurrence问题,具体是++翻译成汇编是三个指令:1. load x 2. increment x 3. store x back to memory。然后问最大可能的数是多少(25),可能的最小值是多少(2)为什么最小值是2. 我层层提示下想到了为什么是2。。& d. c( G; b( t8 O
  U5 W% T7 t8 ^& U2 l) y: T6 t

6 [; Z" H8 t7 @9 ?5 u: j$ W$ t
; _4 Y" z+ g! Z- T, G2 e. _要是面他家的话强烈建议要看看多线程的知识,如果是multithread编程的话一般semaphore,mutex,condition variable都能解决了。还有就是他家大部分职位都是low level的东西,不熟的话很难过。。。
5 \6 P2 }  _! ]2 T6 ^  z& Y5 m6 G
* a) H; P$ T+ u: l! `

评分

参与人数 1金钱 +9 收起 理由
Sophia + 9 精华帖子!大赞!

查看全部评分

0

主题

0

精华

9

积分

新米人

Rank: 1

积分
9
发表于 10-22-2016 10:09 AM 来自美国米群网手机版 | 显示全部楼层
楼主tc350981帖子好赞~~~

781

主题

575

精华

5670

积分

顶级版主

Rank: 9Rank: 9Rank: 9

积分
5670

活跃会员热心会员优秀版主

发表于 10-22-2016 09:49 PM | 显示全部楼层
精华帖子!大赞!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表