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可以获取该进程的pidgetppid可以获取该进程父进程的pid

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

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

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

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

总结

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

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

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

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

希望与大家共同进步哦

相关推荐
LKAI.6 分钟前
搭建Elastic search群集
linux·运维·elasticsearch·搜索引擎
gywl2 小时前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
日记跟新中3 小时前
Ubuntu20.04 修改root密码
linux·运维·服务器
码农君莫笑3 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
BUG 4043 小时前
Linux——Shell
linux·运维·服务器
大霞上仙4 小时前
Linux 多命令执行
linux·运维·服务器
晨欣4 小时前
Kibana:LINUX_X86_64 和 DEB_X86_64两种可选下载方式的区别
linux·运维·服务器
AI青年志4 小时前
【服务器】linux服务器管理员查看用户使用内存情况
linux·运维·服务器
dessler5 小时前
Docker-run命令详细讲解
linux·运维·后端·docker
PyAIGCMaster5 小时前
ubuntu装P104驱动
linux·运维·ubuntu