Pulpcode

捕获,搅碎,拼接,吞咽

0%

对epoll不支持磁盘IO这件事,很长一段时间都是只知道结论,但是从来没搞清楚原因,网上找了一些中文的解释都让人看的云里雾里。最近在查找资料的时候,无意中发现如果自己按照“DISK Io”这样的方式去搜索英文资料,那可能不会找到想要的答案,因为在linux官方的叫法中,磁盘文件准确的称呼应该是“regular files”。然后我按照“epoll regular files”的方式得到的内容一下多了许多。最后也是得到了比较满意的答案,这里写出来分享一下。

阻塞和非阻塞

首先在谈论epoll不支持磁盘IO文件之前,先理清阻塞和非阻塞指的阶段是什么,我们在讨论IO操作阻塞非阻塞时,是指当你发起一个IO操作后,如果IO没有准备好,你的线程是否要停留在那里等待IO准备好。这里特别说明了只是说等待io准备好,系统真正开始io操作的时候,虽然也有耗时,但是那并不算讨论阻塞非阻塞的范畴。

接着在说回到磁盘IO这件事上,虽然linux的哲学是一切都是文件,磁盘和网络的读写都可以理解为文件的读写,但是文件和文件还是有不同的。比如说你并不能对一个磁盘文件描述符设置非阻塞,但是可以对一个网络io设置非阻塞。理解这事的核心点是理解阻塞发生的原因, 既你向操作系统发起io操作的时候,IO还没有准备好,比如在读请求的时候,缓冲区里的数据不够,或者在执行写操作的时候,缓冲区满了,这对网络来说是常态,因为你根本不确定网络连接的另一头到底什么时候会和你收发数据,所以默认阻塞是常态,然后才为了可以让你的程序不用傻等在这里,才设计了非阻塞。但是对于磁盘来说,根本就没有等待可读或可写一说,因为它一直是就绪的,始终可读可写,POSIX规范中明确指出了这一点。我猜测是设计者当时也觉得给磁盘文件io设置非阻塞没什么意义。

阅读全文 »

自己曾经被别人面试过,也当过面试官面了很多人,在出面试题这件事上,渐渐了“堆积”了一些自己的想法,在这篇博客里总结分享出来。

那么我眼中好的面试题应该是怎样的?我会尝试抛出自己的一个个观点,然后再去用例子论证它们。

好的面试题应该是有目的的

你可能觉得我上面这句话像个废话,但有些面试题我真的觉得没想过要考察啥,没想过自己到底要招聘一个什么样的人。

试想这样一个场景,一个面试者从网上找了一些面试题,然后都做了一遍记住了,而刚好作为面试官的你也从网上找了一些面试题,和面试者找的题刚好重合了,这样两边在面试的时候都很流畅,你问的问题面试者都能回答上,但是这最后的结果是你想要的么?很明显不是。你需要的应该是一个懂得解决问题的人来解出你的题目,而不是一个善于背题的人。

阅读全文 »

故事

在未来的某天,人类经历了第三次世界大战之后,赖以生存的家园被核武器毁的面目全非,只有小部分幸存者在还没有被辐射完全侵蚀的废墟中苟延残喘。靠着战前遗留下来的物资生存。

这时画面中一辆破旧的皮卡从远处驶来,一个看上去三四十岁的男人开着这辆皮卡,男人看着身体结实,留着胡须,脸上还有一些伤疤,皮卡后面拉着各种物资,像是食物,药品,衣物,汽油,铲子工具之类的。皮卡上有个磁带机,放的是那种你根本不想听的七八十年代的迪斯科。但是在这个末日下,你又能有什么选择呢,有盘能用的磁带已经是万幸了,真正让你头疼的是怎么去寻找食物,怎么从别的废弃车辆中搞点汽油,还有怎样不会被自己的同类当作猎物杀掉。

车行驶了一段时间,男人看到了远处几个身影在招手,可能是求救,也可能是个陷阱,男人拿起了挂在车窗旁的望远镜,发现是确实是几个人招手求救。

男人开车过去,看到四个女人站在那里,穿着破旧的衣服。这种场面男人应该见过很多了,所以很冷静的点起一根烟说到,“抱歉我的车拉的东西太多,只能再拉一个人走。”

第一个女人先开口说话了,那个女的身材高挑,即使衣服破旧,没有化妆,但依然可以看出很有姿色,在这种生活状态下依然留长发。“我曾是一个时装杂志的模特,拿过很多次选美冠军,曾经追我的男人排成队,上学时班上每个男生都表白过我。很明显你应该带我走的。”

阅读全文 »

一直想写一篇这样的博客,用看过的电影,把整个的历史线穿起来,之所以这样是因为当今大部分好看的电影都是美国人拍的,只有了解他们的历史文化才能获得更好的观影体验。否则只是隔靴搔痒。

而且这篇博客我会在后续阅读到其它书籍电影之后,不断更新这篇博客的细节,或者是修改一些错误。

1492,哥伦布发现新大陆

他以为到了印度,所以称那里的人是印第安人(indias,西班牙语的印度人),实际上到了美洲,而且哥伦布应该不是第一个发现美洲大陆的人。
后来经过阿美利哥·维斯普西的航海考察,确定了这个新大陆美洲,后来有人以他的名字命名这块大陆为“阿美利加”(America)。

在这之后的日子里,欧洲的各个国家开始对美洲大陆进行殖民。

1565年,西班牙人建立圣奥古斯丁

这是欧洲人在北美洲建立的第一座城市;

1620年,一批英国清教徒乘坐五月花号抵达普利茅斯港。

五月花号公约签订,这是美国宪法的雏形。

1718年,法国人建立新奥尔良。

在殖民的过程中,除了杀害,驱赶印第安人,还包括欧洲各国之间争夺资源的战争。

1757年英、法两大帝国在美洲争夺殖民地的七年战争。

在电影《最后的莫西干人》中讲述了英、法两军在殖民地战争同时又与本地美洲印第安人产生冲突,奥斯卡影帝饰演印第安部族-莫希干族的霍克依爱上了英军上校的女儿可娜,就讲述了这段历史。
the-last-of-the-mohicans

阅读全文 »

CPU

问题:linux有哪些用来查看CPU的命令?

命令:top
简介: 查看系统运行的基本状况

computer-system-structure

命令:mpstat -P ALL 1
简介: 每个CPU的占用情况

computer-system-structure

这些参数包括:

  1. User —— 运行的应用程序
  2. System —— 操作系统
  3. Interrupt —— 硬件中断
  4. Wait —— 等待I/O操作的完成
  5. Steal —— 与虚拟机无关的周期
  6. Idle —— 未进行任何作业
阅读全文 »

最近一直想找地方散散心,想起还有几天年假索性修了算了,我思索了一下去青岛或者大连这样的海滨城市,刚好我有一个大学同学在青岛,就买了来回的高铁票,单程大概300多元。
当晚联系到他,大概帮我规划了下行程,我就在火车站附近订了一间如家。这间如家很便宜,111元的房子加上我25元的酒店优惠券,一共才花了86元。朋友说这个地段的酒店,旺季的时候大概能涨到500左右。

出发前我带了四件内衣和四双袜子,因为想到沿海地区应该会很潮湿,估计洗了也不容易干。
然后是一些洗漱护肤用品,防晒霜(我想沿海城市防晒霜必不可少,虽然现在也才三月份),小瓶的洗头膏,洗面奶,面霜,牙膏毛巾。
我准备了一些常见的感冒和拉肚子的药,划伤需要的创可贴,扭伤用的云南白药喷雾,还带了一把雨伞。
剩下就是kindle,电源线,ipad,移动电源,耳机等用来打发时间的电子娱乐设备。哦对了,我还带了一个索尼的黑卡3相机,这款卡片机非常的精小实用,能满足我大部分摄影的需求。我没有买单反,因为太沉,而且很多功能我也用不到。我本人并不喜欢旅游一路背着个沉甸甸的相机到处乱拍,到最后完全没玩好的感觉。

我在旅行的时候,会把带的东西列一个清单,这样我在离开的时候就可以check是否有遗漏的东西。
当然还有防止手机丢失的纸质电话薄,钱包里的一些零钱,坐公交用。

阅读全文 »

摆脱宿命

说到宿命,不得不提到的第一个故事就是经典的希腊神话《俄狄浦斯》。俄狄浦斯在不知情的情况下,杀死了自己的父亲并娶了自己的母亲,表达了一种命运的无常和无奈。在村上春树《海边的卡夫卡》中。主人公一开始就尝试摆脱自己弑父辱母的预言诅咒。这里就借鉴了俄狄浦斯的典故。

edipusi

这种预言诅咒的套路在影视剧中很常见。类似于主人公一开始就被下了不止一个预言。然后主人公不以为然,但是接下来发生的事件让他越来越相信自己预言是真的,接下来主人公开始恐惧和挣扎,并作出各种事情来摆脱自己的宿命。举个例子,在权力的游戏中。瑟曦皇后在很小的时候,就被女巫说了三个预言:

  1. 瑟曦不会嫁给王子,而会嫁给国王。
  2. 瑟曦会成为女王,但会被另一位更年轻的女王推翻,夺走一切珍爱的东西。
  3. 国王会有二十个儿女,瑟曦有三个自己的孩子,但他们都将死去。
阅读全文 »