操作系统基础 (二)

目录

  • 六. 运行机制
    • 两种指令
    • 两种CPU状态
    • 两种程序
  • 七. 中断和异常
    • 中断的作用
    • 中断类型
    • 中断机制基本原理
  • 八. 系统调用
    • 定义
    • 系统调用与库函数
    • 系统调用实现的功能
    • 系统调用过程
  • 九. OS体系结构
    • 内核
    • 分层结构
    • 模块化
    • 外核
  • 十. 系统引导
    • 相关的数据
      • 磁盘数据
      • 主存数据
    • 系统引导过程总述
  • 十一. 虚拟机
    • 背景
    • 两类虚拟机

六. 运行机制

两种指令

  • 指令:处理器(CPU)能够识别,执行的最基本命令。【即二进制机器指令】

Linux,Windows,MacOS的cmd命令框中的”指令“实质上是交互式命令接口。

  • 特权指令:一些可以影响其他程序的指令。只能由”管理者“即操作系统内核使用
  • 非特权指令应用程序使用的指令,如加法指令,减法指令等。

CPU设计出来时候就划分了两种指令,因此执行的之前可以判断出指令类型。

两种CPU状态

  • 内核态(核心态,管态):此时运行的是内核程序,可以执行特权指令。
  • 用户态(目态):此时运行的是应用程序,只能执行非特权指令。

CPU中存在标志CPU状态的寄存器:程序状态字寄存器(PSW),使用一个二进制位来表示CPU处于用户态还是内核态。

两种程序

  • 应用程序:普通程序员写的程序。
  • 内核程序多个内核程序组成”操作系统内核“,简称”内核Kernel)

内核操作系统的核心部分(eg. Docker—>仅需要Linux内核),最接近硬件。操作系统最核心的功都在内核中,其他功能如图形化用户界面GUI则不在内核中。

  • 状态切换:内核态—>用户态执行特权指令—修改PSW位,操作系统让出CPU使用权。

    用户态---->内核态由”中断“信号引发,硬件自动完成变态过程。操作系统强行夺回CPU使用权。

凡是需要操作系统介入的地方,都会触发中断信号

七. 中断和异常

中断的作用

“中断”:操作系统内核夺回CPU控制权的唯一途径。

如果没有"中断"机制,一旦应用程序上CPU运行,就会一直占用CPU。

中断类型

  • 内中断:与当前执行的指令有关,中断信号来自CPU内部。【也称为”异常“,包括陷入(trap),故障(fault),终止(abort)】
  • 例子一:试图在用户态执行特权指令
  • 例子二:除法运算发现除数为零
  • 例子三:应用程序请求内核服务,会执行特殊指令–陷入指令【不是特权指令】,引发内部中断。
  • 外中断:与当前执行的指令无关,中断信号来自CPU外部。【狭义的"中断"】
  • 时钟中断:时钟部件发来的中断信号
  • I/O中断

中断机制基本原理

联想截图_20240717173150.png

八. 系统调用

定义

系统调用是操作系统提供给程序(程序员/编程人员)使用的接口【可供应用程序调用的特殊函数】;应用程序通过系统调用请求获得操作系统内核服务
联想截图_20240717185501.png

系统调用与库函数

联想截图_20240717185645.png

系统调用实现的功能

联想截图_20240717185924.png
联想截图_20240717185835.png

系统调用过程

  • Step 1 传递寄存器参数

首先,向寄存器传递参数(≥1个),首个参数指明系统调用类型,如”fork“调用

联想截图_20240717190416.png

  • Step 2 执行陷入指令 引发内中断信号。接着转入中断处理程序【内核程序】—即 系统调用入口程序。

联想截图_20240717190951.png

  • Step 3 系统调用入口程序 【假设使用了fork系统调用】

联想截图_20240717191053.png

  • **Step 4 **系统调用完成后,返回用户态继续执行原程序后续指令

联想截图_20240717191350.png

  • 总结

联想截图_20240717191556.png

九. OS体系结构

  • 原语一种特殊程序,具有原子性。(即程序的运行不可被”中断“

联想截图_20240717193750.png

内核

联想截图_20240717192441.png

  • 大内核(宏内核/单内核):将操作系统主要功能模块都作为系统内核,运行在核心态。

应用程序请求内核服务需要2次CPU状态转换。Tip:CPU状态转换需要消耗时间,频繁转换会降低系统性能

  • 优点:高性能
  • 缺点:内核代码庞大,结构混乱,难以维护某个功能模块出错,可能导致整个系统崩溃
  • 常见系统:Linux,Unix。

联想截图_20240717192737.png

  • 微内核内核只保留最基本功能。

应用程序请求内核服务需要6次CPU状态转换
利用进程管理,存储管理 :通过消息传递,指明想要调用的功能模块。

  • 优点:内核功能少,结构清晰,便于维护可靠性高。内核外的功能模块出错不会导致整个系统崩溃。
  • 缺点:需要CPU频繁切换状态,性能低
  • 常见系统:Windows NT

联想截图_20240717192744.png

分层结构

  • 操作系统内核被分为多层,最底层是硬件,最高层是用户接口。每层只能调用更低一层提供的接口。

  • 优点:1.便于调试,自底向上逐层调试验证。【本层只会使用低一层的功能

    1. 利于扩充维护,各层接口清晰固定。【只需要层间接口固定不变即可扩充层次】
  • 缺点:1. 仅仅可以调用相邻低层,难以定义各层的边界。【不同层的功能都需要被使用】

    1. 效率低,不可跨层调用,系统调用时间长。

模块化

  • 内核被分为多个模块,各模块相互协作。

内核 = 主模块(由进程管理,内存管理等模块组成) + 可加载内核模块(如驱动模块)

可加载模块动态加载新模块到内核,无需重新编译整个内核。【使内核具有可拓展性】

  • 优点:模块间逻辑清晰易于维护,可以多模块同时开发。

    支持动态加载新的内核模块,增强OS适应性。
    ** 各模块之间可以相互直接调用**,无需通信,效率高

  • 缺点:模块间接口定义不一定合理,实用。

    模块间相互依赖,难以调试

外核

  • 内核:负责进程调度,进程通信等功能。

  • 外核:负责为用户进程分配,回收未经抽象的硬件资源保证资源使用安全

                外核**分配连续的地址空间**,便于用户随机访问【磁盘的磁头不需要来回跳转】,**提升了性能**。
    

未经抽象的硬件资源:即未经过虚拟化的硬件资源(内存空间,磁盘空间等)。
用户进程视角下连续的地址空间,实际上可能是分散存储的。

  • 优点:
    • 使得用户进程可以灵活使用硬件资源
    • 减少了虚拟硬件资源的”映射层“,提升效率。【不需要查页表,进行物理地址转换
  • 缺点:
    • 降低了系统一致性。【可能存在一块物理地址被用于虚拟地址映射,同时又被外核使用分配给用户进程。需要实际分析使用情况】
    • 使得操作系统更加复杂

十. 系统引导

BIOS(Basic Inout / Output System):基本输入/输出系统。

相关的数据

磁盘数据

联想截图_20240717204314.png

  • 分区表:一个数据结构,指明了磁盘各个分区的空间大小和地址范围
  • C盘:作为磁盘的活动分区,安装操作系统。

C盘细分如图:联想截图_20240717204611.png

主存数据

联想截图_20240717204744.pngRAM芯片区:易失性(断电丢失数据);ROM芯片区:不易失性。

  • ROM引导程序:指示CPU将磁盘的主引导记录读入CPU(RAM区)。

接着CPU会执行主存中的磁盘引导程序 ----> 磁盘引导程序确定C盘位置,将C盘的引导记录PBR读入主存 ------->执行PBR程序----->查找启动管理器【通常存储在根目录】
---------> 读取启动管理程序进入主存------------> 执行启动管理程序--------->完成操作性系统初始化操作

系统引导过程总述

联想截图_20240717205844.png

eg. Windows操作系统万丈的开机初始化程序在”根目录/Windows/Boot“路径下。

十一. 虚拟机

联想截图_20240717211235.png

背景

  • 传统计算机在一个物理机上只能运行一个操作系统,在其上运行多个应用程序。

  • 不足:1. 若物理机器硬件资源强大,则会出现计算机资源利用不充分

    1. 多个进程同时运行在一台物理机上,可能会出现资源冲突而相互影响造成安全隐患

两类虚拟机

  • 第一类VMM,直接运行在硬件之上
    • CPU按时间片划分,然后分配给各个虚拟机。磁盘,内存空间划分出来分配。
    • 直接管理、分配硬件资源
    • 只有虚拟机管理程序运行在内核态,可以使用特权指令。【如果上层操作系统使用特权指令,会被虚拟机管理程序捕获,然后进行转换,模拟出特权指令执行成功的现象】
  • 第二类VMM,运行在宿主操作系统
    • 参考上图
    • 虚拟机管理程序将获得的虚拟资源再次划分,然后分配给各个虚拟机,比第一类虚拟机多了一层套接,因此性能更差
  • 两种虚拟机的比较

联想截图_20240717213108.png

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

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

相关文章

uniapp小程序上传pdf文件

<template><view class"mainInnBox"><view class"formBox"><!-- 注意&#xff0c;如果需要兼容微信小程序&#xff0c;最好通过setRules方法设置rules规则 --><u-form :model"form" ref"uForm" :rules&quo…

240717.LeetCode——2974.最小数字游戏

题目描述 你有一个下标从 0 开始、长度为 偶数 的整数数组 nums &#xff0c;同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏&#xff0c;游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下&#xff1a; 每一轮&#xff0c;Alice 先从 nums 中移除一个 …

JavaSE从零开始到精通

1.前置知识 JVM&#xff1a;java virtrual machine, java虚拟机, 专门用于执行java代码的一款软件。可以将class文件&#xff0c;转换为机器认识的机器码&#xff0c;因为我们的计算机只认识010101的二进制语言。JRE&#xff1a;java runtime enviroment, java运行时环境, jav…

关于Linux的面试题(实时更新中~)

一、软连接和硬连接的区别&#xff1a; 软连接创建方式 ln -s 被链接文件 链接文件 &#xff08;1&#xff09;软链接是一个链接文件&#xff1b; &#xff08;2&#xff09;软链接有着自己的 inode 号&#xff08;文件编号&#xff09;&#xff1b; &#xff08;3&#…

用adb指令把文件拷贝到Android模拟器

不解释太多&#xff0c;科学上网从youtube看了一个视频得来的 跳转到视频 首先必须要运行你要拷贝文件的目标Android模拟器&#xff0c;你关闭他的话&#xff0c;你是找不到这个设备的 管理员权限运行vs studio&#xff0c;在vs studio下打开Andriod的设备管理器 运行你要拷…

Hadoop-34 HBase 安装部署 单节点配置 hbase-env hbase-site 超详细图文 附带配置文件

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; HadoopHDFSMapReduceHiveFlumeSqoopZookeeperHBase 正在 章节内容 上节我们完成了&#xff1a; HBase的由…

R语言实现神经网络ANN

# 常用激活函数 # 自定义Sigmoid函数 sigmod <- function(x){return(1/(1exp(-x))) } # 绘制Sigmoid曲线 x <- seq(-10,10,length.out 100) plot(x,sigmod(x),type l,col blue,lwd 2,xlab NA,ylab NA,main Sigmoid函数曲线)# 自定义Tanh函数 tanh <- function(…

OpenStack-Caracal 的horizon 组件的一个 bug

用 ROD 部署 openstack-caracal 的时候发现了一个故障&#xff1a; 通过查询 horizon 组件的 日志&#xff0c;发现这其实是一个产品 BUG &#xff0c;原因在于 Python 的 WEB服务框架 Django 不能正确传入 memcached 给出的一个属性参数、导致WEBROOT解析有问题&#xff1a; 这…

怎样减少视频的容量 怎样减少视频内存保持清晰度

在数字媒体时代&#xff0c;视频内容已经成为人们日常交流和信息传递的重要方式。然而&#xff0c;视频往往占用大量存储空间&#xff0c;给我们的设备带来不小的负担。如何在不损失视频质量的前提下&#xff0c;减少视频文件的大小呢&#xff1f;本文将为你揭秘几个实用的技巧…

Linux 下 ElasticSearch 集群部署

目录 1. ElasticSearch下载 2. 环境准备 3. ElasticSearch部署 3.1 修改系统配置 3.2 开放端口 3.3 安装 ElasticSearch 4. 验证 本文将以三台服务器为例&#xff0c;介绍在 linux 系统下ElasticSearch的部署方式。 1. ElasticSearch下载 下载地址&#xff1a;Past Rel…

vue使用audio 音频实现播放与关闭(可用于收到消息给提示音效)

这次项目中因为对接了即时通讯 IM&#xff0c;有个需求就是收到消息需要有个提示音效&#xff0c;所以这里就想到了用HTML5 提供的Audio 标签&#xff0c;用起来也是很方便&#xff0c;首先让产品给你个提示音效&#xff0c;然后你放在项目中&#xff0c;使用Audio 标签&#x…

在mybatis-plus中关于@insert注解自定义批处理sql导致其雪花算法失效而无法自动生成id的解决方法

受到这位作者的启发 > 原文在点这里 为了自己实现批量插入&#xff0c;我在mapper层使用insert注解写了一段自定义sql //自定义的批量插入方法 Insert("<script>" "insert into rpt_material_hour(id,sample_time,rounding_time,cur_month,machine_no…

【Powershell】超越限制:获取Azure AD登录日志

你是否正在寻找一种方法来追踪 Azure Active Directory&#xff08;Azure AD&#xff09;中用户的登录活动&#xff1f; 如果是的话&#xff0c;查看Azure AD用户登录日志最简单的方法是使用Microsoft Entra管理中心。打开 https://entra.microsoft.com/&#xff0c;然后进入 监…

idea Apipost 插件导出接口文档字段类型全部是string

idea版本&#xff1a;2023.2.1 Apipost-Helper-2.0插件版本&#xff1a; 联系官方客服后&#xff0c;更换插件版本&#xff0c;问题解决。更换后的插件版本为&#xff1a; 插件链接放在文章首部了&#xff0c;可直接下载&#xff0c;使用idea直接安装这个zip包&#xff0c;无需…

【扩散模型(五)】IP-Adapter 源码详解3-推理代码

系列文章目录 【扩散模型&#xff08;一&#xff09;】中介绍了 Stable Diffusion 可以被理解为重建分支&#xff08;reconstruction branch&#xff09;和条件分支&#xff08;condition branch&#xff09;【扩散模型&#xff08;二&#xff09;】IP-Adapter 从条件分支的视…

excel 图表切片器-操作教程

学习怎么用excel 图表切片器&#xff1a; 切片器提供按钮&#xff0c;你可以单击这些按钮来筛选 表或 数据透视表。 除了快速筛选外&#xff0c;切片器还指示当前筛选状态&#xff0c;以便轻松了解当前显示的确切内容。 具体 学习见 微软网站 操作步骤&#xff1a; 1.打开 E…

【BUG】已解决:java.lang.IllegalStateException: Duplicate key

已解决&#xff1a;java.lang.IllegalStateException: Duplicate key 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市…

MySQL1

新建产品库mydb6_product: mysql> create database mydb6_product; mysql> use mydb6_product; 建立employees表&#xff1a; mysql> create table employees(id int primary key, name varchar(50) not null, age int, gender varchar(10) not null default unknow…

39.简易频率计(基于等精度测量法)(2)

&#xff08;1&#xff09;Verilog代码实现&#xff1a; module freq_meter_calc (input clk ,input reset_n ,input clk_test ,output reg [31:0] freq );reg [26:0] cnt0;reg gata_r;reg gata_t;reg [47:0] cnt_clk_test;reg gata_t_test_r…

20240718 每日AI必读资讯

大模型集体失智&#xff01;9.11和9.9哪个大&#xff0c;几乎全翻车了 - AI处理常识性问题能力受限&#xff0c;9.11&#xff1e;9.8数学难题暴露了AI短板。 - 训练数据偏差、浮点精度问题和上下文理解不足是AI在数值比较任务上可能遇到的困难。 - 改进AI需优化训练数据、Pr…