操作系统——解决了我的一些困惑

目录

1、电脑开机做了什么事情

2、真正实现并行的计算机

3、计算机中的淘汰算法 & 分配算法 & 调度算法 & 空间管理

4、什么是虚拟内存?为什么需要虚拟内存?最多可分配多少?

5、TLB(快表)、分页存储(慢表)【二级、多级、分段、分页、段页】、虚拟内存

6、高级语言程序——转换为可执行目标程序


1、电脑开机做了什么事情

爆肝一晚上,希望用动画带你理解操作系统的启动_哔哩哔哩_bilibili

首先,我们已经通过BIOS引导,安装了一个操作系统,并且划分了分区,还安装了软件

现在开始开机:   (自检-BIOS-MBR-PBR-初始化)

  1. CPU读取磁盘信息(执行BIOS引导程序——硬件自检)
  2. 通过主引导记录MBR——找到磁盘分区 & 操作系统的分区
  3. 通过分区引导记录PBR——根据根目录找到启动管理程序
  4. 执行操作系统的初始化程序——完成操作系统的初始化

补一下:(408小白,刚刚才开始复习操作系统,还搞不定那些分区什么的,虽然王道有讲,但是忘记了差不多了)

  1. 电源开启后,计算机进行电源自检,确保各硬件设备正常
  2. 主板上的BIOS芯片被访问,执行Basic Input/Output System (BIOS)程序。BIOS负责初始化各硬件设备,并进行一系列自检,包括检查RAM、显示适配器等。
  3. BIOS通过读取硬盘驱动器的引导区Master Boot RecordMBR)来加载引导程序。MBR位于分区表的第一个扇区,其中存储了引导程序的位置和大小信息。主要分为:【磁盘引导程序 分区表】(扫描分区表:分区表记录了D盘的位置,还有系统分区C盘等等,【普通盘】就是记录的数据,【系统盘】就是操作系统的程序)
  4. 通过【MBR的引导程序】找到【系统分区】,读取【分区引导记录 - Partition Boot Record - PBR】,然后根据【根目录】找到【启动管理程序】,加载【操作系统的引导加载程序】(如果是Linux,就加载Linux,如果是Windows,就加载Windows)。完成后把【控制权】转交给【操作系统】。
  5. 【操作系统内核】被加载入内存,并开始执行【初始化程序】。【初始化程序负责配置系统环境、加载设备驱动程序和初始化各种子系统。
  6. 【初始化过程】通常涉及加载一些核心组件、建立内存管理和进程管理结构,以及准备其他必要的系统资源。
  7. 一旦初始化完成,操作系统进入【可用状态】,用户可以进行交互,并且其他应用程序可以在操作系

需要注意的是,不同的操作系统和计算机架构可能会有所不同,但基本过程大致相似。此外,硬盘分区和软件安装的细节通常在操作系统初始化之后完成。

大佬补充:

目前大多BIOS 都是FLASH存储,可烧写擦除,ROM只是针对用户使用而言的,防止固件程序被随意改动,按下开机键后首先执行上电,上电后权限移交给CPU和BIOS,而后bios再调用mbr表,同样S5-S0根据ACPI会同步执行掉电以达到低功耗。值得一提的是在计算机设计中固件不一定只有BIOS code,有部分挂载需要借助UEFI系统进行升级,同样针对用户来说也是ROM。同样BIOS FLASH内部不一定只有BIOS code,这部分是ODM针对需求定制来决定的。针对硬件层来说,第一层是上电,也就是会执行上电复位/使能/软复位的操作,第二层则是BIOS,第三层是mbr,第四层是fs(eg:NTFS,mbr需要根据fs的类型再进行find os boot),第五层是OS kernel(这之前可能也还有个OS boot),而后才是OS以及OS GUI。当然实际上都是由设计决定的。例如fs其实可以不止一层,kernel可以有kernel的fs,mbr可以有mbr的fs,OS由OS的fs,而磁盘也可能有自己的文件系统(即为固件管路或者存储矩阵管理)。过程还挺复杂的,我这边接触的也只是一个角度的(ACPI上的)

注意:【uefi启动】

现在已经是uefi启动了(原理都是差不多的,不过是uefi统一了框架)

【针对UEFI启动+单系统】在开机的10s内,你的电脑都干了什么?_哔哩哔哩_bilibili

2、真正实现并行的计算机

并行处理计算机系统(parallel computer system)是指同时执行多个任务或多条指令或同时对多个数据项进行处理的计算机系统。

早期的计算机是串行逐位处理的,称为串行计算机。

并行处理计算机主要指以下两种类型的计算机:

1、能同时执行多条指令或同时处理多个数据项的单中央处理器计算机;(超流水技术)

2、多核处理机(可以有一个CPU多个核心)

3、计算机中的淘汰算法 & 分配算法 & 调度算法 & 空间管理

淘汰算法:

1、进程调度(进程五状态的切换)

2、页面调度(内存页面的置换)

3、高速缓存(Cache与TLB的内存块置换)

分配算法:

1、内存分配算法——离散分配、连续分配

2、进程资源分配——银行家算法

调度算法:

1、进程调度排队——6个(FIFO)

2、磁盘调度算法——6个

空间管理:

1、文件管理方法——4个(位示图)

4、什么是虚拟内存?为什么需要虚拟内存?最多可分配多少?

0、操作系统——会默认给虚拟内存

微软官方文档——程序都需要虚拟内存的,不管你剩余内存有多少

『面试问答』:什么是虚拟内存?为什么要有虚拟内存? - 哔哩哔哩

1、为什么进程使用的是虚拟内存,而不是真实的物理内存?

虚拟内存使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,

它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

2、如果内存不够,我们可以手动设置虚拟内存的大小

对于系统上运行的进程来说:(虚拟内存的最大容量由计算机的地址结构决定的)

在32位系统上,最多可以拥有4GB(2的32次方)虚拟内存空间,

在64位系统上,则最多可以拥有256T(2的64次方)虚拟内存空间。

由于每个进程都有一个这么大的地址空间,导致所有进程的虚拟内存加起来,自然要比实际物理内存大得多。所以,并不是所有的虚拟内存都会分配物理内存,只有那些实际使用的虚拟内存才会分配物理内存。

当进程对某块虚拟内存进行读写时,CPU 就会去访问这块内存, 这时如果发现这块虚拟内存没有映射到物理内存, CPU 就会产生缺页中断,进程会从用户态切换到内核态,并将缺页中断交给内核的缺页中断函数处理,这时才会真正地为它分配物理内存。

3、总结

虚拟内存技术——扩充内存逻辑空间的技术

简单说——给程序加了一个映射,方便从离散的硬盘块中,快去取出并且替换

主要通过将部分程序的内存映射到磁盘上,然后在需要时再将其读入内存中来扩展可用地址空间。

优点——它提供了更大的地址空间,使程序能够访问比实际物理内存更多的内存。

缺点——由于需要从磁盘读取和写入数据,虚拟内存访问速度相对较慢,从而导致系统性能受到影响。

4、举一个例子

对于虚拟内存——就是老板(操作系统)给员工(程序)画的饼

画饼:操作系统给程序说有100个房间(连续的内存空间)供他使用【这就是他虚拟的内存】

实际:

员工(程序)在真正使用那些房间里面的东西时【虚拟地址】,老板会进一步处理转换为内存上对应的【物理地址】

其实老板(操作系统)只会给分他10个房间【内存空间】,

并且总会及时的把没有在【内存空间】的地址,放到那【内存空间中】——页面置换

这样就让程序没有感知,感觉良好(实际上就是被坑了~)

Swap分区

5、TLB(快表)、分页存储(慢表)【二级、多级、分段、分页、段页】、虚拟内存

CPU到Cache中——有TLB(快表)做地址转换(提高运行速度)

内存块到硬盘——有(慢表)做物理地址到虚拟地址的转换(方便程序运行)

内存块到硬盘——有(虚拟内存)做地址转换(方便程序更好运行)

6、高级语言程序——转换为可执行目标程序

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

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

相关文章

微服务--01--简介、服务拆分原则

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 微服务微服务架构,是服务化思想指导下的一套最佳实践架构方案。服务化,就是把单体架构中的功能模块拆分为多个独立项目。 单体架构微服务架构…

Spine深入学习———— 渲染

数据有了之后,就开始渲染 渲染相关 绘制顺序 骨架的绘制顺序就是一个插槽列表,在插槽列表中上方的附件在下方之上绘制,绘制顺序可以在层级树中的骨架下查看。 基础流程 渲染实现 以下按照cocos2dx的实现来 (cocos2dx 3.7 spin…

【云平台】STM32微信小程序阿里云平台汇总——持续更新

【云平台】STM32微信小程序阿里云平台汇总——持续更新 文章目录 前言总结 前言 提示:以下是本篇文章正文内容,下面案例可供参考 【云平台】STM32微信小程序阿里云平台学习板 【云平台】小白从零开始:小程序阿里云平台控制STM32&#xff08…

1980-2022年世界各国专利、商标申请数据/世界各国知识产权专利申请数据

1980-2022年世界各国专利、商标申请数据/世界各国知识产权专利申请数据 1、时间:1980-2022年 2、来源:WIPO数据库 3、范围:世界各国(180多个国家) 4、指标:国家名称、年份、代码、类型、专利申请总量、…

GPU中的半格效应(half-pixel)

最近在阅读《GPGPU编程技术从GLSL、CUDA到OpenCL》时,章节3.4.3 卷积核中讲到了半格效应,该书中的英文标注为:0.5 effect,也有被称为:half pixel offset等。 联想到我之前的GPU计算、渲染时的代码,在做画质…

TUP通信

一,概括 二,常用方法 三, 实现步骤(一发一收) 四,案例(一接一收) (1),客户端 (2),服务端 (3&…

歌手荆涛作品《父与子》:一首深情演绎父子情感的歌曲

在华语乐坛中,有很多歌曲以亲情为主题,其中歌手荆涛演唱的《父与子》就是其中的代表作之一。这首歌以朴实的歌词和深情的演唱,打动了无数听众的心灵,让人感受到了亲情之间的温暖和牵绊。 《父与子》这首歌以父子为主题&#xff0c…

【C++】类型转换 ④ ( 子类 和 父类 之间的类型转换 - 动态类型转换 dynamic_cast )

文章目录 一、子类 和 父类 之间的类型转换 - 动态类型转换 dynamic_cast1、构造父类和子类2、子类 和 父类 之间的类型转换 - 隐式类型转换3、子类 和 父类 之间的类型转换 - 静态类型转换 static_cast4、子类 和 父类 之间的类型转换 - 重新解释类型转换 reinterpret_cast5、…

【Java Spring】SpringBoot Bean详解

文章目录 1、Bean方法注解简介2、Bean注解重命名3、对象装配(获取Bean对象)3.1 对象装配之属性注入3.2 对象装配之Set 注入3.3 对象装配之构造方法注入 4、Resource VS Autowired5、Bean对象的作用域5.1 验证Bean对象的默认作用域5.2 Bean对象的六大作用…

论文解读:《数据增强:通过强化学习引导的条件生成进行文本数据扩充》

Title:<Data Boost: Text Data Augmentation Through Reinforcement Learning Guided Conditional Generation> 期刊&#xff1a;EMNLP &#xff08;顶级国际会议&#xff09; 作者 Ruibo Liu; Guangxuan Xu; Chenyan Jia; Weicheng Ma; Lili Wang; et al 出版日期 20…

基于Springboot的墙绘产品展示交易平台(有报告),Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的墙绘产品展示交易平台&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff0…

手势监听类GestureDetector Listener源码解析

手势监听类GestureDetector 前言一、GestureDetector是什么&#xff1f;二、Listener源码解析1.OnGestureListener2.OnDoubleTapListener3.OnContextClickListener4.SimpleOnGestureListener 总结 前言 在写自定义view的时候&#xff0c;涉及到了手势监听这块的知识&#xff0…

FLV 文件格式分析

前言 flv 是 flash video 的缩写&#xff0c;是 Adobe Flash payler 支持的一种流媒体播放格式。flv 是一种层级格式&#xff0c;除了一个 flv header 外&#xff0c;剩下全是由 一个个 tag 组成。tag 是由 tag 头和 tag 数据组成。tag 类型分为音频、视频、脚本&#xff0c;一…

交换机的VRRP主备配置例子

拓朴如下&#xff1a; 主要配置如下&#xff1a; [S1] vlan batch 10 20 # interface Vlanif10ip address 10.1.1.1 255.255.255.0vrrp vrid 1 virtual-ip 10.1.1.254vrrp vrid 1 priority 200vrrp vrid 1 preempt-mode timer delay 20 # interface Vlanif20ip address 13.1.1…

IDEA的安装与删除插件

不小心安装了一个英文转中文的插件&#xff0c;看不习惯&#xff0c;决定重新变回英文 先点击这个settings的安装 然后就看到这个下面这张图了 如果是安装就点install&#xff0c;不用了就和我一样把这个勾给去掉

MUI框架从新手入门【webapp开发教程】

文章目录 MUI -最接近原生APP体验的高性能前端框架APP开发3.25 开发记录miu框架介绍头部/搜索框&#xff1a;身体>轮播图轮播图设置数据自动跳转&#xff1a;九宫格图片九宫格图文列表底部选项卡按钮选择器手机模拟器 心得与总结&#xff1a;MUI框架在移动应用开发中的应用M…

openGauss学习笔记-133 openGauss 数据库运维-例行维护-日维护检查项

文章目录 openGauss学习笔记-133 openGauss 数据库运维-例行维护-日维护检查项133.1 检查openGauss状态133.2 检查锁信息133.3 统计事件数据133.4 对象检查133.5 SQL报告检查133.6 备份133.7 基本信息检查 openGauss学习笔记-133 openGauss 数据库运维-例行维护-日维护检查项 …

数据结构——利用堆进行对数组的排序

今天文章的内容是关于我们如何利用堆的特性对我们的数组进行排序&#xff0c;还有就是我们的TopK的问题&#xff0c;这次我们放在的是文件种&#xff0c;我们放入一亿个数字&#xff0c;然后我们取出一亿个数字中最大的十个数&#xff0c;利用上章堆的问题进行解决。 首先就是我…

【SQL Server2019SSMS】安装 | 卸载手册

目录 &#x1f4cb;前言 ⛳️【SQL Serverssms】安装 1. SQL Server自定义安装 2. SSMS安装 ⛳️【SQL Server】卸载 &#x1f4cb;前言 &#x1f308;个人主页&#xff1a;Sarapines Programmer &#x1f525; 系列专栏&#xff1a;本期文章收录在《宝藏工具使用手册》&am…

区块链介绍

区块链提供了比特币的公共账本&#xff0c;这是一个有序的、带有时间戳的交易记录。这个系统用于防止重复消费和修改之前的交易记录。 Introduction 比特币网络中的每个完全节点都独立存储只包含该节点验证的块的区块链。当多个节点在他们的区块链中都有相同的块时&#xff0…