Linux的进程管理

Linux的进程管理

ID:45564895

大小:211.17 KB

页数:16页

时间:2019-11-14

Linux的进程管理_第1页
Linux的进程管理_第2页
Linux的进程管理_第3页
Linux的进程管理_第4页
Linux的进程管理_第5页
资源描述:

《Linux的进程管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第二章Linux的进程管理•Linux是一个多任务多用八操作系统,•一个任务(task)就是一个进程(process)0每一个进程都具有一定的功能和权限,它们都运行在各自独立的虚拟地址空间。•在Linux中,进程是系统资源分配的基本单位,也是使用CPU运行的基本调度单位。§2.1Linux进程概述一.Linux进程的组成•存放在磁盘上的可执行文件的代码和数据的集合称为可执行映象(ExecutableImage)。•当一个程序装入系统中运行时,它就形成了一个进程。•进程是山正文段(text)>用丿'数据段

2、(usersegment)和系统数据段(systemsegment)组成的一个动态实体。•正文段中存放着进程要执行的指令代码,具有只读的属性,•川户数据段是进程在运行过程中处理数据的集合,它们是进程直接进行操作的所冇数据,以及进程使川的进程堆栈。•系统数据段存放着进程的控制信息。其屮包括进程控制块PCB。•进程控制块PCB是名字为task_struct的数据结构,它称为任务结构体•任务结构体中容纳了一个进程的所有信息,是系统对进程进行管理和控制的有效手段,是系统实现进程调度的主要依据。•当一个进程被创建

3、时,系统就为该进程建立一个task_struct任务结构体。当进程运行结朿时,系统撤消该进程的任务结构体。•进程的任务结构体是进程存在的唯一标志。•Linux在内存空间中开辟了一个专门的区域存放所有进程的任务结构体。•在操作系统的内核空间设置了一个task数组,该数组的每一个元素是一个指向任务结构体的指针,所以task数组乂称为task向量。structtaskstruct*task[NR_TASKS]={&init_task};#defineNR_TASKS512全局变最nr_tasks,记录着系统中

4、存在的进程数目。intnrtasks=1;二.Linux进程的状态1.运行态:进程正在使用CPU运行的状态。处于运行态的进程又称为当前进程(cuiTentprocess)。2.町运行态:进程已分配到除CPU外所需要的其它资源,等待系统把CPU分配给它Z后即町投入运行。3.等待态:又称睡眠态,它是进程正在等待某个事件或某个资源时所处的状态。等待态进一步分为可屮断的等待态和不可屮断的等待态。处于可屮断等待态的进程可以由V(signal)解除其等待态。处于不可中断等待态的进程,一般是直接或间接等待硬件条件。它

5、只能用特定的方式來解除,例如使用唤醍函数wake_up()等。1.暂停态:进程需要接受某种特殊处理而暂时停止运行所处的状态。通常进程在接受到外部进程的某个信号进入暂停态,例如,正在接受调试的进程就处于这种状态。2.僵死态:进程的运行己经结束,但它的任务结构体仍在系统中。Linu谧程状态晞换一.核心态和用户态•Linux的进程处理机上运行时,处理机提供了两种不同的的执行状态,核心态(kernelmode)和用户态(usermode)。•核心态乂称系统态,它具有较高的特权,能执行所有的机器指令,包括由操作系

6、统执行的特权指令,能访问所有的寄存器和存储区域,能直接控制所有的系统资源。Linux在执行内核程序时是处于核心态Fo•用户态是进程的普通执行状态,在用户态卜进程具有较低的特权,只能执行规定的机器指令,不能执行特权指令。进程在川户态F只能访问进程的存储空间。在用户态卜-进程不能与系统硬件相互作川,不能访问系统资源。二.进程空间和系统空间•系统为每个进程分配一个独立的虚拟地址空间(虚拟内存)。进程的虚拟地址空间被分做两个部分,川户空间和系统空间。•用户进程本身的程序和数据(可执行映象)映射到用户空间中。进程

7、空间中还冇进程运行用户程序时使用的堆栈,称为进程堆栈。•系统对这个进程进行控制和管理的信息,如进程控制块等,也映射到进程空间。内核堆栈也在进程空间中。内核被映射到所有进程的系统空间中。它们只允许在具有较高特权的核心态下访问。进程运行在特权较低的用户态下时,不允许它直接访问系统空间。进程只能通过系统调用(systemcall)转换为核心态丿f],才能访问系统空间。一个进程在运行过程中,总是在两种执行状态之间不断地转换。进程上下文和系统上下文把系统提供给进程的处于动态变化的运行环境总和称为进程上下文。系统屮

8、的每一个进程都冇它自己的上下文。进程因时间片川完或因等待某个事件而阻塞时,进程调度需要把CPU的使丿IJ权从当前进程交给另一个进程,这个过程称为进程切换(procdssswitching)。进程的切换乂称为上卜•文切换(contextswitching).o在系统内核为用户进程服务,例如进程执行一个系统调用时,进程的执行状态要从用户态转换为核心态。但是,此时内核的运行仍是进程的一•部分,所以说这时内核是运行在进程上下文中。系统在完成自身任务

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。