UNIX进程控制课件_第1页
UNIX进程控制课件_第2页
UNIX进程控制课件_第3页
UNIX进程控制课件_第4页
UNIX进程控制课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

UNIX进程控制第一节UNIX中进程的基本概念进程与程序在并发环境下,一个正在执行中的程序被称为进程。程序是外存中的可执行文件。进程实体由正文段、用户数据段和栈段组成。多个进程可以同时执行同一个程序。2.UNIX中的进程描述UNIX进程上下文划分为:proc结构和user结构用户栈、核心栈正文段、数据段Proc结构系统栈用户栈数据段正文段User结构(1)proc结构-进程最基本信息。进程状态。进程用户标识。进程标识。进程存储大小。进程调度参数。软中断信号项。执行时间及资源使用。User结构起始址。进程页表指针。被挂起事件描述(2)user结构-是进程的私有信息和数据。指向proc的指针。系统调用参数。与用户标识有关项。与文件结构有关项。输入输出项。打开文件描述符。中断及软中断参数。错误信息。个段长度。文件权限屏蔽项。交换数据项进程的一些重要信息PID一个整数,它是进程唯一的标识符,又称进程号。PID按进程创建的顺序赋值。PPID父进程的PIDUID和EUIDUID是进程创建者的UID。EUID是进程的“有效”UID。设置了setuid位的程序运行时,其进程的UID和EUID可能不同。GID和EGIDGID是进程的GID。EGID和GID的关系同UID与EUID。优先级和谦让值(niceness)进程的优先级确定了其能获得多少CPU时间。谦让值又称优先数,值越高进程的优先级越低。影响内部优先级的其他因素是进程近来所耗用的CPU时间量以及等待运行所耗费的时间长度。控制终端当从Shell启动一个命令时,其所在的终端通常就是新启动的进程的控制终端。一个进程的控制终端可以使用信号作为一种让用户中断或挂起该进程的手段。UNIX中的两个特殊进程0#进程由内核程序创建,初始化时创建1#进程平时负责调度分配处理器管理中负责进程调度与交换1#进程是所有用户进程的祖先进程第二节UNIX中进程的生命周期UNIX如何建立进程和在程序中启动程序?基本概念Unix中的进程是由系统调用fork创建的实体。调用fork的进程是父进程,由fork创建的进程是子进程。一个进程可以有多个子进程,但只有一个父进程。父子进程的关系图parentchildchildforkexecexit自动waitZOMBIEexit自动init孤儿父进程在子进程结束之前结束“僵尸进程”是指那种处于退出中途状态的进程。fork系统调用功能:创建子进程返回值:对子进程返回0;对父进程返回子进程号(大于0);创建失败返回-1完成的工作:(1)在进程表中为子进程分配proc结构;(2)给子进程赋唯一的标识符pid;(3)复制父进程上下文的一个逻辑副本;(4)增加父进程的文件表、索引节点表的引用数。建立进程的典型代码……pid=fork();if(pid==0)

{

/*

子进程运行,例如exec(“ap1”,…)

*/….

}else

if(pid>0){

/*

父进程运行,例如wait();

*/….

}else{

/*fork失败的处理*/….

}exec系统调用系列功能:用参数中指定的可执行程序副本覆盖调用程序的正文段和数据段,并使用参数指定的执行参数执行新的代码段。比较fork系统调用和exec系统调用调用的基本格式:

execve(pathname,argv,envp)

六种调用方式execveexecleexecvpexecvexeclexeclp执行文件的路径名字符指针数组,是可执行程序的参数字符指针数组,指示执行程序的环境l:长格式调用,每个参数指针独立传递并以空指针0结束;v:用argv指针数组传递运行参数;e:从envp指针数组传递环境参数;p:在当前目录中搜索指定的文件,否则在PATH指定的目录中搜索。fork和exec的内存变化实例比较main(){intpid;

pid=fork();if(pid==0) printf(“I’mthechild.\n”);elseif(pid>0) printf(“I’mtheparent.\n”);elseprintf(“forkfailed.\n”);printf(“programend.\n”);}main(){intpid;

pid=fork();if(pid==0){

printf(“I’mthechild.\n”);

execl(“/bin/ls”,”ls”,0);

perror(“execerror.\n”);}elseif(pid>0) printf(“I’mtheparent.\n”)elseprintf(“forkfailed.\n”);printf(“programend.\n”);}I’mthechild.programend.I’mtheparent.programend.I’mthechild.当前目录下的内容I’mtheparent.programend.wait系统调用功能:等待子进程结束,从而使父进程与其执行的子进程的终止点同步调用格式:wait(status_addr)返回值:终止的子进程的pidwaitpid系统调用子进程结束时返回的状态信息的地址UNIX中的进程终止正常终止从main函数返回调用exit函数调用_exit系统调用函数异常终止调用abort函数进程接收到某信号SIGABRT信号exit系统调用功能:释放进程占用的资源返回给系统内核一个值,由系统根据状态字生成终止状态并反馈给wait()。可能产生的两种异常情况:子进程进入僵死(zombie)状态;子进程变成孤儿。调用格式:exit(status)第三节

UNIX的进程层次和初启过程1.终端登录2.网络登录终端登录方式下的UNIX进程层次注册周期网络登录方式下的UNIX进程层次例析UNIXshell的工作过程第四节相关的管理命令查看系统进程ps命令系统管理员监视进程的主要工具。可用于显示进程的PID、UID、优先级及控制终端;还可给出进程在使用多少内存、耗用的CPU时间以及当前的进程状态等;并明确地标识出僵尸进程。命令格式:ps[option]常用的两种ps命令格式

ps-efps–ef输出的解释栏目内容栏目内容UID属主的用户名STIME进程启动时刻PID进程IDTTY控制终端PPID父进程IDTIME已耗用的CPU时间CCPU使用/调度信息COMD命令及参数

ps-auxps–aux输出的解释栏目内容USER进程属主的用户名PID进程ID%CPU进程正在使用的CPU时间的百分比%MEM进程正在使用的实际内存量的百分比VSZ进程的虚存空间大小,单位为KBRSS驻留集大小(内存中1K大小的页面个数)TT控制终端IDSTAT当前进程状态START进程启动时刻TIME进程已耗用的CPU时间COMMAND命令名和参数进程状态STAT值状态含义R可运行进程可被执行S睡眠中进程在等待某资源W对换出进程不在内存中Z僵尸进程处于“僵死”状态T被阻止进程被挂起top命令实时地对系统中资源的使用状况进行监测,显示当前系统中最占用CPU资源的进程,同时提供一个交互界面让用户观测系统的进程情况。优点:功能强;缺点:需要长久占用前台。vmstat命令…进程调度进程的挂起及恢复挂起当前的前台作业:Ctrl+Z查看挂起的进程:jobs命令恢复进程的执行恢复到前台执行:fg命令恢复到后台执行:bg命令改变进程的优先级renice命令命令格式:renicenumberPID注意:普通用户只能对自己的进程使用renice超户可以对任何进程使用renice只有超户才有权增加进程的优先级终止进程前台进程的中断:Ctrl+C后台进程的中断:kill命令kill命令功能:向进程发送信号命令格式:kill[-signal]pid-9-HUP第五节周期性进程什么时候会用到周期性的进程?UNIX系统中的cron守护进程crontab配置文件格式:minutehourdaymonthweekdaycommandcrontab文件的修改:crontab命令

只执行一次的计划性任务

at命令:在指定时刻执行指定的命令序列;

batch命令:在系统负载较低、资源较空闲时执行指定的命令系列。第六节出错的进程挂起的进程失控的进程用户进程使用了过分的系统资源(如CPU、硬盘空间等);系统进程表现出疯狂的行为。解决方法寻找失控的进程判断失控的原因STOP信号CONT信号历史悠久的“鬼把戏”while1mkdiradircdadir

touchafileend作业1.读下面两个程序,写出它们各自运行的结果,并分析其结果不同的原因。程序1: 程序2:#include<stdio.h> #include<stdio.h>main() main(){intpid; {intpid;

pid=fork(); pid=fork();if(pid<0) if(pid<0){printf(“forkerror.\n”); {printf(“forkerror.\n”);exit(1); exit(1); }elseif(pid==0) }elseif(pid==0)

printf(“I’machild.\n”);

{printf(“I’machild.\n”);

printf(“Testprocess.\n”);exit(0);} }

prin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论