从内核观点看,进程的目的就是担当分配系统资源(CPU)...
分类:
其他好文 时间:
2014-05-12 14:05:22
阅读次数:
228
环境系统:阿里云64位centos 6.3[rao@AY~]$ cat
/etc/issueCentOS release 6.3 (Final)Kernel \r on an \m[rao@AY~]$ uname -aLinux
AY1404062027584053a1Z 2.6.32-358.6....
分类:
其他好文 时间:
2014-05-12 09:27:33
阅读次数:
510
内存屏障是指“由于编译器的优化和缓存的使用,导致对内存的写入操作不能及时的反应出来,也就是说当完成对内存的写入操作之后,读取出来的可能是旧的内容”(摘自《独辟蹊径品内核》)。内存屏障的分类:编译器引起的内存屏障缓存引起的内存屏障乱序执行引起的内存屏障1、编译器引起的内存屏障:我们都知道,从寄存器里面...
分类:
其他好文 时间:
2014-05-12 06:00:23
阅读次数:
283
设置/etc/yum.repos.d/CentOS-Debuginfo.repo,修改[debug项下的enabled的值为1];debuginfo-install
glibc libgcc libstdc++;
分类:
数据库 时间:
2014-05-12 02:27:00
阅读次数:
399
最近看epoll 和 select
都涉及到一个东西叫做设备等待队列,等待队列是如何工作的,内核是怎么管理的?看这篇文章问题:进程是如何组织起来的?我们知道,进程是有很多种状态的:include/linux/sched.h#define
TASK_RUNNING 0#define TASK_INT....
分类:
系统相关 时间:
2014-05-11 23:08:52
阅读次数:
537
ID为0的进程通常是调度进程,常被称为交换进程(swapper),是内核中的系统进程。
ID为1的进程叫做init进程,是一个普通用户进程,不属于内核,由内核调用。
一个现有进程可以调用fork函数创建一个新进程(子进程)。fork函数被调用一次,返回两次。子进程返回值为0,父进程返回值为子进程的进程ID。
当fork出一个子进程后,子进程便拥有独立的数据段、堆、栈的副本,但...
分类:
其他好文 时间:
2014-05-11 22:03:19
阅读次数:
251
内核要执行一个应用程序,唯一的途径是通过系统调用,exec函数,exec又会调用启动程序,启动程序(通常是汇编语言)以类似下面的方式调用main函数:
void exit(main(argc, argv));
那么在main函数末尾使用exit(0)和使用return 0是等价的。这里有三个正常终止程序的函数:
void exit(int status); // 先执行一些清理操作,...
分类:
其他好文 时间:
2014-05-11 20:11:19
阅读次数:
394
进程切换
为了控制进程的执行,内核必须有能力挂起在CPU上运行的进程,并恢复以前挂起的某个进程的执行。这种行为被称为进程切换,任务切换或上下文切换。
尽管每个进程可以拥有属于自己的地址空间,但所有进程必须共享CPU寄存器。因此,在恢复一个进程执行前,内核必须确保每个寄存器装入了挂起进程时的值。
进程恢复执行前必须装入寄存器的一组称为硬件上下文(hardware context)。硬件上下文是...
分类:
其他好文 时间:
2014-05-11 14:26:57
阅读次数:
316
零、求人不如求已:
1、 在Linux中,文件,文件夹,驱动,命令,脚本都视为文件,也即一切皆file。
2、记住使用Linux 的关键就是六个字: 命令、选项、参数。
3、学会看帮助,不用求人。
学会看帮助,不用求人。
man touch
touch --help...
分类:
系统相关 时间:
2014-05-11 06:07:02
阅读次数:
567