操作系统笔记的ppt图片都来自于王道考研的操作系统课程哦
概念
简单来说就是一种介于硬件和软件之间的系统软件,负责管理协调硬件、软件等计算机资源的工作,可以向上层用户提供简单易用的服务。比如windows、安卓都是操作系统
用户接口:分为直接给用户使用的GUI用户图形界面、命令接口和给软件使用的程序接口(系统调用)
特征
操作系统有两个最重要的特征:并发性和共享性
- 并发性:计算机系统同时存在多个运行着的程序,宏观上同时发生,微观上交替发生(需要注意与并行的区别,并行是两个或多个事件在同一时刻发生)。单核cpu只能并发,多核cpu可以并行。
- 共享性:系统中的资源可供多个并发执行的进程同时使用,与并发互为存在条件。比如qq和微信同时发送文件。
- 虚拟性:空分复用技术(虚拟内存)、时分复用技术(虚拟处理器)
- 异步性:只有系统拥有并发性才有可能导致异步性
操作系统的发展与运行机制
这段比较好理解,就不过多展开讲述了,贴一张ppt截图
应用程序与内核程序
普通程序员写的是应用程序,指令叫做非特权指令,cpu处于用户态时(目态)执行;实现操作系统的程序叫内核程序,指令叫做特权指令,cpu处于内核态(管态)时执行,是最接近硬件的部分也是操作系统中最重要的部分。
如何变态?从内核态到用户态需要一条修改psw的特权指令,将psw标志位改成用户态;从用户态到内核态是由中断引起,硬件自动完成,意味着操作系统强行夺回cpu的使用权。cpu状态的转换是有成本的,频繁变态会降低系统性能。
体系结构
操作系统分为大内核和微内核。大内核就是将操作系统的主要功能模块(包括进程管理储存管理和设备管理等)都作为系统内核,运行在核心态,性能高但不易维护;微内核就是只把最基本的功能(只有时钟管理中断管理和原语)保留在内核,功能少方便维护但性能低。还有一些其他的,放一张PPT吧
中断
和计组是一样的,贴一张ppt
系统调用与库函数
操作系统向上提供系统调用,使上层程序能请求内核的服务
编程语言向上提供库函数,有些涉及系统调用有些不涉及系统调用
普通应用程序可直接进行系统调用也可使用库函数
凡是与资源共享有关的操作,都必须通过系统调用的方式向操作系统内核提出服务请求,以保证操作系统的稳定性和安全性。系统调用需要先传参(用户态),再陷入指令,再由操作系统内核程序处理程序处理系统调用请求(内核态),再返回应用程序。
虚拟机
虚拟机(VMM)是一种技术,可以将一台物理机器虚拟化为多台虚拟机,每个虚拟机都可以独立运行一个操作系统。
虚拟机分为两种,一种是直接运行在硬件上,另一种是运行在宿主操作系统上。下面是比较直观的图片和两种虚拟机的对比