- 博客(11)
- 收藏
- 关注
原创 6.824 Lab4: Cache Locks回顾
在该项目中,server扮演的是分布式文件系统的角色,为了保证consistency,所有client对文件的访问及修改需要首先申请对应资源的锁--每个资源,无论是文件还是目录,都有它自己的id和锁。锁的分配与释放,可以是基于严格一致性(任何时候,用户修改了某个资源,则该资源的最新值是所有用户都可见的)的:用户申请资源时,从lock server获取锁;资源使用完毕后,将锁释放,返回给
2015-06-19 10:35:04 1244
原创 基于TCP的通信为什么需要RETRY
TCP协议本身是可靠的,它的重传机制保证了消息的可送达性(如果没有收到对端的ACK确认,它会在等待一定时间后,尝试再次发送,且这是一个循环过程,上限是9分钟。超过9分钟,则认为连接已经断开,关闭socket)。虽然有了TCP的可靠性保证,但是很多基于TCP的应用间通信依然会采用RETRY机制:发送消息后,如果在一定时间内没有收到对端的确认消息,则重发消息。明明TCP已经可以保证消息的可送达,为
2015-06-14 17:01:53 2602
原创 重温JOS
温故而知新,几个点,有必要记一下:1. 在执行C语言对应的程序前(boot loader),汇编部分(entry.S)已经设置好了ebp & esp。如此,C语言执行函数时即有了栈环境。
2015-01-11 20:34:16 1027
原创 App生命周期
图来源于官方。对于Inactive状态的介绍是:对于Background状态的介绍是:Most apps enter this state briefly on their way to being suspended.”对于
2014-11-19 18:26:28 469
原创 谈面向对象 v0.1
面向对象是利用编程解决问题的方式,以我们观察世界的自然视角去抽象问题,从而缩小解决问题所需要的智力负担。既要自然又要抽象,这就需要我们对问题有一个初步贴切全面的认识。随着开发的深入,我们可以在不断试错不断调整的过程中,趋向对问题升入贴切的了解。我们需要把问题切割成一个个独立的子部分,每一个子部分就是一个对象。每个对象都有它自己的一些属性,我们将这些属
2014-11-19 14:57:25 583
原创 mysql memos
1. Connect mysql with root priviledge: $mysql -u root -p2. Then create database;3. Grant priviledge to selected users: grant create,drop, select, insert, update, delete on database.table to us
2013-10-13 20:55:40 455
翻译 Windows下Signal(HANDLE)资源分配失败
默认情况下, Windows可提供给用户的系统资源HANDLE(例如Signal)的数量是有上限的, 约是16M左右.这个数量是固定不可变更的, 因为微软认为这个上限足够大了.详见Mark Russinovich的博客http://blogs.technet.com/b/markrussinovich/archive/2009/09/29/3283844.aspx另外,
2013-08-30 17:58:08 516
原创 读 "Effective STL" 笔记
C3@Associative Container 在STL中有两种“相等”:一种是algorithm::find()所定义的相等,基于operator==()实现;另一种则是std::set/map所定义的相等,基于operator 当然,利用operator !operator 最后,当容器中存储的是你声明的Class时,记得定义自己的operator==(), oper
2013-06-22 15:48:19 856
原创 对字节流套接口read的重新认识
关于readn函数的封装:毫无疑问,我对read的误解直接导致了我对封装函数readn的误用。read(sockfd, buffer, len)的 功能是返回缓冲区中的内容,以len为上限。如果有字节被读出,ret为正; socket断开则ret为0; 出现错误,则ret read理解为不尽职的读取函数,它只是一次读取缓冲区内一部分内容,即便缓冲区内已有的内容小于l
2010-03-18 17:30:00 488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人