您的位置 : 资讯 > 软件资讯 > 初识Linux · 进程(2)

初识Linux · 进程(2)

来源:菜鸟下载 | 更新时间:2025-04-25

前言:本文将逐步深入探讨进程相关内容。在进入进程讨论之前,我们需要再次回顾操作系统的基本概

前言:

本文将逐步深入探讨进程相关内容。在进入进程讨论之前,我们需要再次回顾操作系统的基本概念。接下来,我们会介绍进程的定义、如何查看进程,以及在Linux中与进程相关的文件等问题。进程是一个庞大的主题,会持续更新多节,因此其知识点较为复杂,同学们需要特别注意。

首先,我们需要理解为什么需要操作系统。

操作系统的主要工作是管理软硬件资源。管理硬件是通过驱动程序实现的,这些程序将硬件数据组织成链表,操作系统可以直接修改链表信息,从而通过驱动程序管理硬件。这种方法是先描述再组织,最终实现对硬件的管理。然而,操作系统的根本目的是为用户提供良好、稳定、高效和安全的服务,因此需要采用相应的方法来管理各种资源。

从操作系统的结构图中我们可以看到,操作系统包括进程管理等多种管理功能。操作系统在管理进程时,允许多个进程同时存在。例如:

初识Linux · 进程(2)

这些都是进程。要查看电脑中的进程,只需按esc + shift + ctrl打开任务管理器即可。这证明了进程是可以多重存在的。

那么,什么是进程呢?

如果将某个工程的数据和代码加载到内存中,代码是否会自动运行呢?答案是否定的,因为CPU并没有读取这些数据。当代码开始运行时,就产生了一个进程。进程不仅仅是正在运行的程序,它是由PCB(进程控制块)加上自己的代码和数据构成的。

那么,什么是PCB呢?PCB是一个包含多种数据类型的结构体,用于存储进程的相关信息。类比于操作系统管理硬件时需要硬件信息来构建链表,操作系统通过修改链表实现对硬件的管理。PCB的全称是process control block,即进程控制块。之所以称为控制块,是因为操作系统可以通过对PCB的操作来控制进程。

因此,我们得出结论:进程 = PCB + 自己的代码和数据。

为什么需要PCB的概念呢?

因为操作系统遵循“先描述再组织”的原则。通过PCB,操作系统可以在内存中以链表的形式连接多个进程,每个PCB包含指向下一个PCB的指针。这样,操作系统可以通过管理链表来管理进程。

具体的PCB结构体名称是task_struct。外国人将其称为task,因为他们认为这是任务的一种表现形式。

进程是动态运行的,我们如何理解动态运行呢?

在内存中,操作系统占据一定空间,用于管理各种软硬件。当不同的进程进入内存时,需要排队处理。因此存在task_queue,即进程队列。动态运行实际上是多个PCB排队的过程。

初识Linux · 进程(2)

具体内容将在后续文章中详细介绍。

现在让我们来看看task_struct的内部属性:

无论是运行指令还是编写代码,本质上都是创建一个进程。指令执行得非常快,我们通常看不到其过程。那么,如何区分不同的进程呢?每个进程都有一个唯一的标识,即pid(进程ID),类似于学生的学号。

我们如何查看pid呢?

在回顾上篇文章中介绍的系统调用接口:

初识Linux · 进程(2)

系统调用是操作系统提供的函数,我们从未调用过它,现在是时候调用我们人生中的第一个系统调用接口了。我们使用man手册查询可知:

初识Linux · 进程(2)初识Linux · 进程(2)

从手册说明中我们了解到,2号接口是系统库函数调用,即我们即将学习的getpid:

#include #include #include int main(){  printf("I am a process\nMy pid is %d\n",getpid());  return 0;}
登录后复制

菜鸟下载发布此文仅为传递信息,不代表菜鸟下载认同其观点或证实其描述。

展开
智夺军旗
智夺军旗
类型:策略战棋 运营状态:公测 语言:简体中文
策略 益智 AI
前往下载

相关文章

更多>>

热门游戏

更多>>

手机扫描此二维码,

在手机上查看此页面

关于本站 下载帮助 版权声明 网站地图

版权投诉请发邮件到 cn486com#outlook.com (把#改成@),我们会尽快处理

Copyright © 2019-2020 菜鸟下载(www.cn486.com).All Reserved | 备案号:湘ICP备2022003375号-1

本站资源均收集整理于互联网,其著作权归原作者所有,如有侵犯你的版权,请来信告知,我们将及时下架删除相应资源