【Linux】进程总结

来源:互联网 发布:刚开网店卖软件好不好 编辑:程序博客网 时间:2024/05/21 16:54

一、什么叫做进程和程序?


      1、程序: 是指一个已经编译好点的二进、制文件,在磁盘上,不占用系统资源(CPU、内存、打开的文件、设备、锁......)

  

      2、进程:是一个抽象的概念,与操作系统联系紧密。进程是活跃的程序,占用系统资源,在内存中执行(程序运行起来产生一个进程)


                       进程比较抽象,不容易理解。举个例子给大家分析下:


                                               程序(剧本)---------> 纸              进程-------------->戏(舞台、演员、灯光、道具.....)


                       同一个剧本可以在多个舞台同时上演。同样,同一个程序也可以加载为不同的进程(彼此之间互不影响)。


                   如: 同时开两个终端,各自都有一个 bash ,但彼此 ID 不同。


二、什么叫做并发?


       1、并发:在操作系统中,一个时间段有多个进程都已经处于已启动运行到运行完毕的状态。但是,任何一个时刻点上,仍只有一个进程在运行。

                举个例子,给大家介绍下并发:例如,当前我们使用的计算机边听音乐边聊天 边上网。假如,笼统的将他们看作是一个进程的话,为什么它们可以同时运行呢?应为

               存在并发。

         


 

       2、单调程序设计模型:在计算机内只允许一个运行的程序。特点:比较浪费 CPU,CPU 利用率比较低。

       

        3、多道程序设计模型:是指在计算机内存中同时存放几种相互独立的程序。使他们在管理程序的控制之下,相互穿插的运行。两个或者两个以上同时处于开始到结束之间的状态。多道程序的运行特征是:多道、宏观上并行,微观上串行。

      

  三、CPU 和 MMU


         1、CPU(中央处理器):


         2、MMU(内存管理单元)

         

四、进程控制块PCB


        我们知道,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息。Linux 内核的进程控制块是 task_struct 结构体。在该结构体所放的位置是:

    /usr/src/linux-headers-3.13.0-24/include/linux/sched.h。其内部成员有很多,下面我们主要介绍我们要掌握的几个要点:

     1、进程 ID : 系统中每一个进程都有唯一的一个 ID ,在 C 语言中用 pid_t 类型表示,其实就是一个就是一个非负整数。

     2、进程的状态:有就绪、运行、挂起、停止等状态。

     3、进程切换时需要保存和恢复的一些寄存器。

     4、描述虚拟地址空间的信息。

     5、描述控制终端的信息。

     6、当前工作目录。

     7、umask掩码。

     8、文件 描述符表:包含很多指向 file 结构体的指针。

     9、和信号相关的信息。

     10、用户 ID 和组 ID。

     11、会话(Session)和进程组。

     12、进程可以使用的资源上线。


五、进程状态


       进程的基本状态有 5 种。分别为初,始态,就绪态,运行态,挂起态与终止态。其中,初始态为进程准备阶段。常与就绪态结合起来看。


小结:

         今天介绍了 Linux操作系统的进程相关概念,下面将会持续更新。。。。。。。。。。。。。。。