cqut操作系统实验:进程控制与任务结构探索

需积分: 9 0 下载量 139 浏览量 更新于2024-08-25 收藏 907KB PPT 举报
本次实验旨在深入理解操作系统中的进程概念,以及掌握进程的结构、状态和控制。主要内容包括以下几个方面: 1. 进程结构与任务_struct: 实验首先要求学生查看Linux中的`task_struct`结构,它是进程控制块(PCB)的具体实现,用于存储进程的基本信息,如程序代码段、数据段的地址,以及进程状态等。`task_struct`是Linux内核中一个512字节大小的全局数组`task`中的一个元素,每个进程都有自己的`task_struct`实例。新进程在创建时,内核会在系统空间动态分配内存并创建对应的`task_struct`。 2. 进程状态的理解与控制: - 进程状态:Linux中定义了五种基本的进程状态,包括TASK_RUNNING(可运行态)、TASK_INTERRUPTIBLE(可中断等待态)、TASK_UNINTERRUPTIBLE(不可中断等待态)、TASK_ZOMBIE(僵死态)和TASK_STOPPED(停止态)。理解这些状态有助于分析进程行为和调试。 - 进程控制命令:学生将学习使用`ps`、`top`和`pstree`等命令来查看和监控进程状态。`ps`用于查看当前用户空间的进程列表,`top`则提供动态的进程状态视图,`pstree`则以树状图形式展示进程关系。 - 进程控制操作:实验涉及到使用`sleepx`暂停进程执行,`kill-9`强制结束进程,`command&`实现后台执行,以及`jobs`查看后台任务。 3. 进程标识符与函数: 学生将研究进程标识符(PID),它是每个进程的唯一标识,通过`<unistd.h>`和`<sys/types.h>`头文件中的函数进行管理和操作,如获取和设置PID等。 4. 进程创建与交互示例: 实验的核心环节包括编写两个程序,第一个程序利用`fork()`创建两个子进程,每个进程在其运行时显示自身PID及父进程PID,观察进程的创建和状态变化。第二个程序扩展了第一个程序,让父进程在创建子进程前后分别执行`ps -af`,展示进程在运行过程中的实时状态变化。 通过这些实验内容,学生可以深入了解Linux操作系统中进程的工作原理,掌握进程控制的关键技术和命令,提升对并发执行环境的理解和操作能力。同时,这些实践经验将有助于他们在后续的学习和工作中更好地进行系统设计和问题解决。