计算机原理二_操作系统概述

news2024/11/27 2:19:15

目录儿

  • 三、操作系统概述
    • 3.1 操作系统的基本概念
      • 3.1.1 操作系统的概念
      • 3.1.2 操作系统的目标和功能
        • 3.1.2.1 目标
        • 3.1.2.2 功能
      • 3.1.3 操作系统的特征
    • 3.2 操作系统的发展与分类
      • 3.2.1 分类
    • 3.3 操作系统的运行环境
      • 3.3.1 操作系统的运行机制
        • 3.3.1.1 用户态、核心态
        • 3.3.1.2 时钟与中断
        • 3.3.1.3 中断的处理过程
        • 3.3.1.4 原语
        • 3.3.1.5 系统数据结构
        • 3.3.1.6 系统调用
      • 3.3.2 操作系统的体系结构
        • 3.3.2.1 传统的操作系统结构(大内核)
        • 3.3.2.2 微内核OS结构(微内核)

三、操作系统概述

3.1 操作系统的基本概念

3.1.1 操作系统的概念

操作系统简称 OS,是管理(沟通)计算机硬件与软件资源的计算机程序,是一种系统软件。
在这里插入图片描述

计算机系统的构成由上到下依次为:

  • 用户
  • 应用程序
  • 操作系统(OS)
  • 硬件(裸机)

应用软件安装在系统软件上
系统软件安装在硬件上

  • 与硬件交互
  • 对资源共享进行调度管理
  • 解决并发操作处理中存在的协调问题
  • 数据结构复杂,外部接口多样化

操作系统做了哪些事儿(主要作用):

  • 管理与配置内存
  • 决定系统资源供需的优先顺序
  • 控制输入输出设备
  • 操作网络与管理文件系统等基本事务
  • 提供让用户与系统交互的操作界面

3.1.2 操作系统的目标和功能

3.1.2.1 目标

  1. 有效管理系统资源
    • 提高系统资源利用率
    • 提高系统的吞吐量
  2. 方便用户使用
  3. 对计算机的功能进行扩充和开放(实现各种功能)

3.1.2.2 功能

  1. 作为计算机系统资源的管理者:
    • 处理器管理
      • 进程控制
      • 进程同步
      • 进程通信
      • 调度
    • 存储器管理
      • 内存分配
      • 内存保护
      • 地址映射
      • 内存扩充
    • I/O设备管理
      • 缓冲管理
      • 设备分配
      • 设备处理
    • 文件管理
      • 文件存储空间的管理
      • 目录管理
      • 文件的读/写管理与保护
  2. 作为用户与计算机『硬件系统』之间的接口:
    • 程序接口
    • 命令接口
    • 图形用户接口 GUI(Graphical User Interface)
  3. 实现了对计算机资源的抽象(作为扩充机器):
    • 将具体的计算机资源抽象成软件资源,方便用户使用
    • 开放了简单的访问方式,隐藏了实现细节(如浏览器百度搜索)

如浏览器百度搜索: 用户 → 打开浏览器输入网址 → 一系列的系统调用 → 网络设备进行远程通信

3.1.3 操作系统的特征

在这里插入图片描述

  1. 并发
    同一时间间隔内执行和调度多个程序的能力
    宏观上:处理器同时执行多个任务
    微观上:处理器在多个任务之间高速切换(分时交替执行)

    易混淆概念:并行
    并发一段时间内发生的事件数量(单线程一段时间内能够处理的最大任务数)
    并行是某一时刻发生的事件数量(多线程同一时刻能处理的最大任务数)

  2. 共享
    即资源共享,系统中的资源供多个并发执行的应用程序共同使用(如打印机,音频设备,视频设备),资源共享有两种方式:。
    ① 同时访问方式:同一时段允许多个程序同时访问共享资源。
    ② 互斥共享方式:也叫独占式,允许多个程序在同一个共享资源上独立而互不干扰的工作。
  3. 虚拟
    使用某种技术吧一个物理实体变成多个逻辑实体,常见两种技术:
    • 时分复用技术(TDM Time Division Multiplexing)
      • 虚拟处理器技术:四核八线程(超线程)
      • 虚拟设备技术:虚拟打印机
    • 空分复用技术(SDM Space Division Multiplexing)
      • 虚拟磁盘技术:将一块硬盘虚拟出若干个卷
      • 虚拟存储器技术
  4. 异步
    在单处理器单线程、多个程序的环境下,允许程序并发执行
    宏观上程序是“一气呵成”,微观上程序是“走走停停”

3.2 操作系统的发展与分类

3.2.1 分类

1.分时操作系统
一台主机连接多个带显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。
在这里插入图片描述

  • 特征:
    • 多路性:时间片轮转机制
    • 独立性:用户彼此独立
    • 及时性:用户能在短时间内获得响应
    • 交互性:用户可以请求多种服务
  • 缺点:
    • 作业/用户优先级相同,不能优先处理紧急任务

2.实时操作系统
系统能立即响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

  • 特征(与分时操作系统相比):
    • 用户性:以用户能接收的等待时间为准
    • 可靠性:多级容错,保障系统和数据的安全

3.3 操作系统的运行环境

3.3.1 操作系统的运行机制

3.3.1.1 用户态、核心态

两种CPU状态:

  • 内核态(Kernel Mode):运行操作系统程序,也叫管态
  • 用户态(User Mode):运行用户程序,也叫目态

内核态与用户态的区别:

  1. 内核态与用户态是操作系统的两种运行级别,当程序运行在3级特权级上时,就可以称之为运行在用户态。因为这是最低特权级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态;
  2. 当程序运行在0级特权级上时,就可以称之为运行在内核态。
  3. 运行在用户态下的程序不能直接访问操作系统内核数据结构和程序。当我们在系统中执行一个程序时,大部分时间是运行在用户态下的,在其需要操作系统帮助完成某些它没有权力和能力完成的工作时就会切换到内核态。
  4. 这两种状态的主要差别是:
    • 处于用户态执行时,进程所能访问的内存空间和对象受到限制,所占有的处理机是可被抢占的。
    • 处于核心态执行中的进程,则能访问所有的内存空间和对象,且所占有的处理机是不允许被抢占的。

两种指令划分:

  • 特权指令:只能由操作系统使用、用户程序不能使用的指令。 举例:启动I/O、内存清零 修改程序状态字、设置时钟、允许/禁止终端、停机等
  • 非特权指令:用户程序可以使用的指令。 举例:控制转移 、算数运算 、取数指令、访管指令(使用户程序从用户态陷入内核态)等

两种程序划分:

  • 内核程序:操作系统必须要有的程序如进程管理、文件管理
  • 应用程序:对于操作系统来说非必要的程序,为用户服务的程序
    在这里插入图片描述

3.3.1.2 时钟与中断

时钟的作用

  • 计时:提供系统时间
  • 时钟中断:时钟的一种重要应用,可用于类似进程切换的场景

时钟中断

  • 作用:基于时钟中断机制的时间片轮转可以在并发环境下提高CPU利用率
  • 中断分类:
    • 外中断:中断信号来源于外部设备
    • 内中断:中断信号来源于当前指令

      内中断也叫 异常陷入例外

内中断的三种情况

  • 陷阱/陷入(Trap):由应用程序主动引发
    例:程序运行过程中,读到某条指令需要调用内核程序,于是产生一个陷入指令中断当前程序的执行转去执行内核程序。
    在这里插入图片描述
  • 故障(fault):由错误条件引发
    例:如一个大型游戏,因为整个游戏程序非常大,因此通常只会把游戏的核心程序加载进内存中运行,当执行到某条指令,需要运行核心程序外的其他程序时,就会产生一个内存缺页故障(当前内存没有需要的程序存在),暂停当前核心程序的执行,转而去加载需要的程序进内存运行(典型例子就是进入副本刷图需要等待加载,进入召唤师峡谷需要等待加载等等)。
    在这里插入图片描述
  • 终止(abort):由致命错误引发

3.3.1.3 中断的处理过程

在这里插入图片描述
关中断 是进入中断处理的入口,就像一把锁,进入中断处理时把门给关了,不再响应其他中断请求,直到整个中断处理完成时,开中断 后,才重新接受中断请求。

中断处理流程:
① 关中断:关门,不再响应其他中断请求。
② 保存断点:保存当前程序计数器状态(记录着 原程序 执行到哪里)。
③ 引出中断服务程序:读取本次中断处理完成后需要执行的 程序 的地址。
④ 保存现场和屏蔽字:保存当前寄存器状态(记录着原程序的执行状态)。
⑤ 开中断:整个中断处理完成了,开门,开始响应其他中断请求。
⑥ 执行中断服务程序:执行步骤 ③ 读取到的 程序
⑦ 关中断:执行完所需要的服务 程序 后,关门,进入中断处理,拒绝响应其他中断请求。
⑧ 恢复现场和屏蔽字:恢复寄存器和程序计数器,回到 原程序 继续执行。
⑨ 开中断:开门,开始响应中断请求。

3.3.1.4 原语

原语是本质上就是一个程序段(一段指令),可以看作是一个小程序,用来完成某个特定的功能。
特点:

  • 由若干条指令组成。
  • 用来完成某个特定功能。
  • 执行过程不会被中断(具有原子性,依靠开、关中断实现)。
  • 运行在内核空间。

3.3.1.5 系统数据结构

3.3.1.6 系统调用

在这里插入图片描述
系统调用应该叫系统调用接口,是由操作系统实现的一套接口的集合,用于给应用程序调用内核服务(由用户态切换到内核态)。

3.3.2 操作系统的体系结构

3.3.2.1 传统的操作系统结构(大内核)

第一代:无结构OS

  • 是一系列程序(过程)的集合,程序(过程)间可以相互调用。
  • 结构复杂、混乱,难以调试、阅读和维护。

第二代:模块化OS

  • 特点:
    • 基于“分解”和“模块化”原则设计。
    • 按照功能划分模块/子模块,并规范模块间的接口。
    • 模块基于独立性原则(高内聚、低耦合)设计。
  • 优点:
    • 提高了OS设计的合理性、可理解性和可维护性。
    • 增强了OS的适应性。
    • 提高了开发效率。
  • 缺点:
    • 模块接口设计难以扩展、满足后续需求。
    • 模块设计没有统一标准,导致模块接口设计可靠性低。

第三代:分层式结构OS
在这里插入图片描述

  • 特点:
    • 有序分层,自顶向下依次依赖。
    • 设计时自底向上,每一步都建立在可靠的基础上
  • 优点:
    • 容易保证系统的正确性。
    • 容易扩充和维护。
  • 缺点:
    • 自上而下的层次通信,导致系统效率下降。

第四代:微内核OS

3.3.2.2 微内核OS结构(微内核)

微内核OS选择只实现OS的核心功能,因此相比传统操作系统,内核大大缩小,称微内核。
应用“机制与策略分离”原理,采用面向对象技术。
在这里插入图片描述

实现的核心功能如硬件处理、客户与服务器通信等基本功能

  • 优点:
    • 提高了OS的可扩展性、可靠性和可移植性。
    • 对分布式的支持更好。
    • 融入了面向对象技术。
  • 缺点
    • 相较早期OS,效率有一定的下降(用户态和核心态的切换次数增加了)。

资料来源:哔哩哔哩 马士兵-小森 清华大牛耗时1000分钟把计算机底层知识 | 计算机组成原理 | 操作系统 | 数
https://www.bilibili.com/video/BV1qe4y1T7t3?p=19&spm_id_from=pageDriver&vd_source=c2e346bb74807b3fde142d31e57292ce

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SLAM初探

SLAM初探 1.视觉SLAM框架 整个视觉SLAM包括以下流程 传感器信息读取,主要是相机图像信息的读取和处理前端视觉里程计,它的任务是估算相邻图像之间相机的运动和局部的地图后端优化,接受不同时刻视觉里程计输出的相机位姿以及回环检测的信息&…

【C++高阶数据结构】LRU

​ 🏆个人主页:企鹅不叫的博客 ​ 🌈专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接:代码仓库地址 ⚡若有帮助可以【关注点赞收藏…

LeetCode刷题复盘笔记—一文搞懂动态规划之583. 两个字符串的删除操作问题(动态规划系列第四十篇)

今日主要总结一下动态规划的一道题目,583. 两个字符串的删除操作 题目:583. 两个字符串的删除操作 Leetcode题目地址 题目描述: 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意…

ArcGIS基础实验操作100例--实验56 TIFF与GRID栅格转换

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验56 TIFF与GRID栅格转换 目录 一、实验背景 二、实验数据 三、实验步骤 (…

orika 工具下划线转驼峰不同字段名映射

1.问题: 业务需要把第三方接口的带下划线的字段规范为驼峰的字段 第三方接口的bean对象: public class ObjectsDetail extends XMLElementData implements Serializable {private static final long serialVersionUID 5080447582610246168L;private String objectclass;priv…

用300行Python代码实现一个人脸识别系统源码,基于dlib

用300行Python代码实现一个人脸识别系统 完整代码下载地址:用300行Python代码实现一个人脸识别系统源码,基于dlib 今天我们来python实现一个人脸识别系统,主要是借助了dlib这个库,相当于我们直接调用现成的库来进行人脸识别&…

科技云报道:“大建设”时期,AI算力何去何从?

科技云报道原创。 算力就是生产力,得算力者得天下。 随着新一代人工智能技术的快速发展和突破,以深度学习计算模式为主的AI算力需求呈指数级增长。 数据显示,在1960到2010年间,AI的计算复杂度每两年翻一番;在2010到2…

fastposter v2.11.0 天花板级的海报生成器

fastposter v2.11.0 天花板级的海报生成器 🔥🔥🔥 fastposter海报生成器是一款快速开发海报的工具。只需上传一张背景图,在对应的位置放上组件(文字、图片、二维🐴、头像)即可生成海报。 点击代…

实验二十一 配置NAT

实验二十一 配置NAT实验要求: 静态NAT: 在Router的公网侧接口GE0/0/1下配置静态NAT,将私有 IP地址 192.168.0.2与公有IP地址202.10.1.3绑定起来。 NAT SERVER的配置 动态NAT和easy IP的配置网络拓扑图:操作步骤:一、静态NAT1、配置…

Actipro-wpf-controls-22.1.4 2023注册版

Actipro WPF 控件 用于构建漂亮的 Windows Presentation Foundation 桌面应用程序的大量 UI 控件 特征 超过 100 个 WPF 控件和组件在各种产品中可用,Ω578867473它们通过丰富的特性和功能改进应用程序的 UI。 受办公室启发的用户界面 复制现代 Office 应用程序的外…

【数据结构】计数排序、基数排序

文章目录计数排序基数排序计数排序 计数排序也是非比较排序的一种,在之前的博客介绍的都是比较排序,跟之前的比较排序相比计数排序并不是很常用,不常用的原因也是它的局限性耗费空间很大,只能对整数进行排序,并且数据在…

【验证码逆向专栏】某验四代滑块验证码逆向分析

文章目录声明逆向目标通讯流程验证码流程分析逆向分析captcha_id 参数challenge 参数w 参数结果验证声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与…

剑指 Offer 27. 二叉树的镜像(Leetcode 226. 翻转二叉树)(二叉树后序遍历)

题目: 链接:剑指 Offer 27. 二叉树的镜像;Leetcode 226. 翻转二叉树 难度:简单 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,…

调用Ishingami Homma解析函数测试PAWN算法(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 灵敏度分析分为局部灵敏度分析和全局灵敏度分析;局部灵敏度分析包括:直接求导法、有限差分法、格林函数…

06-07-Alibaba Nacos注册中心源码剖析

Nacos&Ribbon&Feign核心微服务架构图 架构原理 1、微服务系统在启动时将自己注册到服务注册中心,同时外发布 Http 接口供其它系统调用(一般都是基于SpringMVC) 2、服务消费者基于 Feign 调用服务提供者对外发布的接口,先对调用的本地接口加上注…

Github每日精选(第85期):PDF 文档的 React 组件react-pdf-viewer

react-pdf-viewer react-pdf-viewer 用于查看 PDF 文档的 React 组件。它是用 TypeScript 编写的,完全由 React hooks 提供支持。 github 的地址在这里。 使用实例 添加水印 默认情况下,每个页面由画布、文本和注释层构成。在此示例中,我…

RCE(命令执行)总结

文章目录RCE(命令、代码执行)总结1、过滤cat、flag等关键字1.1 常见linux系统命令1.2 使用转义符1.3 使用引号1.4 内联执行绕过1.5 编码绕过1.6 进制绕过1.7 过滤文件名(如: /etc/passwd文件)1.8 使用$*和$,$x,${x}1.9 读取文件命令1.10 查找文件命令(fi…

【观察】汇聚中国开源数据库创新力量,openGauss驶入发展“快车道”

毫无疑问,数据库是“软件产业皇冠上的明珠”,是数字基础设施不可或缺的底座之一。但也要看到,由于数据库难度大,产业投入周期长,迫切需要凝聚产业力量共建基础能力。在此背景之下,作为定位企业级开源数据库…

H264 NALU分析以及提取h264实战

1.H264简介 H.264从1999年开始,到2003年形成草案,最后在2007年定稿有待核实。在ITU的标准⾥称 为H.264,在MPEG的标准⾥是MPEG-4的⼀个组成部分–MPEG-4 Part 10,⼜叫Advanced Video Codec,因此常常称为MPEG-4 AVC或直…