实验一进程控制ppt课件.ppt
《实验一进程控制ppt课件.ppt》由会员分享,可在线阅读,更多相关《实验一进程控制ppt课件.ppt(20页珍藏版)》请在三一办公上搜索。
1、实验一、进程控制,一、实验目的1、加深对进程的理解,进一步认识并发执行的实质;2、分析进程争用资源现象,学习解决进程互斥的方法;3、掌握Linux进程基本控制;4、掌握Linux系统中的软中断和管道通信。,编写程序,演示多进程并发执行和进程软中断、管道通信。父进程使用系统调用pipe()建立一个管道,然后使用系统调用fork()创建两个子进程,子进程1和子进程2;子进程1每隔1秒通过管道向子进程2发送数据:I send you x times.(x初值为1,每次发送后做加一操作)子进程2从管道读出信息,并显示在屏幕上。父进程用系统调用signal()捕捉来自键盘的中断信号(即按Ctrl+C键)
2、;当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:Child Process l is Killed by Parent!Child Process 2 is Killed by Parent!父进程等待两个子进程终止后,释放管道并输出如下的信息后终止 Parent Process is Killed!,二、实验内容,三、预备知识,vi:Linux古老的、功能强大的全屏幕编辑器启动方式:-$vi 文件名 打开已有的文件或编辑新文件-$vi 先编辑,之后命名存盘Vi的三种模式:命令模式、输入模式和末行模式 gedit:图形编辑器,1
3、、Linux文件编辑,2、编辑、编译、执行/调试,$vi$cc o test-g test.c$cc o sub1 sub1.c$gdb$./test,3、Linux进程管理命令进程查看,ps命令:报告进程标识、用户、CPU时间消耗及其他属性命令单独使用可以看到前台执行的进程;后台进程可以使用带参数的ps命令(如ps-ax)提供进程的一次性查看,结果不连续结果数据很精确,但数据量庞大top命令:显示CPU占用率为前几位的进程动态显示,输出结果连续消耗较多的系统资源pstree命令:列出当前的进程,以及它们的树状结构将当前的执行程序以树状结构显示,弥补ps命令的不足支持指定特定程序(PID)或使
4、用者(USER)作为显示的起始,3、Linux进程管理命令进程终止,终止一个进程或终止一个正在运行的程序kill命令:根据PID向进程发送信号,缺省操作是停止进程如果进程启动了子进程,只终止父进程,子进程运行中将仍消耗资源成为“僵尸”进程,可用kill-9强制终止退出pkill命令:终止同一进程组内的所有进程。允许指定要终止的进程名称,而非PIDKillall命令:与pkill应用方法类似,直接杀死运行中的程序数据库服务器的父进程不能用这些命令杀死(容易产生更多的文件碎片导致数据库崩溃),4、Linux进程控制函数进程创建,pid=fork();创建一个子进程,被创建的子进程是父进程的进程映像
5、的一个副本(除proc结构外)。,67,4、Linux进程控制函数修改进程,函数族exec():启动另外的进程取代当前的进程#include int execl(const char*path,const char*arg,.);int execlp(const char*file,const char*arg,.);int execle(const char*path,const char*arg,const char*envp);int execv(const char*path,const char*argv);int execve(const char*path,const char*
6、argv,const char*envp;int execvp(const char*file,const char*argv);,实例:pid_t p1;if(p1=fork()=0)execv(./get,NULL);else/main,4、Linux进程控制函数进程属性操作,设置进程属性nice():改变进程执行的优先级setpgid():将指定进程的组进程设为指定的组识别码setpgrp():将目前进程的组进程识别码设为目前进程的进程识别码,等价于setpgid(0,0)setpriority():设置进程、进程组和用户的执行优先权获取进程属性getpid():获取目前进程的进程标识g
7、etpgid():获得参数pid指定进程所属的组识别码getpgrp():获得目前进程所属的组识别号,等价于getpgid(0)getpriotity():获得进程、进程组和用户的执行优先权,4、Linux控制函数进程退出,正常退出:在main()函数中执行return、调用exit()函数或_exit()函数异常退出:调用abort()函数、进程收到信号而终止区别exit是一个函数,有参数,把控制权交给系统return是函数执行完后的返回,将控制权交给调用函数exit是正常终止进程,abort是异常终止exit中参数为0代表进程正常终止,为其他值表示程序执行过程中有错误发生exit()在头文
8、件stdlib.h中声明,先执行清除操作,再将控制权返回给内核_exit()在头文件unistd.h中声明,执行后立即返回给内核,4.Linux控制函数等待进程终止,wait();waitpid();,wait()语法格式:pid=wait(stat_addr);wait()函数使父进程暂停执行,直到它的一个子进程结束为止,该函数的返回值是终止运行的子进程的PID。参数status所指向的变量存放子进程的退出码,即从子进程的main函数返回的值或子进程中exit()函数的参数。如果status不是一个空指针,状态信息将被写入它指向的变量。,76,waitpid()语法格式:waitpid(pi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 进程 控制 ppt 课件
链接地址:https://www.31ppt.com/p-6270494.html