新闻详情

新闻详情

首页 / 资讯中心 / 详情

[Linux系统] 冯诺依曼体系 | 操作系统 | 进程状态

发布时间:2026/9/27 21:37:55来源:尧图网络
[Linux系统] 冯诺依曼体系 | 操作系统 | 进程状态
一、冯诺依曼体系结构绝大多数计算机都遵守冯诺依曼体系硬件被划分为五个部件输入设备键盘、鼠标、扫描仪、手写板输出设备显示器、打印机存储器即内存CPU内含运算器 控制器图示 / 数据流动规则存储器特指内存外存磁盘等不考虑缓存时CPU只能对内存进行读写无法直接访问外设外设输入/输出数据也只能通过内存读写总结所有设备都只能直接和内存打交道以 QQ 聊天为例敲键盘外设 → 数据进内存 →CPU从内存取走处理 → 结果写回内存 → 经网卡发出对方的数据则反向流经内存再送到显示器。整条链路里内存始终是中转站。二、操作系统(Operator System)操作系统的概念任何计算机系统都包含一个基本程序集合OS由两部分构成内核进程管理、内存管理、文件管理、驱动管理外壳函数库、shell等设计目的对下与硬件交互管理所有软硬件资源对上为用户程序提供良好的执行环境核心定位在整个软硬件架构中操作系统是一款纯正的搞管理的软件。理解“管理”本质只有两步——先描述被管理对象类/结构体再组织数据结构进程管理就是它的直接套用系统调用与库函数操作系统对外表现为一个整体但会暴露部分接口供上层开发使用这些接口即系统调用系统调用功能基础、对使用者要求较高于是被开发者适度封装成库方便二次开发。三、进程与 PCB概念和常用操作进程 内核数据结构task_struct 自己的程序代码和数据PCBprocess control block存储进程信息是进程属性的集合。Linux 的PCB是task_struct它会被装载到内存中。task_struct的主要内容分类含义标识符描述本进程的唯一标识符PID区别于其他进程状态任务状态、退出代码、退出信号优先级相对于其他进程的优先级程序计数器即将执行的下一条指令的地址内存指针代码、数据及共享内存块的指针上下文数据进程执行时处理器寄存器中的数据I/O 状态信息I/O 请求、分配的设备、使用的文件列表记账信息处理器时间总和、时钟数总和、时间限制等组织方式双向链表3.1 查看进程查看进程/proc目录如PID为 1 的进程看/proc/1、用户级工具ps aux和top获取标识符getpid()取PIDgetppid()取PPID例子查看进程/proc目录显示两个进程程序grep指令top指令可以看到死循环时一直在运行例子获取父子进程的标识符打印3.2 通过系统调用创建进程fork()有两个返回值父进程返回子进程PID子进程返回0因此常配合if分流父子进程代码共享、数据各自私有一份写时拷贝创建示例fork测试补充要点子进程的起点是fork()的调用点fork()的返回值告诉父子进程我是谁写时拷贝初始共享父/子进程修改时才拷贝一部分-页QA为什么fork()返回给父子进程的信息不同-父 : 子 1 : n父管理子需要获得子的信息子无需获得如何将返回值给对应进程-各返回一份给父子进程一个变量如何让if / else if同时成立-详见后续文章物理地址虚拟地址3.3 补充cwd与exe在进程中cwd是可执行程序的所在路径exe显示可执行程序的完整路径运行时在另一个窗口删除子进程程序不会被终止但会报警告结论内存中的运行程序是磁盘中的拷贝另外cwd是支持更改的需要用到chdir函数在另一个窗口查看进程信息显示cwd已被更改。前后对比如下四、进程状态内核源码中的任务状态数组是关键状态含义R(running)运行中或在运行队列里不等于正在跑S(sleeping)可中断睡眠等待事件完成D(disk sleep)不可中断睡眠通常在等待 I/O 结束T(stopped)收到SIGSTOP而暂停SIGCONT可继续运行t(tracing stop)被调试追踪而暂停X(dead)死亡状态只是返回状态任务列表中看不到Z(zombie)僵尸状态查看僵尸进程Z子进程退出后父进程未读取其退出码如未调用wait()子进程就以终止状态留在进程表中等待被读取。原因是退出状态本身需要数据来维护属于进程基本信息保存在PCB中。示例子进程结束后未被回收进入Z状态危害Z状态不退出PCB就要一直维护父进程创建大量子进程却不回收就会造成内存泄漏。孤儿进程父进程提前退出、子进程后退出该子进程被称为孤儿进程会被 1 号init/systemd进程领养并回收因此不会造成资源泄漏。示例
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Claude Code源码之核心架构拆解:从启动到运行,全流程手把手看懂 2026/9/27 22:29:38

Claude Code源码之核心架构拆解:从启动到运行,全流程手把手看懂

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
第163篇:用JADX + MCP + Claude实战还原深度加密混淆的Java程序:TaoToken统一Key接入配置与验证 2026/9/27 22:29:37

第163篇:用JADX + MCP + Claude实战还原深度加密混淆的Java程序:TaoToken统一Key接入配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
CodeBuddy、Lingma、Trae CN 的 MCP 配置位置与 TaoToken 接入骨架 2026/9/27 22:29:37

CodeBuddy、Lingma、Trae CN 的 MCP 配置位置与 TaoToken 接入骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
MCP Server开发教程:用TaoToken统一Key打通本地工具链配置 2026/9/27 22:29:30

MCP Server开发教程:用TaoToken统一Key打通本地工具链配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI Agent Harness Engineering 成本优化:低算力场景下的高效部署方案与 TaoToken 配置骨架 2026/9/27 22:29:30

AI Agent Harness Engineering 成本优化:低算力场景下的高效部署方案与 TaoToken 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
DeepSeek 开源的 Agent Harness 怎么给团队试?本地 dsh web 起在 127.0.0.1,用 cpolar 短时开放给异地同事看只读会话 2026/9/27 22:29:24

DeepSeek 开源的 Agent Harness 怎么给团队试?本地 dsh web 起在 127.0.0.1,用 cpolar 短时开放给异地同事看只读会话

DeepSeek 开源的 Agent Harness 怎么给团队试?本地 dsh web 起在 127.0.0.1,用 cpolar 短时开放给异地同事看只读会话上周想拉两个异地同事一起看一个 agent 会话跑成什么样,结果卡在一个很普通的事上:DeepSeek 官方开源的智能体框…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉