什么是操作系统?
操作系统是管理硬件和软件的一种应用程序。它管理着计算机的资源和进程以及所有的硬件和软件,并为硬件和软件提供了一种中间层,使软件和硬件分离,让我们无需关注硬件的实现,把关注点更多放在软件应用上。
通常情况下,应用程序需要与内存和 CPU 进行交互,操作系统的目的就是为了保证这些访问和交互能够准确无误的进行。为实现该目的,操作系统能够管理计算机资源,包括 CPU、内存、磁盘驱动器、打印机等;它还能提供一种图形界面,建立起用户和计算机之间的桥梁;它还能为其他软件提供服务,操作系统与软件进行交互,以便为其分配 运行时所需要的必要资源。
操作系统有哪些分类
操作系统 可分为 批处理操作系统、分时操作系统、实时操作系统。 若一个操作系统 兼顾 批处理 和 分时 的功能,则称该系统为通用操作系统。 常见的通用操作系统有:Windows、Linux、MacOS等。
什么是内核态和用户态?
为了避免 操作系统 和 关键数据 被用户程序破坏,将处理器的执行状态分为 内核态 和 用户态 。 内核态是 操作系统管理程序 执行时 所处的状态,能够执行 包含 特权指令在内 的一切指令,能够访问系统内 所有的存储空间。 用户态 是 用户程序 执行时 处理器所处的状态,不能执行特权指令,只能 访问 用户地址空间。 用户程序 运行在 用户态,操作系统内核 运行在 内核态。
如何实现内核态和用户态的切换?
方法
处理器从用户态切换到内核态的方法有三种:系统调用、异常和外部中断。
1.系统调用:程序的执行一般是在用户态下执行的,但当程序需要使用操作系统提供的服务时,比如打开某一设备、创建文件、读写文件等,就需要向操作系统发出调用服务的请求,而这一过程,就完成了了用户态到内核态的切换。
2.异常:由计算机硬件异常或故障引起的中断,称为内部异常中断,如文件损坏、缺页故障等。如果当前进程运行在用户态,此时发生了异常事件,会触发处理器,由当前运行进程切换到处理此异常的内核相关程序中,就转到了内核态。
3.外部中断:当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令,转而去执行与中断信号对应的处理程序。如果先前执行的指令是用户态下的程序,那么这个转换的过程,自然也就发生了由用户态到内核态的切换。(比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中,执行后续操作等。)