易截截图软件、单文件、免安装、纯绿色、仅160KB

2010 3 16日总结(linux的进程管理1)

主要看了Linux完全注释那本书,终于准备攻读Linux内核源码了,先看了第二张的总体概念,感觉操作系统有很多东西还真是大同小异,记得ucos就是有一个叫做快表的东西,里面最多可以表示64个进程,而早版的Linux(0.11)也有这个一说的东西。
 
在Linux中也有一个PCB来表示每个进程,在这个结构体中,有指向任务代码的指针,有指向任务数据的指针,还有指向堆栈段地址(这个栈空间用来保存该进程在CPU中的各个寄存器的值,在进程调度的时候使用,是在内核栈空间上的),还有进程的任务状态段信息结构(tss_struct)
 
以上是Linux操作系统中进程所拥有的各种状态和相互关系(0.11内核)
其中:可中断睡眠是可以被软终端所唤醒的,我现在的理解是可以被用户空间的程序所唤醒。不可中断睡眠状态是不能被软终端唤醒的,他只能等待调度程序的唤醒或者硬中断的到来。
 
进程间切换:
在这里面有几个概念先解释一下
GDT:全局描述符表  在我理解来看就是存放所有进程PCB的指针或者就象图里面画的是     每个进程的TSS的描述符。
TSS:任务状态段   任务状态段用于保存相应进程在CPU中的寄存器的值
LDT:局部描述符   存储在全局描述表中,分为数据段和代码段,然后数据段指向用户空间的一段保存该进程数据的地址,代码段指向用户空间的保存该进程代码的内存地址。(如下图)
在进程切换时,执行实际进程切换的任务由swich_to()宏所定义的一段汇编代码来完成。在切换之前,swich_to首先检查要切换的进程是否为当前进程,如果是则什么也不做,直接退出。否则就先将内核全局变量current置为新任务的指针,然后跳转到新任务的任务状态段TSS组成的地址处,造成CPU执行任务切换操作。然后就如第二幅图开始进行压栈和弹栈操作,开始执行新的任务。
 
Linux采用的是段页式的地址映射,通过计算,我今天知道了每个内存单元能存储4bit的数据。Linux(0.11内核)为每个进程都预留了64M的虚拟内存空间。


相关文档:

Linux 双网卡绑定测试


先介绍一下情况,服务器A和服务器B都是CentOS 4.6的系统,现在要做HA
Cluster,为了避免裂脑的发生,要提高心跳链路的可靠性,下图是现时的连接情况,服务器A的eth2、eth3分别和服务器B的eth2、eth3
相连(没有顺序关系),所有网卡都是千兆网卡,拓扑图如下所示:
在介绍一起硬件情况,服务器A是一台HP DL380
G5, ......

linux 设置环境变量

下面以配置java
环境变量为例介绍三种配置环境变量的方法。
 
1.修改/etc/profile文件
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户
的shell
都有权使用这些环境变量,可能
会给系统
带来安全性问题。
 
(1)用文本编辑器打开/etc/profile
 
(2)在profile文件末尾加入:
JA ......

linux开机过程深入理解

Linux开机过程理解
一.           Power on
二.           BIOS加电自检:
1.  检测所有周边硬件
2.  寻找启动的磁盘(cd-rom,floppy,IDE HDD,usb device等)
三.     & ......

linux gcc 编译时头文件和库文件搜索路径

一、头文件
 
gcc 在编译时寻找所需要的头文件 :
 
※搜寻会从-I开始
 
※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH
 
※再找内定目录
/usr/include 
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-l ......

linux内核移植s3c2410,移植正式开始1

在前面的准备工作完成之后,先实验一下,谈不上真正的移植 ,因为代码都没有改的。
首先修改顶层的Makefile,修改ARCH,CROSS_COMPLIE变量。
#ARCH        ?= $(SUBARCH)
ARCH        ?= arm
CROSS_COMPILE    ?= arm-linux-
执行make smd ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号