From a667808a2818e7a7ab46aa4040b3a26e11b5db0e Mon Sep 17 00:00:00 2001 From: zhangxinyu <840317537@qq.com> Date: Wed, 24 May 2023 10:42:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=96=87=E4=BB=B6=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch3/os/src/task/context.rs | 19 ------------------- ch3/os/src/task/mod.rs | 3 ++- ch3/os/src/task/task.rs | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 20 deletions(-) create mode 100644 ch3/os/src/task/task.rs diff --git a/ch3/os/src/task/context.rs b/ch3/os/src/task/context.rs index bfc58be..2c11a00 100644 --- a/ch3/os/src/task/context.rs +++ b/ch3/os/src/task/context.rs @@ -1,16 +1,5 @@ - -// TCB的字段, 用来保存任务的状态 -#[derive(Copy, Clone, PartialEq)] -pub enum TaskStatus { - UnInit, // 未初始化 - Ready, // 准备运行 - Running, // 正在运行 - Exited, // 已退出 -} - - // TCB的字段 用来保存cpu 在内核切换人物的时候 寄存器还有栈顶的信息, 这个结构体将来会传到 switch.S 中的汇编中 pub struct TaskContext{ ra: usize, // 保存了进行切换之后需要 跳转继续执行的地址 @@ -19,14 +8,6 @@ pub struct TaskContext{ } -// 一个任务的主体, 用来保存或者控制一个任务所有需要的东西 -#[derive(Copy, Clone)] -pub struct TaskControlBlock { - pub task_status: TaskStatus, - pub task_cx: TaskContext, -} - - diff --git a/ch3/os/src/task/mod.rs b/ch3/os/src/task/mod.rs index d541cf9..d265f93 100644 --- a/ch3/os/src/task/mod.rs +++ b/ch3/os/src/task/mod.rs @@ -1,2 +1,3 @@ mod context; -mod switch; \ No newline at end of file +mod switch; +mod task; \ No newline at end of file diff --git a/ch3/os/src/task/task.rs b/ch3/os/src/task/task.rs new file mode 100644 index 0000000..e765a47 --- /dev/null +++ b/ch3/os/src/task/task.rs @@ -0,0 +1,18 @@ +use crate::task::context::{TaskContext}; + +// TCB的字段, 用来保存任务的状态 +#[derive(Copy, Clone, PartialEq)] +pub enum TaskStatus { + UnInit, // 未初始化 + Ready, // 准备运行 + Running, // 正在运行 + Exited, // 已退出 +} + + +// 一个任务的主体, 用来保存或者控制一个任务所有需要的东西 +#[derive(Copy, Clone)] +pub struct TaskControlBlock { + pub task_status: TaskStatus, + pub task_cx: TaskContext, +} \ No newline at end of file