面试基础篇|操作系统复习(一)——操作系统的概述

263 阅读6分钟

1. 操作系统的概念

  • 操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配;以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。简单来说,操作系统具有以下三个概念:

    • 操作系统是系统资源的管理者

      • 提供的功能:处理机管理、存储器管理、文件管理、设备管理
      • 实现的目标:安全、高效
    • 操作系统向上层提供方便易用的服务

      • 给用户的服务:GUI(图形化用户接口)、联机命令行接口、脱机命令行接口(win中.bat、Linux中.sh)
      • 给软件/程序员的服务:程序接口
    • 操作系统作为最接近硬件的层次

      • 实现对硬件机器的扩展,把硬件资源合理组织起来协调工作

2. 操作系统的四大特征

  • 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上同时发生的,但微观上交替发生的。

    • 易混概念并行:指两个或多个事件在同一时刻同时发生
  • 共享:共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

    • 互斥共享方式:系统中的资源,一个时间段内只允许一个进程访问该资源(如同一个设备在微信和QQ中不能同时使用视频,同一时间摄像头资源只能给其中一个进程)
    • 同时共享方式:系统中的资源,一个时间段内由多个进程“同时”进行访问该资源(宏观上同时访问,微观上交替访问)
    • 并发和共享的关系:互为互斥条件
  • 虚拟:把一个物理上的实体变为若干个逻辑上的对应物。

    • 虚拟存储器技术:空分复用技术
    • 虚拟处理器技术:时分复用技术
  • 异步:在多道程序环境下,允许多个程序并发执行,由于资源有限,进程执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这是进程的异步性。

3. 操作系统的发展和分类

  • 手工操作阶段

  • 批处理阶段

    • 单道批处理系统
    • 多道批处理系统
  • 分时操作系统

  • 实时操作系统

    • 硬实时操作系统(时间要求严格)
    • 软实时操作系统(时间要求相对宽松)
  • 网络操作系统

  • 分布式系统

  • 个人操作系统

4. 操作系统的运行机制

  • 两种指令

    • 特权指令:只能由操作系统内核使用
    • 非特权指令:由普通应用程序使用
  • 两种CPU状态

    • 内核态:程序状态字寄存器,“1”表示“内核态”,不同的CPU使用不同的二进制位标识,不一定是”1“

    • 用户态:程序状态字寄存器,“0”表示“用户态”,不同的CPU使用不同的二进制位标识,不一定是”0“

    • 内核态与用户态的切换

      • 内核态→用户态:执行一条特权指令——修改PSW的标志位为”用户态“,意味着操作系统主动让出CPU使用权
      • 用户态→内核态:由”中断“引发,硬件自动完成变态的过程,触发中断信号意味着操作系统将强行夺回CPU的使用权

5. 操作系统的中断和异常

  • 中断类型

    • 内中断(也称异常、例外):

      • 与当前执行的指令有关,中断信号来源于CPU内部(例如:试图在用户态下执行特权指令)
      • 若当前执行的指令是非法的,则会引发内中断信号
      • 执行陷入指令(非特权指令),应用程序主动地交还给操作系统内核
    • 外中断(也称”中断“)

      • 与当前执行的指令无关,中断信号来源于CPU外部
      • 时钟中断——由时钟部件发来的中断信号
      • I/O中断——由输入/输出设备发来中断信号
  • 中断基本原理

    • 不同的中断信号,需要不用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号类型去查询”中断向量表“,以此来找到相应的中断处理程序在内存中的存放位置。简而言之,是通过”中断向量表“实现的。

6. 操作系统的系统调用

  • 系统调用的概念:操作系统提供给应用程序(程序员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。

  • 系统调用和库函数的区别

    • 系统调用更为底层
    • 涉及操作系统的库函数封装系统调用,向上提供接口
  • 系统调用的功能:

    • 设备管理:完成设备的请求/释放/启动等功能
    • 文件管理:完成文件的读/写/创建/删除等功能
    • 进程控制:完成进程的创建/撤销/阻塞/唤醒等功能
    • 进程通信:完成进程之间的消息传递/信号传递等功能
    • 内存管理:完成内存的分配/回收等功能
  • 系统调用的过程

    • 传递系统调用参数→执行陷入指令(trap指令=访管指令)(用户态)→由操作系统的内核程序处理系统调用(核心态)→返回应用程序

7. 操作系统的体系结构

  • 大内核

    • 将操作系统的主要功能模块都作为系统内核,运行在核心态
    • 优点:高性能
    • 缺点:内核代码庞大、结构混乱、难以维护
    • 例子:Linux、UNIX
  • 微内核

    • 只把最基本功能保留在内核
    • 优点:内核功能少、结构清晰、方便维护
    • 缺点:需要频繁地在核心态和用户态间切换,性能低
    • 例子:Windows NT 8. 总结
  • 重点关注内核态和用户态的切换,并发和并行区别,面试常问问题

  • 熟悉程序执行在操作系统层面的简单处理过程,加深对程序运行的理解

  • 请各位大佬发现错误,能指导菜鸟小弟

  • 菜鸟也想努力进大厂,加油