指针理解fd

fd操作=指针操作 dup等

shell

将命令转换为系统调用序列 工具的组合

普通函数的语义

call

创建一个新的activation frame,将传递的参数等放在frame中,暂挂调用方的执行并且将执行权转移给被调用方

暂挂执行imply了保存当前的内存状态

return

返回值给调用方,摧毁activation frame并且恢复调用方的运行,具体位置是调用位置之后

activation frame

存放了参数,局部变量

以及返回地址和调用方的activation frame地址,用来完成执行的切换

严格的嵌套生命周期,使得可以使用栈这种数据结构来管理frame,高效内存分配

Coroutine语义

suspend允许了不删除frame的情况下切换执行流,这破坏了严格嵌套生命周期

现在activation frame可以视为分成两部分,一部分是不需要持久存储的stack frame,一部分是需要持久存储的coroutine frame

suspend会返回控制本coroutine的handle,用于resume或destroy

destroy不会将执行流还回给上次suspend处,而是执行析构,将suspend处存活的局部变量清理,然后释放coroutine frame

线程取消

是否响应取消

如果不响应,则取消请求会等到设置为响应时再被处理

可响应时机

可异步取消 随时可取消 异步取消安全

ftok

组合文件系统设备号,inode号,和proj参数,试图生成一个唯一的key