进程控制编程

进程是系统分配资源时的最小单位

程序和进程的区别:程序是存放在磁盘中的可执行文件

                                进程是正在执行的程序

                                进程是动态的,程序是静态的

                                进程是暂时的,而程序是可以保存的

                               组成不同:进程包括程序,数据和进程控制,,而程序只是一个可执行文件   

通过多次执行,一个文件可以起多个进程; 通过调用关系,一个进程可以包括多个程序

进程状态:执行状态,就绪状态,等待状态

linuX下,进程各自独立互不干扰,多进程可以同时运行


子进程(PID)         父进程(PPID)     用户ID(UID) 都为数字

进程互斥:多个进程要使用同一共享资源时,每时每刻只能有一个进程调用,改资源被称为临界资源,进程被称为临界区

调度进程:抢占式 / 非抢占式

调度算法:高优先级优先调度算法和时间片轮转法结合使用

 

函数:获取ID             getpid()子         geippid()父

           returnID。

 

创建进程:pid_t fork()

           返回两次,三个返回值(-1、0、ID)  -1:错误    0:子进程    ID:父进程的子进程ID

    大概率先进行子进程,产生的子进程会开辟新的虚拟内存,并复制父进程的所有数据

 创建子进程  :pid_t vfork()

           返回与fork相同,但vfork创建的子进程绝对为先执行 ,且创建的子进程共享父进程的数据

        vfork通常与exec函数族一起使用          exec可以启动一个新程序来代替现有进程,进程号不变(exec具体要查阅man) 

int execl(程序绝对路径,执行的命令与句,参数1,参数2.。。。。。  NULL);    都要加双引号

int system("命令语句")

 

pid_t  wait(int *status)  用于阻止某个进程结束,直到他的某个子进程结束,并回收子进程的资源和数据

pid_t   waitpid(进程号,int *status   ,0)     有几个宏函数要查询man手册(检测子进程是否正常结束(正常返回0),        返回子进程的返回值)

 

exit()函数:用于结束进程

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值