
linux
文章平均质量分 78
zhaopengnju
这个作者很懒,什么都没留下…
展开
-
Linux调度器内幕
原文链接:http://www.ibm.com/developerworks/cn/linux/l-scheduler/ 本文将回顾一下 Linux 2.6 的任务调度器及其最重要的一些属性。在深入介绍调度器的详细信息之前,让我们先来理解一下调度器的基本目标。 什么是调度器? 通常来说,操作系统是应用程序和可用资源之间的媒介。典型的资源有内存和物理设备。但是 CPU 也可以认为是一个资源转载 2016-06-30 22:44:18 · 463 阅读 · 0 评论 -
epoll系列系统调用
一、文件描述符就绪 epoll用来同时监听多个文件描述符是否就绪,那么哪些情况下文件描述符可以被认为是可读、可写或者异常呢? 1、文件描述符可读的情况 socket内核接收缓冲区中的字节数大于或等于其低水位标记SO_RCVLOWAT。此时我们可以无阻塞地读,并且读操作返回的字节数大于0.socket通信的对方关闭连接。此时对该socket的读操作将返回0.监听socket上有新的连接原创 2016-07-13 17:05:42 · 637 阅读 · 0 评论 -
Linux进程状态解析之R、S、D、T、Z、X
Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。 众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。 在linux系统中,每个被运行的程序实例对应一个或多个进程。linux内核需要对这些进程进行管理,以使它们在系统中“同时”运行。li转载 2016-07-25 17:21:12 · 2968 阅读 · 0 评论 -
一个sample学会使用epoll
#include #include #include #include #include #include #include #include #include #include #include #include #define MAX_EVENT_NUMBER 1024 #define TCP_BUFFER_SIZE 512 #define UDP_BUFFER_转载 2016-07-15 10:36:51 · 365 阅读 · 0 评论 -
pthread的互斥量和自旋锁
一、自旋锁与互斥量的区别 在多处理器环境中,自旋锁最多只能被一个可执行线程持有。如果一个可执行线程试图获得一个被争用(已经被持有的)自旋锁,那么该线程就会一直进行忙等待,自旋,也就是空转,等待锁重新可用。如果锁未被争用,请求锁的执行线程便立刻得到它,继续执行。一个被争用的自旋锁使得请求它的线程在等待锁重新可用时自旋,特别的浪费CPU时间,所以自旋锁不应该被长时间的持有。实际上,这就是自旋锁的设计原创 2016-07-29 20:53:32 · 4148 阅读 · 0 评论 -
Linux时间系统调用总结
#include typedef __time_t time_t; //获取time_t表示的当前时间 time_t time(time_t *t); struct timeval { __time_t tv_sec;//秒 __suseconds_t tv_usec;//微秒 }; //获取timeval表示的当前时间,有BUG,少用 int gettimeofday(st原创 2016-07-20 11:05:54 · 1584 阅读 · 0 评论 -
GDB使用简明教程
一、在编译的时候为什么要加-g 如果没有-g就看不见函数名,变量名,所代替的全是运行时的内存地址。 二、如何查看和使用core文件 首先通过指令ulimit -a查看系统是否允许生成core文件,可以通过指令ulimit -c unlimited取消系统对core文件的限制,ulimit -c 1024指定core文件的大小。(待补充。。) 三、设置断点、监控点和单原创 2016-06-02 22:46:38 · 843 阅读 · 0 评论 -
守护进程编程惯例
调用fork然后使父进程退出(exit) (1)如果该守护进程是作为shell命令启动,那么父进程终止使得shell认为这条命令执行完毕 (2)使得子进程不是进程组组长,保证后续的setsid()系统调用成功 调用setsid(),脱离控制终端,登录会话和进程组 先介绍一下Linux中的进程与控制终端,登录会话和进程组之间的关系:进程属于一个进程组,进程组号(GID)就是进程组转载 2016-08-02 11:32:04 · 422 阅读 · 0 评论