Tock系统调用与内存管理详解
1. Tock系统调用概述
Tock进程通过系统调用向内核请求服务,并通过调度的上调用(upcall)接收信息。内核提供了七种系统调用,分别是 memop 、 readwriteallow 、 readonlyallow 、 subscribe 、 command 、 yield 和 exit 。这些系统调用都是异步的,会立即返回一个值,通常是成功或失败。若内核处理请求需要时间,无法立即响应,进程则需订阅并等待内核的上调用。
进程仅在以下三种特定情况下会被中断:
1. 时间片到期,即进程在未让出控制权的情况下执行时间超过内核允许的时长。
2. 有中断到来,内核需要处理该中断。
3. 进程出错,内核将其置于停止状态。
Tock和Linux进程状态的对应关系如下表所示:
| Tock进程状态 | Linux进程状态 |
| — | — |
| Running | Ready and Running |
| Yielded | Blocked |
| StoppedRunning | Terminated (while it was in Running) |
| StoppedYielded | Terminated (while it was in Blocked) |
| Faulted | Terminated (faulted) |
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



