【操作系统】探究进程奥秘:显示进程列表的解密与实战

🌈个人主页:Sarapines Programmer
🔥 系列专栏:Linux专栏:《探秘Linux | 操作系统解密》
⏰诗赋清音:月悬苍穹泛清辉,梦随星河徜徉辉。情牵天际云千层,志立乘风意自飞。

目录

🌌1 初识Linux OS

🌌2 显示进程列表

🌍2.1 研究目的

🌍2.2 研究内容

🌍2.3 研究步骤

🌍2.4 研究过程

🌍2.5 研究心得

📝总结


🌌1 初识Linux OS

Linux是一种开源的Unix-like操作系统内核,它是基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。Linux内核最初是由芬兰程序员Linus Torvalds在1991年创建的,之后成为自由软件和开源社区的一个主要项目。

以下是Linux操作系统的一些主要特点和组成部分:

  1. 内核(Kernel): Linux内核是操作系统的核心,它管理系统资源,如处理器、内存、设备驱动程序等。Linus Torvalds最初编写了Linux内核,它是Linux操作系统的基础。

  2. Shell(命令解释器): Linux操作系统使用命令行界面(CLI),用户与系统交互通过Shell。用户可以通过输入命令执行各种任务,管理文件、进程、权限等。常见的Shell包括Bash(Bourne Again SHell)和Zsh。

  3. 文件系统: Linux支持多种文件系统,包括Ext4、XFS、Btrfs等。文件系统负责管理存储设备上的文件和目录,以及文件的权限、所有权等信息。

  4. 用户界面: 虽然Linux以CLI为主,但也支持图形用户界面(GUI)。常见的Linux桌面环境有GNOME、KDE、XFCE等,它们提供了直观的用户体验。

  5. 软件包管理系统: 大多数Linux发行版都有自己的软件包管理系统,用于安装、更新和删除软件。常见的包管理工具有APT(Debian/Ubuntu)、YUM(Red Hat/CentOS)、Pacman(Arch Linux)等。

  6. 网络功能: Linux具有强大的网络功能,支持各种网络协议和服务。它可以作为服务器运行各种网络服务,如Web服务器(Apache、Nginx)、邮件服务器(Postfix、Sendmail)、文件服务器(Samba)等。

  7. 多用户和多任务: Linux是一个多用户系统,多个用户可以同时访问同一台机器。它也是一个多任务系统,可以同时运行多个进程。

  8. 安全性: Linux以安全性而闻名,系统管理员可以设置用户权限、访问控制列表(ACLs)等来确保系统的安全性。

  9. 开源和自由: Linux是开源软件,其源代码可以被任何人查看、修改和分发。大多数Linux发行版是免费提供的,用户可以自由选择、使用和分发。

  10. 发行版(Distribution): 由于Linux内核是开源的,不同的组织和社区创建了各种Linux发行版,例如Ubuntu、Debian、Fedora、CentOS、Arch Linux等。每个发行版都有自己的特点和包管理系统。

总体而言,Linux操作系统是一个强大、灵活且可定制的操作系统,广泛应用于服务器、嵌入式系统、超级计算机等各种领域。


🌌2 显示进程列表

🌍2.1 研究目的

  1. 掌握进程结构及进程管理原理:理解进程结构是深入研究操作系统的基础。进程是程序的执行实体,了解其结构包括进程控制块、程序计数器、寄存器等要素。同时,深入了解进程管理原理,如进程的创建、调度、同步和通信,是为了有效地协调和控制各个进程,确保系统资源的合理利用。

  2. 进一步了解用户空间和内核空间的概念:用户空间和内核空间是操作系统的关键概念。用户空间是给用户程序提供的独立内存空间,而内核空间是操作系统内核运行的特权空间。通过研究显示进程列表,可以更深入地理解用户空间和内核空间之间的切换机制,以及用户程序和操作系统内核之间的交互方式。

  3. 加深对进程调度算法的理解:进程调度算法直接影响系统的性能和响应速度。通过研究显示进程列表,可以深入了解不同的进程调度算法,如先来先服务(FCFS)、最短作业优先(SJF)、轮转法(Round Robin)等。了解这些算法的优缺点,有助于优化系统的性能和资源利用效率。

  4. 探讨进程间通信和同步机制:多个进程之间的通信和同步是操作系统设计中的关键问题。通过研究显示进程列表,可以更深入地了解进程间通信的方式,如共享内存,以及同步机制的实现,如信号量、互斥锁等。这有助于确保进程间协同工作的正确性和稳定性。


🌍2.2 研究内容

  1. 进程列表的获取和展示: 研究如何在操作系统中获取和展示当前运行的进程列表。这包括了理解系统调用和API,以及使用相应的工具或命令行来检索有关正在运行进程的信息。了解进程的状态、PID(进程标识符)、CPU利用率等关键信息是这个方面的核心内容。

  2. 进程调度和优先级: 深入研究操作系统是如何进行进程调度的,包括进程的创建、暂停、恢复和终止等操作。了解进程调度算法和优先级策略,以及它们如何影响系统性能和响应时间,是理解操作系统中进程列表管理的重要组成部分。

  3. 进程通信和同步: 研究进程之间的通信和同步机制,以确保它们能够有效地协同工作。这可能涉及到共享内存、消息传递、信号和同步原语等概念。了解这些机制有助于理解进程列表中的多任务协作,以及如何避免竞态条件和死锁等问题。


🌍2.3 研究步骤

1.使用vi /usr/src/linux-2.4.20-8/include /linux/sched.h查看task_struct结构中的成员变量,后续显示的变量名称可在此处找到.

2.参考ppt给定源码,根据task_struct结构中找出的十个成员变量通过指针指向,并使用%字符限制显示格式(此处需要在task_struct结构中提前记录变量所属类型和变量名)

3.输入gcc -c –I/usr/src/linux-2.4.20-8/include –Wall xxx.c进行编译,并使用ls查看编译成功显示xxx.o文件.

4.输入insmod xxx.o进行挂载,显示挂载成功.

5.输入dmesg查看日志信息显示十列,其中第一列为变量名.

6.输入rmmod xxx取消挂载,显示Quit等信息.


🌍2.4 研究过程


🌍2.5 研究心得

  1. 深入理解用户空间和内核空间: 通过本次试验,我加深了对用户空间和内核空间的理解。特别是在研究进程结构和管理原理时,我意识到这两个空间的界限对于操作系统的正常运行至关重要。了解了task_struct结构体的成员变量,并发现进程通过双向循环链表连接,这进一步加深了我对用户空间和内核空间交互的认识。

  2. 掌握进程结构及管理原理: 在课程设计中,我通过查询task_struct结构体,深入了解了进程的结构和管理原理。了解到进程通过task_struct的next_task和prev_task成员变量形成链表,而通过指针操作,可以灵活地管理和控制进程。这为我理解操作系统中进程管理的底层机制提供了实际案例和经验。

  3. 挑战和优化显示格式: 在进行dmesg显示的表头格式设置时,我面临了一些挑战,特别是在限定格式时遇到了显示不全的问题。我通过采用空格限制和调整%限定符的方式,虽然较为笨拙但在不断的尝试中,我找到了较为美观和有效的显示格式。这过程中,我也学到了通过编译和挂载等方式进行实时调试和优化的重要性,为后续的实际项目开发积累了经验。


📝总结

Linux操作系统的领域就像一片未被勘探的信息大海,引领你勇敢踏入开源系统的神秘领域。这是一场独特的学习冒险,从基本概念到系统架构,逐步揭示更深层次的操作系统原理、命令行工具和高级系统管理的奥秘。

渴望挑战Linux操作系统的学习路径和掌握系统管理技术?不妨点击下方链接,一同探讨更多Linux操作系统的奇迹吧。我们推出了引领趋势的💻 Linux专栏:《探秘Linux | 操作系统解密》,旨在深度探索Linux的实际应用和创新。🌐🔍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/300647.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ImageJ图像滤波基础

文章目录 滤波简单滤波器卷积滤波Unsharp MaskTop Hat ImageJ系列:安装与初步💎灰度图像处理 滤波 预设滤波器 ImageJ的Process菜单提供了诸多图像滤波器,其中大部分方法均可定制参数,但也提供了一些已经预设参数的处理方法。 …

Visual Studio2022配置ReSharper C++ 常用设置

如需安装免费的可以在下面留言,看到即回复 文章目录 Visual Studio2022配置ReSharper C 常用设置配置Visual Studio2022,使其能够按回车进行补全配置ReSharper C 设置自动弹出配置ReSharper C 的快捷键ReSharper C 去掉注释拼写使用中文注释 如何关闭新版…

2007年AMC8数学竞赛中英文真题典型考题、考点分析和答案解析

今天,我们来继续研究AMC8竞赛的真题。通过反复研究历年真题,不仅可以掌握AMC8这个竞赛的命题规律和常见考点,通过真题的详细解析可以建立自己的解题思路、举一反三,还可以通过做真题不断发现自己的薄弱点查漏补缺。 今天我们来看看…

FinGPT:金融大语言模型 | 开源日报 No.127

verdaccio/verdaccio Stars: 15.0k License: MIT Verdaccio 是一个轻量级的 Node.js 私有代理仓库。 以下是 Verdaccio 的核心优势和关键特性: 零配置:无需复杂设置即可快速启动私有 npm 注册表。本地化管理:通过内置小型数据库进行简单而…

Nature | Baker团队用AI设计出史上最高互作强度的蛋白质

蛋白质是生命的基础,是生命功能的主要执行者,其结构与功能由氨基酸序列所决定。蛋白质设计是指对新蛋白质分子进行人为的合理设计,旨在设计新的活性,行为或目的,并增进对蛋白质功能的基本了解。可以从头开始设计蛋白质…

蓝桥杯备赛 day 1 —— 递归 、递归、枚举算法(C/C++,零基础,配图)

目录 🌈前言 📁 枚举的概念 📁递归的概念 例题: 1. 递归实现指数型枚举 2. 递归实现排列型枚举 3. 递归实现组合型枚举 📁 递推的概念 例题: 斐波那契数列 📁习题 1. 带分数 2. 反硬币 3. 费解的…

12.25

led.c #include "led.h" void all_led_init() {RCC_GPIO | (0X3<<4);//时钟使能GPIOE_MODER &(~(0X3<<20));//设置PE10输出GPIOE_MODER | (0X1<<20);//设置PE10为推挽输出GPIOE_OTYPER &(~(0x1<<10));//PE10为低速输出GPIOE_OSPEED…

【深度学习目标检测】十一、基于深度学习的电网绝缘子缺陷识别(python,目标检测,yolov8)

YOLOv8是一种物体检测算法&#xff0c;是YOLO系列算法的最新版本。 YOLO&#xff08;You Only Look Once&#xff09;是一种实时物体检测算法&#xff0c;其优势在于快速且准确的检测结果。YOLOv8在之前的版本基础上进行了一系列改进和优化&#xff0c;提高了检测速度和准确性。…

C# 读取Word表格到DataSet

目录 功能需求 Office 数据源的一些映射关系 范例运行环境 配置Office DCOM 关键代码 组件库引入 ​核心代码 杀掉进程 总结 功能需求 在应用项目里&#xff0c;多数情况下我们会遇到导入 Excel 文件数据到数据库的功能需求&#xff0c;但某些情况下&#xff0c;也存…

深圳锐科达SIP矿用电话模块SV-2801VP

深圳锐科达SIP矿用电话模块SV-2801VP 一、简介 SV-2800VP系列模块是我司设计研发的一款用于井下的矿用IP音频传输模块&#xff0c;可用此模块打造一套低延迟、高效率、高灵活和多扩展的IP矿用广播对讲系统&#xff0c;亦可对传统煤矿电话系统加装此模块&#xff0c;进行智能化…

OpenCV之图像匹配与定位

利用图像特征的keypoints和descriptor来实现图像的匹配与定位。图像匹配算法主要有暴力匹配和FLANN匹配&#xff0c;而图像定位是通过图像匹配结果来反向查询它们在目标图片中的具体坐标位置。 以QQ登录界面为例&#xff0c;将整个QQ登录界面保存为QQ.png文件&#xff0c;QQ登…

B/S和C/S的区别和联系

B/S和C/S的区别和联系 1 B/S2 C/S3 B/S和C/S区别4 B/S和C/S联系 1 B/S B/S&#xff08;Brower/Server&#xff09;架构&#xff0c;也称为B/S结构或B/S模式&#xff0c;是Web兴起后的一种网络结构模式。在这种模式下&#xff0c;Web浏览器成为客户端最主要的软件。系统功能实现…