【Linux】操作系统基础

1.冯诺依曼体系结构介绍

冯诺依曼体系结构如下:

在上图中「输⼊设备」和「输出设备」⼀般被称为计算机的外设,⽽「存储器」在冯 诺依曼体系结构中表示「内存」

输⼊设备⼀般包括:⽹卡、磁盘、键盘、触摸屏等

输出设备⼀般包括:⽹卡、磁盘、⿏标、触摸屏、显示器(⾮触摸屏)等

1.2内存的作⽤

「内存」是中央处理器与计算机其他设备的桥梁,因为CPU的处理速度相当得快,以 ⾄于如果没有「内存」,就会导致类似「磁盘」等外设因为其速度远远⼩于CPU从⽽ 拖慢整机性能

「内存」本质不永久存储任何数据,其速度快于「磁盘」,但慢于CPU,当需要进⾏ 数据的读取时,⾸先数据会从「输⼊设备」上读取数据到内存中,再从「内存」到 CPU进⾏相关处理,如果处理完的数据需要写⼊到输出设备时,此时CPU会将数据写 ⼊「内存」,再从「内存」写⼊到输出设备

1.3内存or磁盘

「内存」虽然速度不快也不慢,但是「内存」并不可以直接替代硬盘的位置,⾸先 CPU也不可以直接从「硬盘」读取数据,其次「内存」中的数据断电后就会消失(属 于易失性存储器,volatile storage),⽽「硬盘」中的数据会在⽣命周期内永 久保存(属于⾮易失性存储器,nonvolatile storage)

1.4计算机中的存储设备

在计算机中,有下⾯的存储⾦字塔结构:

在计算机的存储体系中,存在着不同类型的存储器,它们在速度、价格和数据易失性等方面有着各自的特点。

首先,速度最快且价格最高的存储器是 “寄存器(registers)”,它属于易失性存储器。寄存器是计算机处理器内部用于暂存数据和指令的高速存储单元,其访问速度极快,能够在极短的时间内完成数据的读取和写入操作。然而,由于其制造工艺复杂且容量极小,成本也就相应地非常高。

其次是 “缓存(cache)”,它同样是易失性存储器,但速度和价格都仅次于寄存器。缓存的作用是为了缓解处理器与主内存之间的速度差异,它可以快速地为处理器提供所需的数据,减少处理器等待数据的时间,从而提高计算机的整体性能。

接着是 “内存(main memory)”,也是易失性存储器。内存是计算机中用于存储正在运行的程序和数据的重要部件。虽然它的速度比寄存器和缓存慢,但仍然能够相对快速地与处理器进行数据交互

在易失性存储器之后,是非易失性存储器。其中,较为常见的是 NVM(Non - volatile Memory)存储器。在现代计算机中,闪存(固态硬盘就属于其中一种)是 NVM 存储器的常见形式。此外,还有电可擦可编程只读存储器(EEPROM)和铁电随机存取存储器(FRAM, Ferroelectric Random Access Memory)等。NVM 存储器的特点是在断电后数据仍然能够保存,这使得它在存储需要长期保存的数据方面具有重要作用。

再往下看,“硬盘(hard - disk drives)” 也是一种非易失性存储器。在相同存储容量的情况下,硬盘的造价通常比 NVM 存储器低,但它的速度相对较慢。硬盘通过磁头在磁盘表面读写数据,其机械结构决定了它的数据访问速度相对较慢。

最后,排在存储体系第三层的是 “光盘(optical disk)” 和 “磁带(magnetic tapes)”。曾经,它们在数据存储和备份方面有着广泛的应用,但随着技术的发展,对它们的需求已经不如过去那么普遍。光盘通过激光在盘片上读写数据,而磁带则通过磁头在磁带上记录数据。它们的存储容量较大,但数据访问速度相对较慢,更适合用于大容量数据的长期存储和备份。

总之,计算机的存储体系是一个多层次、多类型的结构,不同的存储器在速度、价格、容量和数据易失性等方面相互补充,共同满足计算机系统对数据存储和访问的需求。随着技术的不断进步,存储器的性能和特点也在不断发展和变化,以适应日益增长的计算需求和数据存储需求。

1.5⽹卡输出or输⼊设备

从宏观的⻆度来看,许多⼈认为⽹卡是输⼊设备,因为我们需要使⽤⽹卡来接收⽹络 信号(例如Wi-Fi),但其实⽹卡即是输出设备也是输⼊设备

例如:当⼀个⼈通过电脑上的聊天平台软件(例如QQ、微信等)向另⼀个⼈发送消 息,在这⼀过程中⽹卡就扮演着输出和输⼊设备两个⻆⾊

对于发送者来说,发送者在其电脑打开聊天平台软件,该软件的相关代码和数据 就会从「磁盘」加载进⼊「内存」,CPU从「内存」中读取代码转换成指令执⾏ 程序,此时发送者将其想发送的消息输⼊到聊天软件⽂本框后点击发送,此时 CPU会将数据写⼊「内存」,再由「内存」中的软件将发送的消息写⼊到「⽹ 卡」,通过「⽹卡」发送到⽹络。此过程中「⽹卡」就是输出设备

对于接受者来说,当接受者打开聊天平台软件,该软件的相关代码和数据就会从 「磁盘」加载进⼊「内存」,CPU从「内存」中读取代码转换成指令执⾏程序, 「⽹卡」设备从⽹络接收数据,此时「⽹卡」设备就是输⼊设备,「⽹卡」将其 读取到的信息加载到「内存」,由对应的聊天软件接收并由CPU进⾏处理,再发 送给「内存」,由「内存」写⼊显示器显示到接受者的显示器上

通过上⾯的例⼦和介绍,可以基本了解到,计算机中的数据流转实际上是数据在各种 设备间的来回拷⻉,⽽拷⻉的效率基本可以认为就是计算机的效率

2.操作系统基本认知

操作系统本质是通过对计算机硬件的管理从⽽达到⽤户可以更⾼效、便利地使⽤计算 机。⽤户可以通过操作系统提供的接⼝⽅便得操作计算机硬件,例如写⽂档等。

下⾯从两个⽅⾯浅谈⼀下可以⼈机交互的操作系统(不包括嵌⼊式计算机embedded computers的系统)

2.1 系统层面

系统层⾯:从计算机的⻆度来看,操作系统是与硬件联系最紧密的软件,⽽这 其中最重要的就是操作系统内核,计算机在解决⼀个问题时需要⼀些资源,例 如:CPU时间、内存空间、存储空间、I/O设备等,⽽操作系统在这⼀过程中扮 演的⻆⾊更像是⼀个管理者,管理计算机硬件之间的交流和资源

2.2 用户层面

⽤户层⾯:前⾯提到对于⽤户来说,操作系统提供了接⼝便于⽤户操作计算机 硬件。⽤户所看到的计算机可以简单理解为⼀个屏幕、⼀个键盘和⼀个⿏标, 当需要使⽤计算机时,对应的操作使⽤对应的设备即可,此时操作系统对于⽤ 户来说更多得是为了⽤户更好的使⽤体验,所以这⼀层⾯上,⼀款操作系统的 好坏取决于⽤户的使⽤感受

操作系统在整个计算机的组成中所处的位置如下图所示:

下⾯从这两个层⾯切⼊,具体谈操作系统的地位:

2.1.2 系统层面的地位

系统层⾯:操作系统提供⼿段管理计算机硬件

操作系统通过驱动管理硬件:

从系统层⾯,⾸先从对于底层硬件来说,计算机中所有的硬件都需要对应的驱动,⽽ 操作系统管理这些硬件的⽅式就是通过对应的驱动。前⾯提到,操作系统在管理硬件 时更像是⼀个管理者的⻆⾊,那么为了能够管理计算机硬件,操作系统就会做出决策 (类似于⼀个管理者发号施令),通知对应的驱动,驱动根据操作系统的决策执⾏对 相关硬件进⾏管理。

2.1.3.操作系统采用数据结构管理驱动

但是这⼀过程中存在⼀个问题,那就是如果硬件数量⼤,需要的驱动数量也就会变 ⼤,那么操作系统直接对所有驱动进⾏管理就会影响整体的效率,为了解决这个问 题,操作系统采⽤了⼀种抽象的思路,即将同类型的设备进⾏归类,因为同类型的设 备驱动基本上都有某些共同的特点,所以此时可以考虑将共性字段抽取,放在⼀个结 构体中,每⼀个结构体中根据驱动⾃⼰的值填写到对应结构体的字段中,⽽操作系统 只需要使⽤⼀种数据结构,将所有驱动对应的结构体进⾏链接管理即可

例如,假设操作系统使⽤的数据结构是链表,那么操作系统针对于每⼀种功能管理 (例如驱动管理)只需要⼀个头结点,具体类型的驱动对应的结构体依次进⾏链接, 在需要某⼀种驱动时,只需要依次遍历该链表即可拿到对应的驱动进⾏相关的进⾏决 策与操作执⾏

3.先描述,再组织

从上⾯的例⼦可以看出,操作系统要管理⼀种硬件,最优的解决⽅案就是先抽象出该 驱动的特点,将其归类到某⼀种驱动结构体,该结构体再通过相关数据结构的特点进 ⾏链接,最后通过对应的数据结构进⾏管理。这⼀过程也可以被概括为:先描述,再 组织

对于操作系统的其他管理,例如内存管理、进程管理等也是使⽤类似的⽅式

4.数据结构与面向对象的重要性

从这⼀过程也可以看出,之所以要有数据结构,也是为了更好得管理数据,⽽之所以 需要⾯向对象,也是为了抽取零散数据的共性从⽽达到更⽅便的管理

4.2.⽤户层⾯:操作系统提供接⼝⽅便⽤户使⽤

⽤户使⽤操作系统,操作系统必须提供功能,但是操作系统不能完全将⾃⼰暴露给⽤ 户,否则会导致整机出现问题,所以操作系统需要满⾜两个特点:封闭且开放

封闭:表示操作系统的内核对于⽤户来说必须是封闭的

开放:表示操作系统必须提供合适的结构给⽤户使⽤

操作系统具有的部分如下图所示:

前⾯已经提到了内核中操作系统的地位,接下来考虑系统调⽤接⼝

系统调⽤接⼝是操作系统开放性的最根本的体现,因为这个接⼝与操作系统内核最接 近,这种接⼝在使⽤层⾯上也会更加繁琐,学习成本也会更⾼,更加需要使⽤者深⼊ 了解操作系统,⽽为了降低这种学习和使⽤上的成本,系统调⽤接⼝外还有⼀种接⼝ 称为:⽤户操作接⼝,这种接⼝⼀般是对底层系统调⽤接⼝进⾏⼀定的封装,便于使 ⽤者调⽤,例如C语⾔中的 fopen 函数封装了 open 函数等,图形化界⾯也属于⽤户 操作接⼝,因为图形化界⾯本质是操作对应指令,⽽指令被操作系统接收就是执⾏对 应的操作,也就间接调⽤系统接口

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

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

相关文章

java 自定义填充excel并导出

首先在resources下面放一个excel模板 1. 方法签名和请求映射 RequestMapping(value "/ExportXls") public ResponseEntity<byte[]> rwzcExportXls(HttpServletRequest request, RequestBody JSONArray jsonArray) throws IOException { RequestMapping(val…

剧场的客户端形式区别,APP,小程序,H5的不同优势以及推广方案

剧场的客户端形式区别与推广策略 在数字化时代&#xff0c;剧场的线上化成为大势所趋。不同的线上平台如APP、小程序和H5各有千秋&#xff0c;如何选择最适合自己的平台&#xff0c;并制定有效的推广方案&#xff0c;成为了剧场管理者需要考虑的重要问题。 APP&#xff1a;深度…

【ONE·Web || HTML】

总言 主要内容&#xff1a;HTML基本知识入门&#xff0c;主要介绍了常见的一些标签使用&#xff0c;以及简单案例演示。       文章目录 总言0、前置说明1、认识HTML1.1、是什么1.2、初识 HTML 标签、HTML 文件基本结构1.2.1、相关说明1.2.2、vscode如何快速生成代码 2、HT…

污水排放口细粒度检测数据集,污-水排放口的类型包括10类目标,10000余张图像,yolo格式目标检测,9GB数据量。

污水排放口细粒度检测数据集&#xff0c;污-水排放口的类型包括10类目标&#xff08;1 合流下水道&#xff0c;2 雨水&#xff0c;3 工业废水&#xff0c;4 农业排水&#xff0c;5 牲畜养殖&#xff0c;6 水产养殖&#xff0c;7 地表径流&#xff0c;8 废水处理厂&…

三菱FX3U PLC绝对定位- DRVA指令

指令格式 相关软元件一览 功能和动作 这是采用绝对驱动的单速定位指令。采用从原点(0点)开始的距离指定方式&#xff0c; 也被称为绝对驱动方式。 1、在指令执行过程中&#xff0c;即使改变操作数的内容&#xff0c;也不反映到当前的运行中。 在下次的指令驱动时才有效…

QT 中如何保存matlab 能打开的.mat数据矩阵!

Windows 上安装并使用 MATIO 库来保存 MATLAB 格式的 .mat 文件&#xff0c;需要进行以下步骤&#xff1a; 1. 下载并安装 CMake MATIO 使用 CMake 构建项目&#xff0c;因此你需要先安装 CMake。 前往 CMake 官网下载适用于 Windows 的安装程序并安装。 2. 下载 MATIO 库源…

Windows,MySQL主从复制搭建

前提&#xff1a;windows环境&#xff0c;同一个服务器安装多个相同版本的mysql数据库 多个MySQL服务搭建完成后&#xff0c;下面我们进行主从复制的相关配置 1.主数据库 执行指令 #创建用户 CREATE USER slavelocalhost IDENTIFIED BY 123456;#授权 GRANT REPLICATION SLA…

专线监控的使用方法:运维团队的全面实战指南

在当今高度信息化的时代&#xff0c;专线网络已成为企业连接不同地域、保障业务连续性的重要基础设施。然而&#xff0c;随着网络架构的复杂化和业务需求的多样化&#xff0c;运维团队面临着前所未有的挑战。为了有效应对这些挑战&#xff0c;运维团队需要深入了解并熟练掌握专…

前端埋点学习

前端埋点 前端数据埋点是在前端页面中通过代码的方式手机用户行为数据和页面性能的过程&#xff0c;通过在页面中插入指定的代码&#xff0c;实现实时监控用户在页面上的操作行为。 通常包括一下事件 定义事件: 定义需要手机的数据事件&#xff0c;如点击&#xff0c;浏览等添…

Linux系列-常见的指令(二)

&#x1f308;个人主页&#xff1a; 羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” mv 剪切文件&#xff0c;目录 重命名 比如说&#xff0c;我们在最开始创建一个新的文件hello.txt 然后我们将这个文件改一个名字&#xff0c;改成world.txt 所以&#xff0c;…

UE5 武器IK瞄准系统

创建空项目 创建基础蓝图类My_GameMode&#xff0c;My_HUD&#xff0c;My_PlayChar&#xff0c;My_PlayController 项目设置地图模式 近裁平面 0.1 My_PlayChar蓝图中添加摄像机&#xff0c;角色骨骼网格体&#xff0c;武器骨骼网格体 编辑角色骨骼&#xff0c;预览控制器使用…

本地生活服务项目入局方案解析!本地生活服务商系统能实现怎样的作业效果?

当前&#xff0c;各大平台的本地生活服务业务日渐兴盛&#xff0c;提高创业者入局意向的同时&#xff0c;也让本地生活服务项目有哪些等问题也成为了多个创业者社群中的热议对象。而从目前的讨论情况来看&#xff0c;在创业者们所询问的众多本地生活服务项目中&#xff0c;通过…

apisix云原生网关

定义 企业级网关通过域名、路由将请求分发到对应的应用上&#xff0c;通常承载数千个服务的流量&#xff0c;对稳定性有较高要求。 CNCF全景图 选型 Kubernetes抽象出两个核心概念&#xff1a;Service&#xff0c;为多个Pod提供统一的访问入口&#xff1b;Ingress&#xff…

DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中?

[ 知识是人生的灯塔&#xff0c;只有不断学习&#xff0c;才能照亮前行的道路 ] 原文链接&#xff1a;DBA | 如何将 .mdf 与 .ldf 的数据库文件导入到SQL Server 数据库中? 如何将 (.mdf) 和 (.ldf) 的SQL Server 数据库文件导入到当前数据库中? Step 1.登录到 Sql Server 服…

18770 差值最大

### 思路 为了找到两个数x和y使得x - y的值最大&#xff0c;并且x在y的右侧&#xff0c;我们可以使用以下方法&#xff1a; 1. 从右向左遍历数组&#xff0c;记录当前遍历到的最大值max_right。 2. 对于每个元素a[i]&#xff0c;计算max_right - a[i]&#xff0c;并更新最大差…

《RabbitMQ篇》消息应答和发布确认

消息应答 消息应答机制&#xff1a;消费者接收信息并处理完之后&#xff0c;告诉rabbitmq该信息已经处理&#xff0c;rabbitmq可以把该信息删除了. 消息自动重新入队&#xff1a;如果处理某个消息的消费者异常关闭了&#xff0c;没有发送ACK确认&#xff0c;rabbitmq会将其重…

C++ | Leetcode C++题解之第463题岛屿的周长

题目&#xff1a; 题解&#xff1a; class Solution {constexpr static int dx[4] {0, 1, 0, -1};constexpr static int dy[4] {1, 0, -1, 0}; public:int dfs(int x, int y, vector<vector<int>> &grid, int n, int m) {if (x < 0 || x > n || y <…

YOLO11改进 | 注意力机制 | 结合静态和动态上下文信息的注意力机制

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 上下文Transformer&#xff08;CoT&…

软件功能测试重点和流程有哪些?专业软件测评服务公司推荐

软件功能测试就是对产品的各功能进行验证&#xff0c;根据功能测试用例&#xff0c;逐项测试&#xff0c;检查产品是否达到用户要求的功能。功能测试也叫黑盒测试或数据驱动测试&#xff0c;只需考虑需要测试的各个功能&#xff0c;不需要考虑整个软件的内部结构及代码.一般从软…

dvwa:暴力破解、命令注入、csrf全难度详解

暴力破解 easy模式 hydra -L /usr/share/wordlists/SecLists-master/Usernames/top-usernames-shortlist.txt -P /usr/share/wordlists/SecLists-master/Passwords/500-worst-passwords.txt 192.168.72.1 http-get-form "/dvwa/vulnerabilities/brute/:username^USER^&…