20145315 《信息安全系统设计基础》第9周学习总结

20145315 《信息安全系统设计基础》第9周学习总结

教材学习内容总结

I/O是在主存和外部设备之间拷贝数据的过程

  • 输入操作:从I/O设备拷贝数据到主存
  • 输出操作:从主存拷贝到I/O设备

在linux系统中,所有设备都被模型化为文件

  • 所有输入输出都被当作对应文件的读和写来执行。
  • I/O是一个简单的接口应用
  • 每个进程初始都有三个打开的文件标准输入(0),标准输出(1),标准错误(2)
  • 对于每个打开的文件,内核保存一个文件位置K
  • 执行完以后要关闭文件,并释放存储器资源

打开和关闭

  • open函数将文件名转换为一个文件描述符
  • flags指明如何访问
  • mode参数指定新文件的访问权限
  • 通过open创建新文件时,访问权限被设置为mode & ~umask

读和写

  • 应用程序分别通read和write来执行输入和输出
  • 用RIO包可以进行健壮的读写,在网络套接字上,你不能使用标准I/O函数来进行输入和输出,要使用RIO.

读取文件元数据

  • 应用程序能通过stat和fstat检索关于文件的信息
  • st_size包含文件字节
  • st_mode是文件访问许可和文件类型
  • UNIX通过宏指令来确定文件类型

共享文件

  • 描述符表——指向文件表中的一项,每个进程有独立的描述符表
  • 文件表——包含文件位置、引用计数,指向v_node表的一个表项
  • v-node表——包含stat结构中的大多数信息
  • 多个描述符也可以通过不同的文件表项来引用同一个文件

I/O重定向

  • unix> ls > foo.txt(shell加载和执行ls,并将标准输出重定向到磁盘文件foo.txt中)
  • dup2(1,5) (将标准输出重定向到到描述符5中)

教材学习中的问题和解决过程

  • 问题:缺少头文件“csapp.h"
  • 解决:下载csapp.h,并放到头文件文件夹中。

实验截图

本周代码托管截图

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/200 1/2 20/20
第二周 30/200 2/4 18/38
第三周 50/200 1/4 22/30
第四周 0/200 0/0 0/30
第五周 100/200 2/2 25/30
第六周 100/200 2/2 25/30
第七周 100/200 1/2 25/30
第九周 100/200 1/2 25/30

参考资料

posted @ 2016-11-13 22:17  君知らない  阅读(148)  评论(1编辑  收藏  举报