摘要:
每一个进程(包括普通进程和内核进程)的地址空间都分为用户地址空间和内核地址空间两部分,在32位的x86机器上,用户地址空间的范围是0~3G,内核 地址空间的范围是3G~4G.对于不同的进程,其用户地址空间会随着进程不同而不同,但所有进程的内核地址空间则都是一样的。对于内核进程,由于其始终运 行在内核... 阅读全文
摘要:
以下是王爽老师的《汇编语言》中第十五章中的一段程序代码,其功能是增加9号中断的功能,当按下Esc键时屏幕中显示的字母改变颜色assume cs:codesg,ss:stack,ds:datadata segmentdw 0,0data endsstack segmentdb 128 dup(0)st... 阅读全文
摘要:
在Linux中,进程的创建由系统调用fork和vfork完成。它们生成一个子进程并且子进程是父进程的一个复制品。Fork系统调用对应的kernel函数是sys_fork,此函数简单的调用kernel函数do_fork。一个简化版的do_fork执行如下:(1)alloc_pid()。给新的进程分配一... 阅读全文
摘要:
信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控... 阅读全文
摘要:
wait的flag参数不是很明确,考虑多个进程同时结束的情况,信号时如何处理的,是否会出现覆盖情况wait的函数原型是: #include#include pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已... 阅读全文
摘要:
今天在维护服务器的时候,发现有5个nova-novncproxy的僵尸进程。26327 ? S 0:05 \_ /usr/bin/python /usr/bin/nova-novncproxy --config-file=/etc/nova/nova.conf4765 ? Z 0:00 \_ [no... 阅读全文