进程
程序=数据结构+算法
进程和程序的区别
1)程序是静态概念(是指令的有序集合。“程序文件”) 进程时动态概念(动态产生,动态消亡)
2)进程时一个程序的一次执行活动,一个程序可以对应多个进程。
3)进程时一个独立的活动单元;进程是竞争系统资源的基本单位。
进程的三种状态
就绪态(ready):已经做好准备,等待cpu,随时可执行
运行态(running):CPU正在执行这个进程的指令
阻塞态(blocking等待waiting):进程正在等待其他的外部事件
fork
fork - create a child process
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
返回值:子进程返回0,父进程返回子进程的PID,如果出错,则为-1。
思考:输出多少hello
int main()
{
fork();
fork();
printf("hello\n");
exit(0);//return 0;
}
思考2:以下的输出是什么?
int main()
{
int x=1;
if(fork()==0)
printf("P1:x=%d\n",++x);
printf("p2:x=%d\n",--x);
return 0;
}
getpid/getppid
NAME
getpid, getppid - get process identification
SYNOPSIS
#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
获取自己的进程pid
pid_t getppid(void);
获取父进程的进程pid
网友评论