今天下午图灵奖获得者Adi Shamir博士来我校讲座, Shamir博士是RSA算法的发明人之一,RSA三个字母中间那个S 就是根据他的姓氏命名的。
提前20分钟赶到报告厅发现里面已经坐满人了,只好在靠边走廊找了一个靠前的位置席地而坐。
讲座准时开始,一开始Dr.Shamir介绍了何为加密(cryptography),然后介绍了二战中一些关于加密和解密的小故事。我就记得一个说当时日本在偷袭珍珠港前夕,通知日本驻美国大使馆离开。为了不让美国人发现他们的信息,在广播的过程中使用摩斯密码加密了很长一段历史信息,这段信息传了8个小时,只在最后加了一段关于珍珠港袭击的信息。估计美国情报员在听前面历史信息的时候觉得这段信息没有价值,就懒得破译了。Dr.Shamir开玩笑说一段信息是放在开始还是末尾,很可能就改变了历史。讲完历史轶事之后,博士开始介绍几种解密的技术:使用usb disk来检查energy consuming,分析机器发出的声音(acoustic),分析cache中的信息。最后提问环节上,教授很有意思教大家一个方法,大意是将一个很高级的U盘丢在大厅里,别人拿去一插……
sj同学在旁边说,可以用这个方法,把一个U盘丢到教务处的机房里,嘿嘿~~~
因为自己听力能力不足加上那位教授的以色列口音,其实很多地方都没听明白,基本上就是看教授的ppt。
ps:其实最nb的计算机科学家不是拿turing award,而是别的科学家以拿到你命名的award而做为最高荣誉
海角七号
看起来很舒服的一部电影。让人好想去旅游……
很喜欢小镇上那种朴实的民风,贝斯手”马拉桑”的呼声,键盘手在电梯里的歌声,鼓手的青蛙故事,警察身上保存着的妻子照片,茂伯”我是国宝”的唠叨。在小镇风景的衬托下,就连邮差的工作都显得惬意起来 。还有从日本来的经纪人,喝醉以后叨念着”为什么大家都欺负我”。
我最喜欢的角色是代表会主席,尤其是看到最后演唱会上他在台下挥舞双手的那个片段。父母看到自己的孩子实现梦想应该是最幸福的事情吧:)
OSC Main Memory Notes
刚刚花了两个半小时把OSC的第八章-Main Memory读完了,在这里用自己的话总结一下记的笔记。
8.1 Background
第一小节是背景知识介绍。
8.1.1首先提到的是基本的硬件,寄存器、内存和高速缓存(Cache)。还介绍了protection,说用户模式(user mode)下,程序访问的内存空间是有限制的,protection的概念贯穿于整个章节。8.1.2介绍了地址转换机制(address binding),程序在执行的时候会把相应的地址读入到内存中。8.1.3介绍了逻辑地址(logical address)和物理地址(physical address)的概念,逻辑地址指的是CPU产生的地址,而物理地址则指的是内存所”见到”的地址。这两个概念很重要,貌似整个一章都在讨论如何在将logical address转换成physical address。8.1.4和8.1.5介绍了动态读取(dynamic loading)和动态链接(dynamic linking),前者是指一段程序只有当被调用时才会读取。后者是跟静态链接(static linking)相对的一个概念,具体看得不是很明白。
8.2 Swapping
swapping技术可以将进程在内存和一个叫做backing store的地方调来调去。比如一个进程所需要的内存不够了,就可以把它swap out到backing store,等到有足够内存时再把它swap in接着执行。
8.3 Contiguous Memory Allocation
首先呢,内存总是被分为两部分,一部分留给操作系统,另一部分则给用户进程所使用。
8.3.1介绍两种寄存器:relocation register, limit register。前者存有物理地址的最小值,后者存储逻辑地址的最大值。8.3.2介绍了内存的分配方式。最简单的一种是把内存分成为几个固定大小(fixed-sized)的区域(partition)。之后还介绍了hole的概念,指的是内存中所有可以被使用的部分。还介绍了三种分配holes的算法:first-fit, best-fit, worst-fit。8.3.3介绍了碎片(fragmentation)。碎片分为external fragmentation和internal fragmentation两种。前者指的是在分配内存的时候,即使有足够大小的空间,可是这些空间不是连续的。而后者指分配给进程的空间可能会大于进程实际需要的空间,这种碎片主要产生在固定区域大小的分配方式时。最后提到了针对碎片的解决方案:分页(paging)和分段(segmentation),这两大技术也是本章剩余部分着重讨论的内容。
8.4 Paging
分页技术允许一个进程跨越不连续的物理空间。
8.4.1首先介绍两个概念:frames, pages。前者是将物理空间划分成相同大小的部分,后者是将虚拟逻辑空间划分成相同大小的部分。最基本的情况是逻辑地址分成两部分:page number, page offset。在将逻辑地址转换成物理地址时,先通过page table查找将page number转换成frame number,则物理地址由frame number,page offset两部分组成。paging的一个特点是将用户所看到的内存与实际物理的内存分开了。8.4.2谈了硬件对分页技术的支持。最简单的情况是用一堆寄存器来做为page table。可是当page数量特别大的时候,这种方法就不可行了。容易想到的方法是把page table放到内存中去,可是这样子效率太低了。现在的标准做法是使用高速缓存,这种技术被称为 TLB。TLB中的每一项(entry)由两部分组成:key, value。这样子,当查找page number的时候会先到TLB中去查找,找不到再去内存中找,同时将该项添加到TLB中以方便下一次查找。此外,TLB还有一个很重要的参数是命中率(hit ratio)。8.4.3介绍了如何使用paging技术来进行保护,大概意思是当对page number进行转换时会判断转换后的物理地址是否是有效的(valid)。8.4.4介绍了shared pages技术,多个进程可以共享同样的pages。
8.5 Structure of the Page Table
该小节介绍了若干种组织page table的方式。
8.5.1介绍了分层法(Hierarchical Paging),当page特别多的时候,可以将page分成两层。通过外层 page number检索到内层page number,再通过内层page number来检索物理地址。8.5.2介绍了利用哈希表来组织 page table。8.5.3介绍一种inverted page tables的技术,不过看得不是很懂。
8.6 Segmentation
分段技术就像我们写x86汇编的时候,把程序分成不同的段。每一段映射到内存的一部分,然后每一段中的偏移在转换成物理地址时要加上段的基地址(base),同时不能超过每一个段的限制(limit)。
8.7 Example: The Intel Pentium
介绍了Intel Pentium中的segmentation和paging技术,没仔细看,也不太明白。
8.8 Summary
貌似外国人写书都喜欢每一章最后一节总结一下~~~
OS第二次实验学长忘记挖空了,要我们分析代码然后写一个详细的报告……还不如填代码呢:(
只好先补一补操作系统关于内存管理部分的知识了。
本来想今晚把虚拟内存一章也看了,不过貌似精力已经不能很集中了
MS C R&D Center
今天去传说中的希格玛大厦转悠了两小时左右。
没啥特别的感觉,只是不太喜欢当客人被别人领着的~~~
生病了
周末一个人去看了Slumdog Millionare这部电影,整一幅印度风情画,看得那是一个亮丽啊。
结果看完之后没有公交了,又不想打车,只好走回来。
这两天看了两本《缥缈录》,写得太yy了,不是很喜欢这种风格。
最严重的是由于周末游泳水太冷,加上这几天睡得太晚(因为看小说),导致生病了, 那叫一个难受,在寝室完全没有学习的欲望啊。
sigh…
BeBeyond
这两天与bebeyond的人接触了两次,在这里把收获记录下来。
发现bby培训最核心的内容就是让你把所有硬件条件(GPA/G/T)都抛在脑后,告诉你套磁才是最重要的,他们总会让你思考的一个问题就是:教授想要什么样的学生??
通过他们的暗示和诱导,你会得出一个结论:就是教授想要的是对专业有深刻理解的学生。然后又去分析什么叫对专业有深刻的理解。
我之前其实一直在犹豫HCI和OS之间抉择的问题,其实对我来说就是梦想和资源的选择问题。这两天过后我明白了,其实目前我们手里有的根本不算什么;而其实当你觉得做一件事情很难的时候,做出做与不做的决定应该等你对事情做了充分了解后再做出,而不是一开始就退缩不前。
BeBeyond从本质去改变一个人的留学政策还是很打动我的。
the beatles rooftop concert
compiler and os
这个星期一考完了GRE的作文部分,用太傻上前人的话说就是向美利坚大陆迈出了小小一步。整个过程还比较顺利,抽的题目比较好些,加上习惯性地考前心理暗示,最后貌似比平常写得还多了一些。这次作文准备得还是非常不充分的,issue写了不到10篇,argument完整地写了6篇,直到考试前一天才把所有题目过一遍。例子也没怎么准备,考试的时候连图灵奖都被我甩上去了。考完之后送分很爽地送了Stanford和CMU,结果虽然我之前做了详细的计划,结果还是把UCLA弄错了,送到一个叫CSULA的学校。
考完GRE作文,GRE考试就这么先放一下段吧。接着火烧眉头的就是编译器大作业了。
本来以为可以全力投入到这里面来,结果又犯了心不在焉的老毛病,每每碰到难题就上网神游,导致一周下来,只完成了一半左右的计划。加上前期的时候弄得不是很明白就开始写代码,导致现在问题又特别多(现在生成中间代码的时候就很麻烦)。我想周末得加把劲把这一块弄完之后,看能不能生成目标代码,要不行的话看能不能生成DAG图或者弄清楚优化要做的事情。
明天下午去beihang-oss玩installfest
晚上要看电影
在这里偷偷赞扬一下顾同学郎同学两位小牛,呵呵
Choristes, Les
与学长的聊天
今天跟上一届已经拿到offer的一个学长聊天,获得的信息如下:
- G/T真的不重要,相对我们付出的努力来说
- GPA相当重要,他说这个让他获得了很多陶瓷的机会
- 陶瓷非常非常重要,将近一个半小时的聊天里他说的最多就是关于陶瓷了,他的做法是:
- 一开始先去看各个会议的paper作者,搞清楚某个领域里世界上都有哪些牛人和他们之间的关系。
- 然后广发陶瓷信,第一封新的内容大概是说自己对这个领域很感兴趣,之前做过一些什么相关的东西,希望继续钻研和获得一些指导,这里前三十的牛老板基本上都不会甩你的。而是那些排名稍微靠后一些的AP回信的概率比较大。
- 第一封回信一般会告诉你几篇paper和书让你去看。读paper的一个建议:就是读的时候如果遇到reference的地方把相应的paper下下来看abstract & introduction。读完以后写一些自己的感想,再提一些问题,这就是第二封信了。第一封信基本上就是在扯,但是第二封信就得要让人感觉有一些学术了。
- 如果还有回信,说明就有些戏了。
- 陶瓷番外篇:查一下某个领域最top的几个会议今年是否有可能来中国(不一定要在北京,香港和上海也可以),如果可能的话争取到现场去,如果可以当面套的话效果会好很多。
- 另外关于项目/科研经历,学长说他没有什么科研经历,不过大三的时候参加两个比赛,都跟嵌入式和硬件有些关系。这个也成为了他写简历很重要的一部分。给我们的建议是,现在就想清楚以后的方向,然后开始准备几个相关的项目。可以的途径有:去中科院实习,或者去企业实习(尤其对Master)
- 另外一个小诀窍,外国人也许不认识Beihang U or BUAA,但是那些中国毕业后到国外当AP的还是认识的,可以重点套这一部分人
- BeBeyond(拼写不一定对)是一个不错的咨询公司,价格也相对合理
谢谢学长的经验分享,这么好的offer也不知道再祝愿啥了~~~