摘要: 每个 *Go* 程序都是由一些包组成的。程序从 `main` 包开始执行。 阅读全文
posted @ 2018-08-13 09:38 fasionchan 阅读(445) 评论(0) 推荐(1) 编辑
摘要: 将两服务器通讯问题扩展到多服务器通讯问题,需要解决寻址以及复用/分用问题,这就是数据链路层的主要作用。 阅读全文
posted @ 2018-08-10 13:35 fasionchan 阅读(1371) 评论(0) 推荐(1) 编辑
摘要: 通过两服务器通讯问题引入物理层的讨论,物理层主要承担比特流传输的职责。 阅读全文
posted @ 2018-08-09 18:12 fasionchan 阅读(4356) 评论(0) 推荐(1) 编辑
摘要: 在Linux通用I/O模型中,I/O操作系列函数(系统调用)都是围绕一个叫做文件描述符的整数展开。这不禁让人产生疑问:这个整数代表什么?一个数值代表一个文件吗?随便传一个整数进去调用可以吗? 阅读全文
posted @ 2018-08-08 18:48 fasionchan 阅读(3538) 评论(0) 推荐(1) 编辑
摘要: 操作系统通过系统调用为运行于其上的进程提供服务。 当用户态进程发起一个系统调用, CPU 将切换到 内核态 并开始执行一个 内核函数 。 内核函数负责响应应用程序的要求,例如操作文件、进行网络通讯或者申请内存资源等。 原文地址: "https://learn linux.readthedocs.io 阅读全文
posted @ 2018-08-06 18:11 fasionchan 阅读(8587) 评论(2) 推荐(3) 编辑
摘要: 跳表 是一种可以替代 平衡树 的数据结构。跳表追求的是概率性平衡,而不是严格平衡。因此,跟平衡二叉树相比,跳表的 插入 和 删除 操作要简单得多,执行也更快。 二叉树可以用来实现字典和有序表等抽象数据结构。在元素随机插入的场景,二叉树可以很好应对。然而,在有序插入的情况下,二叉树就退化了(链表),性 阅读全文
posted @ 2017-06-20 09:04 fasionchan 阅读(1127) 评论(0) 推荐(4) 编辑