linux 2.6源代码情景分析笔记之进程9
intel在他的微处理器中引入一个新的汇编指令集,叫做MMX指令,用来加速多媒体应用程序的执行。mmx指令作用于fpu的浮点寄存器。
80x86微处理器并不在tss中自动保存fpu,mmx,xmm寄存器。他们包含某种硬件支持,能在需要时保存这些寄存器的数值,硬件支持由cr0寄存器中的一个ts标志组成。遵循以下规则:
每当执行硬件上下文切换时,设置ts标志。
每当ts标志被设置时执行ESCAPE,MMX,SSE,SSE2指令,控制单元就产生一个device not available异常。
为处理fpu,mmx,xmm寄存器的选择性装入而引入的数据结构。它们存放在进程描述符的thread.i387子字段中,其格式由i387_union联合体描述:
union i387_union {
struct i387_fsave_struct fsave;由具有数学协处理器、也可能有mmx单元的cpu模型使用。
struct i387_fxsave_struct fxsave;由具有see,sse2扩展功能的cpu模型使用。
struct i387_soft_struct soft;由无数学协处理器的cpu模型使用;linux内核通过软件模拟协处理器来支持这些老式芯片。
};
进程描述符包含两个附加的标志:
包含在thread_info描述符的status字段中的TS_USEDFPU标志。它表示进程在当前执行过程中是否使用过fpu,mmx,xmm寄存器。
包含在task_struct描述符的flags字段中的PF_USED_MATH标志。这个标志表示thread.i387子字段的内容是否有意义。该标志在两种情况下被清0.
当进程调用execve()系统调用开始执行一个新程序时,因为控制权将不再返回到前一个程序,所以当前存放在thread.i387中的数据也不再使用。
当在用户态下执行一个程序的进程开始执行一个信号处理程序时。因为信号处理程序与程序的执行流是异步的,因此,浮点寄存器对信号处理程序来说可能是毫无意义的。不过,内核开始执行信号处理程序之前在thread.i387中保存浮点寄存器,处理程序结束后恢复它们。因此信号处理程序可以使用数学协处理器。
struct i387_fsave_struct {
long cwd;
long swd;
long t
相关文档:
/* 他通过只复制内存页面来复制一定范围内的线性地址的内容*/
00150int copy_page_tables(unsigned long from,unsigned long to,long size)
00151 {
00152 unsigned long * from_page_table;
00153 unsigned long * to_page_table;
00154 un ......
1. ps简介
ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的.
2. ps命令及其参数
ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键 ......
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。
top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98 ......
先root打补丁:p3006854_9204_linux.zip
再设oracle环境变量
安装
安装结束建库之前需要打的补丁有:
p2617419_220_GENERIC.zip
p3119415_9204_linux.zip
具体参考这篇文章:
Redhat Enterprise Linux 4安装oracle
关键字: redhat el4 oracle 安装
一. 安装准备
1. as4安装完后,需要检查下列软件 ......
ELF是linux中使用最广泛的一种应用程序格式,为了弄清楚Linux内核是如何讲ELF文件精确映射到指定内存空间,上周末把内核sys_execve部分好好看了一遍,小结如下:
1. ELF格式
ELF指定了进程中text段、bss段、data段等应该放置到进程虚拟内存空间的什么位置,以及记录了进程需要用到的各种动态链接库的位置。
2. sys_exe ......