2017-2018-1 20155323 《信息安全系统设计基础》第6周学习总结
2017-2018-1 20155323 《信息安全系统设计基础》第6周学习总结
教材学习内容总结
异常控制流
异常
- 异常的一部分由硬件实现,一部分由操作系统实现,它就是控制流中的突变,用来响应处理器状态的某些变化。
- 异常表是一张跳转表,表目k包含异常k的处理程序的地址,在系统启动时由操作系统分配和初始化。系统中每种可能的异常都分配了一个唯一的非负整数的异常号。
异常的类别
- 异常可以分为四类:
类别 原因 异步/同步 返回行为
中断 来自I/O设备的信号 异步 总是返回到下一条指令
陷阱 有意的异常 同步 总是返回到下一条指令
故障 潜在可恢复错误 同步 可能返回到当前指令
终止 不可恢复错误 同步 不返回
进程
- 进程是一个执行中程序的实例。系统中每个程序都是运行在某个进程的上下文中的。
逻辑控制流
- 程序执行的一系列PC(程序计数器)值唯一地对应于包含在程序的可执行目标文件中的指令或包含在运行时动态链接的共享库中的指令,这个PC值的序列称为逻辑控制流。
并发流
- 一个逻辑流的执行在时间上与另一个流重叠。
上下文切换
- 内核为每个进程维持一个上下文,它是内核重新启动一个被抢占进程所需的状态。包括通用目的寄存器、浮点寄存器、程序计数器、用户栈、状态寄存器、内核栈和各种内核数据结构(页表、进程表和文件表等)的值。
- 内核通过上下文切换来实现多任务,它是一种高级的异常控制流,建立在低级异常机制上。
- 内核决定抢占当前进程,重新开始一个先前被抢占的进程,称为调度了一个新进程,由内核中的调度器代码处理。使用上下文切换来将控制转移到新进程。上下文切换保存当前进程的上下文,恢复先前被抢占进程保存的上下文,将控制传递给新恢复的进程。
- 系统调用和中断可以引发上下文切换。
回收子进程
- 回收:当一个进程终止时,内核并不立即把它从系统中清除。相反,进程被保持在一种已终止的状态中,直到被它的父进程回收。
信号
- 一种更高层次的软件形式的异常,称为unix信号,它允许进程中断其他进程。
系统级I/O
Unix I/O
- 打开文件
- Linux shell创建的每一个进程开始时都有三个打开的文件:标准输入(描述符为0)、标准输出(描述符为1)、标准错误(描述符为2)。
- 改变当前的文件位置
- 读写文件
- 关闭文件
文件类型
- 普通文件:包含任意数据,文本文件是只含有ASCII或Unicode字符的普通文件,二进制文件是所有其他的文件。
- 目录:包含一组链接的文件,其中每个链接都将一个文件名映射到一个文件,这个文件可能是另一个目录。
- 套接字:用来与另一个进程进行跨网络通信的文件。
- 目录层次结构中的位置有两种形式:绝对路径名和相对路径名。
打开和关闭文件
- O_RDONLY:只读
- O_WRONLY:只写
- O_RDWR:可读可写
- O_CREAT:如果文件不存在,就创建它的一个截断的空文件。
- O_TRUNC:如果文件已存在,就截断它。
- O_APPEND:每次写操作前,设置文件位置到文件的结尾处。
共享文件
内核用三个相关的数据结构表示打开的文件
- 描述符表
- 文件表
- v-node表
教材学习中的问题和解决过程
问题1:不清楚用户模式和内核模式的区别。
解决:
内核模式,对应80x86的 ring0层,是操作系统的核心部分,设备驱动程序就是运行在该模式下
用户模式,对应80x86的ring3层,操作系统的用户接口部分 (就是我们通常所说的win32 API)以及所有的用户应用程序都运行在该级别
代码托管
结对及互评
本周结对学习情况
20155314刘子健
- 结对学习内容
第八章
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/50 | 1/1 | 5/5 | |
第二周 | 100/100 | 1/2 | 5/10 | |
第三周 | 100/200 | 1/3 | 5/15 | |
第四周 | 100/300 | 1/4 | 5/20 | |
第五周 | 100/400 | 1/5 | 5/25 |