您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > linux进程与线程汇总
linux操作系统华软软件学院电子系P1教学内容►进程的概念►进程的特性►进程的状态及其转换►进程的控制►Linux中的进程控制►线程linux操作系统华软软件学院电子系P2教学要求►掌握程序、进程、线程的区别►掌握进程的基本状态及状态转换►了解进程控制块(PCB)的内容►重点掌握linux系统中进程相关的命令、系统调用、库函数linux操作系统华软软件学院电子系P3单道与多道程序设计►多道程序设计的提出n单道程序设计u执行特点:静态的、孤立的u具体特性:顺序性、封闭性、可再现性、资源独占性n并发执行及“与时间有关的错误”u并发执行,是指多个程序段之间在执行时间上重叠。u多程序段同时在系统中运行u宏观上并行,微观上串行u资源共享u问题:l资源冲突,甚至死锁l“与时间有关的错误”为了充分有效地利用计算机的有限资源,提出了多道程序设计linux操作系统华软软件学院电子系P4单道与多道程序设计多道程序设计单道程序设计linux操作系统华软软件学院电子系P5进程的定义►进程的定义:进程是可并发执行的程序在一个数据集合的运行过程。它是操作系统动态执行的基本单元,是系统进行资源分配的独立单位。启动浏览器IE后,得到的进程linux操作系统华软软件学院电子系P6进程与程序及其分类►进程与程序的关联n进程是程序的一次执行过程,即一个执行实例n程序与进程存在:1:1、1:n的关系n进程与程序存在:1:1、1:n的关系►进程与程序的区别n程序:静态、指令集合、无生命周期、可保存、不是进程调度和分配资源的单位n进程:动态、执行过程、有生命周期、不可保存、是进程调度和分配资源的单位n进程是由程序、数据和进程控制块三部分组成;进程具有创建其他进程的功能,而程序没有。►进程和程序的分类n系统进程(系统程序的执行过程)n用户进程(用户程序的执行过程)linux操作系统华软软件学院电子系P7生活中的程序与进程举例进程程序按照菜谱做菜的过程菜谱简单理解:所有正运行的程序都叫做进程,程序只有在被系统载入了内存并运行后才能够叫做进程。linux操作系统华软软件学院电子系P8进程的产生与终止►进程的产生n交互式环境中,合法用户终端登陆。n批处理环境中,为响应一个任务的要求而产生进程。n当运行中获取用户程序提出的某种请求后,OS可以代用户程序产生进程以实现某种功能。n基于应用进程的需要,由已存在的进程产生另一个进程,以便使新程序以并发运行方式完成特定任务。当一个进程生成另一个进程时,生成进程称为父进程,而被生成进程称为子进程。►进程的终止n正常结束、超时限制、内存不足、I/O失败、非法指令等linux操作系统华软软件学院电子系P9进程的特性►进程的特性:n动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的;n并发性:任何进程都可以同其他进程一起并发执行;n独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;n异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。linux操作系统华软软件学院电子系P10进程的基本状态►运行态(Running)n进程占有CPU,并在CPU上运行。在单CPU系统中,最多只有一个进程处于运行态。►就绪态(Ready)n一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)。处于就绪状态的进程可以有多个。队列的排列次序一般按优先级大小来排列。►阻塞态(Blocked)n指进程因等待某种事件的发生而暂时不能运行的状态,即使CPU空闲,该进程也不可运行。处于阻塞状态的进程可以有多个。linux操作系统华软软件学院电子系P11进程的状态及其转换运行进程占有CPU就绪具备运行条件,但暂无CPU阻塞等待某事件或资源。进程状态之间的转换进程被调度获得CPU时间片用完或被抢占因等待某种事件或者资源而无法运行,即使CPU空闲,该进程也不可运行已获得事件或等待的资源linux操作系统华软软件学院电子系P12运行就绪等待高优睡眠低优睡眠高优睡眠低优睡眠内存就绪唤醒外存就绪唤醒换出换出换出换入等待exitUnix进程状态及其变迁linux操作系统华软软件学院电子系P13进程的组成►操作系统控制结构n内存表用来跟踪主存和辅存。nI/0表用来管理I/0设备和通道。n文件表提供当前存在文件中的信息。n进程表用来管理进程。►进程的组成n程序段:进程所对应的可执行程序;n数据段:程序运行过程中要用到的数据或工作区;n进程控制块(PCB):为管理进程设置的一个专门的数据结构,用于记录进程的外部特征,描述进程的运动变化过程。►进程映像:n程序和数据是进程的静态部分,可见nPCB是进程的动态部分,不可见linux操作系统华软软件学院电子系P14进程控制块PCB►进程控制块(PCB)nPCB---ProcessControlBlockn记录了OS控制和管理进程的所需的所有信息,是进程属性的动态描述(PCB在Linux中对应task_struct,也称为PD;PCB在Unix中对应于proc和user结构)►进程控制块与进程关系:n每个进程有唯一的PCB。n操作系统(OS)根据PCB管理进程。n利用PCB实现进程的动态、并发。nPCB是进程存在的唯一标志。linux操作系统华软软件学院电子系P15进程控制块PCB►PCB的内容n标识信息:进程标识、用户名n说明信息:进程状态、等待原因、进程程序和数据的存储信息n现场信息:记录重要寄存器、时钟等内容,用于恢复断点n管理调度信息:进程优先级、进程队列指针、消息队列指针、进程使用的资源清单、进程家族关系、进程当前打开的文件linux操作系统华软软件学院电子系P16Linux系统中的PCB►Linux系统中的PCBn在Linux中,任务和进程是同一概念nLinux中的PCB即任务数据结构:task_strcut,也称为进程描述符PD(ProcessorDescriptor)n定义在include/linux/sched.h中linux操作系统华软软件学院电子系P17Linux系统中的PCB►LinuxPCB(task_struct)n包含进程所有信息ntask_struct数据结构很庞大,但并不复杂,按功能将所有域划分:u1、进程状态(State)u2、进程调度信息(SchedulingInformation)u3、各种标识符(Identifiers)u4、进程通信有关信息(IPC:Inter_ProcessCommunication)u5、时间和定时器信息(TimesandTimers)u6、进程链接信息(Links)u7、文件系统信息(FileSystem)u8、虚拟内存信息(VirtualMemory)u9、页面管理信息(page)u10、对称多处理器(SMP)信息u11、和处理器相关的环境(上下文)信息(ProcessorSpecificContext)u12、其它信息linux操作系统华软软件学院电子系P18LinuxPCB中的进程状态(state)n可运行状态u进程正在运行(运行态)、或者正准备运行(就绪态)u正在运行的进程就是当前进程u准备运行的进程只要得到CPU就可以立即投入运行,CPU是这些进程唯一等待的系统资源n可中断等待态、不可中断等待态u进程正等待某个事件(event)或某个资源u一定处于系统中的某个等待队列(wait_queue)中u两种等待态的差异:l可中断等待态:可被信号唤醒,被唤醒后进入可运行态,等待被调度;l不可中断等待态:因等待硬件资源,如某个通道、端口等,在任何情况下都不能被打断,直到资源满足。资源满足后只能用特定的方式来唤醒它,例如唤醒函数wake_up()等linux操作系统华软软件学院电子系P19n暂停状态u进程暂时停止运行以接受某种特殊处理u通常当进程接收到SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU信号后就处于这种状态(关于信号,将在以后讲述)u例如,正接受调试的进程就处于这种状态n僵死状态u进程执行了exit()函数后进入该状态,即进程被终止u此状态将由父进程执行wait()系统调用而“唤醒”,真正终止该进程,并回收其资源u处于该状态的进程是死进程,属于系统中的垃圾,必须进行相应处理以释放其占用的资源n死亡状态:僵死进程被父进程回收后的状态LinuxPCB中的进程状态(state)linux操作系统华软软件学院电子系P20Linux的进程状态转换模型linux操作系统华软软件学院电子系P21Linux中与进程相关的命令PSps——ProcessesSnapshot句法:ps[OPTIONS]功能:对系统中的进程进行监控[OPTION]参数如下:l:长格式输出u:按用户名和启动时间顺序来显示进程j:用任务格式来显示进程f:用全格式来显示进程a:显示所有用户的所有进程x:显示无控制终端的进程linux操作系统华软软件学院电子系P22-A:列出所有的行程-w:显示加宽可以显示较多的资讯-au:显示较详细的资讯-aux:显示所有包含其他使用者的行程-e:显示所有进程,环境变量-f:全格式-h:不显示标题-l:长格式注意区分“psaux”和“ps-aux”命令PSLinux中与进程相关的命令linux操作系统华软软件学院电子系P23kill关闭进程:kill进程号kill-9进程号(强行关闭)kill-1进程号(重启进程)结束所有进程:killall查找服务进程号:pgrep服务名称关闭进程:pkill进程名称Linux中与进程相关的命令linux操作系统华软软件学院电子系P24TOP句法:top[OPTIONS]功能:实时显示系统中各个进程的资源占用状况TOP命令是一个动态显示过程,可以通过用户按键来不断刷新当前状态。TOP命令是Linux下常用的性能分析工具Linux中与进程相关的命令linux操作系统华软软件学院电子系P25操作系统内核►CPU的两种执行状态:系统态和用户态n系统态/核心态(特态或管态):该状态下,CPU能执行指令集中任何指令;n用户态(常态或目态):该状态下,CPU只能执行一般的指令,不能执行特权指令。►操作系统内核功能n中断处理n时钟管理n原语操作n进程管理n存储器管理n设备管理linux操作系统华软软件学院电子系P26进程的创建►进程创建的时机n用户登录n作业调度n提供服务n应用请求►进程创建的过程n取得一个空白PCB,生成一个唯一的进程标识号(一般是数字形式)n为新进程分配必要的资源n初始化PCB将新进程的PCB插入就绪队列linux操作系统华软软件学院电子系P27进程的创建►Linux中的进程创建ninit_task:uLinux在启动时运行在核心态,这时只有初始化程序在执行是系统的第一个进程,因此称为初始进程。uinit_task在系统初始化结束后,初始进程启动一个核心进程,称为init。然后执行空闲循环,什么也不做。当系统没有其他工作时,调度程序会运行这个空闲进程。ninit:uinit进程的进程标识号为1,是系统中第一个真正的进程有自己的PCB。是系统中其他进程的祖先。n除init外,Linux所有进程都由其他进程创建;用户态中,可调用fork或clone来创建子进程。linux操作系统华软软件学院电子系P28进程的创建►Linux的进程创建fork()函数nfork()函数返回值u=-1:创建失败u=0:创建成功,并从子进程返回u0:创建成功,并从父进程返回,返回的是子进程PIDufork()函数为系统调用nfork()函数完成的事务u检查现有进程数目u分配PCB(task_strcut)及PIDu继承父进程的资源u创建进程映像(如静态的程序,动态的PCB)并设置就绪u返回:调用进程返回子进程的PID,被调度执行返回0linux操作系统华软软件学院电子系P29进程的创建►fork()函数返回后的处理n可依据父进程和子进程返回的值,做相应处理n一般程序架构如下:main(){intpid;//子进
本文标题:linux进程与线程汇总
链接地址:https://www.777doc.com/doc-5581488 .html