1. 库函数和系统调用的区别与联系
-
库函数由编程语言和第三方库提供,封装了常用逻辑的预定义函数,运行在用户态;系统调用则由操作系统内核提供,允许用户态程序请求内核执行特权操作,运行在内核态
-
系统调用是库函数的底层支撑,库函数可以使用系统调用来实现功能
-
库函数使用时开销低,而系统调用需要从用户态转向内核态开销大
2. 操作系统提供的接口
-
命令接口
- 联机命令接口:又称交互式命令接口,适用于分时或实时系统,用户每输入一条命令,os就执行一条
- 脱机命令接口:又称批处理命令接口,由一组作业控制命令组成
-
程序接口
- 由一组系统调用组成
- GUI即图形接口也是通过调用程序接口来实现的
3. 并发的实现需要中断的支持
4. 提高资源利用率就需要在程序尚未使用某种资源时,将他对那种资源的占有权释放
5. 中断
-
内中断:也就是异常;分为故障(Fault),自陷(Trap),终止;其中终止为硬件中断,其余为软件中断
-
外中断(硬件):分为可屏蔽中断(INTR),不可屏蔽中断(NMI) Non Maskable Interrupt
外部中断是由CPU外部的事件引起的,如I/O设备的请求、时钟信号等。内部中断是由CPU内部的事件引起的,如访管指令(trap指令)、缺页异常等。
CPU检测到中断信号后,由硬件(PC,PSW)自动保存被中断程序的断点
6. 系统调用的功能分类
-
设备管理
-
文件管理
-
进程控制 进程通信
-
内存管理
系统调用需要保存PC和==PSW(程序状态字)==的值而一般过程调用只需要保存PC值
7. 中断处理过程需要专门的硬件电路才能实现
8. 批处理的主要缺点是缺少交互性
9. I/O指令必须在内核态运行
10. 通道技术
I/O 通道技术是解决 “CPU 与外部设备(如硬盘、打印机、网卡)速度不匹配” 的关键技术,本质是一种 “专用的 I/O 处理控制器”,可替代 CPU 承担大部分 I/O 操作的管理工作,释放 CPU 算力
11. 多道程序设计技术是为了提高CPU利用率和吞吐量
12. 普通的数据处理,流程控制,读操作都可以在用户态进行
13. 访管指令(trap指令)在用户态下执行
14. 时钟中断
时钟中断间接来自于振荡器。 振荡器(如晶体振荡器)产生稳定的周期性电信号,为硬件定时器提供时钟源。硬件定时器根据这个时钟信号进行计数,当计数器达到预设值时,会产生一个中断信号,即时钟中断。例如,PC定时器的输入频率由晶体振荡器决定,其每个时钟周期计数器减1,减到0就输出时钟中断信号。因此,振荡器是时钟中断产生的基础,为其提供了计时基准,但直接产生时钟中断的是硬件定时器。
15.缺页异常与 “页面错误” 的区别
-
缺页异常:正常的内存管理机制,是 “可恢复” 的,处理后进程可继续执行(如首次加载程序页面、内存不足时的页面换入)。
-
页面错误(Page Error):通常指 “非法缺页”(如访问无效虚拟地址、权限错误),属于不可恢复的错误,会导致进程崩溃(如程序 BUG 导致的内存越界访问)
16. 操作系统完成和系统调用完成
-
主体与触发不同:操作系统完成是内核自主执行系统级任务(如初始化、进程调度)的终点,无需用户进程触发;系统调用完成是内核响应单个用户进程请求(如文件读写、进程创建)的终点,由用户进程主动发起。
-
执行与影响范围不同:操作系统完成全程在内核态,可能影响所有进程(如内存置换);系统调用完成需“用户态→内核态→用户态”切换,仅影响发起调用的单个进程。
-
生命周期不同:操作系统完成可能是长期循环(如调度)或一次性任务(如系统初始化);系统调用完成是“请求-处理-返回”的短周期闭环。
“操作系统完成” 是内核自主处理系统级任务的终点,影响范围可能覆盖整个系统;“系统调用完成” 是内核响应单个用户进程请求的终点,仅服务于发起调用的进程。