操作系统体系结构和OS

news2024/11/18 23:45:18

1.冯·诺依曼计算机体系

关于冯·诺伊曼系统,在这里我只是简单讲一讲,更加详细的内容可以看我的计算机组成系列。

常见的笔记本、台式机,不常见的服务器、工作站,大部分都遵守“冯·诺依曼体系”,因此该计算机体系就是现代计算机的哲学指导。

1.1.早期冯诺依曼体系

1.2.现代冯诺依曼体系

注释1:实线为数据传输线,虚线为控制线。

注释2:这里的存储器指的是内存,因此个人觉得这个存储器不太严谨,但是碍于很多教科书都是如此书写,只能得续用。

注释3:磁盘设备其实反倒是可以理解为输出设备,因为文件数据是会写到磁盘内部的……同理磁盘也可以作为输入设备使用。

注释4:控制器的作用是响应外部事件,比如:拷贝数据到内存,实际上控制器做的很多事情都是把一个数据移动到某个位置。

注释5:输入设备到内存的步骤为input,内存到输出设备的步骤为output,也就是I/O的过程,因此程序要运行,也就必须要加载到内存中。

注释6:实际上很多的硬件设备都是具有存储数据能力的,只不过是存储量的大小不一罢了。而所谓的硬件之间进行交流,也就是利用各个硬件中的存储空间,来进行数据的拷贝/迁移。

注释7SSD是固态硬盘,比磁盘的读写速度快,但是价格也比普通的磁盘要贵,因此有很多企业还会购买大量的磁盘来使用,减少成本(一般存储效率高的存储硬件要更贵)。

注释8:现代很多的CPU只能对内存进行读写,不能直接和外设(输入输出设备)进行数据交流。根据“木桶效应”,由于速度最慢的就是CPU和外设直接数据交互,导致整机效率降低(所以CPU一般为了高效,一般只和内存打交道)。

注释9:内存可以理解为大的缓存空间。

2.操作系统概念与定位

2.1.OS的概念

为了使计算机更好发挥每一个硬件的最大功能(更好符合冯诺依曼结构,提高硬件交互效率),现代的许多计算机内部都包含一个基本的程序集合,称为操作系统(即OS),最基本的操作系统至少应该包括:

  1. 内核(进程管理、内存管理、文件管理、驱动管理)

  2. 其他程序(函数库、shell外壳程序等)

2.2.OS的目的

OS是一款“搞管理”的软件,主要目的是“管理硬件和软件”。和面向对象语言类似,操作系统必须“先描述被管理对象,再组织被管理对象”,进而实现:

  1. 和硬件交互,协调管理所有的软硬件资源
  2. 为用户程序(应用程序)提供一个良好的执行、开发环境

补充:在C语言中,实际体现管理和组织时:

  1. 管理:使用struct结构体来描述硬件或者软件
  2. 组织:使用链表等高效数据结构组织struct结构体的实例化

2.3.OS的管理

那么OS的“管理”具体的结构是怎么样的呢?下面有一张图您可以简单看一下。

补充1:系统调用和库函数的概念

  1. 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。

  2. 系统调用在使用上功能比较基础,对用户的使用要求比较高,开发者可以对部分系统调用进行适度的封装,从而形成了库(例如C库)。有了库,就有利于上层用户或者开发者进行调用开发,也就是通过库来间接调用系统调用。

补充2Linux内核内部有很多驱动程序,基本都是用C语言写的,也有少部分使用汇编(这部分连偏向底层的C都没有办法书写)。

上面这张图您可能只知道表面,无法知道更加深层次的细节,但是在以后的学习中,您就会逐渐体到这张图的意义。

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

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

相关文章

易点易动设备管理系统帮助生产企业提升设备巡检效率

在现代制造业中,设备的正常运行对于生产企业的成功至关重要。然而,设备巡检是确保设备安全性和可靠性的关键环节,但却常常耗费大量时间和资源。为了解决这个问题,许多企业采用了现代化的设备管理系统,其中易点易动设备…

简单谈谈我参加数据分析省赛的感受与体会

数据分析省赛的感受与体会 概要考试前的感受与体会考试注意事项小结 概要 大数据分析省赛指的是在省级范围内举办的大数据分析竞赛活动。该竞赛旨在鼓励和推动大数据分析领域的技术创新和人才培养,促进大数据技术与应用的深度融合,切实解决实际问题。参…

通讯协议学习之路:有线通讯协议总览

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374) 一、…

【ELK使用指南 2】常用的 Logstash filter 插件详解(附应用实例)

Logstash filter 一、logstash filter过滤插件的常用模块简介二、grok 正则捕获插件2.1 grok插件的作用2.2 内置正则表达式2.3 自定义正则表达式 三、mutate 数据修改插件3.1 mutate插件的作用3.2 常用的配置选项3.3 mutate插件应用实例 四、multiline 多行合并插件4.1 multili…

哈希表(拉链法)代码模板

这里也是用数组模拟链表 //拉链法 //模拟散列表 在算法题中一般只有添加和查询不会有删除 //如果真的要删除也不是真正的删除而是打上一个标记 //mod的这个数最好取大于数据范围的第一个质数 #include<iostream> #include<cstring> using namespace std; const in…

“1688商品评论接口:打造完美电商口碑的秘密武器!“

1688商品评论接口是一种供卖家使用的接口&#xff0c;可以让卖家通过该接口维护商品的评论信息&#xff0c;包括评论内容、评分、评论时间等等。 通过使用该接口&#xff0c;卖家可以方便地管理商品的评论信息&#xff0c;包括查看、修改、删除评论等操作。同时&#xff0c;该…

屏幕截图软件Snagit 2023 mac中文特点介绍

Snagit 2023 mac是一款屏幕截图和视频录制软件&#xff0c;它可以帮助用户快速捕捉屏幕上的任何内容&#xff0c;并将其编辑、标注和共享。 Snagit 2023 软件特点 多种截图模式&#xff1a;支持全屏截图、窗口截图、区域截图、延时截图等多种截图模式&#xff0c;满足不同用户…

二蛋赠书五期:《Python数据挖掘:入门、进阶与实用案例分析》

前言 大家好&#xff01;我是二蛋&#xff0c;一个热爱技术、乐于分享的工程师。在过去的几年里&#xff0c;我一直通过各种渠道与大家分享技术知识和经验。我深知&#xff0c;每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此&#xff0c;我非常感激大家一直…

vue使用pdf-dist实现pdf预览以及水印

vue使用pdf-dist实现pdf预览以及水印 一.使用pdf-dist插件将PDF文件转换为一张张canvas图片 npm install pdf-dist二.页面引入插件 const pdfJS require("pdfjs-dist"); pdfJS.GlobalWorkerOptions.workerSrc require("pdfjs-dist/build/pdf.worker.entry&…

JavaScript中多种获取数组最后一个元素的策略。

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 &…

ESD监控系统-设备接地报警器的应用领域和说明

ESD监控系统是一种用于检测和监控静电放电&#xff08;ESD&#xff09;的设备&#xff0c;其中设备接地监控报警器是其重要组成部分之一。该设备主要用于检测设备的接地情况&#xff0c;当设备没有接地或者接地不良时&#xff0c;会发出报警信号&#xff0c;提醒操作人员及时采…

idea控制台乱码

如果打包时&#xff0c;控制台出现错误乱码的解决办法 而修改此后&#xff0c;运行程序有可能报错&#xff0c;则需要添加vm参数即可&#xff1a;

每日一题 2530. 执行 K 次操作后的最大分数(中等,最大根堆)

显然每次需要取出最大的元素&#xff0c;用过后将他除以三重新加入数组中&#xff0c;所以只要维护一个最大根堆即可 class Solution:def maxKelements(self, nums: List[int], k: int) -> int:nums [-i for i in nums]heapq.heapify(nums)ans 0for i in range(k):ans -…

Himmelblau函数-优化问题的经典案例

Himmelblau函数-优化问题的经典案例 前言 Himmelblau函数是一种常见的多元函数&#xff0c;它的形式为f(x,y)(x^2y-11)^2(xy^2-7)^2。这个函数的名字来源于其发明者David Himmelblau&#xff0c;它在数学和工程领域中都有广泛的应用。 一、Himmelblau函数是什么&#xff1f; …

Fast DDS介绍

目录 架构 Fast DDS是一个DCPS(data-centric)数据中心的发布-订阅模型中间件&#xff0c;主要关注应用程序中处理和发送数据。 架构 一个DomainParticipant启动的线程 NameTypeCardinalityDescriptionEventGeneral每个DomainParticipant一个处理周期性事件和触发的时间事件Dis…

Tomcat配置文件

Tomcat 是一个开源的 web 应用服务器 区别nginx NGINX主要处理静态页面 那么动态请求&#xff08;连接数据库 动态页面&#xff09; 并不是NGINXde 长项 动态的请求会交给tomcat 进行处理 Tomcat : 1 处理动态页面请求&#xff08;http的请求&#xff09; 2 处理后端…

vue集成钉钉单点登录

初始环境判断 判断是否是来自钉钉环境的访问&#xff0c;返回&#xff1a;boolean类型值 window.navigator.userAgent.includes("DingTalk")前端引入vue中钉钉相关的依赖&#xff0c;并获取钉钉的临时授权码 import * as dingtalk from dingtalk-jsapi; let that …

某翻译网站webpack 全扣js逆向法

持续创作文章&#xff0c;只是为了更好的思考 如下内容&#xff0c;如果有写的不清楚&#xff0c;不对的地方&#xff0c;也请大家提醒我一下&#xff0c;谢谢&#xff01; 本次的目标是某道翻译网站&#xff0c;相信各位爷应该明白&#xff0c;这次逆向的整体做法还是把webpac…

Element UI打开表单自动验证问题的解决

最近深陷Element表单验证的坑&#xff0c;被一个问题困扰了好几天&#xff1a;页面一打开什么都没做表单就自动验证。在排除页面未触发了validate方法的情况下&#xff0c;需要观察下rules值是否发生了变化&#xff0c;如果rules值发生了变化&#xff0c;需要在<el-form>…

单片机学习一定要先买开发板么?

今日话题&#xff0c;单片机学习一定要先买开发板么&#xff1f;不一定要先买&#xff0c;但如果想要深入学习&#xff0c;在对单片机有了一定的了解之后&#xff0c;还是建议买。如果是单纯为了入门学习单片机&#xff0c;完全可以用仿真软件。不过&#xff0c;如果想要用单片…