Linux系统编程1:进程基础

Linux系统编程1:进程基础

程序与进程

如果程序是菜谱,进程就是厨师烹饪;
如果程序是乐谱,进程就是乐师演奏;
如果程序是剑谱,进程就是剑客舞剑;
如果程序是棋谱,进程就是棋士复盘;
程序是静的,进程是动的。

进程与程序区别
在这里插入图片描述

概念
进程:程序在计算机上的一次执行过程,执行中的程序。

  • 进程是一个抽象概念
    在这里插入图片描述
  • 本质
    • 程序在地址空间中按照代码逻辑控制流执行
    • 资源分配最小单位

从代码到程序
在这里插入图片描述
从程序到进程

  1. 内核将程序读入内存,为程序镜像分配内存空间。
  2. 内核为该进程分配进程标志符PID
  3. 内核为该进程保存PID及相应的进程状态信息。
    在这里插入图片描述

进程控制块(PCB):保存进程控制信息

程序格式ELF
  ELF(Executable and Linkable Format)文件格式,一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。

查看程序(ELF文件):readelf -S 文件名
查看进程空间大小:size 文件名

虚拟存储器/虚拟地址空间
z
gdb查看内存映射信息:info proc mapping

在这里插入图片描述

在这里插入图片描述
.bss(Block Started by Symbol)存放程序中未初始化的全局变量和静态变量,程序执行之前BSS段会自动清0

进程状态

在这里插入图片描述

类似视频/音频播放器

在这里插入图片描述
如何查看进程
在这里插入图片描述
ps命令

  • 查看某进程
  1. 通过进程PID查看:ps -p 进程PID
  2. 通过命令行查看:ps -C 命令行
  3. 查看程序的PID: pidof 程序名
  • 查看进程
    在这里插入图片描述

Unix从操作风格分为System V风格和BSD风格。它们在目录结构、脚本、命令行等方面存在一些差异。

  • System V, 曾经也被称为AT&T SystemV,是Unix操作系统众多版本中的一支。它最初由AT&T开发。
  • BSD(BerkeleySoftware Distribution,伯克利软件套件)是Unix的衍生系统,1970年代由伯克利加州大学(UniversityofCalifornia, Berkeley)开发。
    随着一些并不基于这两者代码的UNIX实现的出现,例如Linux,这一归纳不再准确。像POSIX这样的标准化努力一直在试图减少各种实现之间的不同。
  • 列表示说明
    在这里插入图片描述

  • 进程状态标识
    在这里插入图片描述
    pstree命令
    以树状图的方式展现进程之间的派生关系

  • 安装

yum install psmisc

top命令
实时显示系统中各个进程的资源占用,类似Windows任务管理器。

Linux一切皆文件,在/proc/下也可以查看到进程。

如何创建进程

在这里插入图片描述
如何杀死进程
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值