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.

 

posted @ 2020-04-08 14:19  一棵坚强的小草  阅读(61)  评论(0)    收藏  举报