linux进程与线程汇总ppt课件

上传人:cn****1 文档编号:567687950 上传时间:2024-07-22 格式:PPT 页数:47 大小:1MB
返回 下载 相关 举报
linux进程与线程汇总ppt课件_第1页
第1页 / 共47页
linux进程与线程汇总ppt课件_第2页
第2页 / 共47页
linux进程与线程汇总ppt课件_第3页
第3页 / 共47页
linux进程与线程汇总ppt课件_第4页
第4页 / 共47页
linux进程与线程汇总ppt课件_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《linux进程与线程汇总ppt课件》由会员分享,可在线阅读,更多相关《linux进程与线程汇总ppt课件(47页珍藏版)》请在金锄头文库上搜索。

1、linux操作系统华软软件学院电子系华软软件学院电子系P1教学内容教学内容进程的概念进程的概念进程的特性进程的特性进程的状态及其转换进程的状态及其转换进程的控制进程的控制Linux中的进程控制中的进程控制线程线程linux操作系统华软软件学院电子系华软软件学院电子系P2教学要求教学要求掌握程序、进程、线程的区别掌握程序、进程、线程的区别掌握进程的基本状态及状态转换掌握进程的基本状态及状态转换了解进程控制块(了解进程控制块(PCB)的内容)的内容重点掌握重点掌握linux系统中进程相关的命令、系统系统中进程相关的命令、系统调用、库函数调用、库函数linux操作系统华软软件学院电子系华软软件学院电

2、子系P3单道与多道程序设计单道与多道程序设计多道程序设计的提出多道程序设计的提出n单道程序设计单道程序设计u执行特点:静态的、孤立的执行特点:静态的、孤立的u具体特性:顺序性、封闭性、可再现性、资源独占性具体特性:顺序性、封闭性、可再现性、资源独占性n并发执行及并发执行及“与时间有关的错误与时间有关的错误”u u并发并发并发并发执行执行执行执行,是指多个程序段之间在执行时间上重叠。,是指多个程序段之间在执行时间上重叠。u多程序段同时在系统中运行多程序段同时在系统中运行u宏观上并行,微观上串行宏观上并行,微观上串行u u资源共享资源共享资源共享资源共享u问题:问题:l资源冲突,甚至死锁资源冲突,

3、甚至死锁l“与时间有关的错误与时间有关的错误”为了充分有效地利用计算机的有限资源,提出了多道程序设计linux操作系统华软软件学院电子系华软软件学院电子系P4单道与多道程序设计单道与多道程序设计多道程序设计多道程序设计多道程序设计多道程序设计单道程序设计单道程序设计单道程序设计单道程序设计linux操作系统华软软件学院电子系华软软件学院电子系P5进程的定义进程的定义进程的定义进程的定义进程的定义进程的定义:进程是可并发执行的:进程是可并发执行的:进程是可并发执行的:进程是可并发执行的程序程序程序程序在一个数据在一个数据在一个数据在一个数据集合的集合的集合的集合的运行过程运行过程运行过程运行过程

4、。它是操作系统动态执行的基本单。它是操作系统动态执行的基本单。它是操作系统动态执行的基本单。它是操作系统动态执行的基本单元,是系统进行资源分配的独立元,是系统进行资源分配的独立元,是系统进行资源分配的独立元,是系统进行资源分配的独立单位。单位。单位。单位。启动浏览器IE后,得到的进程linux操作系统华软软件学院电子系华软软件学院电子系P6进程与程序及其分类进程与程序及其分类进程与程序的关联进程与程序的关联进程与程序的关联进程与程序的关联n n进程是程序的一次执行过程,即一个执行实例进程是程序的一次执行过程,即一个执行实例进程是程序的一次执行过程,即一个执行实例进程是程序的一次执行过程,即一个

5、执行实例n n程序与进程存在:程序与进程存在:程序与进程存在:程序与进程存在:1:11:1、1:n1:n的关系的关系的关系的关系n n进程与程序存在:进程与程序存在:进程与程序存在:进程与程序存在:1:11:1、1:n1:n的关系的关系的关系的关系进程与程序的进程与程序的进程与程序的进程与程序的区别区别区别区别n n程序:静态、指令集合、无生命周期、可保存、不是进程序:静态、指令集合、无生命周期、可保存、不是进程序:静态、指令集合、无生命周期、可保存、不是进程序:静态、指令集合、无生命周期、可保存、不是进程调度和分配资源的单位程调度和分配资源的单位程调度和分配资源的单位程调度和分配资源的单位n

6、 n进程:动态、执行过程、有生命周期、不可保存、是进进程:动态、执行过程、有生命周期、不可保存、是进进程:动态、执行过程、有生命周期、不可保存、是进进程:动态、执行过程、有生命周期、不可保存、是进程调度和分配资源的单位程调度和分配资源的单位程调度和分配资源的单位程调度和分配资源的单位n n进程是由程序、数据和进程控制块三部分组成进程是由程序、数据和进程控制块三部分组成进程是由程序、数据和进程控制块三部分组成进程是由程序、数据和进程控制块三部分组成;进程具进程具进程具进程具有创建其他进程的功能,而程序没有。有创建其他进程的功能,而程序没有。有创建其他进程的功能,而程序没有。有创建其他进程的功能,

7、而程序没有。进程和程序的分类进程和程序的分类进程和程序的分类进程和程序的分类n n系统进程(系统程序的执行过程)系统进程(系统程序的执行过程)系统进程(系统程序的执行过程)系统进程(系统程序的执行过程)n n用户进程(用户程序的执行过程)用户进程(用户程序的执行过程)用户进程(用户程序的执行过程)用户进程(用户程序的执行过程)linux操作系统华软软件学院电子系华软软件学院电子系P7生活中的程序与进程举例生活中的程序与进程举例进进程程程程序序按照菜谱做菜的过程菜菜谱谱简单理解:所有正运行的程序都叫做进程,程序只有在被系统载入了内存并运行后才能够叫做进程。linux操作系统华软软件学院电子系华软

8、软件学院电子系P8进程的产生与终止进程的产生与终止进程的产生进程的产生n交互式环境中,合法用户终端登陆。交互式环境中,合法用户终端登陆。n批处理环境中,为响应一个任务的要求而产生进程。批处理环境中,为响应一个任务的要求而产生进程。n当运行中获取用户程序提出的某种请求后,当运行中获取用户程序提出的某种请求后,OS可以可以代用户程序产生进程以实现某种功能。代用户程序产生进程以实现某种功能。n基于应用进程的需要,由已存在的进程产生另一个进基于应用进程的需要,由已存在的进程产生另一个进程,以便使新程序以并发运行方式完成特定任务。当程,以便使新程序以并发运行方式完成特定任务。当一个进程生成另一个进程时,

9、生成进程称为父进程,一个进程生成另一个进程时,生成进程称为父进程,而被生成进程称为子进程。而被生成进程称为子进程。进程的终止进程的终止n正常结束、超时限制、内存不足、正常结束、超时限制、内存不足、I/O失败、非法指失败、非法指令等令等linux操作系统华软软件学院电子系华软软件学院电子系P9进程的特性进程的特性进程的特性:进程的特性:n动态性:进程的实质是程序的一次执行过程,进动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的;程是动态产生,动态消亡的;n并发性:任何进程都可以同其他进程一起并发执并发性:任何进程都可以同其他进程一起并发执行;行;n独立性:进程是一个能独立运行的

10、基本单位,同独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;时也是系统分配资源和调度的独立单位;n异步性:由于进程间的相互制约,使进程具有执异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的行的间断性,即进程按各自独立的、不可预知的速度向前推进。速度向前推进。 linux操作系统华软软件学院电子系华软软件学院电子系P10进程的基本状态进程的基本状态运行态(运行态(RunningRunning)n进程占有进程占有进程占有进程占有CPUCPUCPUCPU,并在,并在,并在,并在CPUCPUCPUCPU上运行。在单上运行。在单上运行。在

11、单上运行。在单CPUCPUCPUCPU系统中,系统中,系统中,系统中,最多只有一个进程处于运行态。最多只有一个进程处于运行态。最多只有一个进程处于运行态。最多只有一个进程处于运行态。就绪态(就绪态(ReadyReady)n一个进程已经具备运行条件,但由于无一个进程已经具备运行条件,但由于无一个进程已经具备运行条件,但由于无一个进程已经具备运行条件,但由于无CPUCPUCPUCPU暂时暂时暂时暂时不能运行的状态(当调度给其不能运行的状态(当调度给其不能运行的状态(当调度给其不能运行的状态(当调度给其CPUCPUCPUCPU时,立即可以时,立即可以时,立即可以时,立即可以运行)。处于就绪状态的进程

12、可以有多个。队列运行)。处于就绪状态的进程可以有多个。队列运行)。处于就绪状态的进程可以有多个。队列运行)。处于就绪状态的进程可以有多个。队列的排列次序一般按优先级大小来排列。的排列次序一般按优先级大小来排列。的排列次序一般按优先级大小来排列。的排列次序一般按优先级大小来排列。阻塞态(阻塞态(BlockedBlocked)n指进程因等待某种事件的发生而暂时不能运行的指进程因等待某种事件的发生而暂时不能运行的指进程因等待某种事件的发生而暂时不能运行的指进程因等待某种事件的发生而暂时不能运行的状态,即使状态,即使状态,即使状态,即使CPUCPUCPUCPU空闲,该进程也不可运行。处于空闲,该进程也

13、不可运行。处于空闲,该进程也不可运行。处于空闲,该进程也不可运行。处于阻塞状态的进程可以有多个。阻塞状态的进程可以有多个。阻塞状态的进程可以有多个。阻塞状态的进程可以有多个。linux操作系统华软软件学院电子系华软软件学院电子系P11进程的状态及其转换进程的状态及其转换运行进程占有进程占有进程占有进程占有CPUCPUCPUCPU就绪具备运行具备运行具备运行具备运行条件,但条件,但条件,但条件,但暂无暂无暂无暂无CPUCPUCPUCPU阻塞等待某等待某等待某等待某事件或事件或事件或事件或资源。资源。资源。资源。进程状态之间的转换进程状态之间的转换进程被调度进程被调度进程被调度进程被调度获得获得获

14、得获得CPUCPU时间片用时间片用时间片用时间片用完或被抢占完或被抢占完或被抢占完或被抢占 因等待某种事件或因等待某种事件或因等待某种事件或因等待某种事件或者资源而无法运行,者资源而无法运行,者资源而无法运行,者资源而无法运行,即使即使即使即使CPUCPU空闲,该空闲,该空闲,该空闲,该进程也不可运行进程也不可运行进程也不可运行进程也不可运行已获得事件已获得事件或等待的资源或等待的资源linux操作系统华软软件学院电子系华软软件学院电子系P12运行就绪被抢占被抢占被抢占被抢占被调度被调度被调度被调度等待等待等待等待高优睡眠高优睡眠高优睡眠高优睡眠低优睡眠低优睡眠低优睡眠低优睡眠高优睡眠高优睡眠

15、高优睡眠高优睡眠低优睡眠低优睡眠低优睡眠低优睡眠内存就绪内存就绪内存就绪内存就绪唤醒唤醒唤醒唤醒等待事件等待事件等待事件等待事件或资源或资源或资源或资源外存就绪外存就绪外存就绪外存就绪唤醒唤醒唤醒唤醒换出换出换出换出换出换出换出换出换出换出换出换出换入换入换入换入等待exitexitsleepsleepwaitwaitUnix进程状进程状态及其变迁态及其变迁linux操作系统华软软件学院电子系华软软件学院电子系P13进程的组成进程的组成操作系统控制结构操作系统控制结构n内存表用来跟踪主存和辅存。内存表用来跟踪主存和辅存。nI/0表用来管理表用来管理I/0设备和通道。设备和通道。n文件表提供当前

16、存在文件中的信息。文件表提供当前存在文件中的信息。n进程表用来管理进程。进程表用来管理进程。进程的组成进程的组成n程序段程序段:进程所对应的可执行程序;:进程所对应的可执行程序;n数据段数据段:程序运行过程中要用到的数据或工作区;:程序运行过程中要用到的数据或工作区;n进程控制块(进程控制块(PCB):为管理进程设置的一个专门的数:为管理进程设置的一个专门的数据结构,用于记录进程的外部特征,描述进程的运动变据结构,用于记录进程的外部特征,描述进程的运动变化过程。化过程。进程映像:进程映像:进程映像:进程映像:n n程序和数据是进程的静态部分,可见程序和数据是进程的静态部分,可见程序和数据是进程

17、的静态部分,可见程序和数据是进程的静态部分,可见n nPCBPCB是进程的动态部分,不可见是进程的动态部分,不可见是进程的动态部分,不可见是进程的动态部分,不可见linux操作系统华软软件学院电子系华软软件学院电子系P14进程控制块进程控制块PCB进程控制块(进程控制块(PCB)nPCB-PCB-P Process rocess C Control ontrol B Blocklockn记录了记录了记录了记录了OSOS控制和管理进程的所需的所有信息,是控制和管理进程的所需的所有信息,是控制和管理进程的所需的所有信息,是控制和管理进程的所需的所有信息,是进程属性的动态描述进程属性的动态描述进程属

18、性的动态描述进程属性的动态描述(PCB(PCB在在在在LinuxLinux中对应中对应中对应中对应task_structtask_struct,也称为,也称为,也称为,也称为PDPD;PCBPCB在在在在UnixUnix中对应于中对应于中对应于中对应于procproc和和和和useruser结构结构结构结构) ) 进程控制块与进程关系:进程控制块与进程关系:n每个进程有唯一的每个进程有唯一的每个进程有唯一的每个进程有唯一的PCBPCB。n操作系统(操作系统(操作系统(操作系统(OSOS)根据)根据)根据)根据PCBPCB管理进程。管理进程。管理进程。管理进程。n利用利用利用利用PCBPCB实现

19、进程的动态、并发。实现进程的动态、并发。实现进程的动态、并发。实现进程的动态、并发。nPCBPCB是进程存在的唯一标志。是进程存在的唯一标志。是进程存在的唯一标志。是进程存在的唯一标志。 linux操作系统华软软件学院电子系华软软件学院电子系P15进程控制块进程控制块PCBPCB的内容的内容n标识信息:进程标识、用户名标识信息:进程标识、用户名标识信息:进程标识、用户名标识信息:进程标识、用户名n说明信息:进程状态、等待原因、进程程序和数说明信息:进程状态、等待原因、进程程序和数说明信息:进程状态、等待原因、进程程序和数说明信息:进程状态、等待原因、进程程序和数据的存储信息据的存储信息据的存储

20、信息据的存储信息n现场信息:记录重要寄存器、时钟等内容,用于现场信息:记录重要寄存器、时钟等内容,用于现场信息:记录重要寄存器、时钟等内容,用于现场信息:记录重要寄存器、时钟等内容,用于恢复断点恢复断点恢复断点恢复断点n管理调度信息:进程优先级、进程队列指针、消管理调度信息:进程优先级、进程队列指针、消管理调度信息:进程优先级、进程队列指针、消管理调度信息:进程优先级、进程队列指针、消息队列指针、进程使用的资源清单、进程家族关息队列指针、进程使用的资源清单、进程家族关息队列指针、进程使用的资源清单、进程家族关息队列指针、进程使用的资源清单、进程家族关系、进程当前打开的文件系、进程当前打开的文件

21、系、进程当前打开的文件系、进程当前打开的文件linux操作系统华软软件学院电子系华软软件学院电子系P16Linux系统中的系统中的PCBLinux系统中的系统中的PCBn在在Linux中,任务和进程是同一概念中,任务和进程是同一概念nLinux中的中的PCB即任务数据结构:即任务数据结构:task_strcut,也称为进程描述符,也称为进程描述符PD (Processor Descriptor)n定义在定义在include/linux/sched.h中中linux操作系统华软软件学院电子系华软软件学院电子系P17Linux系统中的系统中的PCBLinux PCBLinux PCB(task_s

22、truct)task_struct)n n包含进程所有信息包含进程所有信息包含进程所有信息包含进程所有信息n ntask_structtask_struct数据结构很庞大,但并不复杂,按功能将所数据结构很庞大,但并不复杂,按功能将所数据结构很庞大,但并不复杂,按功能将所数据结构很庞大,但并不复杂,按功能将所有域划分:有域划分:有域划分:有域划分:u u1 1、进程状态(、进程状态(、进程状态(、进程状态(StateState) u u2 2、进程调度信息(、进程调度信息(、进程调度信息(、进程调度信息(Scheduling InformationScheduling Information)u

23、 u3 3、各种标识符(、各种标识符(、各种标识符(、各种标识符(IdentifiersIdentifiers)u u4 4、进程通信有关信息(、进程通信有关信息(、进程通信有关信息(、进程通信有关信息(IPCIPC:Inter_Process CommunicationInter_Process Communication)u u5 5、时间和定时器信息(、时间和定时器信息(、时间和定时器信息(、时间和定时器信息(Times and TimersTimes and Timers)u u6 6、进程链接信息(、进程链接信息(、进程链接信息(、进程链接信息(LinksLinks)u u7 7、文

24、件系统信息(、文件系统信息(、文件系统信息(、文件系统信息(File SystemFile System)u u8 8、虚拟内存信息(、虚拟内存信息(、虚拟内存信息(、虚拟内存信息(Virtual MemoryVirtual Memory)u u9 9、页面管理信息(、页面管理信息(、页面管理信息(、页面管理信息(pagepage)u u1010、对称多处理器(、对称多处理器(、对称多处理器(、对称多处理器(SMPSMP)信息)信息)信息)信息u u1111、和处理器相关的环境(上下文)信息(、和处理器相关的环境(上下文)信息(、和处理器相关的环境(上下文)信息(、和处理器相关的环境(上下文)

25、信息(Processor Specific Processor Specific ContextContext)u u1212、其它信息、其它信息、其它信息、其它信息 linux操作系统华软软件学院电子系华软软件学院电子系P18Linux PCB中的中的进程状态(进程状态(state)n可运行状态可运行状态u进程正在运行(运行态)、或者正准备运行(就绪态)进程正在运行(运行态)、或者正准备运行(就绪态)u正在运行的进程就是当前进程正在运行的进程就是当前进程u准备运行的进程只要得到准备运行的进程只要得到CPU就可以立即投入运行,就可以立即投入运行,CPU是这些进程唯一等待的系统资源是这些进程唯一

26、等待的系统资源n可中断等待态、不可中断等待态可中断等待态、不可中断等待态u进程正等待某个事件(进程正等待某个事件(event)或某个资源)或某个资源u一定处于系统中的某个等待队列(一定处于系统中的某个等待队列(wait_queue)中)中u两种等待态的差异:两种等待态的差异:l可中断等待态:可被信号唤醒,被唤醒后进入可运可中断等待态:可被信号唤醒,被唤醒后进入可运行态行态,等待被调度;等待被调度;l不可中断等待态:因等待硬件资源,如某个通道、不可中断等待态:因等待硬件资源,如某个通道、端口等,在任何情况下都不能被打断,直到资源满端口等,在任何情况下都不能被打断,直到资源满足。资源满足后只能用特

27、定的方式来唤醒它,例如足。资源满足后只能用特定的方式来唤醒它,例如唤醒函数唤醒函数wake_up()等()等 linux操作系统华软软件学院电子系华软软件学院电子系P19n暂停状态暂停状态u进程暂时停止运行以接受某种特殊处理进程暂时停止运行以接受某种特殊处理u通常当进程接收到通常当进程接收到SIGSTOP、SIGTSTP、SIGTTIN或或 SIGTTOU信号后就处于这种状态(关于信号,将信号后就处于这种状态(关于信号,将在以后讲述)在以后讲述)u例如,正接受调试的进程就处于这种状态例如,正接受调试的进程就处于这种状态n 僵死状态僵死状态u进程执行了进程执行了exit()函数后进入该状态,即进

28、程被终止函数后进入该状态,即进程被终止u此状态将由父进程执行此状态将由父进程执行wait()系统调用而系统调用而“唤醒唤醒唤醒唤醒”,真正终止该进程,并回收其资源真正终止该进程,并回收其资源u处于该状态的进程是死进程,属于系统中的垃圾,必处于该状态的进程是死进程,属于系统中的垃圾,必须进行相应处理以释放其占用的资源须进行相应处理以释放其占用的资源 n死亡状态:僵死进程被父进程回收后的状态死亡状态:僵死进程被父进程回收后的状态Linux PCB中的中的进程状态(进程状态(state)linux操作系统华软软件学院电子系华软软件学院电子系P20LinuxLinux的进程状态转换模型的进程状态转换模

29、型linux操作系统华软软件学院电子系华软软件学院电子系P21Linux中与进程相关的命令中与进程相关的命令PSps Processes Snapshot句法:ps OPTIONS功能:对系统中的进程进行监控OPTION参数如下:l:长格式输出u:按用户名和启动时间顺序来显示进程j:用任务格式来显示进程f:用全格式来显示进程a:显示所有用户的所有进程x:显示无控制终端的进程linux操作系统华软软件学院电子系华软软件学院电子系P22-A:列出所有的行程-w:显示加宽可以显示较多的资讯-au:显示较详细的资讯-aux:显示所有包含其他使用者的行程-e:显示所有进程,环境变量-f:全格式-h:不显

30、示标题-l:长格式注意区分注意区分“ps aux”和和“ps -aux”命令命令PSLinux中与进程相关的命令中与进程相关的命令linux操作系统华软软件学院电子系华软软件学院电子系P23kill关闭进程:kill 进程号kill -9 进程号(强行关闭)kill -1 进程号(重启进程)结束所有进程:killall查找服务进程号:pgrep 服务名称关闭进程:pkill 进程名称Linux中与进程相关的命令中与进程相关的命令linux操作系统华软软件学院电子系华软软件学院电子系P24TOP句法:top OPTIONS功能:实时显示系统中各个进程的资源占用状况TOP命令是一个动态显示过程,可

31、以通过用户按键来不断刷新当前状态。TOP命令是Linux下常用的性能分析工具Linux中与进程相关的命令中与进程相关的命令linux操作系统华软软件学院电子系华软软件学院电子系P25操作系统内核操作系统内核CPU的两种执行状态:系统态和用户态的两种执行状态:系统态和用户态n系统态系统态/核心态(特态或管态):该状态下,核心态(特态或管态):该状态下,CPU能执行能执行指令集中任何指令;指令集中任何指令;n用户态(常态或目态):该状态下,用户态(常态或目态):该状态下,CPU只能执行一般的只能执行一般的指令,不能执行特权指令。指令,不能执行特权指令。操作系统内核功能操作系统内核功能n中断处理中断

32、处理n时钟管理时钟管理n原语操作原语操作n进程管理进程管理n存储器管理存储器管理n设备管理设备管理linux操作系统华软软件学院电子系华软软件学院电子系P26进程的创建进程的创建进程创建的时机进程创建的时机n用户登录用户登录n作业调度作业调度n提供服务提供服务n应用请求应用请求进程创建的过程进程创建的过程n取得一个空白取得一个空白PCB,生成一个唯一的进程标识号,生成一个唯一的进程标识号(一般是数字形式)(一般是数字形式)n为新进程分配必要的资源为新进程分配必要的资源n初始化初始化PCB将新进程的将新进程的PCB插入就绪队列插入就绪队列linux操作系统华软软件学院电子系华软软件学院电子系P2

33、7进程的创建进程的创建Linux中的进程创建中的进程创建ninit_task:uLinux在启动时运行在核心态,这时只有初始化程序在启动时运行在核心态,这时只有初始化程序在执行是系统的第一个进程,因此称为初始进程。在执行是系统的第一个进程,因此称为初始进程。uinit_task在系统初始化结束后,初始进程启动一个在系统初始化结束后,初始进程启动一个核心进程,称为核心进程,称为init。然后执行空闲循环,什么也不。然后执行空闲循环,什么也不做。当系统没有其他工作时,调度程序会运行这个空做。当系统没有其他工作时,调度程序会运行这个空闲进程。闲进程。ninit:uinit进程的进程标识号为进程的进程

34、标识号为1,是系统中第一个真正的,是系统中第一个真正的进程有自己的进程有自己的PCB。是系统中其他进程的祖先。是系统中其他进程的祖先。n除除init外,外,Linux所有进程都由其他进程创建;所有进程都由其他进程创建;用户态中,可调用用户态中,可调用fork或或clone来创建子进程。来创建子进程。linux操作系统华软软件学院电子系华软软件学院电子系P28进程的创建进程的创建Linux的进程创建的进程创建fork()函数函数nfork()函数返回值函数返回值u= -1:创建失败:创建失败u= 0:创建成功,并从子进程返回:创建成功,并从子进程返回u 0:创建成功:创建成功,并从父进程返回并从

35、父进程返回,返回的是子进程返回的是子进程PIDufork()函数为系统调用函数为系统调用nfork()函数完成的事务函数完成的事务u检查现有进程数目检查现有进程数目u分配分配PCB(task_strcut)及)及PIDu继承父进程的资源继承父进程的资源u创建进程映像创建进程映像(如静态的程序如静态的程序,动态的动态的PCB)并设置就绪并设置就绪u返回:调用进程返回子进程的返回:调用进程返回子进程的PID,被调度执行返回被调度执行返回0linux操作系统华软软件学院电子系华软软件学院电子系P29进程的创建进程的创建fork()函数返回后的处理函数返回后的处理n可依据父进程和子进程返回的值,做相应

36、处理可依据父进程和子进程返回的值,做相应处理n一般程序架构如下:一般程序架构如下:main() int pid; /子进程的标识符子进程的标识符PID while ( (pid=fork() = -1) ;/直到子进程创建直到子进程创建成功成功 if (pid = 0) /子进程返回,也称子进程返回,也称调度返回调度返回 / 插入子进程返回时处理的程序段插入子进程返回时处理的程序段 else / 父进程返回,也称父进程返回,也称调用返回调用返回 / 插入父进程返回时处理的程序段插入父进程返回时处理的程序段 n小课验证小课验证linux操作系统华软软件学院电子系华软软件学院电子系P30进程的终止

37、进程的终止进程终止的时机进程终止的时机n进程的正常结束进程的正常结束u进程执行期间调用进程执行期间调用exit系统调用系统调用u在在main函数中执行函数中执行return语句语句umain函数执行完函数执行完n进程的异常结束进程的异常结束u进程运行时出现错误或故障被迫结束。如数组越界、进程运行时出现错误或故障被迫结束。如数组越界、除数为除数为0、电源故障等、电源故障等进程终止的过程进程终止的过程n取得当前进程的取得当前进程的PCBn归还进程所占的资源归还进程所占的资源n进入进程调度程序进入进程调度程序linux操作系统华软软件学院电子系华软软件学院电子系P31进程的终止进程的终止Linux中

38、的进程终止中的进程终止n调用调用exit()、执行、执行return语句、语句、main函数执行函数执行完,最终都要调用内核函数完,最终都要调用内核函数do_exit()ndo_exit()需要做的工作如下:需要做的工作如下:u根据根据PCB中的内容进行资源的归还和涉及信息中的内容进行资源的归还和涉及信息的善后处理的善后处理u将进程的状态改为将进程的状态改为TASK_ZOMBIEu设置设置exit_codeu通知父进程和子进程通知父进程和子进程“我即将结束我即将结束”u调用内核函数调用内核函数schedule()重新调度重新调度linux操作系统华软软件学院电子系华软软件学院电子系P32进程的

39、阻塞和唤醒进程的阻塞和唤醒阻塞和唤醒的时机阻塞和唤醒的时机n进程请求系统为它服务,系统不能马上为它服务进程请求系统为它服务,系统不能马上为它服务,就进入阻塞状态;就进入阻塞状态;n启动了无法马上完成的操作(启动了无法马上完成的操作(I/O),进入阻塞状),进入阻塞状态;态;n进程间相互合作时,需要等待其他进程的运算结进程间相互合作时,需要等待其他进程的运算结果;果;n系统启动时创建的服务,如果没有其他进程的请系统启动时创建的服务,如果没有其他进程的请求,处于阻塞。求,处于阻塞。linux操作系统华软软件学院电子系华软软件学院电子系P33进程的阻塞和唤醒进程的阻塞和唤醒进程阻塞的过程进程阻塞的过

40、程n使当前进程停止执行使当前进程停止执行n将状态改为阻塞态将状态改为阻塞态n插入适当的等待阻塞队列插入适当的等待阻塞队列n调用调用schedule()重新进行进程调度重新进行进程调度进程唤醒的过程进程唤醒的过程n取出阻塞队列的第一个进程取出阻塞队列的第一个进程n将状态改为就绪态将状态改为就绪态n插入到就绪队列插入到就绪队列linux操作系统华软软件学院电子系华软软件学院电子系P34进程的阻塞和唤醒进程的阻塞和唤醒Linux中的进程阻塞和唤醒中的进程阻塞和唤醒n使当前进程停止执行若进程等待一个特定的事件发生,使当前进程停止执行若进程等待一个特定的事件发生,则调用函数来阻塞当前进程:则调用函数来阻

41、塞当前进程:nsleep_on():进程状态被设置为:进程状态被设置为TASK_INTERRUPTIBLEninterruptible_sleep_on():进程状态被设置为:进程状态被设置为TASK_UNINTERRUPTIBLEn当进程等待的事件发生时,调用内核函数来唤醒进程:当进程等待的事件发生时,调用内核函数来唤醒进程:nwake_up():nwake_up_process():n对某个睡眠进程的唤醒。将状态设置为对某个睡眠进程的唤醒。将状态设置为TASK_RUNNINGlinux操作系统华软软件学院电子系华软软件学院电子系P35注意:注意:sleep_on()和和wake_up()都

42、是内核都是内核中提供的函数,应用程序中不能直接调用。中提供的函数,应用程序中不能直接调用。Linux中的进程阻塞中的进程阻塞n系统调用系统调用wait():等待子进程终止而进入睡眠等待子进程终止而进入睡眠u子进程执行子进程执行exit()而终止自身,并给父进程发信号而终止自身,并给父进程发信号u父进程执行父进程执行wait()等待子进程终止信号等待子进程终止信号n库函数库函数sleep(n):进程延时进程延时n秒秒进程的阻塞和唤醒进程的阻塞和唤醒linux操作系统华软软件学院电子系华软软件学院电子系P36未引入线程的操作系统中,进程的两个基未引入线程的操作系统中,进程的两个基本属性:本属性:n

43、进程是一个拥有资源的独立单位进程是一个拥有资源的独立单位 给每个进程分配一虚拟地址空间,保存进程映像,给每个进程分配一虚拟地址空间,保存进程映像,控制一些资源(文件,控制一些资源(文件,I/O设备),有状态、优设备),有状态、优先级、调度先级、调度n进程是一个被处理机独立调度和分配的基本单进程是一个被处理机独立调度和分配的基本单位位 以上两个属性构成进程并发执行的基础以上两个属性构成进程并发执行的基础线程的引入线程的引入linux操作系统华软软件学院电子系华软软件学院电子系P37系统必须完成的操作:系统必须完成的操作:n创建进程、撤消进程、进程切换创建进程、撤消进程、进程切换缺点:缺点:n每启

44、动一个新的进程都必须分配独立的地址空间每启动一个新的进程都必须分配独立的地址空间n进程的每次调度都需要保护和恢复进程的每次调度都需要保护和恢复CPU现场信息,现场信息,开销过大开销过大n进程间通信速度较慢,有些时刻显得不太友好进程间通信速度较慢,有些时刻显得不太友好为此,希望将进程的某些属性展开。使得:为此,希望将进程的某些属性展开。使得:n作为独立调度的基本单位,不同时作为占有资源作为独立调度的基本单位,不同时作为占有资源的基本单位的基本单位n对占有资源的基本单位又不频繁切换对占有资源的基本单位又不频繁切换线程的引入线程的引入linux操作系统华软软件学院电子系华软软件学院电子系P38线程线

45、程线程的定义:有时称轻量级进程,是进线程的定义:有时称轻量级进程,是进程中的一个执行线路或线索,是一个相程中的一个执行线路或线索,是一个相对独立的、可独立调度和指派的执行单对独立的、可独立调度和指派的执行单元。元。资源的拥有者还是进程,线程将原来进资源的拥有者还是进程,线程将原来进程的两个属性分开处理。程的两个属性分开处理。linux操作系统华软软件学院电子系华软软件学院电子系P39线程的性质:线程的性质:是进程内的一个相对独立的可执行单元;是进程内的一个相对独立的可执行单元;是操作系统中的基本调度单元,在线程中包含调是操作系统中的基本调度单元,在线程中包含调度所需的信息。度所需的信息。一个进

46、程至少有一个线程,可有多个线程,因进一个进程至少有一个线程,可有多个线程,因进程已不是被调度的单元。程已不是被调度的单元。线程并不拥有资源,而是共享和使用包含它的进线程并不拥有资源,而是共享和使用包含它的进程所拥有的所有资源。程所拥有的所有资源。线程在需要时也可创建其他线程。线程有自己的线程在需要时也可创建其他线程。线程有自己的生命期,也有状态变化。生命期,也有状态变化。线程线程linux操作系统华软软件学院电子系华软软件学院电子系P40单进程、单线程单进程、单线程单进程、多线程单进程、多线程多进程、一个进程一个线程多进程、一个进程一个线程多进程、一个进程多个线程多进程、一个进程多个线程线程和

47、进程的关系linux操作系统华软软件学院电子系华软软件学院电子系P41引入线程的好处(与进程比较)创建、撤消一个线程的系统开销小。创建、撤消一个线程的系统开销小。两个线程的调度切换方便:线程是调度的两个线程的调度切换方便:线程是调度的基本单位,进程是资源的拥有单位。进程可基本单位,进程是资源的拥有单位。进程可以由一个或多个线程组成。在同一进程中,以由一个或多个线程组成。在同一进程中,线程的切换不会引起进程的切换,不同进程线程的切换不会引起进程的切换,不同进程间的线程切换则会引起进程切换。间的线程切换则会引起进程切换。linux操作系统华软软件学院电子系华软软件学院电子系P42共享同一地址空间资

48、源:不同进程间的地址共享同一地址空间资源:不同进程间的地址空间是相对独立的,而同一进程的各线程共空间是相对独立的,而同一进程的各线程共享同一地址空间,可访问其隶属的进程资源。享同一地址空间,可访问其隶属的进程资源。线程通信方便:因为同一进程内的线程共享线程通信方便:因为同一进程内的线程共享内存和文件,因此它们之间可以相互通信,内存和文件,因此它们之间可以相互通信,无须调用内核。无须调用内核。占用资源少:线程除了必不可少的一点资料占用资源少:线程除了必不可少的一点资料 (私有堆栈和程序计数器私有堆栈和程序计数器)外,自己不拥有系外,自己不拥有系统资源。统资源。引入线程的好处(与进程比较)linu

49、x操作系统华软软件学院电子系华软软件学院电子系P43为了提高系统效率,编程中常使用线程为了提高系统效率,编程中常使用线程同时启动三个线程杀毒linux操作系统华软软件学院电子系华软软件学院电子系P44进程的状态及其转换进程的状态及其转换n执行态、就绪态、阻塞态执行态、就绪态、阻塞态进程的组成进程的组成n程序段、数据段、进程控制块(程序段、数据段、进程控制块(PCB)Linux中进行相关的命令中进行相关的命令nps、kill、topLinux中进程相关的系统调用及库函数中进程相关的系统调用及库函数nfork、exit、wait、sleep线程线程小小 结结linux操作系统华软软件学院电子系华软

50、软件学院电子系P45互斥与同步互斥与同步n信号量与信号量与P、V操作操作n经典进程同步问题经典进程同步问题n管程管程nLinux中的线程中的线程预习内容预习内容linux操作系统华软软件学院电子系华软软件学院电子系P46人有了知识,就会具备各种分析能力,人有了知识,就会具备各种分析能力,明辨是非的能力。明辨是非的能力。所以我们要勤恳读书,广泛阅读,所以我们要勤恳读书,广泛阅读,古人说古人说“书中自有黄金屋。书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,给我们巨大的精神力量,鼓舞我们前进鼓舞我们前进。linux操作系统华软软件学院电子系华软软件学院电子系P47

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号