Expand description
教程阅读建议:
_start展示用户程序最小运行时(初始化控制台、堆、调用 main);- 其余辅助函数(sleep/pipe_*)展示了常见 syscall 组合用法。
Modules§
- native
- 非 riscv64 架构的 stub 实现。
Macros§
Structs§
- Atomic
Stats - 共享统计器。
- ClockId
- 时钟类型标识(与
clock_gettime等接口配合使用)。 - Fair
RwLock - 公平读写锁。
- Kernel
Metric Snapshot - 内核计数器快照。
- Open
Flags - Reader
Prefer RwLock - 读者优先读写锁。
- Signal
Action - 信号处理函数的定义
- Stat
- 文件状态信息
- Stat
Mode - 文件类型标志
- Stats
Snapshot - 统计快照。
- Syscall
Id - 系统调用号。
- Ticket
Spin Lock - 公平 ticket spinlock。
- Time
Spec - 秒 + 纳秒表示的时间结构。
Enums§
- Signal
No - 信号编号。
Constants§
- LAB_
TICK_ REQUEST - t2l4 实验使用的虚拟 tick 请求号。
- MAX_SIG
- 最大的信号编号
- STDDEBUG
- 标准错误/调试输出文件描述符。
- STDIN
- 标准输入文件描述符。
- STDOUT
- 标准输出文件描述符。
- T2L5_
TRACE_ GET_ BLOCKED_ SYNC - t2l5 trace 请求:读取同步阻塞次数。
- T2L5_
TRACE_ GET_ CONTEXT_ SWITCHES - t2l5 trace 请求:读取上下文切换次数。
- T2L5_
TRACE_ GET_ WAKEUPS - t2l5 trace 请求:读取同步唤醒次数。
- T2L5_
TRACE_ RESET_ METRICS - t2l5 trace 请求:清零内核计数器。
Functions§
- _start
- busy_
spin - 用纯计算制造一个可重复的 CPU burst。
- clock_
gettime - 获取时钟时间。
- close
- 关闭文件描述符。
- condvar_
create - 创建条件变量。
- condvar_
signal - 唤醒等待条件变量的线程。
- condvar_
wait - 等待条件变量。
- condvar_
wait_ contended - 包装
condvar_wait,返回是否发生过阻塞。 - count_
syscall - enable_
deadlock_ detect - 启用死锁检测。
- exec
- 执行新程序。
- exit
- 退出当前进程。
- fork
- 创建子进程。
- fstat
- 获取文件状态。
- get_
time - getchar
- getpid
- 获取当前进程 ID。
- gettid
- 获取当前线程 ID。
- kernel_
metrics - 读取内核计数器。
- kill
- 向进程发送信号。
- lab_
tick - 主动向内核发送一个“虚拟时钟 tick”。
- link
- 创建一个文件的一个硬链接。
- mmap
- 映射内存。
- munmap
- 取消内存映射。
- mutex_
create - 创建互斥锁。
- mutex_
lock - 获取互斥锁。
- mutex_
lock_ contended - 包装
mutex_lock,返回是否发生过阻塞。 - mutex_
unlock - 释放互斥锁。
- now_us
- 读取当前时间(微秒)。
- open
- 打开文件。
- pipe
- 创建管道
- pipe_
read - 从管道读取数据 返回实际读取的总字节数,负数表示错误
- pipe_
write - 向管道写入数据 返回实际写入的总字节数,负数表示错误
- read
- 从文件描述符读取数据。
- reset_
kernel_ metrics - 清零内核计数器。
- sbrk
- 调整进程堆大小
- sched_
yield - 主动让出 CPU。
- semaphore_
create - 创建信号量。
- semaphore_
down - 获取信号量(P 操作)。
- semaphore_
down_ contended - 包装
semaphore_down,返回是否发生过阻塞。 - semaphore_
up - 释放信号量(V 操作)。
- set_
priority - 设置进程优先级。
- sigaction
- 设置信号处理函数。
- sigprocmask
- 设置信号掩码。
- sigreturn
- 从信号处理函数返回。
- sleep
- spawn
- 创建并运行一个新进程。
- thread_
create - 创建新线程。
- trace
- 记录系统调用。
- trace_
read - trace_
write - unlink
- 取消一个文件路径到文件的链接。
- wait
- 等待任意子进程退出。
- waitpid
- 等待指定子进程退出。
- waittid
- 等待指定线程退出。
- write
- 向文件描述符写入数据。