Linux进程之(一)进程相关概念

进程相关概念

程序和进程

  • 程序:是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu/内存/打开的文件/设备/锁……)
  • 进程:是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程)
  • 打个比方 程序 -> 剧本(纸) 进程 -> 戏(舞台、演员、灯光、道具)
    同一个剧本可以在多个舞台同时上演。同样,同一个程序也可以加载不同的进程(彼此之间互不影响)
    如:同时开两个终端,各自都有一个bash但彼此ID不同

并发

  • 并发:在os中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态。但,任一个时刻点上仍只有一个进程在运行
  • 例如,当下,我们使用计算机可以边听音乐边聊天边上网。若笼统的将它们均看作一个进程的话,为什么可以同时运行呢,因为并发
    在这里插入图片描述

CPU

在这里插入图片描述

MMU (内存管理单元)(CPU内部)

在这里插入图片描述

进程控制块 PCB

  1. 每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是 task_struct 结构体
  2. /usr/src/linux-headers-4.15.0-45/include/linux/sched.h 可以查看 struct task_struct 结构体定义。其内部成员很多,我们重点掌握以下部分即可:
  • 进程id。系统中每个进程有唯一的id,在c语言中用 pid_t 类型表示,其实就是一个非负整数
  • 进程的状态,有就绪、运行、挂起、停止等状态
  • 进程切换时需要保存和恢复一些CPU寄存器值
  • 描述虚拟地址空间的信息
  • 描述控制终端的信息
  • 当前工作目录
  • umask掩码
  • 文件描述符表,包含很多指向file结构体的指针
  • 和信号相关的信息
  • 用户id 和 组id
  • 会话(Session)和进程组
  • 进程可以使用的资源上限(Resource Limit)(比如栈大小:ulimit -a)

进程状态

进程的基本状态有5种.分别为初始态、就绪态、运行态、挂起态和终止态。其中初始态为进程准备阶段,常与就绪态结合来看
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值