strace

Posted by 夏泽民

strace是用来跟踪用户空间进程的系统调用和信号的 系统调用提供用户程序与操作系统之间的接口。操作系统的进程空间分为用户空间和内核空间:



pstack 原理

Posted by 夏泽民

注意和ptrace(ptrace()系统调用提供了一个方法,该方法使一个程序(追踪者)可以观察和控制另外一个程序(被追踪者)的执行,并检查和改变被追踪者的内存及寄存器。它主要用于实现断点调试和追踪系统调用。GDB的工作机制)区分

和jstack一样, pstack亦能展现进程的线程堆栈快照, 非常方便验证和性能评估. pstack的作用, 大致可以归纳如下:   1). 查看线程数(比pstree, 包含了详细的堆栈信息)   2). 能简单验证是否按照预定的调用顺序/调用栈执行   3). 采用高频率多次采样使用时, 能发现程序当前的阻塞在哪里, 以及性能消耗点在哪里?   4). 能反映出疑似的死锁现象(多个线程同时在wait lock, 具体需要进一步验证)   当然还能举例更多的作用, 相信使用过jstack的coder, 必然深以为然.



Linux进程间通信-消息队列(mqueue)

Posted by 夏泽民

消息队列的实现分为两种,一种为System V的消息队列,一种是Posix消息队列; 消息队列可以认为是一个消息链表,某个进程往一个消息队列中写入消息之前,不需要另外某个进程在该队列上等待消息的达到,这一点与管道和FIFO相反。Posix消息队列与System V消息队列的区别如下:



kill

Posted by 夏泽民
  1. kill与signals 我们这里所说的kill是指作为shell command的那个kill(相对地,linux系统中还有个叫做kill的system call, man 2 kill可查看其功能及用法),shell终端中输入man kill可以看到,kill的作用是向某个指定的进程或进程组发送指定信号,从而结束该进程/进程组。-s选项可以指定要发送的具体信号,如果没有指定,则默认发送SIGTERM信号至指定进程/进程组,若进程没有捕获该信号的逻辑,则SIGTERM的作用是终止进程。

     kill支持发送的信号列表可以通过kill -l查看,而这些信号的具体含义可以通过man 7 signal查看。在我的机器上,man 7 signal输出的POSIX标准信号如下所示(kill支持的信号还有POSIX没有定义的非标准信号,这里没有摘出,感兴趣的同学可以通过man查看)。
    


interface

Posted by 夏泽民

package main



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required