linux进程与线程.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux进程与线程课案

Linux系统中的PCB Linux系统中的PCB 在Linux中,任务和进程是同一概念 Linux中的PCB即任务数据结构:task_strcut,也称为进程描述符PD (Processor Descriptor) 定义在include/linux/sched.h中 Linux系统中的PCB Linux PCB(task_struct) 包含进程所有信息 task_struct数据结构很庞大,但并不复杂,按功能将所有域划分: 1、进程状态(State) 2、进程调度信息(Scheduling Information) 3、各种标识符(Identifiers) 4、进程通信有关信息(IPC:Inter_Process Communication) 5、时间和定时器信息(Times and Timers) 6、进程链接信息(Links) 7、文件系统信息(File System) 8、虚拟内存信息(Virtual Memory) 9、页面管理信息(page) 10、对称多处理器(SMP)信息 11、和处理器相关的环境(上下文)信息(Processor Specific Context) 12、其它信息 进程的创建 fork()函数返回后的处理 可依据父进程和子进程返回的值,做相应处理 一般程序架构如下: main() { int pid; //子进程的标识符PID while ( (pid=fork()) == -1) ;//直到子进程创建成功 if (pid == 0) //子进程返回,也称调度返回 { // 插入子进程返回时处理的程序段 } else // 父进程返回,也称调用返回 { // 插入父进程返回时处理的程序段 } } 小课验证 进程的终止 进程终止的时机 进程的正常结束 进程执行期间调用exit系统调用 在main函数中执行return语句 main函数执行完 进程的异常结束 进程运行时出现错误或故障被迫结束。如数组越界、除数为0、电源故障等 进程终止的过程 取得当前进程的PCB 归还进程所占的资源 进入进程调度程序 进程的终止 Linux中的进程终止 调用exit()、执行return语句、main函数执行完,最终都要调用内核函数do_exit() do_exit()需要做的工作如下: 根据PCB中的内容进行资源的归还和涉及信息的善后处理 将进程的状态改为TASK_ZOMBIE 设置exit_code 通知父进程和子进程“我即将结束” 调用内核函数schedule()重新调度 进程的阻塞和唤醒 阻塞和唤醒的时机 进程请求系统为它服务,系统不能马上为它服务,就进入阻塞状态; 启动了无法马上完成的操作(I/O),进入阻塞状态; 进程间相互合作时,需要等待其他进程的运算结果; 系统启动时创建的服务,如果没有其他进程的请求,处于阻塞。 进程的阻塞和唤醒 进程阻塞的过程 使当前进程停止执行 将状态改为阻塞态 插入适当的等待阻塞队列 调用schedule()重新进行进程调度 进程唤醒的过程 取出阻塞队列的第一个进程 将状态改为就绪态 插入到就绪队列 进程的阻塞和唤醒 Linux中的进程阻塞和唤醒 使当前进程停止执行若进程等待一个特定的事件发生,则调用函数来阻塞当前进程: sleep_on():进程状态被设置为TASK_INTERRUPTIBLE interruptible_sleep_on():进程状态被设置为TASK_UNINTERRUPTIBLE 当进程等待的事件发生时,调用内核函数来唤醒进程: wake_up(): wake_up_process(): 对某个睡眠进程的唤醒。将状态设置为TASK_RUNNING linux操作系统 华软软件学院电子系 P* Linux操作系统 华软软件学院电子系 P* 简要说明不同操作系统会扩展这几个状态 * 教学内容 进程的概念 进程的特性 进程的状态及其转换 进程的控制 Linux中的进程控制 线程 教学要求 掌握程序、进程、线程的区别 掌握进程的基本状态及状态转换 了解进程控制块(PCB)的内容 重点掌握linux系统中进程相关的命令、系统调用、库函数 单道与多道程序设计 多道程序设计的提出 单道程序设计 执行特点:静态的、孤立的 具体特性:顺序性、封闭性、可再现性、资源独占性 并发执行及“与时间有关的错误” 并发执行,是指多个程序段之间在执行时间上重叠。 多程序段同时在系统中运行 宏观上并行,微观上串行 资源共享 问题: 资源冲突,甚至死锁 “与时间有关的错误” 为了充分有效地利用计算机 的有限资源,提出了多道程序设计 单道与多道程序设计 多道程序设计 单道程序设计 进程的定义 进程的定义:进程是可

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档