- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 尚辅网 第七章 进程调度与通信编程 7.1 LINUX下的进程概述 7.2 进程的系统调用 7.3 进程间通信 7.4 信号 7.5 守护进程 7.6 实战技巧 巧妙使用Tab键 7.1 Linux下的进程概述 Linux作为多用户操作系统,支持多道程序设计、分时处理和软实时处理,带有微内核的一些特征,在程序设计时需引进进程机制。当前正在运行的程序称为进程,对进程的监视和控制是linux系统管理员的核心任务。管理员可以终止或重启一个进程,也可以指定一个新的优先级。命令“ps”和“top”用于查看当前进程列表。如何用这些命令管理linux系统中的进程请参见本书第三章中的“3.7 进程管理命令”一节。 监视linux的标准工具ps(process status)返回正在运行程序的信息,包括程序运行的用户名,CPU运行份额和时间。如果要手工终止程序或确定哪个程序让系统变慢,这些信息很有用。监视和控制进程很有必要。 使用ps、top、kill和renice命令可以看到进程的运行情况并对它们进行控制。进程是操作系统调度单位,进程PCB用一个名为task_struct的结构体表示,定义在/include/linux/sehed.h中。每个task_struct结构占1680字节,系统中最大进程数由系统物理内存大小决定。每当创建一个新进程时,便在内存中申请一个空task_struct结构,填入需要的信息。 指向该结构的指针也被加入到task数组中,所有进程控制块都存储在task[]数组中。在系统初始化后期,建立了第一个进程块INIT_TASK。为了便于找到当前正在执行的进程,linux中定义了一个current_set指针数组,其中每个成员指向某CPU上正在运行的进程, 该数组定义格式在/kemel/sched.c中,具体形式是: struct task_struct * init_tasks[NR_CPUS] = {init_task, }; 进程由程序、数据和进程控制块PCB(Process Control Block)组成。当系统创建一个进程时,建立了一个PCB。当进程消亡时,撤消了PCB。在进程活动的整个生命周期内,系统通过PCB对进程进行管理和调度。 Linux中的进程分普通进程和实时进程两种,实时进程具有一定的紧迫性,对外部事件要作出快速响应,实时进程的优先级高于普通进程。 7.1.2 Linux进程的PCB结构 Linux进程的PCB用task_struct结构体来表示,task_struct结构体比较复杂,共有80多个数据成员。下面仅就其主要数据成员按功能划分并作说明。 1)volatile long state 表示进程的当前状态。进程运行时,它会根据具体情况改变状态。进程状态共有TASK_RUNNING (可运行状态)、TASK_INTERRUPTIBLE(可中断的等待状态)、TASK_UNIN、TERRUPTIBLE(不可中断的等待状态)、TASK_ZOMBIE(僵死状态)和TASK_STOPPED(暂停状态)等5种状态。 2)long priority 进程优先级,priority的值给出了进程每次获取CPU后,可使用的时间片长度(单位jiffies)。 3)unsigned long rt_priority rt_ priority的值给出了实时进程的优先级,rt_priority+1000给出进程每次获取CPU后,可使用的时间片长度(单位是jiffies)。 4)long counter 在轮转法调度时counter表示当前进程还可运行多久。在进程开始时被赋为priority的值,以后每隔一个时钟中断递减1,减到0时引起新一轮调度。 5)unsigned long policy 表示该进程的进程调度策略。调度策略有: · SCHED_OTHER 0,非实时进程,用基于优先权的轮转法。 · SCHED_ FIFO 1,实时进程,用先进先出算法。 · SCHED_RR 2,实时进程,用基于优先权的轮转法。 1)struct task_struct *next_task,*prev_task Linux中所有进程组成了双向链表,next_task和prev_task是链表前后向指针。 2)struct task_struct *p_opptr,*p_pptr, struct task_struct *p_cptr, p_ysptr,*p_osptr 以上分别指向该进程的原始父进程、父进程、子进程和新老兄弟进程指针。 3)struct task_struct *pidhash_next, struct task_struct **pidhash_pprev 链入进程ha
您可能关注的文档
- Linux操作系统案例教程 教学课件 作者 彭英慧 第14章 Linux 下的编程.ppt
- Linux操作系统案例教程 教学课件 作者 彭英慧 课后习题答案.doc
- Linux操作系统管理与应用 教学课件 作者 张亚新 第1章初识Linux.ppt
- Linux操作系统管理与应用 教学课件 作者 张亚新 第2章 Linux安装.ppt
- Linux操作系统管理与应用 教学课件 作者 张亚新 第3章 Linux桌面环境.ppt
- Linux操作系统管理与应用 教学课件 作者 张亚新 第4章 Linux的系统管理 权限.ppt
- Linux操作系统管理与应用 教学课件 作者 张亚新 第4章 Linux的系统管理.ppt
- Linux操作系统管理与应用 教学课件 作者 张亚新 第4章 Linux的系统管理之打包与压缩.ppt
- Linux操作系统管理与应用 教学课件 作者 张亚新 第4章 Linux的系统管理之用户和组.ppt
- Linux操作系统管理与应用 教学课件 作者 张亚新 第5章常用网络服务 Apache服务器.ppt
- Linux程序设计——技术技巧与项目实践 教学课件 作者 余有明 编著 第8章.ppt
- Linux程序设计——技术技巧与项目实践 教学课件 作者 余有明 编著 第9章.ppt
- Linux程序设计——技术技巧与项目实践 教学课件 作者 余有明 编著 第10章.ppt
- Linux服务器配置实训教程 教学课件 作者 郝维联 chapter1.ppt
- Linux服务器配置实训教程 教学课件 作者 郝维联 chapter2.ppt
- Linux服务器配置实训教程 教学课件 作者 郝维联 chapter3.ppt
- Linux服务器配置实训教程 教学课件 作者 郝维联 chapter4.ppt
- Linux服务器配置实训教程 教学课件 作者 郝维联 chapter5.ppt
- Linux服务器配置实训教程 教学课件 作者 郝维联 chapter6.ppt
- Linux服务器配置实训教程 教学课件 作者 郝维联 chapter7.ppt
文档评论(0)