快速业务通道

Linux内核分析之进程总结

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-23
Linux内核分析之进程总结 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 作者:张明奇 本文学习目标 深入了解进程的原理 无论是系统管理员还是普通用户,监视系统进程的运行情况,并适时终止一些失控的进程是每天的例行任务(读者或许对windows的任务管理器非常熟悉),系统管理员可能还要兼顾到任务的重要程度,并相应调整进程的优先级策略. 1.1 Linux进程简介 Linux系统的核心部分从整体上说可以分为两部分,即“静”的文件系统和“动”的进程控制系统.进程控制系统则负责为将要执行的程序和数据文件分配内存空间,并负责进程调度、控制并发进程的执行速度和分配必要的资源,以及负责通信和内存管理等. 1.1.1 进程的概念 Linux系统中,进程被赋予了下述特性的含义和特性: 1. 一个进程是对一个程序的执行. 2.一个进程的存在意味着存在一个task_struct结构,它包含着相应的进程控制信息. 3.一个进程可以生成或消灭其子进程. 4.一个进程是获得和释放各种系统资源的基本单位. 上述1反映进程动态特性的,而2又反映了进程的静态特性.34反映了Linux系统的进程之间的关系以及Linux没有作业概念的特性.事实上,一个进程的静态描述是由三部分组成的,即进程状态控制块PCB(栈段),进程的程序文本(正文)段以及进程的数据段.把这三部分统称为进程上下文,而进程的动态特性则定义为在进程上下文中的执行. 1.2 进程的虚拟地址结构 Linux进程的虚拟地址结构是依赖于硬件,因此,如果不作特别说明,文本默认那些与硬件有关的部门都是依赖于英特尔 80x86的,80x86平台中,每个进程拥有一个4GB的虚拟空间.其中0~3GB的地址空间由用户进程使用,用户进程可以对其直接访问.3~4GB的地址空间称为核心地址空间,在所有的进程中共享,存放核心的正文和数据,只被核心使用,用户进程不能直接访问. Linux将用户进程的所有地址空间有关的信息保存在一个名为mm_struct的数据结构中,该数据结构自身则保存在进程描述符中,这个在前面介绍Linux的进程描述符的时候提到过. Linux的进程由逻辑段组成的,例如有存放状态控制块的栈段、存放CPU执行指令集合的正文段以及被执行指令所访问的数据段.相应的Linux中,一个进程的虚拟地址空间被分成若干个虚拟区来存放上述的逻辑段.区是进程虚拟地址空间上的一段连续区域,它是被共享、保护以及进行内存分配和地址交换的独立实体.正文、数据和栈分别存放于各自的区中.在Linux中虚拟区域被命名为vm area, 在核心代码中通常简写为VMA. 1.2.1 管理每个进程中的区 系统设立了称为vm_area_struct的数据类型,进程的每个区都对应一个vm_area_struct结构,它主要包括下列内容: 1.区的标志位,指明该区的类型以及是否被锁住,是否可共享等属性.缺页处理程序会根据地址所在区的标志位查找缺页原因,并做相应处理. 2.区的起始地址,结束地址. 3.共享区域指针,给出共享区 vm_area_struct链表. 4.文件系统指针,指向外存中与该区对应的数据文件. 5.此区域的操作函数指针. 在系统创建新进程时,核心将从父进程复制相应的表项给所创建的进程. 这里,要强调的一点是对于一个进程,它所有的区的地址范围绝对不会重叠,两个区的虚拟地址不一定连续,而进程的虚拟地址在各区之间是连续的. 为加快对区域的查找和插入删除操作,Linux使用AVL平衡二叉树来组织和管理区域. 对于用户进程,它可以通过系统调用mmap()请求创建一个虚拟区域,并通过munmap()系统调用加以释放. 在虚拟区域的讨论中,大家也可能主要到一点,即Linux中的区和段页式管理中的段非常相像.所不同的是,段页式管理中的虚拟地址空间是二维的,而Linux的各个进程的分区地址仍然是一维的. 1.3进程的状态和状态转换

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号