操作系统的概念#

操作系统 是指控制和管理整个计算机系统的硬件和软件资源,并合理地到调度计算机工作和资源,以提供用户和其他软件方便的接口和环境;他是计算机系统中最基本的系统软件

简单说就是 操作系统是管理系统资源的软件

操作系统提供的功能#

  • 处理机管理
  • 存储器管理
  • 文件管理
  • 设备管理

image-20241208222653605

操作系统向上提供的服务#

  • GUI 点点点
  • 命令接口
    • 联机命令接口: cmd 交互式命令
    • 脱机命令接口: 一个可以运行的文件
  • 程序接口: 系统调用

操作系统的特征#

并发,共享,虚拟,异步

  • 并发

    单核CPU同一时刻只能执行一个程序,但是由于有并发在,可以在微小的时间内交互进行,从而实现人类视角意义上的”并行“

  • 共享(宏观的同时,微观上还是并发访问)

    • 互斥共享方式

      一个时间段内只允许一个进程访问该资源(微信摄像头)

    • 同时共享方式

      允许一个时间段内由多个进程同时访问(比如说同时向微信和QQ上传同一个文件)

  • 虚拟

    虚拟是将物理上的实体变为逻辑意义上的对应物(也就是人们感受到的)

    • 空分复用技术(虚拟存储器技术)
    • 时分复用技术(虚拟处理器)
  • 异步

    由于资源有限,进程的执行不是一贯到底,会以不可预知的速度进行

    比如进程A运行到一半堵塞了,就去运行进程B,进程B运行完再回来运行进程A

cpu的状态#

  • 用户态
  • 内核态

程序运行的过程就是把一条条指令输入CPU中让其执行指令的过程

这里的指令不是指 ls 这些指令,而是指转换后的二进制命令这些

cpu 运行应用程序的时候就是用户态; 运行内核程序的时候就是内核态

普通程序员写的就是应用程序,Linux那帮人写的就是操作系统内核

操作系统不全是内核,比如GUI就是应用程序

内核态可以执行特权指令,用户态只能执行非特权指令

内核态和用户态的转换可以通过 程序状态字寄存器(PSW)实现

内核态 -> 用户态:执行一条特权指令–修改PSW的标志位为”用户态“,操作系统让出CPU使用权

用户态 -> 内核态:由”中断“引发,硬件自动引发变态过程,操作系统强行夺回cpu使用权

  1. 刚开机时,CPU为“内核态”,操作系统内核程序先上CPU运行

  2. 开机完成后,用户可以启动某个应用程序

  3. 操作系统内核程序在合适的时候主动让出CPU,让该应用程序上CPU运行

  4. 应用程序运行在“用户态”

  5. 此时,一位猥琐黑客在应用程序中植入了一条特权指令,企图破坏系统…

  6. CPU发现接下来要执行的这条指令是特权指令,但是自己又处于“用户态”,这个非法事件会引发一个中断信号一

  7. CPU检测到中断信号后,会立即变为“核心态”,并停止运行当前的应用程序,转而运行处理中断信号的内核程序

  8. “中断”使操作系统再次夺回CPU的控制权⑨ 操作系统会对引发中断的事件进行处理,处理完了再把CPU使用权交给别的应用程序

中断#

  • 内中断(异常): 与当前执行的指令有关,来自CPU内部

    • 陷入

      陷入指令 引发,是应用程序故意引发的(问题不大)

    • 故障

      由错误条件引起的,可能被内核程序修复,修复后会把CPU使用权返回给应用程序

    • 终止

      直接烂完了

  • 外中断(中断):与当前执行的指令无关,中断信号来自CPU外部

    • 时钟中断
    • I/O中断请求

内中断#

比如说你在运行一个应用程序,然后突然植入一个非法的指令,那么他会引发一个中断信号,操作系统强行操作CPU,如果操作系统修复了bug就是故障,没有就是终止

又比如说有时候应用程序想要请求操作系统内核的服务(创建文件夹),此时会执行一个特殊的命令—陷入命令,引发一个中断信号,来唤醒操作系统进行内核操作

外中断#

时钟中断就是每隔一个时间给CPU发送一个时钟中断信号,比如说应用程序A运行到一半,发送一个时钟中断信号,然后去运行应用程序B,过一段时间再来一个中断信号…..就此实现并发

I/O中断请求就是关于输入输出有关的

操作系统体系架构#

  • 大内核
  • 微内核

内核时操作系统最基本核心的部分,实现操作系统内核功能的就是内核程序,一般有:

  • 时钟管理
  • 中断处理
  • 原语:原子性的程序
  • 进程通信
  • 对系统资源管理的程序
    • 进程管理
    • 存储器管理
    • 设备管理
    • ….

总体来说前四点与硬件关联较为紧密,最后一点管理工作更多是对数据结构的操作,不直接涉及硬件,因此在操作系统体系架构中有了分歧:

  • 大内核:五个都分为内核程序
  • 微内核:管理功能分为应用程序,前四个分为内核程序

操作系统的内核需要运行在内核态,非内核功能需要运行在用户态

内核态和用户态的转变需要消耗很多资源

image-20241208225522785

操作系统引导#

简单来说就是电脑启动过程中操作系统是如何开机的

内存分为两块 RAM 和 ROM

RAM会随着关机而清空,ROM不会,他内部有一个ROM引导程序,他会去磁盘找到一个分区表和磁盘引导程序,这个程序会去找到一个启动管理器从而启动操作系统

这个我觉得不重要就没有很详细记录了

虚拟机#

image-20241208225847599

image-20241208225857299