Featured image of post 操作系统概述

操作系统概述

操作系统概述

基本概念

操作系统提供:

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

操作系统的目标:

  • 向上层提供方便易用的服务/接口

操作系统的交互方式:

  • GUI图形化命令交互界面

  • 联机命令接口:交互式命令接口

  • 脱机命令接口:例如.bat批处理文件

  • 程序接口:在程序中进行系统调用来使用程序接口。普通用户只能通过程序代码间接调用

四个特征

分别是并发,共享,虚拟,异步

并发

指两个或多个事件在同一时间间隔内发生。这些事件在宏观上同时发生,在微观上是交替进行的

并行是指两个或多个事件在同一时刻同时发生

操作系统的并发性是指计算机系统中同时运行多个程序,在宏观上程序在同时运行,在微观上是交替进行的

  • 对于单核CPU,多个程序只能并发运行
  • 对于多核CPU,多个程序可以并行运行

共享

  • 互斥型:某些资源一个时间段只允许一个进程访问该资源

  • 同时型:允许一个时间段内由多个进程同时(微观上仍然是交替访问)对他们进行访问

共享与并发是互为存在的基础,也是最基本的特征

虚拟

将一个物理上的实体变为若干个逻辑上的对应物。

虚拟技术分有

  • 空分复用技术:如虚拟内存
  • 时分复用技术:如虚拟处理器

虚拟技术显然是基于并发性而实现的。

异步

在多个程序并发执行时,由于资源的限制,进程执行非线性进行

运行机制

操作系统的实现基于很多内核程序的组成,即内核,是操作系统最核心最重要的部分

  • 而Docker就是只有Linux内核的镜像操作系统

指令又分为特权指令和非特权指令,只有内核可以使用特权指令

  • CPU在执行一条指令前就可以判断其类型

CPU分有内核态与用户态:

  • 运行内核程序时,处于内核态,可以执行特权指令
  • 运行应用程序时,处于用户态,只能执行非特权指令
  • CPU通过程序状态字寄存器PSW分辨状态,1为内核态,0为用户态

如果应用程序中含有特权指令,如果CPU处于用户态读到该特权指令时会触发中断信号,停止运行应用程序,转而运行处理中断信号的内核程序,此时从用户态转为内核态。

中断与异常

中断:操作系统内核夺回CPU使用权的唯一途径是并发的实现基础

  • 内中断:与当前执行指令有关,来源于CPU内部,又称异常
    • 分有陷入、故障、终止
    • 陷入指令并不是特权指令可以实现系统调用
  • 外中断:与当前执行的指令无关,中断信号来源于CPU外部,可以基此实现并发
    • 通常由外部时钟部件,I/O中断请求触发

故障:非法操作码、缺页故障、除数为0、运算溢出

陷入:条件陷阱指令,用于用户态下调用操作系统内核程序

终止:控制器出错、存储器校验错

实现原理

操作系统维护/初始化一张中断向量表,其包含中断信号类型与对应的中断服务程序指针

发生中断:

  1. 硬件(程序计数器PC)自动保存断点
  2. 硬件找到该中断信号的中断向量,其指明中断服务程序入口地址
  3. 执行中断服务程序,保存PSW、中断屏蔽字、各通用寄存器的值,提供中断服务,由操作系统完成。
  • 显然,中断服务程序是个内核程序

系统调用

实现互斥型共享的基础。

由操作系统内核对共享资源统一管理,向上层程序提供系统调用。

凡是对共享资源的操作(存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。

运行机制

程序中传递系统调用参数:

  1. 执行陷入指令,又称trap、访管指令(用户态)
  2. 执行相应的内核请求程序处理系统调用(核心态)
  3. 返回应用程序

体系结构

分有大内核与微内核、分层结构、模块化、外核5种

大内核:将OS的主要功能模块都作为系统内核,在核心态运行

  • 高性能
  • 内核代码庞大,结构混乱,难以维护

微内核:机制与策略分离只把最基本的功能(机制)保留在内核

  • 内核功能少,结构清晰,维护方便
  • 需要频繁地在核心态和用户态之间切换,性能低
  • 仅保留进程/线程管理,低级存储器管理,中断和陷入处理

分层结构:最底层为硬件,最高层为用户接口

  • 便于调试验证,每层只能使用更低一层的功能

操作系统引导

  1. CPU从一个特定主存地址开始,取指令,执行ROM引导程序
  2. 将磁盘的第一块—主引导记录读入内存,执行磁盘引导程序,扫描分区表
  3. 从活动分区(主分区)读入分区引导记录,执行其中的程序
  4. 从根目录下找到完整的OS初始化程序并执行image-20220921104208682
Licensed under CC BY-NC-SA 4.0 转载请注明出处!
总有些事情高于其他
Built with Hugo
主题 StackJimmy 设计
本站访客数人次 总访问量 本文阅读量