随笔分类 - Linux
摘要:1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。 2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。 3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域.data,未初始
阅读全文
摘要:进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap: 1.brk是将数据段的(.data)的最高地址指针_edata往高地址推 2.mmap是虚拟地址空间找一个空闲的虚拟内存 如果malloc
阅读全文
摘要:ps:参考了很多博客,但是当时没记下链接。。。 互斥器和条件变量用法如下: 上面那个while能换成if吗?答案是不能,否则会导致spurious wakeup虚假唤醒。因为不仅要在pthread_cond_wait前要检查条件是否成立,在pthread_cond_wait之后也要检查。因为pthr
阅读全文
摘要:在create后会创建eventpoll对象保存在一个匿名fd的file struct的private指针中,然后进程睡在等待队列上面。 对于等待的fd,通过poll机制在准备好之后会调用相应的call_back函数。在函数中将当前fd加入对应eventpoll的队列中。 然后唤醒等待队列上面的进程
阅读全文
摘要:IO复用:使得程序能同时监听多个文件描述符 select: select在一段指定的时间内,监听用户感兴趣的文件描述符的 读、写、异常事件。 当调用了select之后整个进程就会被block。同时kernel会监听select负责的所有的socket.如果 相关的时间就绪就会返回。 但是select
阅读全文

浙公网安备 33010602011771号