Linux进程【1】进程概念(超详解哦)

进程概念

引言(操作系统如何管理)

在冯诺依曼体系结构中,计算机由输入设备、输出设备、运算器、控制器和存储器 组成。我们使用计算机的时候,实际就是数据在这些硬件中传递的过程。

硬件的行为由驱动 控制,驱动又由更上层的操作系统 控制。操作系统又会向上层提供系统调用接口 ,使用户可以通过系统调用逐级向下控制硬件行为。
操作系统负责与硬件交互,管理所有的软硬件资源,并给用户程序提供一个良好的执行环境 ,所以操作系统在计算机中起着承上启下的重要作用:

毋庸置疑,因为有着许多程序的执行,我们的计算机才能运转起来,这其中正在执行的程序就被称为进程。而操作系统就是通过管理这些进程来管理软硬件资源的。

在管理这些进程时,其实只需要将这些进程的属性数据组织为一个结构体,再对这些结构体进行管理即可 。而不需要管理这些进程对应的大量代码。从操作系统的角度来讲,进程也可以被定义为程序属性结构体和对应代码的集合。

基本概念

前面已经介绍过进程的定义了,对于操作系统,它是程序属性结构体和对应代码的集合:

描述与组织进程

进程的信息被描述在数据控制块PCB(process control block) 中的,即进程属性的集合;

在Linux中,描述进程的结构体为task_struct,是PCB的一种。其中包含着进程的各种信息。其中大致包括:

  • 标示符:描述本进程的唯一标示符,用来区别其他进程;
  • 状态:任务状态,退出代码,退出信号等;
  • 优先级:相对于其他进程的优先级;
  • 程序计数器:程序中即将被执行的下一条指令的地址;
  • 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针;
  • 上下文数据:进程执行时处理器的寄存器中的数据;
  • I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表;
  • 记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等;

在Linux中,所有运行在系统中的进程都是使用链表来组织在内核中的。

查看进程

进程的信息可以使用ls在 /proc系统文件夹 中查看:

也可以使用ps axj查看全部进程以及一些进程的信息:

进程pid与ppid

pid是进程的标识符,即进程的编号 ,在任何时候都是唯一的只有当一进程终止并回收后,该编号才会被重新使用。
ppid是该进程父进程的pid,子进程由父进程创建,在子进程结束后要向父进程发出信号。

getpid与getppid

getpid可以获取该进程的pid,getppid可以获取该进程父进程的pid:

我们可以通过一个死循环,其中不停的打印该进程的pid与ppid,来观察:

在进程运行时,我们也可以使用ps axj 在通过管道让grep筛选后,来查找该进程的一些基本信息 :

这里虽然查找到了我们的testproc进程,但是也多出了一个grep --color=auto testproc,这是因为grep要能执行查找的操作,它本身也要是一个进程,自然就会被筛选到并打印出来 。

想要不显示这条,只需要-v过滤掉即可 :

总结

关于进程的一些基本概念就介绍完了

这篇文章只是进程的开始,后面会更详细的介绍进程的相关知识,欢迎持续关注哦

如果大家认为我对某一部分没有介绍清楚或者某一部分出了问题,欢迎大家在评论区提出

如果本文对你有帮助,希望一键三连哦

希望与大家共同进步哦

相关推荐
Android系统攻城狮2 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_delay调用流程与实战(七十二)
linux·运维·服务器·gstreamer音视频·音视频进阶
快乐的韭菜根根3 小时前
ubuntu 安装slurm并配置
linux·运维·ubuntu
倒头就睡的小比特4 小时前
Linux基础指令3
linux·服务器
梦帮科技5 小时前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
半杯咖啡半行码6 小时前
Linux 驱动开发入门:内核模块编程基础
linux·服务器·网络
别动我齐刘海6 小时前
Linux 系统调试学习2
linux·运维·c++·人工智能·学习·机器学习·机器人
龙虾电话6 小时前
语音机器人打断不进去:VAD 双阈值迟滞里一个共用的 bool,和它引发的连锁误判
linux
honsor6 小时前
机房IP化改造首选:以太网温湿度传感器,PoE供电+Modbus TCP一网搞定
linux·运维·服务器
默|笙7 小时前
【Linux网络】_udp_socket(认识)
linux·网络·udp
程序员梅雨8 小时前
ZooKeeper面经总结
java·大数据·linux·分布式·后端·zookeeper·中间件