Linux进程

程序与进程:

程序:是指编译好的二进制文件,在磁盘上,占用磁盘空间,是一个静态的概念。

进程:一个启动的程序,进程占用的是系统资源,如:内存,终端,CPU等,是一个动态的概念。

一个程序可以在多个终端运行。

每次启动一个程序都会有一个进程PID,即使是相同的程序多次启动也会有不同PID。

并行和并发:

并发:在一个时间段内,是在同一个cpu上,同时运行多个程序。

         如:将cpu的1s的时间分成1000个时间片,每个进程完一个时间片必须无条件让出cpu的使用权,这样来说1s中可以执行1000个进程。一个时间片执行一个程序,一个接一个。有些进程可以在一个时间片内结束,有些不能

并行:指两个或两个以上的程序在同一时刻发生。(需要有多颗cpu)

PCB-进程控制块:

每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。

结构体的内部成员有:

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

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

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

  描述虚拟地址空间的信息

  描述控制终端的信息

  当前工作目录

  umask掩码

  文件描述符表

  和信号相关信息

  用户id和组id

  会话和进程组

  进程可以使用的资源上限

     ulimit -a

进程状态的转换:

注意:处于就绪态的进程,有执行资格,但是没有cpu的时间片;

           处于挂起态的进程既没有执行资格,也没有cpu的时间片;

           从挂起态不能直接回到运行态,必须先回到就绪态;

            只有就绪态才能回到运行态。 

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-08 14:00:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-08 14:00:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-08 14:00:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-08 14:00:02       18 阅读

热门阅读

  1. 列出使用挂载点的进程,并结束进程 shell脚本

    2024-02-08 14:00:02       27 阅读
  2. CSS transition(过渡效果)详解

    2024-02-08 14:00:02       32 阅读
  3. IT行业有哪些证书含金量高?

    2024-02-08 14:00:02       31 阅读
  4. 什么是IDE?新手用哪个IDE比较好?

    2024-02-08 14:00:02       36 阅读
  5. 3分钟带你了解Vue3的nextTick()

    2024-02-08 14:00:02       28 阅读
  6. Python OCR 之旅:PaddleOCR 与 pytesseract 比较及应用

    2024-02-08 14:00:02       31 阅读
  7. Python在小型无人机

    2024-02-08 14:00:02       36 阅读
  8. 【SQL高频基础题】619.只出现一次的最大数字

    2024-02-08 14:00:02       35 阅读
  9. SQL常用优化手段chi

    2024-02-08 14:00:02       35 阅读
  10. C++ bool 布尔类型

    2024-02-08 14:00:02       35 阅读