文章目录
- 1 CPU与I/O的交互
- 2 中断角度理解操作系统
- 2.1 处理中断
- 2.2 中断时间线
- 2.3 储存结构
- 2.4 内核模式和用户模式
- 2.5 操作系统服务
- 2.5.1 提供给用户的功能
- 2.5.2 系统自身使用的功能
- 2.5.3 系统调用
- 2.5.4 系统调用追踪
1 CPU与I/O的交互
- I / O设备和CPU可以同时执行
- 每个设备控制器负责特定的设备类型
- 每个设备控制器都有一个本地缓冲区
- CPU将数据从/到主内存移动到本地缓冲区
- I / O就是从设备到控制器的线路
- 设备控制器通知CPU已完成其操作导致中断
2 中断角度理解操作系统
操作系统是中断系统驱动的软件,系统先去干自己的事情,当由硬件(I/O设备)和软件(除数为0)产生中断,系统去处理中断的事件。
2.1 处理中断
处理中断
- 保存cpu的现场
- 通过中断向量,去中断的服务的程序那里
2.2 中断时间线
最多可以有一个等待的IO请求,不能同时处理IO。
2.3 储存结构
2.4 内核模式和用户模式
Kernel Mode
在内核模式下,代码具有对硬件的所有控制权限。可以执行所有CPU指令,可以访问任意地址的内存。内核模式是为操作系统最底层,最可信的函数服务的。在内核模式下的任何异常都是灾难性的,将会导致整台机器停机。
User Mode
在用户模式下,代码没有对硬件的直接控制权限,也不能直接访问地址的内存。程序是通过调用系统接口(System APIs)来达到访问硬件和内存。在这种保护模式下,即时程序发生崩溃也是可以恢复的。在你的电脑上大部分程序都是在用户模式下运行的。
2.5 操作系统服务
2.5.1 提供给用户的功能
- User interface - Almost all operating systems have a user interface
(UI) - varies between Command-Line (CLI), Graphics User Interface (GUI),
Batch - Program execution - 将程序放到内存执行
- I/O operations - 可能需要和某个IO设备通信,如磁盘上的文件
- File-system manipulation - 文件创建,搜索,删除
- Communications – 一台电脑或者不同电脑的通信,比如共享内存
- Error detection – 检测并处理CPU,内存,io设备的错误
2.5.2 系统自身使用的功能
- Resource allocation:cpu周期,主存,文件储存
- Accounting:记录哪个用户使用了哪些资源
- Protection and security:Protection :所有对系统资源的访问都是受控制的
Security :系统以外的用户访问需要验证
2.5.3 系统调用
os提供给程序员的编程接口。
2.5.4 系统调用追踪
当没有源代码的时候,可以使用Strace直接追踪对系统的调用过程,然后debug。
一般来说,每一个系统调用都和一个数字相关联,用户调用接口维护了一个数字到函数的表,接口会调用内核中的这个函数。