Linux内核的七大区间1.进程管理(进程创建,进程的三种状态,进程间的调度,调度算法...)2.内存管理(段式管理(Linux所有段都从0开始),页式管理--地址偏移量)3.系统调用(C语言库函数的区别)4.网络协议(TCP/IP协议)5.UFS--虚拟文件系统==》Linux驱动总线模型6.驱动管理(网络设备,块设备,字符设备...)7ARCH(对各个硬件平台的支持...RAM x86 power pc)
进程数据结构进程的静态描述:由三部分组成:PCB,有关程序段和该程序段对其进行操作的数据结构集进程控制块(PCB):用于描述进程情况及控制进程运行所需的全部信息代码段:是进程中能被进程调度程序在CPU上执行的程序代码段。数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据
进程是操作系统对资源的一种抽象:一个进程:代码段、数据段,堆栈段(内存四区)+进程控制块(PCB)PCB是操作系统感知进程存在的一个重要数据结构。
fork函数和vfork函数vfork()函数有个限制,子进程必须立刻执行_exit或者exec函数, 即使fork实现了copy on write,效率也没有vfork高,但是我们不推荐使用vfork,因为几乎每一个vfork的实现, 都或多或少存在一定的问题结论:1.fork子进程会写时拷贝父进程的数据段;vfork子进程与父进程共享数据段2.fork父子进程的执行次序不确定;vfork子进程先运行,父进程后运行
vfork和exec函数在一起execve替换进程映像(加载程序),注意execve是一个系统调用;替换意味着:代码段,数据段,堆栈段,进程控制块PCB全部替换