linux进程管理实验

linux进程管理实验

ID:20735585

大小:170.64 KB

页数:10页

时间:2018-10-15

linux进程管理实验_第1页
linux进程管理实验_第2页
linux进程管理实验_第3页
linux进程管理实验_第4页
linux进程管理实验_第5页
资源描述:

《linux进程管理实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Linux进程管理实验一、实验内容:1.利用bochs观测linuxO.11下的PCB进程控制结构。2.利用bochs观测linuxO.11卜*的:?0什.c源代码文件,简单分析其中的重要函数。3.在fork,c适当位置添加代码,以验证fork函数的工作原理。二、Linux进程管理机制分析Linux右两类进程:一类是普通用户进程,一类是系统进程,它既可以在用户空间运行,又可以通过系统调用进入内核空间,并在内核空间运行;另一类叫做内核进程,这种进程只能在内核空间运行。在以i386为平台的Linux系统中,进程由进程控制块,系统堆栈,用户堆栈,程序代码及数据段组成。

2、Linux系统中的每一个用户进程有两个堆栈:一个叫做用户堆栈,它是进程运行在用户空间时使用的堆栈;另一个叫做系统堆栈,它是用户进程运行在系统空间时使用的堆栈。1.Linux进程的状态:Linux进程用进程控制块的state域记录丫进程的当前状态,一个Linux进程在它的生存期中,可以存下面6种状态。1.就绪状态(TASK_RUNNING):在此状态不,进程已挂入就绪队列,进入准备运行状态。2.运行状态(TASK_RUNNING):当进程正在运行时,它的state域中的值不改变。但是Linux会用一个专门指针(current)指向当前运行的任务。1.可中断等待状态

3、(TASKJNTERRUPTBLE):进程由于未获得它所申请的资源而处在等待状态。不管是资源右效或者中断唤醒信号都能使等待的进程脱离等待而进入就绪状态。即”浅睡眠状态”。2.不可中断等待状态(TASKJJNINTERRUPT旧LE):这个等待状态与上面等待状态的区别在于只有当它申请的资源有效吋才能被唤醒,而其它信号不能。即“深睡眠状态”。3.停止状态(TASK_STOPPED):当进程收到一个SIGSTOP信号后就由运行状态进入停止状态,当收到一个SINCONT信号时,又会恢复运行状态。挂起状态。4.终止状态(TASK_ZOMBIE):进程因某种原因终止运行,但

4、进程控制块尚未注销。即"僵死状态"。状态图如下所示:2.Linux进程控制块:在Linux中,进程控制块为数据结构task_struct,它包含了大量该进程的信息,这些信息大致为以下几类:1).进程的当前状态2).调度信息3).进程标识4).进程的通信信息5).进程与其它进程之间关系的信息6).使用文件的信息7).虚拟内存与物理内存的关系8).计时器9).处理器与进程的右关信息3.Fork函父进程创建一个子进程最方便快捷的方式就是把父进程的控制块照原样复制一个,然后再根据子进程的修改特点对它进行必要的修改,形成子进程的控制块系统调用fork()通过调用find_

5、empty_process及copy_process等函数复制一个当前进程的进程控制块,然后用新进程标识修改旧标识,填写子进程与父进程关系,创建子进程堆栈和数据区因此,fork()执行后,父子进程共享同一个存储空间,父进程的所有可共享资源都被子进程通过数据结构的复制继承了过来。在父进程调用fork(}与在了•进程中调用fork(),fork()的返回值不同!如果是在父进程调用forkO,则forkO就复制出一个子进程,并返回子进程的标识ID,如果创建子进程失败,则fork()的返回值为-1;而如果在子进程调用forkO,则它返冋的是0。三、实验步骤及结果在安装目

6、录下双击bochs.exe,选择提供好的linuxO.11配置文件,点击start,启动虚拟机,如下图所示:Licensedforusewithbochs>courtesyofMandrakeSoft•ForinformationonthisorotherUGAdevclopMentproducts,contactE1pinSystcusat:(800)723-9038orwwu.clpin.comBochsBIOS-build:05/02/09SReuision:1.231$$Date:2009/04/2617:17:07$Options:apmbiospci

7、bioseltoritorombios32ata9master:Generic1234ATA-6Hard-Disk(59MBytes)PressF12forbootmenu.BootingfromFloppy."Loadingsystem•••Partitiontableok.45940/60000freeblocks19228/20000freeinodes3462buffers=3545088bytesbufferspaceFreemem:12582912bytesOk.【✓usr/root】tt一、利用bochs观测linuxO.11下的PCB进程控制结构

8、1.切换工作目录到/us

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

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

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