进程过程控制.ppt

进程过程控制.ppt

ID:59501950

大小:110.50 KB

页数:38页

时间:2020-11-03

进程过程控制.ppt_第1页
进程过程控制.ppt_第2页
进程过程控制.ppt_第3页
进程过程控制.ppt_第4页
进程过程控制.ppt_第5页
资源描述:

《进程过程控制.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、进程控制进程控制理论基础进程控制编程定义进程是一个具有一定独立功能的程序的一次运行活动。特点动态性并发性独立性异步性状态进程ID进程ID(PID):标识进程的唯一数字父进程的ID(PPID)启动进程的用户ID(UID)进程互斥进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止。临界资源操作系统中将一次只允许一个进程访问的资源称为临界资源。临界区进程中访问临界资源的那段程序代码称为临界区。为实现对临界资源的互斥访问,应保证诸进程互斥地进入各自的临

2、界区。进程同步一组并发进程按一定的顺序执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。进程调度概念:按一定算法,从一组待运行的进程中选出一个来占有CPU运行。调度方式:抢占式非抢占式调度算法先来先服务调度算法短进程优先调度算法高优先级优先调度算法时间片轮转法死锁多个进程因竞争资源而形成一种僵局,若无外力作用,这些进程都将永远不能再向前推进。获取ID#include#includepid_tgetpid(void)获取本进程ID。p

3、id_tgetppid(void)获取父进程ID。获取ID#include#include#includeintmain(void){printf("PID=%d",getpid());printf("PPID=%d",getppid());return0;}进程创建#includepid_tfork(void)功能:创建子进程fork的奇妙之处在于它被调用一次,却返回两次,它可能有三种不同的返回值:1.在父进程中,fork返回新创建的子进程的PID

4、;2.在子进程中,fork返回0;3.如果出现错误,fork返回一个负值进程创建#include#inlcudemain(){pid_tpid;/*此时仅有一个进程*/pid=fork();/*此时已经有两个进程在同时运行*/if(pid<0)printf("errorinfork!");elseif(pid==0)printf("Iamthechildprocess,IDis%d",getpid());elseprintf("Iamtheparentprocess,IDis%d"

5、,getpid());}?执行后的结果?进程创建$./fork_testIamtheparentprocess,myprocessIDis1991Iamthechildprocess,myprocessIDis1992在pid=fork()之前,只有一个进程在执行,但在这条语句执行之后,就变成两个进程在执行了,这两个进程的代码部分完全相同,将要执行的下一条语句都是f(pid==0)。两个进程中,原先就存在的那个进程被称作“父进程”,新出现的那个进程被称作“子进程”,父子进程的区别在于进程标识符(PID)不同。进程创建—思考运行结果?#

6、include#includeintmain(void){pid_tpid;intcount=0;count++;pid=fork();printf("Thisisfirsttime,pid=%d",pid);printf("Thisissecondtime,pid=%d",pid);count++;printf("count=%d",count);if(pid>0)printf("Thisisparentprocess,thechildhasthepid:%d",pid);els

7、eif(!pid)printf("Thisisthechildprocess.");elseprintf("forkfailed.");printf("Thisisthirdtime,pid=%d",pid);printf("Thisisfouthtime,pid=%d",pid);return0;}进程创建—思考运行结果?父进程的数据空间、堆栈空间都会给子进程一个拷贝,而不是共享这些内存。在子进程中对count进行自加1的操作,但是并没有影响到父进程中的count值,父进程中的count值仍然为0。进程创建#incl

8、ude#includepid_tvfork(void)功能:创建子进程。创建进程区别:1.fork要拷贝父进程的数据段;而vfork则不需要完全拷贝父进程的数据段,子进程与父

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

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

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