[Linux]进程——备忘

1,SIGPIPE信号:

linux下写socket的程序的时候,如果尝试send到一个disconnected socket上,就会让底层抛出一个SIGPIPE信号。这个信号的缺省处理方法是退出进程,大多数时候这都不是我们期望的。因此我们需要重载这个信号的处理方法。调用以下代码,即可安全的屏蔽SIGPIPE

TCP/IP四路挥手点击打开链接


2,prctl()函数应用 
http://blog.youkuaiyun.com/zuokong/article/details/7318154
比如返回当前调用该函数的进程
char threadname[17]; // one more for termination
if (prctl(PR_GET_NAME, (unsigned long)threadname, 0, 0, 0) != 0) {
      strcpy(threadname, "<name unknown>");
 
 
3,向socket写数据的时候经常会遇到EINTR错误~对此应该忽略即可
accept是慢系统调用,慢系统调用就是可能永远阻塞的系统调用,

EINTR说明:如果进程在一个慢系统调用(slow system call)中阻塞时,当捕获到某个信号且相应信号处理函数返回时,这个系统调用被中断,调用返回错误,设置errno为EINTR(相应的错误描述为“Interrupted system call”)。

#define  RETRY_ON_EINTR(ret,cond) \
    do { \
        ret = (cond); \
    } while (ret < 0 && errno == EINTR)

RETRY_ON_EINTR(ret, write(s, &tid, sizeof(unsigned)));

 

4,自旋锁在单核和多核的区别

1. 在单cpu,不可抢占内核中,自旋锁为空操作。
2. 在单cpu,可抢占内核中,自旋锁实现为“禁止内核抢占”,并不实现“自旋”。
3. 在多cpu,可抢占内核中,自旋锁实现为“禁止内核抢占” + “自旋”。

 

5,android查看内存的命令procrank命令~

  • VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
  • RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
  • PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
  • USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

 6,linux查看系统负载(load)的命令

uptime命令

top命令

free命令


7,如何定时启动一个进程

linux的crontab命令,android上在init.rc里通过属性监听。


8,如何查看一个进程占用了哪些文件

lsof命令:  如查看init进程占用的文件用 ls -u 1


9,Linux中的task_struct和内核栈

对于每一个进程而言,内核为其单独分配了一个内存区域,这个区域存储的是内核栈和该进程所对应的一个小型进程描述符——thread_info结构

struct thread_info {
    struct task_struct  *task;      /* main task structure */
    struct exec_domain  *exec_domain;   /* execution domain */
    unsigned long       flags;      /* low level flags */
    unsigned long       status;     /* thread-synchronous flags */
    __u32           cpu;        /* current CPU */
    __s32           preempt_count; /* 0 => preemptable, <0 => BUG */
    mm_segment_t        addr_limit;
    struct restart_block    restart_block;
    unsigned long           previous_esp;
    __u8            supervisor_stack[0];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值