diff --git a/W10D1/W10D1-Chenwentao.md b/W10D1/W10D1-Chenwentao.md new file mode 100755 index 0000000..9995ebb --- /dev/null +++ b/W10D1/W10D1-Chenwentao.md @@ -0,0 +1,37 @@ +# IO + +对于软件层:everything is file(字节序列),按照统一的操作 + +对于硬件层:对接设备,设置驱动 + +## 硬件层面 + +- 块设备:硬盘、光盘,USB + + 把信息存储在固定大小的块中,每个块有自己的地址 + +- 字符设备:鼠标、键盘、打印机、网络接口 + + 以字符作为单位发送,或者接送一个字符流 + +设备控制器 + +DMA:直接内存读取 + +## 软件层面 + +- 程序控制IO:CPU控制 +- 中断驱动IO +- 使用DMA的IO + +## 中断 + +中断向量 + +精确中断与不精确中断 + +## X window system + +UNIX系统的用户界面 + +X客户与X服务器 \ No newline at end of file diff --git a/W14D1/W14D1-Chenwentao.md b/W14D1/W14D1-Chenwentao.md new file mode 100755 index 0000000..06125b7 --- /dev/null +++ b/W14D1/W14D1-Chenwentao.md @@ -0,0 +1,43 @@ +# Review OS + +## 以UNIX为例子 + +历史:MULTICS `->` 现代操作系统 + +抽象:CPU/MEM/IO `->` process/virtual memory/file + +### process + +每个进程都是一个 **程序**,有独立的寄存器、程序计数器、堆栈指针 + +thread(线程):有独立的栈空间 + +考虑:task_struct + +### 系统调用 syscall + +- fork/exec/exit/wait + +进程的状态: + +- running +- block +- ready +- zombie + +## 内存管理 + +### 物理内存 + +管理的单位为页框:page frame + +在linux中利用buddy算法进行管理 + +### 虚拟内存 + +- page_table +- mmap:把文件映射到进程的内存中,当成连续的内存进行处理 +- malloc:调用系统的 brk(扩展堆空间)来分配虚拟内存 + +## 文件系统 + diff --git a/W6D1/W6D1-Chenwentao.md b/W6D1/W6D1-Chenwentao.md new file mode 100755 index 0000000..0270269 --- /dev/null +++ b/W6D1/W6D1-Chenwentao.md @@ -0,0 +1,40 @@ +# File system + +支持的操作:insert/delete/search/mkdir/rename/link + +两类文件系统:EXT2(second_extend),FAT(File allocation table) + +## EXT2 + +search by index. 主要应用于 linux 系统 + +重要概念: + +- MBR(master boot record),0号扇区,记录每个扇区的始末地址 +- superblock:记录了所有的关键参数,比如块的数量。常常需要多次备份,避免其被破坏后整个文件系统失效 +- inode(index node):每个文件都需要,记录了文件属性和每个文件块的地址。可能涉及到多级指针 + +软链接和硬链接: + +- 软链接(符号链接):创建一个 link 文件,访问时先读取该文件,得到真实路径,再访问原文件 +- 硬链接:直接修改新文件的inode,让它也指向老文件 + +删除:在 **日志文件系统** 中有运用 + +- 先删除目录项 +- 再回收 inode +- 最后回收 block + +## FAT + +search by link. 主要应用于早期的MS-DOS,如今的windows + +思想:内存中的一个表记录了所有文件使用的块,访问一个文件时,只需要从该文件的起始块开始,每次向后查找即可 + +所以目录项中只需要维护每个文件的起始块 + +缺点:FAT本身占用了大量空间,难以处理大型磁盘 + +## virtual file system(VFS) + +详细内容见课本165页 \ No newline at end of file