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

进程概念

  • 引言(操作系统如何管理)
  • 基本概念
    • 描述与组织进程
    • 查看进程
  • 进程pid与ppid
    • getpid与getppid
  • 总结

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

在冯诺依曼体系结构中,计算机由输入设备、输出设备、运算器、控制器和存储器组成。我们使用计算机的时候,实际就是数据在这些硬件中传递的过程。
硬件的行为由驱动控制,驱动又由更上层的操作系统控制。操作系统又会向上层提供系统调用接口,使用户可以通过系统调用逐级向下控制硬件行为。
操作系统负责与硬件交互,管理所有的软硬件资源,并给用户程序提供一个良好的执行环境,所以操作系统在计算机中起着承上启下的重要作用:
Linux进程【1】进程概念(超详解哦)_第1张图片
毋庸置疑,因为有着许多程序的执行,我们的计算机才能运转起来,这其中正在执行的程序就被称为进程。而操作系统就是通过管理这些进程来管理软硬件资源的

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

基本概念

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

描述与组织进程

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

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

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

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

查看进程

进程的信息可以使用ls/proc系统文件夹中查看:
在这里插入图片描述
也可以使用ps axj查看全部进程以及一些进程的信息:
Linux进程【1】进程概念(超详解哦)_第2张图片

进程pid与ppid

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

getpid与getppid

getpid可以获取该进程的pidgetppid可以获取该进程父进程的pid

我们可以通过一个死循环,其中不停的打印该进程的pidppid,来观察:
Linux进程【1】进程概念(超详解哦)_第3张图片
Linux进程【1】进程概念(超详解哦)_第4张图片

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

这里虽然查找到了我们的testproc进程,但是也多出了一个grep --color=auto testproc,这是因为grep要能执行查找的操作,它本身也要是一个进程,自然就会被筛选到并打印出来
想要不显示这条,只需要-v过滤掉即可
在这里插入图片描述

总结

关于进程的一些基本概念就介绍完了
这篇文章只是进程的开始,后面会更详细的介绍进程的相关知识,欢迎持续关注哦

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

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

希望与大家共同进步哦

你可能感兴趣的:(Linux,linux,进程)