linux应用之----进程控制理论

原创 2012年03月22日 19:19:04

进程理论基础

进程的定义:进程是一个具有特定功能的程序的一次运行活动。它和程序的区别在于:程序是存储在硬盘上的,是静态的;而进程是程序的执行。

进程特点:动态性 ,并发性 ,独立性 , 异步性 。

进程三态:就绪态,执行态,阻塞态。

进程的标识:用进程ID号来区分不同的进程。进程ID用PID表示,父进程ID用PPID表示,用户ID用UID表示。

进程互斥:是指当多个进程都要使用某一共享资源时,任何时刻做多允许一个进程使用,其它要使用该资源的进程必须要等待,直到占有该资源的进程结束为止。

临界资源:操作系统讲一次只允许一个进程访问的资源称为临界资源。

临界区:程序中,访问临界资源的那段代码称为临界区。

进程同步:一组并发进程按一定色顺序执行的过程称为进程的同步。具有同步关系的一组进程称为合作进程,合作进程之间互相发送的信号称为消息或事件。

进程调度:按一定的算法,从一组待运行的进程中选出一个来占用CPU。调度方式有抢占式和非抢占式两种。调度的算法有:先来先服务调度算法;短进程优先调度算法;高优先级优先调度算法;时间片轮转法。

死锁:多个进程因竞争资源而导致的一种僵局,若无外力作用,这些进程都将永远不能向前推进。

进程控制编程

1:获取ID

       #include<sys/types.h>

      #include<unistd.h>

       pid_t getpid(void);    //获取当前运行的进程的ID号

       pid_t getppid(void);   //获取当前运行进程的父进程的ID号。

2: fork 函数

                int   fork()

1) 返回值-1,出错。

2) 返回值 0,表示子进程

3) 否则为 父进程,且该返回值是子进程的pid。

    3 :vfock 函数

                int  vfork()

1) 返回值-1,出错。

2) 返回值 0,表示子进程

3) 否则为 父进程,且该返回值是子进程的pid

4) vfork 与 fork 区别:vfork必定是子进程先执行完,父进程再执行,fork则不一定;vfork中子进程与父进程共用数据段,所以变量之间相互影响,fork函数从父进程拷贝了一段数据段,所以不会有影响。

4: wait(null)与waitpid(pid,null,0)函数。

头文件为 #include <sys/types.h> 和 #include<sys/wait.h>

    用于阻塞一个进程。如果是wait,那么只有当该进程的某个子进程退出以后,它才会继续执行。而waitpid则指定了子进程的ID,只有这个指定ID的子进程结束了,它才会继续执行。

    5: exec函数族

exec用指定的程序替换调用它的程序。和fork的区别:fork是产生了一个新的进程,新进程的ID号是新的。而exec是替换进程,并且替换之后,进程的ID号不会变。

#include <unistd.h>

execl("bin/ls","ls","-l","etc/password",char *0);

execlp("ls","ls","-l","etc/password",char *0);

以上两个函数,它们的第一个参数为被执行的程序名。所不同的是exexl必须有完整的路径名称。而execlp则不需要完整的路径名称,它会到系统的path路径去寻找。后面的参数就是执行这个命令所需要的参数。最后一个参数以空指针结尾。

execv("bin/ls",argv); 其中char *argv[]={"ls","-l","etc/password",char *0};也就是说execv把execl后面的参数以及最后的空指针都用一个字符串数组给代替了。


相关文章推荐

进程控制理论<三>---那些年我们一起学习linux程序设计

一.共享内存: 共享内存:是被多个进程共享的一部分物理内存。   共享内存是进程间共享数据的一种最快的方式;   一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立即看到其...

linux历程--进程控制理论基础

1)定义:进程是一个具有一定独立功能的的程序的一次运行活动。 2)特点:动态性、并发性、独立性、异步性 3)进程经典三状态:就绪态、执行态、阻塞态。     进程创建后首先处于就...
  • vipclx
  • vipclx
  • 2012年08月31日 23:38
  • 460

进程控制理论<四>---那些年我们一起学习linux程序设计 .

(消息队列) 定义:unix 早期通信机制之一的信号能够传送的信息量有限,管道则只能传送无格式的字节流,这无疑会给应用程序开发带来不便。消息队列,则克服了这些缺点。   发展:消息队列,就是一个...

Linux_4.1_进程控制理论

(1)进程状态: (2)进程ID:

进程控制理论<一>---那些年我们一起学习linux程序设计

进程控制理论定义: 进程是一个具有独立功能的程序的一次运行活动。 特点: (1)   动态性;(程序是一段静止的代码,当运行时才能形成进程) (2)   并发性;(两个进程同时进行) (3)...

Linux信号在进程控制中的应用

  • 2014年11月17日 18:30
  • 202KB
  • 下载

linux应用程序设计(一)——文件、时间编程及进程控制

本文中的代码是国嵌实验手册上的,并非原创,自己添上注释。 第一部分:文件编程 linux中文件编程可以使用两种方式:linux系统调用和C语言库函数。前者依赖于linux系统,后者和操作系统是独立...

进程控制理论<三>----共享内存

该文章参考于http://blog.csdn.net/yx_l128125/article/details/7688309,中间增加自己理解内容,在此先感谢这位大哥。 一.共享内存: 共享内存...

进程控制理论知识

程序:静态的存储在计算机上,用适当形式描述的算法。。 进程:一个具有一定独立功能的程序的一次运行的活动;是正在运行程序的一个抽象。 进程的三个状态: 1、运行态(该时刻进程实际占用CPU...

06-进程控制理论

一进程 二进程状态图经典三态内核七态 三进程ID 四进程互斥 五临界资源 六临界区 七进程同步 八进程调度 九按调度时机调度可分为 十一进程死锁 十二函数getpid来自:http://www.cnb...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux应用之----进程控制理论
举报原因:
原因补充:

(最多只允许输入30个字)