
简介这份实验文档围绕操作系统“任务管理器”的进程管理主题编写面向操作系统课程学习者与需要完成相关实验的计算机专业学生也适合互联网教学环境中的自学场景。实验目标明确通过终止进程、显示其他进程计数器、更改正在运行的程序的优先级等操作理解操作系统进程管理概念并学会观察系统运行的动态性能。文档包含完整的背景知识、实验目的、工具/准备说明和实验内容与步骤并提供了系统进程、服务进程、用户进程分类记录表格适合边操作边填写也可供教师直接用于实验课指导。资源本身为1个doc文件约251KB体积小巧却覆盖了“应用程序”“进程”“性能”三个选项卡的核心功能及相关知识点便于快速查阅。该文档已有1013人学习下载是操作系统实验教学中实用且易上手的参考资料。1. 实验一在做什么用Windows任务管理器看懂进程这张动态表操作系统实验里Windows任务管理器常常被当成一个“打开看一眼”的地方真正要做的进程管理实验反而没人细讲。这个实验的核心不是找到“结束任务”按钮而是把进程当成一张可以观察、记录、干预的动态数据表谁在跑、占多少CPU和内存、由哪个PID标识、能不能安全结束。做完这个实验你不光能看懂任务管理器还能把进程优先级、进程树、资源争用这些概念一一对应到界面字段上。这篇笔记把实验从头到尾拆开先立理论再给可抄的步骤和参数最后附上踩过的坑照着做能交出一份有数据的实验报告。2. 进程管理的三个基本盘PCB、状态切换与优先级实验前把理论立住2.1 进程和程序差在哪任务管理器那一行就是PCB的投影进程管理实验最容易翻车的地方是以为“进程就是打开的程序”。程序是一个躺在磁盘上的静态文件而进程是操作系统把可执行映像装入内存后创建出来的运行实体。操作系统要为每个进程维护一块核心数据结构用于记录PID、内存基址、打开的文件句柄、CPU上下文、优先级等信息。Windows里这套结构叫EPROCESSLinux里叫task_struct课程教材里统一叫PCB进程控制块。任务管理器的“详细信息”页每一行其实就是PCB里一小部分字段的可视化投影。你可以拿同一个记事本开三个窗口来验证磁盘上只有一份notepad.exe任务管理器里却有三个notepad进程PID各不相同。这说明进程是“运行实例”不是文件本身。还有一个容易被忽略的常识进程能创建前提是可执行文件能被系统装载。网上常见报错“指定的可执行文件不是此操作系统平台的有效应用程序”就是系统在装载阶段识别出PE格式或CPU架构与当前平台不匹配直接拒绝创建进程。这类进程在任务管理器里根本不会出现因为它没活到能被列出来的那一步。实验报告里写这段时建议把PCB的概念和PID的观测结果绑在一起说老师一般会重点看这个对应关系。光写“我打开记事本看到了进程”是拿不到分的写“进程是PCB的可见投影PID是最直观的标识”才算踩在点上。2.2 进程状态切换在实验里怎么观察就绪、运行与阻塞理论上进程有三态就绪、运行、阻塞。Windows任务管理器没有提供“进程状态”这一列实验怎么验证状态切换我的做法是换指标——把“CPU占用率”和“内存占用”组合起来判断。运行态的进程CPU占用率明显大于0且随操作波动就绪态的进程在排队等CPU表现为CPU占用率忽高忽低平均不高但系统整体CPU偏忙阻塞态的进程主动让出CPU等外部事件CPU占用率接近0比如一个没在干活的记事本正卡在等待键盘消息上。实验动作可以这样设计打开记事本什么都不输记录CPU占用率基本是0它阻塞在消息等待上然后按住一个键连续输入CPU占用率立刻抬起来这时它切到运行态。这个对比在报告里很好写一行数据变化就能对应一个理论状态。要提醒的是任务管理器里看到的所有百分比都是瞬时采样值想看得更准可以在“查看→更新速度”里把刷新速度从“低”调到“高”但这会让任务管理器自身更占CPU观察完记得调回去。提示任务管理器“进程”页显示的CPU占用率是当前瞬时值“详细信息”页的CPU列则是累计CPU时间两者用途完全不同写报告时别混用。2.3 优先级、线程与Linux对比任务管理器字段背后的调度逻辑任务管理器“详细信息”页右键任意进程“设置优先级”子菜单里有六个档位实时、高、高于正常、正常、低于正常、低。这六档对应Windows的调度优先级体系数值越高线程被调度器选中的概率越大。实验里有个很直观的验证方法开两个CPU密集型的进程一个设成“高”一个设成“低于正常”观察两个进程在任务管理器里的CPU占用率分配差异。常见的CPU密集型实验对象是自己写一个死循环空转的小程序或者用浏览器持续播放视频。注意“实时”优先级不要碰它可能让鼠标键盘的输入线程都抢不到CPU整个系统直接卡死——这是实验里最危险的一个按钮。线程的概念也在这个页面里有落脚点每个进程至少一个线程任务管理器可以添加“线程数”列。Windows的调度单位是线程不是进程所以“CPU”列统计的是该进程所有线程消耗的CPU时间总和。如果课程要求做横向对比可以顺带提Linux操作系统下的等价做法Linux用ps和top观察进程用nice/renice调整优先级调度策略和优先级数值范围跟Windows不一样。对比项Windows任务管理器Linux命令行进程标识PIDPID查看动态列表性能页top查看静态快照详细信息页ps aux调整优先级右键-设置优先级nice / renice终止进程结束任务kill优先级调整不会立即生效需要等调度器走完当前时间片周期。实验设计时要留出至少3到5秒的观察窗口别点完就截图那基本看不出差异。3. 在Windows任务管理器里跑通进程管理实验标签页、列字段与操作参数3.1 打开任务管理器的四种方式哪种最适合写进实验报告任务管理器的打开方式很多常见的是四种。第一种快捷键CtrlShiftEsc直接打开任务管理器最快第二种按CtrlAltDelete再选“任务管理器”系统无响应时也能用第三种右键任务栏空白处选择“任务管理器”第四种按WinR打开运行对话框输入taskmgr回车。前三种适合平时用第四种最适合写进实验报告因为它是一条可复现的命令。:: 从命令行启动任务管理器 taskmgrtaskmgr.exe位于C:\Windows\System32\目录下在运行对话框、命令提示符和PowerShell里都能直接调用。Win11的任务管理器改成了侧边栏布局标签页从顶部挪到了左侧但核心页面的名字没变进程、性能、应用历史记录、启动、用户、详细信息、服务。做进程管理实验只需要用到“性能”和“详细信息”两个页面其它标签页可以不管。有些实验指导书会让你用CtrlAltDelete进安全界面再点任务管理器那是为了绕开explorer卡死的情况。正常实验环境里用taskmgr命令行更干净也方便在实验报告“工具准备”一节里交代环境。3.2 把“详细信息”页配置成实验主战场列字段怎么选Win10和Win11的任务管理器默认打开“进程”页这个页面按应用分组一个记事本窗口对应一个“应用”条目把多个相关进程折叠在一行里不适合做进程级观察。做实验要切到“详细信息”页那里一进程一行一列一个字段。右键列头把下面几列打开PID、CPU、内存、线程数、描述、路径、用户名。“CPU”列显示的是该进程累计消耗的CPU时间秒不是瞬时占用率“内存”列对应工作集是进程当前驻留在物理内存里的页面大小“线程数”帮助区分多线程进程“路径”列能确认这个进程从哪个目录启动排查来历不明的进程时特别有用。选中“PID”列头点击排序实验时找目标进程就很方便。关键字段的含义整理成表写报告时直接引用字段含义实验用途PID进程标识系统内唯一可复用定位进程、配合taskkillCPU进程自启动起累计CPU时间秒计算增量衡量忙碌程度内存工作集驻留物理内存的页面数观察内存占用变化线程数进程内线程个数对照线程概念路径可执行文件所在位置核实进程来源补充一个容易踩的细节“内存”列显示的是工作集不是进程总共申请的虚拟内存。一个进程可以申请很大的虚拟地址空间但只有真正被访问的页面才会进入工作集。实验里看到的内存数字涨跌反映的是物理内存驻留情况变化不是进程“总共用了多少内存”写报告别用错概念。3.3 五步实验动作基线、启动、观察、干预、收尾下面这套动作是把实验跑了几轮后固定下来的照着做能拿到一份完整数据。步骤1记录基线。开机进桌面后别急着操作等1到2分钟让后台服务稳定下来。打开任务管理器记下进程总数和CPU占用率的稳态值。这一步叫基线记录没有基线后面所有“变化”都无法量化。步骤2启动实验对象。运行notepad切到“详细信息”页点击PID列头排序找到新出现的notepad.exe记录它的PID、CPU、内存、线程数四项。此时进程刚创建CPU累计时间几乎为0。步骤3观察运行态。往记事本里粘贴一段长文本连续滚动几秒再停下来观察“CPU”列数字向上跳动。记下操作前后的CPU累计时间两次的差值就是这段操作消耗的CPU时间。用增量而不是瞬时百分比是写报告不被质疑的关键。步骤4干预优先级。右键notepad.exe选择“设置优先级→高于正常”继续重复步骤3的滚动操作对比优先级调整前后的CPU增量变化。如果环境允许再启动一个CPU密集程序做参照对比效果更明显。步骤5结束与复验。右键notepad.exe选“结束任务”确认进程从列表里消失。再次启动记事本观察新进程的PID跟刚才是否一样。Windows的PID会循环复用实验里你会看到新PID要么继续递增要么直接跳回一个较小的数字。把这个现象记下来第6章会专门讲怎么把它写成验证结论。每操作一步建议用下面的PowerShell命令把进程快照到文件免得界面数字一闪而过# 把当前所有进程的关键字段导出到CSV作为实验原始记录 Get-Process | Select-Object Id, ProcessName, CPU, WorkingSet, Path | Export-Csv -Path .\snapshot.csv -NoTypeInformation -Encoding UTF8这条命令里Id是PIDProcessName是进程名CPU是进程累计CPU时间单位秒WorkingSet是工作集内存单位字节Path是可执行文件路径。把生成的CSV跟实验报告一起交数据说服力比单纯截图高一个档次。4. 用命令行把实验数据补齐tasklist、taskkill与端口反查PID4.1 tasklist把“详细信息”页导出成报告素材任务管理器虽然能看但截图不方便做统计。命令行自带的tasklist输出格式固定便于写进实验报告。它是实验里最该先掌握的命令功能几乎就是“详细信息”页的命令行版。:: 输出所有进程的详细信息包含窗口标题、会话名、用户名存成CSV tasklist /v /fo csv process_list.csv :: 按进程名过滤只看记事本 tasklist /fi imagename eq notepad.exe/v是详细模式会多输出用户名、窗口标题等字段/fo csv指定输出格式方便Excel打开做统计/fi是过滤器语法是“字段名 关系词 值”imagename是映像名eq是等于。过滤器里的值不需要加引号但整个过滤条件必须用双引号包起来。注意/v模式下输出行数可能很长中文用户名或窗口标题里有逗号时CSV会多出转义引号Excel打开正常用文本编辑器看会有点乱。这些参数组合起来能解决很多问题。比如实验报告要求列出“当前会话下的所有用户进程”就可以用tasklist /v /fo csv加上“用户名”字段筛选。命令行输出比界面截图更规范也方便用diff工具对比前后两次快照。4.2 taskkill安全结束进程和结束进程树实验里结束进程不总是用任务管理器右键命令行更可控也更能体现“进程管理”的本质——你是在通过系统调用干预进程生命周期而不是点一个图形按钮。:: 按PID结束进程/t同时结束它的全部子进程/f强制终止 taskkill /pid 12345 /t /f :: 按映像名结束某个程序用于清理实验残留 taskkill /fi imagename eq notepad.exe不带/f时系统先向进程发送关闭消息程序可以保存数据后自行退出带/f表示强制终止进程没有机会做清理可能造成数据丢失。实验时推荐先不带/f试一次观察程序能不能自己退出这就是“友好关闭”和“强制终止”的区别写报告时可以做对比。但我必须要说实际实验里notepad这类程序对关闭消息响应很快几乎看不出区别换成一个卡死的进程不带/f的taskkill会一直等在那里这时才轮到/f上场。/t参数值得单独说明结束进程树会把目标进程的所有子进程一并结束。Windows服务进程经常是父进程带一堆子进程只结束父进程子进程会变成孤儿继续跑用/t更干净。代价是如果父进程下有重要的子任务会被一起带走实验环境里问题不大生产环境慎用。4.3 端口和进程怎么互相反查顺手解决“关闭端口号”的问题进程管理不只在任务管理器里端口占用同样要回到PID上来。很多人搜“windows 关闭端口号”实际场景是启动服务时提示端口被占用想知道是哪个进程占着然后把它清掉。这个操作本质就是进程管理的延伸——端口不是独立存在的它绑定在某个进程上。:: 查看端口8080的占用情况-a显示所有连接-n用数字地址-o显示PID netstat -ano | findstr :8080输出结果最后一列就是占用该端口的PID。拿到PID后可以用taskkill /pid结束它或者切回任务管理器“详细信息”页按PID定位到具体进程先确认是不是你想杀的东西再动手。命令行“查端口→查PID→定位进程→结束进程”这条链路在实验报告里可以作为“扩展验证”写一段它证明你不只会点按钮还理解进程标识在网络层面的应用。注意占用端口的不一定是普通程序也可能是Windows系统服务。杀之前先在任务管理器里确认进程名和路径别把系统服务当毒瘤杀完然后发现某个功能起不来了。4.4 PowerShell采样脚本给实验装一台“自动记录仪”任务管理器的刷新频率有限人眼盯不住长时间变化。给实验加一个自动采样脚本是性价比最高的改进。这里用PowerShell写一个简单的循环采样器。# 每2秒采样一次Notepad的CPU和内存以追加方式写入CSV按CtrlC停止 while ($true) { Get-Process notepad -ErrorAction SilentlyContinue | Select-Object {nTime;e{Get-Date}}, Id, CPU, WorkingSet | Export-Csv -Path .\sample.csv -Append -NoTypeInformation -Encoding UTF8 Start-Sleep -Seconds 2 }脚本思路是死循环采样Get-Process拿进程对象Select-Object构造一条包含时间戳、PID、CPU、内存的记录Export-Csv用-Append追加到同一个文件Start-Sleep控制采样间隔。加-ErrorAction SilentlyContinue是为了在进程被结束后不中断脚本还能继续跑。采样间隔一般用2秒就够间隔太小会让脚本自身干扰CPU统计实验结论就不干净了。这套脚本配合tasklist可以处理两类数据tasklist给静态全量快照PowerShell给动态时间序列。实验报告的“数据记录”部分放一张CSV片段截图再画一条CPU增量趋势线实验深度立刻不一样。5. 任务管理器实验常见问题排查打不开、假死、杀错进程之后怎么办5.1 任务管理器打不开或闪退怎么处理现象按CtrlShiftEsc没有反应或者窗口打开后立刻闪退Win11上尤其常见。原因最常见是explorer外壳卡住或任务管理器依赖的系统组件损坏、账户权限受限也有Win11旧版本任务管理器自身偶发崩溃的情况。解决先直接运行taskmgr.exe排除快捷键被占用的问题如果闪退重启explorer进程在“运行”里输入explorer.exe回车还不行就以管理员身份打开命令提示符执行sfc /scannow修复系统文件。终极兜底方案是改用微软Sysinternals的Process Explorer它查看进程父子关系、命令行、句柄都很方便实验记录一样能交。不过这是备用路径正常实验环境里taskmgr足够用了没必要一上来就上重型工具。5.2 实验时把explorer.exe结束掉桌面没了现象看到explorer.exe顺手右键“结束任务”结果任务栏、桌面图标、开始菜单瞬间全部消失。原因explorer.exe是Windows的外壳进程负责绘制桌面和任务栏它不是普通应用进程属于系统关键进程。解决任务管理器里点“文件→运行新任务”输入explorer.exe回车桌面就回来了。如果任务管理器也被关了按CtrlAltDelete还能调出来。我的建议是实验对象只用自己启动的程序记事本、计算器、自己写的小程序都行不要拿系统进程当练习靶子。这个坑基本每个人都踩过一次踩完就长记性了。5.3 任务管理器里出现大量同名Windows主进程现象打开任务管理器“详细信息”页里几十个svchost.exe或者一堆同名进程第一反应是中毒了。原因svchost.exe是Windows服务宿主进程多个系统服务可以共享同一个svchost进程也可能每个服务独占一个所以出现十几个是正常现象。其它同名进程可能是程序的多实例设计比如浏览器一个标签页一个进程。解决别见一个杀一个。在“详细信息”页右键选择“按名称分组”先看分组情况想确认某个svchost承载了哪些服务用wmic查看它的命令行参数。虽然Win11新版本里wmic默认被弃用但多数系统上还能用:: 查看进程PID对应的完整命令行确认svchost承载的服务 wmic process where processid12345 get processid,commandline如果系统提示wmic不是可用命令换成PowerShell的Get-CimInstance更通用# 用CIM查询进程的PID和命令行替代已弃用的wmic Get-CimInstance Win32_Process -Filter ProcessId12345 | Select-Object ProcessId, CommandLine5.4 进程结束不掉可能不是权限问题而是父进程问题现象右键“结束任务”进程消失几秒后又出现了或者一直提示“拒绝访问”。原因两类情况最多。第一进程以管理员权限运行当前任务管理器没有以管理员身份打开权限不够第二进程是个子进程被父进程监控着杀掉后父进程立刻拉起一个全新的实例。解决在任务管理器里以管理员身份重启再执行结束任务如果还不行用命令行加/f强杀再不行就查父进程找到是谁把它反复拉起来的:: 查看进程的父进程PID顺藤摸瓜找到“复活”它的元凶 wmic process where processid12345 get parentprocessid拿到父进程PID后在任务管理器里定位父进程先结束父进程再结束子进程。但也别矫枉过正有些服务进程被Windows服务控制管理器主动重启是正常机制做实验避开这类进程就好。5.5 调试器退出仿真就卡住只能靠任务管理器收尾现象用Keil这类嵌入式调试工具退出仿真时整个界面卡死按钮没反应怎么点都关不掉最后只能调出任务管理器强制结束。原因调试软件的运行进程和调试器通信握手未完成就被中断线程卡在等待事件上界面失去响应。这是很多仿真调试工具的常见毛病不是任务管理器本身的问题。解决调出任务管理器在“详细信息”页找到对应工程名的进程右键“结束任务”必要时用taskkill /f兜底。这个场景是任务管理器“最后一道后悔药”价值的典型体现——当正常退出路径失效时强制终止是唯一能拿回控制权的办法。实验笔记里把它记一笔以后真遇到了不用慌。6. 让实验数据可复现PID复用验证、CPU增量计算与快照记录实验报告写得再漂亮数据不能复现就会被质疑。我自己交实验前会做三个自我检查。第一PID复用验证。任务管理器里PID不是一直变大的。Windows的PID用完后会循环复用所以第二次启动记事本新PID很可能不是旧PID加1而是跳回一个早就用过的数字。把这个观察写成“PID生命周期”段落比单纯记录“PID是多少”更有深度。第二CPU增量计算。任务管理器“CPU”列是累计时间截图里看到的是从进程启动到现在的总秒数。实验结论应该用“结束时的CPU值减去开始时的CPU值”得到的是本次操作真正消耗的CPU时间。如果拿一个绝对值下结论数据会受进程启动时长影响结论站不住。第三快照记录。我每次动手前都先跑一次第4章的PowerShell快照脚本把操作前的进程全景存成CSV。操作完再拍一次两次对比谁被创建了、谁被结束了、谁的CPU增量最大一目了然。这个习惯救过我好几次尤其实验做到中途被打断回头看一眼快照文件就能接着写。带实验时还有个习惯要求学生至少提供一个“结束任务前后”的对照表格哪怕只记录PID和内存两列。别小看这个表格——它能把“我点了结束任务按钮”这种主观陈述变成“该进程PID从3188消失内存占用从12MB归零”这种可验证的事实。数据比印象可靠这条原则放在操作系统实验里同样成立。希望帮到你。本文还有配套的精品资源点击获取