Linux虚拟内存系统 Posted on 2018-04-14 | In 操作系统 | Visitors: 概述Linux为每个进程维护一个单独的虚拟地址空间,包括代码,数据,堆,共享库以及栈段。 Read more »
C++杂谈——inline Posted on 2018-04-11 | In 语言 | Visitors: 概述在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数。内联函数作为编译器优化手段的一种技术,在降低运行时间上非常有用。 Read more »
TCP协议中TIMEWAIT状态的分析 Posted on 2018-04-06 | In 网络 | Visitors: 概述TCP释放连接的四次挥手后,主动发起关闭的一方会进入TIMEWAIT状态。一般情况下主动关闭是由客户端发起。 Read more »
深入分析epoll函数 Posted on 2018-04-02 | In 网络 | Visitors: 概述epoll也是一种IO多路复用技术,是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。 Read more »
同步IO与异步IO Posted on 2018-03-30 | In 学习笔记 | Visitors: 前xia言che昨天晚上携程笔试还有3分钟结束的时候,收到腾讯的面试电话,肯定接啊。三天前就因为网易笔试的时候腾讯打来电话重约了时间。问了挺多问题的,大概13 4个吧,有两个没答上来,一个没答好,而且可能是因为紧张吧,答的深度也不够。估计要凉凉。有一个问题我影响比较深刻,面试官问到同步IO与异步IO,前几天正好有看stevens的UNP里面有一节提到过这个,所以答的还算可以吧。今天特地总结下,为后面的epoll学习做个铺垫(也问epoll了,说不会…估计已经凉了一半)。 Read more »
总结——进程间通信 Posted on 2018-03-27 | In 学习笔记 | Visitors: 概述每个进程都有自己的虚拟地址空间,这既是优点又是缺点,优点在于,一个进程修改自己内存的内容不会影响其他进程。缺点在于有时需要进程间互相通信,不如线程那样便利。这就涉及到一些经典的进程IPC设计:管道、FIFO、消息队列、信号量、共享内存、套接字。 Read more »
TCP&UDP详解 Posted on 2018-03-23 | In 网络 | Visitors: 概述网络协议栈一般分为5层,从下到上依次为:物理层,数据链路层,网络层,运输层,应用层。TCP和UDP都是运输层的协议,IP协议能把源主机A发送出去的分组,按照首部中的目的地址送交到目的主机B,简单的说,IP层通信的两端是主机和主机。但是真正通信的不是主机而是主机上的应用进程。通常一台主机有多个应用进程和另一台主机的多个应用进程之间通信。TCP和UDP协议就是来满足这种需求的。 Read more »
春招——致我的处女面 Posted on 2018-03-21 | In 感悟 | Visitors: 只记得好多都是截止前投的,只有一个念头,抓紧时间准备,春招不能不开张。然后选了好多,听说过的没听说过的,各种海投(其实目前只投了5,6个)。挂就挂,当做长经验了,为秋招做准备,为进大厂做准备,不想去BAT的程序员不是好程序员。 Read more »
总结——标准IO函数与UNIX IO函数 Posted on 2018-03-17 | In 学习笔记 | Visitors: 概述C语言定义了一组高级输入输出函数,即标准I/O函数,是UNIX I/O的较高级别的替代。这个库提供了打开和关闭文件的含(fopen和fclose)、读和写字节的函数(fread和fwrite)、读和写字符串的函数(fgets和fputs)以及复杂的格式化IO函数(scanf和printf)。 Read more »