操作系统概述

什么是操作系统

操作系统主要进行应用程序管理,资源管理,外设管理等工作。

在操作系统中,将CPU抽象为进程,将内存抽象为地址空间,将磁盘抽象为文件。
title

OS=shell+kernel.shell就是GUI或者是命令行。Kernel是操作系统的核心。

kernel主要完成的工作包括CPU调度,物理内存虚拟内存的管理,文件系统的管理,中断处理,外设管理等

kernel的特征:

  • 并发(应用并发执行)。
  • 共享。某一个公共资源是可以共享访问的还是互斥访问的。
  • 虚拟化。将物理实体虚拟化为逻辑实体。主要包括时分复用(时间片)和空分复用(虚拟内存)。
  • 异步

OS启动过程

Disk:存储bootloader以及OS.
BIOS:基本IO处理系统。

最先放入内存的是BIOS启动固件。BIOS的第一步是检测外设,完成后,将bootloader加载进内存,并且CPU控制权转交给bootloader,bootloader再将磁盘上的OS加载进内存,这是OS掌控CPU。

BIOS—>加载bootloader—>加载OS。(所以说我们安装系统的时候要先进入BIOS设置启动项,这个启动项就是bootloader)。

title

系统调用,中断,异常

都需要从用户态转移到内核态。

中断机制

来源于外设。

为了支持CPU 和设备之间 的 并行操作。当IO事件完成之后,设备中断通知CPU,CPU在进行相应事件的处理。可以看作是一种异步操作啊。

当CPU 启动设备进行输入/输出后 ,设备便可以独立工作,CPU 转去处理与此次输入/输出不相关的 事情;当设备完成输入/输出后,通过向CPU 发中断报告此次 输入/输出的结果,让CPU 决定如何处理以后的事情。

中断过程

  • 设备(硬件)将中断事件的ID传递给中断寄存器。不同的中断ID范围代表不同的中断类型
  • CPU在执行完一条指令后,会查看中断寄存器,假如有中断的话,进行中断处理。
  • CPU保存现场。保存各种寄存器等。
  • CPU 根据中断码查中断向量表,获得与该中断相关的处理程序的入口地址。
  • 进行相应中断处理。
  • 恢复之前保存的处理状态。

异常

来源于应用程序。CPU执行指令非法。

异常过程与中断过程差不多,也是保存现场,处理,恢复现场这几个过程。

但是不同的是,异常一般是交给进程自己来处理,而中断是由内核的中断函数来处理,根据不同的中断类型执行不同的中断函数。

系统调用

当应用程序需要调用系统级别的函数请求。

系统调用过程

  • 每一个系统调用对应一个系统调用号。
  • 根据系统调用号选取相应的系统调用例程进行系统调用。
  • 返回系统调用结果。

系统调用需要从用户态切换到内核态。

总结

系统调用,中断,异常机制其实都是大同小异。在操作系统中都维持着一个表,中断是中断号和中断函数对应,系统调用是系统调用号和系统调用函数,根据ID去调用相应的函数,返回结果。

而且OS都需要从用户态转到内核态。