操作系统是什么
是一种软件,提供给用户和其他上层软件方便的接口和环境!!!
系统资源的管理者
- 提供处理机(CPU)、存储器、文件、设备管理
打开QQ -- 相关数据放入内存 -- 进程被CPU处理 -- 视频通话(摄像头设备)
向上层提供方便易用的服务
- GUI(图形 用户 接口) 比如window下拖拽到回收站删除文件
- 联机/脱机命令接口 比如cmd, 联机就是cd ls等,脱机就是.bat 也叫批处理
- 程序接口 比如printf底层就是调用了操作系统的显示接口
最接近硬件的一层软件
- 硬件只能听懂010101,操作系统把这些硬件功能封装成简单易用的服务
- 没有任何软件支持就叫裸机,裸机安装操作系统就更方便使用了!
操作系统特征
并发 共享(二者相辅相成) 虚拟 (有并发才有意义虚拟) 异步(没有并发就不会异步)
并发
- 指两个事件在同一个tick内发生,但实际上是交替(交替很快)发生的 如果实际上也是同时发生,那叫并行!!!!
- 单核CPU只能并发,多核CPU可以并行!!
共享
- 资源共享:指的是多个程序并发时同时使用某资源
- 分为互斥共享(不可同时用摄像头)、同时共享(同时访问硬盘文件 实际上一般也是交替)
虚拟(空分复用 时分复用)
- 把物理实体变为若干个逻辑上的对应物,比如一个程序需要放入内存并分配CPU才可执行,实际上电脑单核,但是用户感受 可以开多个应用,这就叫虚拟!!
异步
- 系统资源是有限的,这个资源被占用了,另一个进程就会被阻塞!!
- 只有并发才会可能导致异步!!!
操作系统的发展
- 程序员用纸带机输入输出(有孔为1 无孔为0)
- 单道批处理系统
- 多道批处理系统
- 分时操作系统
- 实时操作系统
程序
内核程序(Kernel) 应用程序(app)
-
理论上只需内核就可以使用一个操作系统
-
CPU可以分辨出哪些是特权指令 哪些是非特权指令
-
CPU两状态(通过一个状态寄存器) 内核态(可执行特权指令)和用户态(不可以)
也就是说,内核态到用户态,需要写入这个寄存器
-
刚开机CPU是内核态 若用户态时收到特权指令会中断并拒绝执行该程序后续命令,然后进入内核态执行中断程序,执行完后恢复用户态
-
并不是库函数都涉及系统调用,文件操作肯定涉及系统调用 取绝对值不涉及
中断
没有中断,就不会从用户态切回内核态,就不可能实现并发!!!
- 内中断 :与当前执行的指令有关(非法指令),中断信号来自CPU内部
例如:用户态特权指令、除数为0、应用程序请求内核服务(陷入/trap/访管指令) - 外中断 :与当前执行的指令无关,中断信号来自CPU外部
例如:时钟中断、I/O中断
操作系统体系结构
内核咋设计?
- 原语 哪怕遇到中断也会执行完再中断!!!
- 微内核只包括时钟管理、中断处理、原语。 大内核还包括进程、存储器、设备管理。 微内核比如windows 大内核比如linux unix
- 外核负责分配未经抽象的系统资源(一整块连续的磁盘空间、物理内存)
分层结构 模块化
- 模块化可以并行开发,只需要提前定义好函数名、参数、返回值
- 模块化一般可以动态扩充,因为彼此间独立
- 模块化调试困难
- 分层结构调试简单 但是更消耗资源,而且有互相依赖的不好分层
引导
开机后如何让操作系统运行起来
- 在磁盘上安装一个操作系统,如下图
- C盘一般是活动分区(也就是安装了操作系统的分区)分为引导记录PBR(负责找到启动管理器) 根目录 其他
- ROM存储BIOS(basci input output system) 主要包含ROM引导程序,作用是指示CPU把MBR读入RAM,MBR的磁盘引导程序又把PBR读入RAM,执行启动管理器
总结:CPU从特定地址取指令执行ROM引导(先硬件自检) --> 引导MBR写入RAM(作用是扫描分区表) --> 从活动分区读PBR到RAM --> 找到启动管理器
位于 C:/Windows/BOOT
虚拟机
标签:操作系统,中断,学习,并发,指令,内核,CPU From: https://www.cnblogs.com/xsl-blogs/p/17979443将一台物理机器虚拟化为多台虚拟机器,实现一个电脑上跑好几个操作系统