0%

操作系统初认识

Blog搭建成功后写的第一篇文章,内容是b站王道考研操作系统笔记

目标是加更多的友链(看起来好像目的是建成一个Blog快捷打开器?)

以及写一些学习过程中走过的无数弯路,所以现在的Blog还不具有任何参考意义

此篇文章中红色代表标重内容,黄底代表记忆内容

操作系统概念功能目标与特征

操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件

画黄线方便答题分点

一些看起来似乎没什么用的名词解释。。


命令接口:允许用户直接使用

程序接口:允许用户通过程序间接使用(如dll文件,即系统调用)

联机命令接口——交互式命令接口:说一句做一句(如cmd)

脱机命令接口——批处理命令接口:说一堆做一堆(如bat)

程序接口=系统调用=广义指令

隔离:处于安全性和稳定性考虑,用户空间程序无法直接执行内核代码(例如:I/O 读写、创建新进程/线程),也无法访问内核数据,必须通过系统调用。

没有任何软件支持的计算机称为“裸机”

覆盖了软件的机器称为“扩充机器”或“虚拟机”


操作系统的特征

  • 并发

    易混淆:并发与并行,前者宏观上同时发生(用户看起来)微观上交替发生,后者表示多事件同时发生

  • 共享:互斥共享方式(如不能同时用qq和微信的摄像头)、同时(宏观上)共享方式

    并发与共享:例子、如两程序同时使用(并发)硬盘资源(共享),所以说两者互为存在条件

    e.g

  • 虚拟:物理上的实体变为若干个逻辑上的对应物(用户感受到的)

    e.g.单核CPU同时处理多个软件(其实是微观上把时间分为多个小段分别处理)

    虚拟技术:空分复用技术(如虚存)、时分复用技术(如虚拟处理器)

    可得,没有并发性也没有虚拟性

  • 异步:资源有限,并发的程序执行速度不同不可预知(同样需要并发性

操作系统发展与分类

  1. 手工操作阶段:手工速度与机器速度的矛盾导致资源利用率低
  1. 单道批处理阶段:引入“脱机输入/输出技术”,监督程序控制作业的输入、输出。矛盾略微缓解

    缺点:内存中只有一道程序运行,CPU大量时间在等待程序运行

  1. 多道批处理系统:程序并发,效率提高

    缺点:没有人机交互功能

  1. 分时操作系统:以时间片为单位轮流为各个用户/作业服务。解决人机交互问题

    缺点:不具有优先处理紧急问题的特性

  1. 实时操作系统:能优先响应一些紧急任务,要在严格的时限内处理完事件(及时性和可靠性

硬实时系统:导弹控制等

软实时系统:火车订票等

操作系统的运行机制与体系结构

指令是处理器能识别、执行的最基础命令

两种指令:

1、特权指令:不允许用户程序使用(内存清零等)

2、非特权指令:***(加法指令等)

处理器状态(用标志位识别):

1、用户态

2、核心态(特权指令与非特权指令)

两种程序:

1、内核程序

2、应用程序

两种内核:

1、大内核:高性能,代码庞大结构混乱难以维护(小体量公司)

2、微内核:与大内核相反(大体量公司的管理层)

中断和异常

本质:需要操作系统介入,开展管理工作

过程:发生时,CPU立即进入核心态(只有 核心态能处理管理工作,也就是需要特权指令)->发生后,当前进程暂停,由操作系统进行后续处理->不同中断不同处理

中断是“用户态”到“核心态”的唯一途径

核心态到用户态只需要改变程序状态字亦可(特权指令)

中断分类

 来源包括
内中断CPU内部陷阱(如系统调用)、故障(如缺页)、终止(不可恢复的致命错误,如整数÷0)
外中断CPU外部I/O中断请求、人工干预

外中断过程:

1、检查是否有外部中断信号

2、保护被中断的CPU环境(如PSW、计数器、寄存器)

3、根据中断类型处理程序

4、恢复原进程CPU环境退出中断,返回原进程继续执行

系统调用

本质:应用程序请求操作系统的服务

原因:系统中的各种共享资源都由操作系统掌管,所有与资源相关操作都由操作系统代为完成(另外:与资源有关还与特权指令相关)

作用:保证系统的稳定性和安全性,防止非法操作

过程:传递系统调用参数->执行陷入指令(用户态)->执行系统调用程序(核心态)->返回用户程序

1、 陷入指令在用户态执行,之后马上引发内中断,CPU进入核心态

2、 发出系统调用请求发生在用户态,而对系统调用相应处理在核心态进行

3、 陷入指令是唯一一个只能在用户态执行而不可在核心态执行的执行

分类:

  • 进程控制(process control)
  • 文件管理(file manipulation)
  • 设备管理(device manipulation)
  • 信息维护(information maintenance)
  • 通信(communication)
  • 保护(protection)

其实就是涉及堆系统资源的管理、对进程的控制,需要执行特权指令才能完成,因此系统调用的相关处理需要在核心态下进行