Linux——进程的概念(万字总结)(1)

简介: Linux——进程的概念(万字总结)(1)

前言

       在学习进程之前,我们需要对两个方面的知识有所了解及掌握:冯诺依曼体系结构和操作系统。这两个方面的知识对后续进程的理解尤为重要。

一、 认识冯诺依曼体系结构

根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:


       1.把需要的程序和数据送至计算机中。


       2.必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。


       3.能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。


       4.能够按照要求将处理结果输出给用户。


为了完成上述的功能,计算机必须具备五大基本组成部件,包括:


       1.输入数据和程序的输入设备;(键盘、磁盘、网卡、显卡、话筒、摄像头等)


       2.输出处理结果的输出设备。(显示器、磁盘、网卡、显卡、音响等)


       3.记忆程序和数据的存储器;(内存)


       4.完成数据加工处理的运算器;(CPU)


       5.控制程序执行的控制器;(CPU)

1ecd1b2606ed46e9956a89f231c9802c.png

  从上图的结构可以看出,当输入设备获取到数据信号后,先将其转入内存,经由CPU的处理后,返还给内存,再由输出设备接收,让用户获取到相应的信息。


       总感觉这种过程有些多余,为何不直接将输入设备获取到的数据信号直接由CPU处理,然后传个输出设备呢?


       其原因是两者的存储速度相差太大,但不是说做不到实现CPU与外设打交道,设计出计算机的目的就是为了解决人类难以解决的问题以及快速解决问题的能力。以下是存储器存储速度的金字塔结构:

1ecd1b2606ed46e9956a89f231c9802c.png

内存的存取速度会直接影响计算机的运算速度,由于CPU是高速器件,但是CPU的速度是受制于内存的存取速度的,所以为了解决CPU和内存速度不匹配的问题,在CPU和内存直接设置了一种高速缓冲存储器Cache。 Cache是计算机中的一个高速小容量存储器,其中存放的是CPU近期要执行的指令和数据,其存取速度可以和CPU的速度匹配,一般采用静态RAM充当Cache

二、操作系统

1.什么是操作系统

        操作系统所处位置操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

2.操作系统的意义

对上:给用户提供稳定的、高效的、安全的运行环境;

对下:管理好软硬件资源;

1ecd1b2606ed46e9956a89f231c9802c.png

如何进行管理呢?(先描述,再组织)

接下来举一个简单的例子:

       在学校有校长、辅导员和学生,三者之前存在什么样的关系呢?校长作为管理者,辅导员作为校长决策的执行者,学生作为被管理者。

1ecd1b2606ed46e9956a89f231c9802c.png

通常都是辅导员管理着学生,校长并不会直接与学生打交道,校长在管理学生方面,是通过数据进行管理的,例如:校长想要知道每个班级的第一名的基本信息并对其奖励,辅导员就开始执行,将自己管理的班级的第一名的学生找出来,将数据发送给校长,校长接收到数据后,确认无误后,将对应的奖励分发给辅导员,再由辅导员分发给学生;这样就做到了管理学生的目的;


       实际上,校长对学生的管理是对学生数据的管理,将这些学生的数据由特定的数据结构链接起来(双链表、树),通过数据结构能够很好对学生相关信息进行增删查改。所以,管理的本质:先描述 被管理者,再对被管理者使用特定的数据结构进行组织。

1ecd1b2606ed46e9956a89f231c9802c.png

三、进程

1.基本概念

课本概念:程序的一个执行实例,正在执行的程序等

内核观点:担当分配系统资源(CPU时间,内存)的实体。

2.描述进程——PCB

实际上,我们所写的代码在运行起来就是进程,如何管理进程呢?

即先描述,再组织;

       任何进程在形成之时,操作系统要为改进程创建PCB——进程控制模块;简单的将,PCB就是一个结构体( Linux操作系统下的PCB是: struct task_struct ),里面存放了进程相关的属性信息;

3.进程和程序的区别

       首先,我们编写好的程序,在经过编译处理之后,所产生的文件(可执行程序)会放在中,当我们运行程序时,操作系统将磁盘上的文件加载到内存中,同时为它创建PCB(进程控制模块),这两个组合起来才是进程。

1ecd1b2606ed46e9956a89f231c9802c.png

4.task_struct-PCB的一种

在Linux中描述进程的结构体叫做task_struct。

task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息

5.task_struct的内容分类

1.标示符: 描述本进程的唯一标示符,用来区别其他进程。

2.状态: 任务状态,退出代码,退出信号等。

3.优先级: 相对于其他进程的优先级。

4.程序计数器: 程序中即将被执行的下一条指令的地址。

5.内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针

6.上下文数据: 进程执行时处理器的寄存器中的数据。

7.I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。

8.记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。

9.其他信息  

四、如何查看进程

1.通过系统文件查看进程

通过系统文件/proc,来查看当前所有的进程
[mlg@VM-20-8-centos lesson2]$ ls /proc/

1ecd1b2606ed46e9956a89f231c9802c.png

2.通过ps指令查看进程

       ps指令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

[mlg@VM-20-8-centos lesson2]$ ps axj//显示现行终端机下的所有进程,包括其他用户的进程

1ecd1b2606ed46e9956a89f231c9802c.png

//显示某一个进程的信息
ps axj | head -1 && ps axj | grep -v grep | grep "myproc" 

1ecd1b2606ed46e9956a89f231c9802c.png

目录
相关文章
|
16天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
43 1
|
2月前
|
资源调度 Linux 调度
Linux c/c++之进程基础
这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
48 0
|
4天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
44 13
|
11天前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
20天前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
38 4
|
19天前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
1月前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
137 4
linux进程管理万字详解!!!
|
24天前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
77 8
|
1月前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
66 1
下一篇
DataWorks