pub struct Process {Show 15 fields
pub id: usize,
pub name: &'static str,
pub state: ProcessState,
pub priority: Priority,
pub stack_ptr: usize,
pub stack_mem: Vec<u8>,
pub wait_ticks: usize,
pub page_table_phys_addr: u64,
pub starvation_count: usize,
pub is_kernel: bool,
pub user_entry: usize,
pub user_stack_ptr: usize,
pub kernel_stack: Vec<u8>,
pub time_slice: usize,
pub need_resched: bool,
}Expand description
プロセス制御ブロック (PCB)。プロセスのメタデータ、実行コンテキスト、スタック情報を保持します。
Fields§
§id: usize一意のプロセスID (PID)
name: &'static strデバッグ用のプロセス名
state: ProcessState現在のプロセスの状態
priority: Priorityプロセスのスケジュール優先度
stack_ptr: usize保存されたスタックポインタの値 (コンテキストスイッチ時に書き換えられる)
stack_mem: Vec<u8>プロセスのスタックメモリ領域 (EL1スレッド用またはEL0ユーザースタック用)
wait_ticks: usizeWaiting 状態時の残りの待機チック数
page_table_phys_addr: u64プロセスに割り当てられたTTBR0ページテーブルの物理アドレス
starvation_count: usize飢餓防止のための優先度スコアに加算されるカウント
is_kernel: boolカーネル空間 (EL1) で動作するか、ユーザー空間 (EL0) で動作するかのフラグ (true: EL1, false: EL0)
user_entry: usizeEL0プロセスのエントリポイント
user_stack_ptr: usizeEL0プロセスのユーザースタックポインタ
kernel_stack: Vec<u8>EL0プロセスがトラップした際に使用するEL1カーネルスタック
time_slice: usize残りのタイムスライス (チック数)
need_resched: bool再スケジュールが必要であることを示すフラグ
Auto Trait Implementations§
impl Freeze for Process
impl RefUnwindSafe for Process
impl Send for Process
impl Sync for Process
impl Unpin for Process
impl UnsafeUnpin for Process
impl UnwindSafe for Process
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more