linux下的进程

Posted 大飞歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下的进程相关的知识,希望对你有一定的参考价值。

一、进程的基础:

  1、程序:程序是一些保存在磁盘上的指令的有序集合;

  2、进程:进程是程序的一次执行过程;

  3、进程与程序的关系:①、程序是静态的,进程是动态的;

              ②、一个程序可以对应多个进程;

              ③、程序只有数据段和代码段,进程除了有数据段和代码段之外,还有堆和栈;

            

      关于进程:

        堆栈区:存放的是函数的返回地址,函数的参数以及程序中的局部变量;

        代码段:存放程序代码;

        bss段:存放未初始化的全部变量和静态变量;

        数据段:存放初始化全局和静态变量;

  4、进程的特征:

      ①、动态的:程序的一次执行过程,在虚拟内存中运行,每时每刻都在变化;

      ②、并发的:“同时”运行;

      ③、独立的:每一个运行的进程都有独立的4GB大小的虚拟内存空间,每个进程都独占系统资源;

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

            线程是CPU调度的最小单位;

      ④、异步的:多个线程运行时他们是相关无关的;

          

  5、进程的生命周期(状态)

  6、进程的分类

      ①、交互进程

      ②、批处理进程

      ③、守护进程

  7、进程的系统调用(API)

      ①、创建进程:

        #include <unistd.h>

        pid_t fork(void);          

        功能:创建进程;

        特点:调用一次,返回两次;

        返回值:调用失败:返回-1给调用的进程;调用成功:给父进程返回子进程的ID,给子进程返回:0;

      当调用fork后:

        1)系统会映射虚拟内存空间给子进程;

        2)拷贝父进程的堆、栈,数据段给子进程;

       3)给父进程返回子进程ID,给子进程返回0;

       4)子进程共享父进程的代码段;

       5)fork返回后,父、子进程从fork函数调用的下一条语句同时往下执行;  

    ②、 exec函数族

     ③、结束进程:exit和_exit

     ④、使当前进程阻塞,给子进程收尸:wait、waitpid。   

 

以上是关于linux下的进程的主要内容,如果未能解决你的问题,请参考以下文章

Linux进程下的编译

Linux下的多进程编程

如何有效杀掉在linux环境下的oracle进程

linux下如何监听进程

linux文件系统下的特殊权限

Linux环境下的高级隐藏技术