题型
选择题
论述题
综合分析题(计算,证明)
算法分析题(根据程序代码分析)
1.方面
操作系统在计算机系统中主要涉及硬件、软件和数据这三个重要方面。
2.操作系统发展历史
手工操作阶段(1940s)
联机批处理系统阶段(1950s)
脱机批处理系统阶段(1950s)
多道程序系统阶段(1960s)
分时系统阶段(1960s)
实时系统阶段(1960s 中后期)
通用操作系统阶段(1960s 末 - 1970s)
个人计算机操作系统阶段(1970s 中后期 - 至今)
网络操作系统和分布式操作系统阶段(1980s - 至今)
移动操作系统阶段(21 世纪初 - 至今)
云计算操作系统阶段(21 世纪初 - 至今)
3.内核态和用户态
内核态:是操作系统核心程序运行时所处的状态,具有最高的特权级别,在该状态下,操作系统可以执行所有指令,包括对硬件资源的直接操作和管理。
用户态:是用户程序运行时的状态,具有较低的特权级别,用户程序只能执行非特权指令,不能直接访问系统的关键资源和执行敏感操作,以此保护系统的稳定性和安全性。
切换
用户态什么时候切换到内核态(其实就是中断的时候)
- 系统调用:应用程序通过系统调用请求操作系统提供的服务,如文件操作、进程管理等,这会引发从用户态到内核态的切换。
- 异常:当程序执行过程中出现异常情况,如算术溢出、除数为 0、试图执行一条非法的机器指令以及访问用户不允许的存储器位置等,会自动切换到内核态进行处理。
- 外部设备的中断:外部设备完成操作或发生特定事件时,会通过中断信号通知 CPU,此时 CPU 会暂停当前用户程序的执行,切换到内核态去处理中断事件,例如网卡接收到数据包后向 CPU 发送中断信号,触发内核态处理。
中断是用户态向核心态转换的唯一途径!系统调用实质上也是一种中断。
OS提供Load PSW指令装载用户进程返回用户状态
用户态到内核态切换过程(通过系统调用)
应用程序执行系统调用指令(如在 Linux 中为 trap 指令或访管指令),该指令在用户态执行,执行后立即引发一个内中