LINUX进程管理
前言:单片机(裸机开发)与基于操作系统开发区别:
单片机:同一时刻程序只能执行当前代码。如:
while(1)
{
switch(n){
case 1:
case 2:
case 3:
}
}
基于操作系统开发:(同时)
应用层:如 打电话(p) 打游戏(p1) 听歌(p2)
内核: 进程管理 、内存管理、网络管理、CPU管理、文件管理
CPU调度算法(时间片轮换),使得进程间看上去像同时进行。
1.概念:
进程:就是处于执行期的程序(比如一个正在加工的工厂,需要零件,材料,还有流水线(如线程)加工),包括进程的资源和线程。
进程是程序的一次执行过程,是动态的(程序是静态的),在内存中运行。
2.特点:
动态性:程序执行过程
并发性:每个进程在运行时,都会分配4GB独立的虚拟空间
异步行:多个进程运行时,相互独立,互不影响。
3.进程标识:
进程号:PID
父进程好:PPID
获取进程ID:
pid_t getpid(void)
pid_t getppid(void)
4.进程的API
4.1:创建进程----------------fork();
fork();//产生2个进程
|
fork() fork()
printf("1\n");
结果:1
1
fork()被调用后对进程影响
1:创建一个子进程
2:系统会给子进程映射一个新的4GB虚拟内存空间。
3:子进程共享父进程代码
4:fork()函数给父进程返回子进程ID,同时会给子进程返回0.
5:fork()函数返回后,父子进程从fork()调用语句下一条同时执行。
6:fork()调用失败返回-1.

浙公网安备 33010602011771号