本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必问的知识点,讲解透彻,长期更新中,欢迎一起学习探讨 ~ 另外:
面试必会系列专栏:https://blog.csdn.net/sinat_42483341/category_10300357.html
操作系统系列专栏:https://blog.csdn.net/sinat_42483341/category_10519484.html
王道操作系统 第一章 – 计算机系统概述
目录
操作系统概念
操作系统是计算机系统中最基本的系统软件,目标是向上层提供方便易用的服务。
操作系统是系统资源的管理者
- 提供的功能:处理机管理、存储器管理、文件管理、设备管理
- 目标:安全、高效
命令接口
联机命令接口:交互式命令接口,例如 cmd
脱机命令借口:例如批处理 bat 文件
程序接口:可以在程序中进行 系统调用(即广义指令)来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接调用
操作系统四个特征
1、并发
并发 是指多个事件在 同一时间间隔 内发生(微观上交替),并行是指多个事件在 同一时刻 发生
2、共享
互斥共享方式(摄像头)、同时共享方式(扬声器)。没有并发性,共享性就没有存在的意义。并发和共享互为存在条件,也是最基本的两个特征。
3、虚拟
虚拟存储器技术(空分复用技术),虚拟处理器技术(时分复用技术)。没有并发性,虚拟性就没有存在的意义。
4、异步
进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进。只有系统拥有并发性,才有可能导致异步性。
操作系统的发展与分类
1、手工操作阶段(纸带机)
用户独占全机、人机速度矛盾导致资源利用率极低
2、批处理阶段:单道批处理系统(脱机输入/输出技术)
由监督程序控制作业的输入、输出,资源利用率有一定的提升
3、多道批处理系统(多个程序并发运行)
操作系统正式诞生;没有人机交互功能
4、分时操作系统
计算机以时间片为单位,为各个系统轮流提供服务,解决了人机交互问题
5、实时操作系统
硬实时系统、软实时系统
6、网络操作系统、分布式操作系统、个人计算机操作系统…
操作系统的运行机制
两种指令
CPU在设计和生产的时候,就划分了特权指令、非特权指令。因此CPU执行一条指令前,就能判断出其类型。
- 特权指令:例如内存清零指令,只允许操作系统内核来使用
- 非特权指令:应用程序只能使用非特权指令,例如加法指令、减法指令
两种处理器状态
CPU 中有 程序状态寄存器 PSW,其中用 1 表示内核态,用 0 表示用户态。
- 内核态(管态):CPU处于内核态时,说明正在运行的是内核程序(此时可以执行特权指令)
- 用户态(目态):说明正在运行的是用户程序
转变方式:
- 内核态 -> 用户态:一条修改 PSW 的特权指令
- 用户态 -> 内核态:由中断引起,硬件自动完成
两种程序
内核程序
应用程序
中断和异常
中断的作用
中断是让操作系统内核夺回CPU使用权的唯一途径。
中断的类型
- 内中断(异常):与当前执行的指令有关,中断信号来源于CPU内部
- 例如,非法除0,缺页
- 例如,用户程序想请求操作系统内核的服务,会执行陷入指令。系统调用就是通过 trap 指令完成的。
- 外中断:与当前执行的指令无关,中断信号来源于CPU外部。CPU在每一条指令执行结束时,都会例行检查是否有外中断信号需要处理
- 例如,来自时钟部件 / IO 设备的中断信号
系统调用
凡是与共享资源有关的操作,都必须通过系统调用完成,这样保证系统的稳定性和安全性。
- 设备管理:完成设备的 请求 / 释放 / 启动
- 文件管理:完成文件的 读 / 写 / 创建 / 删除
- 进程控制:进程的 创建 / 撤销 / 阻塞 / 唤醒
- 进程通信:进程之间 消息传递 / 信号传递
- 内存管理:内存的 分配 / 回收
大内核 / 微内核
1、大内核(Linux,Unix)
将操作系统的主要功能模块都作为系统内核,运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
2、微内核(Windows NT)
只把最基本的功能保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁在用户态、内核态之间切换,性能低