8.16 练习

  1. 为什么要在ballocpanic?xv6可以恢复吗?
  2. 为什么要在iallocpanic?xv6可以恢复吗?
  3. 当文件用完时,filealloc为什么不panic?为什么这更常见,因此值得处理?
  4. 假设在sys_link调用iunlock(ip)dirlink之间,与ip对应的文件被另一个进程解除链接。链接是否正确创建?为什么?
  5. create需要四个函数调用都成功(一次调用ialloc,三次调用dirlink)。如果未成功,create调用panic。为什么这是可以接受的?为什么这四个调用都不能失败?
  6. sys_chdiriput(cp->cwd)之前调用iunlock(ip),这可能会尝试锁定cp->cwd,但将iunlock(ip)延迟到iput之后不会导致死锁。为什么不这样做?
  7. 实现lseek系统调用。支持lseek还需要修改filewrite,以便在lseek设置off超过f->ip->size时,用零填充文件中的空缺。
  8. O_TRUNCO_APPEND添加到open,以便>>>操作符在shell中工作。
  9. 修改文件系统以支持符号链接。
  10. 修改文件系统以支持命名管道。
  11. 修改文件和VM系统以支持内存映射文件。
copyright by duguosheng all right reserved,powered by Gitbook该文件修订时间: 2021-08-19 19:15:26

results matching ""

    No results matching ""