版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 进程与线程本章目录本章目录2.1 进程的概念2.1.1 多道程序设计环境下的程序特点2.1.2 进程的定义2.2 进程的管理2.2.1 进程控制块2.2.2 进程控制块队列2.4.3 Linux进程的生存过程2.2.3 进程控制的系统调用命令2.1.3 进程的形状及形状变化2.3 线程2.3.1 线程的概念2.3.2 线程的实现2.3.3 线程与进程的关系2.4 Linux的进程2.4.1 Linux进程2.4.2 Linux的几种链接信息 2.1 进程的概念 o2.1.1多道程序设计环境下的程序特点多道程序设计环境下的程序特点 .单道程序设计环境下的程序特点单道程序设计环境下的程序特
2、点 1.资源的独占性程序A程序B程序C时间4234245330469141820232630图例:打印机输出 CPU执行.执行的顺序性 结果的再现性 多道程序设计环境下的程序特点多道程序设计环境下的程序特点 2.程序A时间04691215 17131822程序B程序C. 执行的并发性:宏观上,在内存的多个程序都按本人程序规定的操作步骤向前推进;微观上,CPU在任何时辰只执行一个程序,它们轮番占用CPU,交替地执行着。 . 相互的制约性:内存里的多个程序共享系统中的资源,相互间必然有各种制约。一种是“间接制约关系,另一种是“直接制约关系 。 程序P1调用echo()函数,getchar()接纳到
3、从键盘输入的字符x,在将其存于变量chin后被中断; 程序P1从断点恢复执行。此时由于P2调用了echo(),chin里原先的x被y所覆盖。于是,在屏幕上显示的是y,而不是x。 程序P1调用echo()函数,getchar()接纳到从键盘输入的字符x,然后在屏幕上显示出字符x;. 形状的多变性:诸多程序在运转过程中有着各种制约关系,致使内存中每一个程序的形状总在不断的变化之中:时而获得CPU处于运转形状;时而由于输入/输出或恳求某种资源未得到满足而只好挂起来等待。它们走走停停,停停走走,交替式地向前推进,直至终点。 例例2-1 :在多道程序设计环境下,“结果再现性被突破的简单例子 void e
4、cho() chin = getchar(); chout = chin; putchar(chout);执行顺序1 : 程序P2调用echo()函数,getchar()接纳到从键盘输入的字符y,然后在屏幕上显示出字符y。12.执行顺序2 :123 程序P2获得CPU运用权,调用echo()函数,从头做到尾,屏幕上显示字符y; 前往目录.o2.1.2 进程的定义进程的定义1. 进程的定义进程的定义 .进程是程序的一次运转活动;进程的运转活动是建立在某个数据集合之上的;进程要在获得资源的根底上从事本人的运转活动。 所谓“进程是指一个程序在给定数据集合上的一次执行过程,是系统进展资源分配和运转调度
5、的独立单位。 可从三个方面来描画进程: 123例例2-2 :驼峰溜放控制过程中的进程 驼峰到达场编组场溜放中的一勾车雷达测速、测长道岔(轨道电路)一列新货车一列解体货车缓行器12345678股道号溜放中的一勾车扳道岔程序 .缓行器控制程序 .雷达测速程序 .雷达测长程序 .巡回检测程序 2. 进程与程序的关系进程与程序的关系 进程是一个动态的概念,强调的是程序的一次“执行过程;程序那么是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行,是一个静态的概念。 . 不同进程可执行同一个程序。由进程的定义可知,区分进程的条件一是所执行的程序,二是数据集合。即使多个进程执行一样的一个程序,只需它
6、们运转在不同的数据集合上,它们就是不同的进程。 . 每个进程都有本人的生命期。进程的本质是程序的一次执行过程,当系统要完成某项任务时,它就“创建一个进程,以便执行事先编写好的、完成该任务的那段程序。程序执行终了、完成预定的义务后,系统就“吊销这个进程,收回它所占用的资源。一个进程创建后,系统就感知到它的存在;一个进程吊销后,系统就无法再感知到它。于是从创建到吊销,这个时间段就是一个进程的“生命期。 . 进程之间具有并发性。在一个系统中,同时会存在多个进程,与它们对应的多个程序同时在系统中运转,轮番占用CPU和各种资源。这正是多道程序设计的初衷,阐明这些进程在系统中并发执行着。 . 进程间会相互
7、制约。由于进程是系统中资源分配和运转调度的单位,因此在对资源共享和竞争中,必然会相互制约,影响了各自向前推进的速度。 通常,系统进程运转在中心态,用户进程运转在用户态。不过,在微内核方式下,只需那些执行根本功能程序的进程,运转在中心态,那些执行非根本程序的进程,那么以各种效力的方式运转在用户态。 系统进程与用户进程都要运用系统中的各种资源,它们都是资源分配与运转调度的独立单位,但系统进程的运用级别,应该高于用户进程。也就是说,在双方出现对资源的竞争时,系统进程有优先获得资源、优先得到运转的权益。只需这样,才干保证计算机系统高效、有序的任务。 系统进程直接纳理软、硬件资源的有关活动;而用户进程那
8、么不得插手资源管理,在需求运用资源时,必需向系统提出恳求,由系统一致调度与分配。 系统进程间的相互关系由操作系统担任协调,以利于添加系统的并行性,提高资源的整体利用率;用户进程间的相互关系由用户本人在程序中安排。不过,操作系统会向用户提供一定的协调手段以系统调用命令的方式。 3. 系统进程与用户进程系统进程与用户进程 . 在多道程序设计系统中,既有操作系统程序,又有用户程序,因此整个系统中存在着两类进程:一类是系统进程,一类是用户进程。 . 操作系统中用于管理系统资源的那些可以并发执行的程序,构成了一个个系统进程,它们提供系统的效力,分配系统的资源;而可以并发执行的用户程序段,构成一个个用户进
9、程,它们是操作系统的效力对象,是系统资源的实践享用者。 .系统进程与用户进程的主要区别 :1234前往目录 终止:进程或正常终了,或因某种缘由被强迫终了。这时,系统正在为其进展善后处置。 阻塞:进程正在等待某事件如I/O完成的发生。在事件到来之前,即使把CPU分配给这个进程,它也无法运转。阻塞形状有时也被称为等待形状。 运转:进程获得CPU正在被执行中。假设系统只需一个CPU,那么任何时候系统中最多只需一个进程处于运转形状。 就绪:进程已具备运转的条件,只需有时机获得CPU,它就可以投入运转。 创建:进程正在初创时期,操作系统还没把它列入可执行的进程行列。 o2.1.3 进程的形状及形状变化进
10、程的形状及形状变化 1. 进程的根本形状和形状变化进程的根本形状和形状变化 .就绪提交运转阻塞终止调度撤销超时事件发生等待事件三种最根本的形状创建进程的五种形状1234 5进程形状的变化 进程从一个形状改动成另一个形状,称为进程形状的“变化。箭头上的文字,是引起形状变化的缘由。并不是一切的进程形状之间都可发生变化。. 能够的变化为:创建就绪 ,就绪运转 ,运转就绪,运转阻塞 ,阻塞就绪 ,运转终止 就绪/挂起:进程在辅存。只需被激活,进程就可以调入内存,假设获得CPU就可以投入运转。 2. 对进程形状更细致的划分对进程形状更细致的划分 就绪/挂起就绪激活运转阻塞终止调度撤销超时事件发生等待事件
11、挂起阻塞/挂起激活挂起事件发生创建提交提交挂起. 假设内存中现有的进程都在等待I/O的完成,CPU只能空闲运转。这无疑是对系统资源的一种浪费。 .运用磁盘与内存间的交换技术,可到达提高CPU利用率的目的。新增两个形状 12 阻塞/挂起:进程在辅存等待事件的发生。只需被激活,进程就可以调入到内存里去等待事件的发生。 . 处于这两种形状的进程,表示它们是在辅存而不是内存。只需经过“激活,才可以使这些进程的形状变化为“就绪或“阻塞,从而进入内存。 . 这时,比较重要的变化是:阻塞阻塞/挂起 ,阻塞/挂起就绪/挂起 ,就绪/挂起就绪 ,就绪就绪/挂起 ,创建就绪,创建就绪/挂起,阻塞/挂起阻塞 ,运转
12、就绪/挂起 。前往目录 进程控制块里包括四种根本信息:标识信息、现场维护区信息、调度信息以及管理信息 。 程序代码及与代码相关联的数据集合,是组成一个进程的实体。但它们都是静态文本,无法反映进程的各种动态特征。 2.2 进程的管理 o2.2.1 进程控制块进程控制块 .1. 进程控制块进程控制块 为便于管理和控制进程的执行,为随时辰画进程的动态特性,为反映进程间的相互关系,操作系统用一个与进程有关的数据构造来完成这样的义务。这个数据构造被称为“进程控制块(PCB),它由操作系统创建和管理。标识信息现场维护区信息调度信息管理信息进程标识符(进程名)进程标识数(PID)家族关系(父进程)家族关系(
13、子孙进程)通用存放器指令计算器程序形状字(PSW)用户栈指针进程形状进程优先数(级/权)等待缘由队列指针程序存放位置资源运用历史翻开的文件数据存放位置 由于进程控制块PCB里包含着一个进程所需求的一切信息,因此它是操作系统中最重要的一种数据构造。进程的PCB是系统感知一个进程实践存在的独一实体。 .2. 进程的三个组成部分进程的三个组成部分 .操作系统中进程由三个部分组成,称为“进程映像 。123程序:进程将要执行的程序; 数据:用户空间中的可修正部分,如数据、堆栈、可修正程序; 进程控制块PCB:记录操作系统管理、控制进程所需求的数据信息。 进程映像的表示PCBPCBPCB1PCB2程序程序
14、程序数据集合数据集合数据集合1数据集合2(a)(b)(c)3. 进程间的切换进程间的切换 进程P0进程P1操作系统中断或系统调用维护现场到PCB0从PCB1现场维护区获取现场信息中断或系统调用维护现场到PCB1从PCB0现场维护区获取现场信息执行执行执行 被打断的断点x从断点x恢复执行 被打断的断点y前往目录 PCB中可以有多个队列指针,以反映进程间的不同关系,比如用另一个指针反映出进程间的家族关系。 还可以有就绪/挂起队列、阻塞/挂起队列等; 队列最后一个PCB的“队列指针里,放队列终了标志,如“-1; 操作系统要为每个队列设置一个头指针,经过它及队列中各PCB里的队列指针,可以得到该队列里
15、的一切进程的PCB; o2.2.2 进程控制块队列进程控制块队列. 操作系统是经过操作系统是经过PCB来管理系统中来管理系统中 的进程的。最常用的方法是根据进程所的进程的。最常用的方法是根据进程所处形状的不同,经过处形状的不同,经过PCB中的链接指中的链接指针,构成各种管理队列。针,构成各种管理队列。 .运转队列头指针就绪队列头指针PCBPCBPCBPCBPCB-1阻塞队列1头指针PCBPCB-1阻塞队列2头指针PCBPCBPCBPCB-1PCB队列指针(a) 带有队列指针的带有队列指针的PCB(b) 由由PCB组成的各种队列组成的各种队列几点阐明1234前往目录 按系统所采用的调度算法,将其
16、PCB排入就绪队列或就绪/挂起队列。 调用创建进程原语后,系统中出现一个新的进程,就会感知到这个进程的存在。一个进程创建或“派生另一个进程,前者称为父进程,后者称为子进程。 o2.2.3 进程控制的系统调用命令进程控制的系统调用命令 在执行期间不能被打断、不能被分割的程序段,在操作系统里称作“原语、“原子操作或“不可分割的操作。 .有关进程控制的系统调用命令都是以原语的方式出现的。 1. 创建进程原语创建进程原语 屏蔽中断恳求一个PCB分配一个标识填写PCB将进程置为就绪或就绪/挂起形状,到相应队列排队开中断不能被分割的整体.创建进程原语程序主要应该完成的任务 1为新进程恳求一个PCB; 2为
17、新进程分配一个独一的标识; 3 根据创建者提供的信息,填写进程控制块PCB里的各项内容; 4. 创建进程原语的图中,“屏蔽中断及“开中断两个操作,是为了保证整个执行流程不被分割而设置的。也就是说,这四项任务必需作为一个整体一次执行终了,中间不能被别的操作打断。这是原语的要求。 2. 吊销进程原语吊销进程原语 . 调用吊销进程原语后,一个原来在系统里存在的进程就消逝了,系统再也不会感知到它的存在。 .吊销进程原语应该完成的任务 12根据进程标识,找到相应的PCB,假设该进程正在运转,那么立刻终止运转; 3释放该进程运用的一切资源如程序、数据所占用的存储空间等; 4假设有子孙进程,终止它们,释放资
18、源; 归还所占用的PCB空间。 3. 阻塞进程原语阻塞进程原语 . 在生命期里,进程走走停停。“停的缘由,就是为等待某个事件的发生而被阻塞。调用阻塞原语后,一个原来处于运转的进程变为阻塞形状,操作系统将会重新对CPU进展分配。 .阻塞进程原语应该完成的任务 12停顿进程的运转,将CPU的运转现场维护到该进程PCB的现场维护区; 3把进程的形状由运转修正为阻塞,并到相关的阻塞队列里排队; 转向操作系统的进程调度程序,将CPU分配给另外一个进程运用。 .4. 唤醒进程原语唤醒进程原语 当所等待的事件发生以后,进程就应该被唤醒,让其去参与对CPU的竞争。调用唤醒进程原语后,一个进程又可以“走了。 .
19、唤醒进程原语应该完成的任务 12将进程从相应的阻塞队列上摘下来; 3把进程的形状由阻塞修正为就绪,并到就绪队列里排队; 转向操作系统的进程调度程序,将CPU分配给另外一个进程运用。 5. 挂起进程原语挂起进程原语 . 当系统为了获得所需的内存空间,在主-辅存之间交换进程时,进程才会有挂起形状 。.挂起进程原语应该完成的任务 12得到需求挂起的进程的PCB,将其从相应队列里摘下; 3 恳求位于辅存上的交换区空间,将进程映像的部分或全部写入交换区,并将交换区地址记入该进程PCB; 根据进程原先的形状,把其形状修正为阻塞/挂起,或就绪/挂起; 4系统收回进程所占用的内存空间。 经过对驼峰溜放控制过程
20、的简单描画,了解进程控制原语的运用。 激活是针对处于“阻塞/挂起或“就绪/挂起形状的进程实行的操作。由于它是挂起的“逆操作,因此激活进程的缘由就与挂起的缘由相关。 每股道是一个“进路。对任何一个道岔,知道所来勾车的进路编码,就能知道当前道岔应该是往左扳动还是往右扳动。 .6. 激活进程原语 .激活进程原语应该完成的任务 12得到需求激活的进程的PCB,将其从相应队列里摘下; 3恳求所需求的内存空间,将存放在辅存交换区里的进程映像读入该内存区域; 根据进程形状修正为阻塞或就绪,把PCB排入相应的管理队列; 4释放所占用的辅存交换区。 勾车进入方向勾车出清方向勾车出清方向道岔轨道电路轨道电路轨道电
21、路勾车进路表例例2-4: 1 对每个道岔,都装有“轨道电路硬设备,当一勾车的第一对车轮从进入方向压到轨道电路时,它会发一个音讯给计算机;当这一勾车的最后一对车轮从出清方向压到轨道电路时,它也会发一个音讯给计算机。 23系统为每一个道岔开设一张勾车进路表,保管所来勾车的进路编码。 前往目录o2.3.1 线程的概念线程的概念 2.3 线程线程 1.引入线程的缘由引入线程的缘由 进程的两个属性 做法是将进程的两个属性拆开来,进程只作为“资源拥有者,“调度和运转那么赋予线程。这样,CPU的利用率能得到更多的提高,使系统的效率得到更充分地发扬。.12进程是系统资源分配的单位; 进程是系统调度运转的单位。
22、 . 资源分配和调度运转彼此间是独立的。为提高进程的并发执行程度,减少系统在进程切换时所破费的开销,就出现了与进程管理相关联的更高级的概念:线程。 .(a) 单进程,单线程(b) 单进程,多线程(c) 多进程,每个进程一个线程(d) 多进程,每个进程多个线程 在引入线程的操作系统中,线程是进程中的实体。实施CPU分配时,是把CPU分配给进程中可以并发执行的线程。因此,假设把进程了解为是操作系统在逻辑上需求完成的一个义务,那么线程那么是完成该义务时可以并发执行的多个子义务。 .进程和线程之间的各种关系 2. 线程的定义线程的定义 所谓“线程,是指进程中实施处置机调度和分配的根本单位。有了线程后,
23、人们有时就把原先的进程称为“重载进程,把线程称为“轻载进程。 3. 线程的形状线程的形状 由于在进程内的线程共享程序和资源,因此创建线程无需进展资源分配,比创建一个进程要顺利和快捷得多;这也使得吊销线程比吊销一个进程所破费的时间短; .引入线程的益处 1 同一进程里线程间的切换是在进程的地址空间里进展,因此比进程间不同地址空间中的切换开销要少得多; 2 进程里的线程可以随时访问该进程拥有的一切资源,无需做任何切换任务; 3 同一进程中的诸多线程共享内存区域和文件,因此它们之间可以直接进展通讯,不用经过系统内核。 4. 创建:创建一个新进程时,同时就为该进程建立一个主线程,它可以再创建其他线程,
24、新线程被排在就绪队列中。 . 阻塞:当线程等待一个事件时,它将被阻塞,CPU转而去执行另一个就绪线程。线程阻塞引起的是同进程中线程间的调度和CPU分配;进程的阻塞引起的是不同进程间的重新调度和CPU分配。.唤醒:当线程等待的事件发生时,该线程由阻塞转为就绪,插入到就绪队列中。 前往目录o2.3.2 线程的实现线程的实现 1. 用户级线程方法用户级线程方法 假设有关线程的管理任务都是由运转在用户空间的运用程序完成,那么这样的线程称为“用户级线程。完成线程管理的运用程序,称为“线程库,它将被系统中的一切用户程序共享运用。 2. 这时,用户程序被创建成为一个由内核管理的进程,与这个进程相对应的线程那
25、么在用户空间里运转。 .内核级线程方法内核级线程方法 线程库用户空间内核空间P进程线程. 由于一切活动都是针对一个进程发生的,并且都发生在用户空间里,系统感知不到这些活动的存在。系统内核依然是以进程为单位管理和调度进程,指定其所处的形状 。用户空间内核空间P进程运转在用户态的线程管理在中心态的线程. 假设有关线程管理的一切任务都是由内核完成的,用户空间里没有任何进展线程管理的程序,只是向运用程序提供相应的系统调用和运用程序编程接口,以便用户程序可以创建、执行、吊销线程。那么这样的线程称为“内核级线程。 3. 组合方法 . 采用这种方法,用户程序的一切线程都在一个进程内。内核为该进程以及内部的每
26、一个线程深色圆圈维护上下文信息,调度在内核基于线程架构的根底上完成,线程运转那么在用户空间进展。 . 组合方法中,同一进程中的多个线程可以分配到不同处置器上并行地运转,这意味着一个会引起阻塞的系统调用不用阻塞整个进程。这样组合式的管理方法,会综合用户级线程与内核级线程管理方法的优点,减少它们的缺陷。 . 在组合式方法中,线程的创建在用户空间里完成,线程的调度等任务,是经过线程库来进展。一个用户程序中的多个用户级线程,被映射到一些内核级线程上。. 内核级线程可把同一进程中的多个线程调度分配到不同处置器中;假设进程中的一个线程被阻塞,内核可调度同一进程中的另一个线程投入运转,而不是整个进程都被阻塞
27、。内核级线程的另一个优点是内核程序本身也可运用多线程技术。用户空间内核空间P2进程用户级线程内核级线程P1线程库. 内核级线程在同一个进程里进展线程切换时,是在内核方式下进展的。这相比用户级线程,就会显得复杂一些,所破费的时间要多一些。 前往目录 调度切换:不同进程间的调度切换,系统要破费很大的开销比如,要从这个地址空间转到那个地址空间,要维护现场等;同一进程的线程间的切换,无须转换地址空间,从而减少了系统的开销。 通讯关系:不同进程间的通讯,必需运用操作系统提供的进程通讯机制;同一进程各个线程间的通讯,可以直接经过访问共享的进程地址空间来实现。 地址空间:不同进程的地址空间是相互独立的,而同
28、一个进程中的各个线程共享着同一个用户地址空间。 两个堆栈指针,一个指向用户栈线程在用户态下时,运用本人的用户栈,一个指向系统栈线程在中心态下运转时,运用系统栈; o2.3.3 线程与进程的关系线程与进程的关系 1. 线程与进程的关系线程与进程的关系 .线程控制块 TCB的三部分内容 1一个独一的线程标识; 23 一个私用的现场维护区,存放现场维护信息如处置机的各种存放器内容和其他与线程有关的信息。 PCB数据程序用户栈系统栈存放器单线程进程模型进程PCB数据程序用户栈系统栈存放器TCB1用户栈系统栈存放器TCB2用户栈系统栈存放器TCB3线程1线程2线程3进程多线程进程模型进程和线程的几点不同
29、 .123 一个管理窗口系统的进程,提供显示器上有关窗 口的各种操作:窗口写、挪动窗口、改动 窗口尺寸等的程序。进程拥有的资源是物 理显示器。如下图,三个窗口线程都将共享着进程的资源,运用同一个程序来把信息写到显示器的某一部分上,每一个线程的执行独立于其他线程。 例例2-7 :窗口线程窗口进程三个窗口显示器处置机管理的新含义处置机管理的新含义 2. 调度:引入线程后,进程是资源的拥有者,线程是处置机调度和分配的单位。在同一进程内,线程的切换不引起进程的切换;由一个进程中的线程切换到另一个进程中的线程时,就要引起进程间的切换。 . 并发:引入线程后,不仅进程之间可以并发执行,而且一个进程内的多个
30、线程之间也可以并发执行,因此系统具有了更好的并发性,进而使系统的资源利用率和吞吐率大大提高。. 资源:引入线程后,进程内的一切线程共享该进程拥有的全部资源;线程只需很少一些运转时必需的资源,如程序计数器、一组存放器和堆栈等。 . 开销:创建和吊销进程时,系统要做资源的分配和回收任务;进程间进展切换时,系统要为其保管现场信息,将原进程内容调出至辅存,将新进程内容调入内存等。同一进程内的线程有一样地址空间,它们间的切换不涉及存储器管理方面的操作。 前往目录 系统调用接口。进程经过它进入Linux内核,并得到所提供的各种特定效力。 用户进程。用户运用程序是运转在Linux内核上的一个庞大的软件集合。
31、当一个用户程序在操作系统上运转时,它就成为一个进程。在Linux里常把进程称为“义务。 2.4 Linux的进程的进程 o2.4.1 Linux进程进程 Linux内核内核 1. Linux内核,指的是一切Linux发布版本的中心程序。整个系统由四个部分组成: 1系统调用接口内核子系统硬件进程1进程2进程n用户进程Linux内核进程调度存储管理虚拟文件系统网络进程间通讯23 Linux内核。它担任管理和运用系统中的各种资源如内存空间、磁盘空间、磁盘上的文件,以及启动并运转程序等。Linux内核并发地运转多个进程,并使各种进程公平、合理地运用各种资源,保证进程之间互不干扰地平安运转。4 硬件。这
32、是安装Linux时需求的一切能够的物理设备,是支撑Linux运转的硬件环境,比如CPU、内存储器、磁盘、网络硬件等。Linux的进程控制块的进程控制块 2. Linux中,把传统的进程控制块PCB称为进程描画符,用于记录每个进程所做的事情。每个PCB都是一个task_struct的构造式数据类型。 Linux系统中的进程,由四个部分组成 .内核栈PCB(task_struct 构造)8KB52个字节高地址低地址内核栈的增长方向8140个字节1 一段可执行的程序; 2 一个公用的系统栈空间,用来保管中断现场信息和进程进入内核方式后执行子程序函数嵌套调用的前往现场信息; 3 进程控制块PCBtas
33、k_struct构造; 4 独立的存储空间。 每个进程的系统栈和PCB间存在着严密关系,为了节省存储空间,Linux把每个进程的PCB和内核栈存放在一同,共占有8KB的内存区。 . Linux的进程形状及其变化 3. 可运转形状:当一个进程正在被CPU执行,或曾经预备就绪随时可由调度程序调度执行,那么称该进程处于“可运转形状。 12 可中断等待形状 :当一个运转进程需等待某事件的发生、等待时允许由其他进程经过发信号而唤醒,那么就把它的形状由“可运转变化为“可中断的等待。在所等待的事件或信号到来时,进程的等待终了,形状变化为“可运转。 不可中断等待形状 :这是一种与“可中断的等待类似的形状,只是
34、在等待期间不能被信号打断。 34 暂停形状 :当运转进程接到暂停执行的信号比如程序正在接受调试时,其形状就由“运转变化成为“暂停。 创建一个进程TASK_RUNNING可运转形状时间片到调度TASK_UNINTERRUPTIBLE不可中断等待形状TASK_INTERRUPTIBLE可中断等待形状TASK_STOPPED暂停形状TASK_ZOMBIE僵死形状占有CPU运转等待事件发生等待事件或信号发生等待的事件已发生等待的事件或信号已发生收到暂停信号进程被终止收到终了暂停信号5 僵死形状:由于某种缘由进程已被终止执行,正在归还资源,但其PCB还没有释放。这时的进程就处于僵死形状。Linux的进程
35、标识符的进程标识符 4. 进程标识符:在Linux进程的PCB里,字段pid存放进程标识符,用来独一地标识进程。 . 用户标识符:在Linux里,每个用户都有一个独一的数字与之对应,称为用户标识符。它存放在进程PCB的字段uid里。 . Linux将用户划分成组,每个用户可分属一个或多个用户组。组由一个独一的数字来标识,称为组标识符。组标识符存放在进程PCB的字段gid里。 前往目录o2.4.2 Linux的几种链接信息的几种链接信息 进程链表进程链表 1. Linux启动时,创建了一个非常特殊的进程,它的名字是init,进程标识符PID为1。 每个进程的PCB里有两个task_struct型
36、指针字段,作用是: prev_task:向前指针,指向链表中本进程前面的那个进程的PCB; next_task:向后指针,指向链表中本进程后面的那个进程的PCB。 init进程的PCBnext_taskprev_task进程1的PCBnext_taskprev_task进程2的PCBnext_taskprev_task进程3的PCBnext_taskprev_task进程n的PCBnext_taskprev_task系统中的一切进程“可运转队列可运转队列 2. PCB里有名为prev_run和next_run的两个task_struct型指针字段,作用是: prev_run:向前指针,指向链表
37、中本进程前的那个“可运转形状进程的PCB;next_run:向后指针,指向链表中本进程后的那个“可运转形状进程的PCB。 . 为提高伐度时的查找速度,Linux是以优先级为根据建立“可运转队列的。Linux进程优先级的允许范围从0到,因此系统总共维护着140个“可运转的队列。 利用散列表pidhash里的pidhash_next和pidhash_pprev,以及进程PCB里的字段pidhash_next和pidhash_pprev,就能基于散列表的索引值构成一个个进程PCB的双向链表。 PID散列链表散列链表 2. 为了加快查找过程,理想的做法是经过某个函数,利用进程的PID值算出进程PCB所
38、在的位置。这实践上就是所谓的散列技术。 . Linux引入了散列技术,并利用链地址法来处置PID冲突。即假设两个不同的PID计算出的PCB在散列表的索引值一样冲突,那么就把这两个PCB组成链表链接在一同。 pidhash_nextpidhash_pprevpidhash_pprevpidhash_nextpidhash_nextpidhash_pprevpidhash_nextpidhash_pprevpidhash_nextpidhash_pprevpidhash_nextpidhash_pprevpidhash散列表0199散列表的一个元素进程的PCB进程的PCB进程的PCB进程的PCB
39、为实现PID散列链表,Linux开辟了名为pidhash的数组作为散列表。该表的每个元素由两个task_struct型指针组成: pidhash_next指向pidhash散列表里该索引值链表中的下一个PCB; pidhash_pprev指向pidhash散列表里该索引值链表中的前一个PCB。.4. 进程家族关系链进程家族关系链 .p_opptr:指向初始父进程的指针; 创建进程的进程称为父进程,被创建的进程称为子进程。假设一个进程创建了假设干个子进程,那么这些子进程之间就是兄弟关系。Linux的PCB里专门有反映进程间关系的task_struct型指针字段 。p_pptrr:指向父进程的指针; p_cptr:指向最新子进程的指针; p_ysptr:指向弟进程的指针; p_osptr:指向兄进程的指针。 P0P1P2P3P4指向父
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 温度监测器课程设计labview
- 条形基础课程设计画图
- 电路cad课程设计报告
- 工况通风课程设计
- 珠宝金属工艺课程设计
- 招聘乐高课程设计
- 直齿斜齿分辨课程设计
- 乡村旅游合同管理制度建设
- 农村集体土地自建房合同
- 智能硬件研发与生产服务合同
- 2023年中证数据招聘笔试真题
- 木桶效应-课件
- 《中国制造业的崛起》课件
- 中小学学校安全管理制度汇编
- (DB45T 2522-2022)《桥梁缆索吊装系统技术规程》
- 广州沪教牛津版七年级英语上册期中试卷(含答案)
- 道法全册知识点梳理-2024-2025学年统编版道德与法治七年级上册
- 2025版国家开放大学法律事务专科《民法学(1)》期末考试总题库
- 四川省成都市2023-2024学年高二上学期期末考试+地理 含答案
- 人教版数学六年级上册期末考试试卷
- 2024年时事政治试题库附答案(综合题)
评论
0/150
提交评论