[架构之路-229]:计算机体硬件与系结构 - 计算机系统的矩阵知识体系结构
目录
一、纵向:目标系统的分层结构
1.1 目标系统的架构
1.2 网络协议栈
1.3 计算机程序语言分层
二、横向(构建目标系统的时间、开发阶段):软件工程
三、二维矩阵知识体系结构
一、纵向:目标系统的分层结构
1.1 目标系统的架构
[架构之路-106]:《软件架构设计:程序员向架构师转型必备》-16-常见的十余种软件分层架构_软件分层设计_文火冰糖的硅基工坊的博客-CSDN博客
计算机系统的分层知识体系是指计算机硬件和软件系统按功能和抽象程度的不同被划分为多个层次,每个层次负责不同的任务和功能。这种分层的设计有助于提高系统的可移植性、可扩展性和维护性,同时也方便不同层次的开发人员进行独立的开发和测试。
以下是计算机系统常见的分层知识体系:
-
硬件层:计算机系统的最底层是硬件层,包括处理器、内存、存储器、输入/输出设备等硬件组件。硬件层负责管理和控制硬件资源,并提供底层的执行能力。
-
网络/硬件驱动层:网络层位于硬件层和操作系统层之间,负责数据在不同计算机之间的传输和通信。网络层提供了数据传输的基本功能,包括数据的分组、路由选择、流量控制和错误检测等。它使用协议(如TCP/IP协议)来实现数据的可靠传输和通信。网络层实现了计算机之间的互联,使得计算机可以通过网络进行数据交换和通信。网络层的功能是支持应用程序的远程访问和数据传输。
-
操作系统层:操作系统层位于硬件层之上,负责管理计算机的资源和提供各种系统服务。它提供了进程管理、内存管理、文件系统管理、设备驱动程序等功能,以支持上层应用的运行。
-
中间件层:中间件层位于操作系统层之上,提供了更高级别的服务和功能,以方便应用程序的开发和部署。中间件层包括数据库系统、消息队列、Web服务器等,它们提供了不同的服务和接口,以满足应用程序的需求。
-
数据库层:数据库层位于中间件层和应用程序层之间,负责管理和组织数据。数据库系统提供了一种结构化的方式来存储和查询数据,以支持应用程序对数据的管理和访问。数据库系统具有数据持久性、数据一致性和数据安全性等特点。常见的数据库系统包括关系型数据库(如MySQL、Oracle)、非关系型数据库(如MongoDB、Redis)等。数据库层承担着数据的存储、查询、事务处理和并发控制等任务,为应用程序层提供数据支持。
-
应用程序层:应用程序层是计算机系统中最上层的层次,包括各种用户应用程序和应用软件。应用程序层通过中间件和操作系统层提供的服务来实现特定的功能,如办公软件、图像处理软件、游戏等。
整个计算机系统的分层知识体系可以用类似于金字塔形状的模型来表示,底层是硬件层,然后是操作系统层、中间件层和应用程序层。每个层次都依赖于下层提供的功能和服务,并为上层层次提供相应的接口和抽象。这种分层设计使得不同的开发人员可以专注于不同的层次进行开发,提高了系统的可维护性和可扩展性。
1.2 网络协议栈
在计算机系统的分层知识体系中,协议栈是一种按照不同层次组织的网络通信协议集合。
协议栈通过将通信功能和任务分解为多个层次,从而实现了对网络通信的有效管理和处理。
常见的协议栈是TCP/IP协议栈,它是互联网中最为广泛使用的网络通信协议栈。TCP/IP协议栈根据功能和抽象程度的不同分为多个层次,包括:
-
物理层:物理层负责传输和接收原始的比特流,使用物理媒介进行数据传输,如电缆、光纤等。
-
数据链路层:数据链路层通过帧的方式将比特流划分为数据包,并为其添加控制信息,以实现可靠地传输数据。在这个层次上,数据传输是局域网(LAN)内的直接通信。
-
网络层:网络层提供了数据包的路由和转发功能,负责确定数据从源到目的地的路径。它使用IP协议来处理网络地址和路由选择。
-
传输层:传输层提供端对端的通信服务,主要使用TCP协议和UDP协议。其中,TCP协议提供可靠的、面向连接的通信,而UDP协议提供不可靠的、面向无连接的通信。
-
应用层:应用层是最高层的协议层,包含各种应用程序和协议,如HTTP、FTP、SMTP等。应用层的协议负责处理特定应用领域的通信需求。
协议栈中的每个层次都有独立的功能和责任,下层向上层提供服务和接口,并通过协议交互来实现通信。上层向下层传递数据和请求,以使数据在网络中得到正确的处理和传输。协议栈的分层结构使得不同层次的协议能够独立进行开发、测试和升级,同时也提供了灵活性和可扩展性,以适应不同的应用场景和需求。
除了TCP/IP协议栈外,还有其他协议栈,如ISO/OSI七层模型、Ethernet协议栈等。不同的协议栈可能有不同的层次数量和名称,但都遵循类似的分层设计原则,以实现有效的通信和数据传输。
1.3 计算机程序语言分层
二、横向(构建目标系统的时间、开发阶段):软件工程
[架构之路-175]-《软考-系统分析师》-知识体系大全(图解)_文火冰糖的硅基工坊的博客-CSDN博客
软件工程是系统化、规范化地应用技术和方法,以开发高质量软件的学科和实践。软件开发过程是软件工程的核心,它描述了从需求分析到软件交付的全过程,并包括了软件设计、编码、测试、部署和维护等阶段。
常见的软件开发过程包括以下几个主要阶段:
-
需求分析:在需求分析阶段,开发团队与用户进行沟通和讨论,确保对用户需求和系统功能有清晰的理解。需求分析的目标是明确系统的功能需求、性能要求、用户界面等方面的需求。
-
软件设计:在软件设计阶段,根据需求分析的结果,设计软件系统的整体架构和模块的详细设计。软件设计包括系统结构设计、数据结构设计、算法设计等,旨在保证软件的可靠性、健壮性和可维护性。
-
编码与实现:在编码与实现阶段,开发团队根据软件设计的规范,将设计的模块实现为具体的编程代码。开发人员使用合适的编程语言和开发工具进行编码,并进行代码的单元测试。
-
软件测试:软件测试是为了评估软件是否满足预期需求和质量标准。测试可以分为单元测试、集成测试和系统测试等不同层次和类型。通过不同的测试手段,检验软件的功能正确性、性能、安全性和可靠性等方面。
-
软件部署与维护:在软件部署阶段,将已经测试通过的软件安装和部署到生产环境中。软件维护阶段则是在软件交付后,通过修复错误、改进功能、升级版本等方式来保障软件的运行和持续改进。
除了以上主要阶段,软件开发过程中还需要进行持续的需求管理、变更控制、配置管理、项目管理等工作,在整个开发过程中进行合理的管理和协调。
需要注意的是,不同的软件项目可能采用不同的开发方法和过程模型,如瀑布模型、敏捷开发、迭代开发等。具体的软件开发过程可根据项目的特定要求和团队的实际情况进行调整和选择。
三、二维矩阵知识体系结构
对于计算机二维知识体系结构,我们可以考虑以下两个维度:软件开发阶段维度和计算机分层维度。
-
软件开发阶段维度(人的维度、时间的维度):这个维度关注软件的开发生命周期,将软件开发过程划分为不同的阶段。常见的软件开发阶段包括需求分析、软件设计、编码与实现、软件测试和部署与维护。每个阶段都有不同的目标、方法和工具。
-
计算机分层维度(机器的维度、目标系统的维度):这个维度关注计算机系统的分层结构。常见的计算机分层模型是ISO/OSI七层模型和TCP/IP四层模型。ISO/OSI七层模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,它描述了计算机系统中各个层次的功能和协议。TCP/IP四层模型包括网络接口层、网络层、传输层和应用层,它是实际互联网中广泛使用的分层模型。
综合以上两个维度,我们可以构建如下的知识体系结构:
- 软件开发阶段维度- 需求分析- 软件设计- 编码与实现- 软件测试- 部署与维护- 计算机分层维度- 应用层- 表示层- 会话层- 传输层- 网络层- 数据链路层- 物理层
在实践中,我们需要学习和理解这两个维度的知识,掌握软件开发的各个阶段的技能和方法,并了解计算机系统中各层次的功能和协议。这有助于我们在实际的软件开发和计算机系统设计中应用相应的概念、技术和工具。
相关文章:
[架构之路-229]:计算机体硬件与系结构 - 计算机系统的矩阵知识体系结构
目录 一、纵向:目标系统的分层结构 1.1 目标系统的架构 1.2 网络协议栈 1.3 计算机程序语言分层 二、横向(构建目标系统的时间、开发阶段):软件工程 三、二维矩阵知识体系结构 一、纵向:目标系统的分层结构 1.1…...
第一章 visual studio下载安装
一、官网下载 地址:https://visualstudio.microsoft.com/zh-hans/ 点击免费visual studio 二、安装 运行下载好的exe文件,自定义安装目录 三、选择需要的组件安装 只需要选择标记组件,然后点击安装 等待安装完成就行 四、重启电脑 安装完之后…...
【服务器】在 Linux CLI 下安装 Anaconda
【服务器】在 Linux CLI 下安装 Anaconda 1 系统环境2 下载安装包3 安装 1 系统环境 查看系统信息 cat /etc/os-release2. 查看架构 uname -a # output # Linux localhost.localdomain 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86…...
Python中Lambda用法
在Python中,lambda函数是一种形式较短的函数,又称为匿名函数。与正常的函数不同,lambda函数没有名称,因此只能在定义时直接传递给其他函数或变量使用,而不能单独调用。 lambda函数的语法非常简单,格式如下…...
nodejs+vue养老人员活体鉴权服务系统elementui
系统 统计数据:统计报表、人员台账、机构数据、上报数据、核验报表等,养老人员活体鉴权服务是目前国家养老人员管理的重要环节,主要为以养老机构中养老人员信息为基础,每月进行活体鉴权识别并统计数据为养老补助等管理。前端功能&…...
解决caffe中的python环境安装的问题(补充)
上一篇(解决caffe中的python环境安装的问题_qiuchangyong的博客-CSDN博客)说到了安装过程中遇到的常见问题,其实还有一个忘了补充,就是在执行命令"sudo python -m pip install -r requirements.txt"后,出现p…...
面试常用排序查找算法
文章目录 1 二分查找2 冒泡排序3 堆排序4 插入排序5 快速排序6 选择排序7 希尔排序 1 二分查找 定义两个变量left和right,分别表示数组的左边界和右边界,初始值分别为0和len - 1,其中len是数组的长度。计算数组的中间位置mid,公式…...
CUDA C编程权威指南:1.1-CUDA基础知识点梳理
主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的。 1.CUDA 解析:2007年,NVIDIA推出CUDA(…...
讲讲项目里的仪表盘编辑器(四)分页卡和布局容器组件
讲讲两个经典布局组件的实现 ① 布局容器组件 配置面板是给用户配置布局容器背景颜色等属性。这里我们不需要关注 定义文件 规定了组件类的类型、标签、图标、默认布局属性、主文件等等。 // index.js import Container from ./container.vue; class ContainerControl extends…...
Qt模块、Qt开发应用程序类型、Qt未来主要市场、Qt6功能普及
Qt模块、Qt开发应用程序类型、Qt未来主要市场、Qt6功能普及 文章目录 1.Qt核心模块2.Qt的功能拓展3.Qt未来主要市场4.Qt6功能普及5.弃用的功能: Qt是一个跨平台的应用程序开发框架,提供了丰富的模块和工具来开发各种类型的应用程序。以下是Qt目前已有的…...
nodejs+vue高校校图书馆elementui
管理员输入书籍所在的书架位置,借阅提醒系统:可以查看个人借阅信息和图书到期提醒、挂失、检索、虚拟借书证不仅为群众提供了服务,而且也推广了自己,让更多的群众了解自己。 管理员页面: 第三章 系统分析 10 3.1需求分…...
CUDA C编程权威指南:1.2-CUDA基础知识点梳理
主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的。 1.闭扫描和开扫描 对于一个二元运算符 ⊕ \oplus ⊕和一个 n n n元…...
C语言—位运算符
目录 &(位与,AND): |(位或,OR): 位取反(~): 左移(<<): 右移(>>): &(位与,AND)&…...
怎么才能实现一个链接自动识别安卓.apk苹果.ipa手机和win电脑wac电脑
您想要实现的功能是通过检测用户代理(User Agent)来识别访问设备类型并根据设备类型展示相应的页面。您可以根据以下步骤进行实现: 选择后端语言和框架,例如:Node.js、Express。 创建一个新的Express项目。 编写一个…...
zookeeper选举机制
全新集群选举 zookeeper 全新集群选举机制网上资料很多说法很模糊,仔细思考了一下,应该是这样 得到票数最多的机器>机器总数半数 具体启动过程中的哪个节点成为 leader 与 zoo.cfg 中配置的节点数有关,下面以3个举例 选举过程如下 server…...
vcpkg切换 Visual Studio 版本
vcpkg切换 Visual Studio 版本 在使用vcpkg作为项目的包管理工具时,可能会遇到需要切换Visual Studio版本的情况。下面是一种简单的方法来实现这个目标,通过修改triplet文件来指定使用的Visual Studio版本。 步骤1: 创建或修改Triplet文件 首先&#…...
运算符重载
#include <iostream> using namespace std; class Num { private:int num1; //实部int num2; //虚部 public:Num(){}; //无参构造Num(int n1,int n2):num1(n1),num2(n2){}; //有参构造~Num(){}; //析构函数const Num operator(const Num &other)const //加号重载{Nu…...
Llama2-Chinese项目:7-外延能力LangChain集成
本文介绍了Llama2模型集成LangChain框架的具体实现,这样可更方便地基于Llama2开发文档检索、问答机器人和智能体应用等。 1.调用Llama2类 针对LangChain[1]框架封装的Llama2 LLM类见examples/llama2_for_langchain.py,调用代码如下所示:…...
ES6中数组的扩展
1. 扩展运算符 用三个点(...)表示,它如同rest参数的逆运算,将数组转为用逗号分隔的参数序列。扩展就是将一个集合分成一个个的。 console.log(...[1, 2, 3]); // 1, 2, 3可以用于函数调用 扩展运算符后还可以放置表达式 ...(x > 0 ? [a] : [])如…...
计算机考研 | 2016年 | 计算机组成原理真题
文章目录 【计算机组成原理2016年真题44题-9分】【第一步:信息提取】【第二步:具体解答】 【计算机组成原理2016年真题45题-14分】【第一步:信息提取】【第二步:具体解答】 【计算机组成原理2016年真题44题-9分】 假定CPU主频为5…...
Web版Photoshop来了,用到了哪些前端技术?
经过 Adobe 工程师多年来的努力,并与 Chrome 等浏览器供应商密切合作,通过 WebAssembly Emscripten、Web Components Lit、Service Workers Workbox 和新的 Web API 的支持,终于在近期推出了 Web 版 Photoshop(photoshop.adobe…...
FL Studio21.1.0水果中文官方网站
FL Studio 21.1.0官方中文版重磅发布纯正简体中文支持,更快捷的音频剪辑及素材管理器,多样主题随心换!Mac版新增对苹果M2/1家族芯片原生支持。DAW界萌神!极富二次元造型的水果娘FL chan通过FL插件Fruity Dance登场,为其…...
[BJDCTF2020]Mark loves cat
先用dirsearch扫一下,访问一下没有什么 需要设置线程 dirsearch -u http://8996e81f-a75c-4180-b0ad-226d97ba61b2.node4.buuoj.cn:81/ --timeout2 -t 1 -x 400,403,404,500,503,429使用githack python2 GitHack.py http://8996e81f-a75c-4180-b0ad-226d97ba61b2.…...
@SpringBootApplication注解的理解——如何排除自动装配 分布式情况下如何自动加载 nacos是怎么被发现的
前言 spring作为主流的 Java Web 开发的开源框架,是Java 世界最为成功的框架,持续不断深入认识spring框架是Java程序员不变的追求。 本篇博客介绍SpringBootApplicant注解的自动加载相关内容 其他相关的Spring博客文章列表如下: Spring基…...
HTTP的前世今生
史前时期 20 世纪 60 年代,美国国防部高等研究计划署(ARPA)建立了 ARPA 网,它有四个分布在各地的节点,被认为是如今互联网的“始祖”。 然后在 70 年代,基于对 ARPA 网的实践和思考,研究人员发…...
软件测试教程 自动化测试selenium篇(二)
掌握Selenium常用的API的使用 目录 一、webdriver API 1.1元素的定位 1.2 id定位 1.3name 定位 1.4tag name 定位和class name 定位 1.5CSS 定位 1.6XPath 定位 1.7link text定位 1.8Partial link text 定位 二、操作测试对象 2.1鼠标点击与键盘输入 2.2submit 提交…...
JavaSE入门--初始Java
文章目录 Java语言概述认识Java的main函数main函数示例运行Java程序认识注释认识标识符认识关键字 前言: 我从今天开始步入Java的学习,希望自己的博客可以带动小白学习,也能获得大佬的指点,日后能互相学习进步,都能如尝…...
leetcode做题笔记160. 相交链表
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后&…...
数学建模Matlab之检验与相关性分析
只要做C题基本上都会用到相关性分析、一般性检验等! 回归模型性能检验 下面讲一下回归模型的性能评估指标,用来衡量模型预测的准确性。下面是每个指标的简单解释以及它们的应用情境: 1. MAPE (平均绝对百分比误差) 描述: 衡量模型预测的相对…...
微服务网关:Spring Cloud Zuul 升级 Spring Cloud Gateway 的核心要点
1. 服务路由 1.1. Zuul 接收请求: 在routes路由规则中,根据path去匹配,如果匹配中,就使用对应的路由规则进行请求转发如果无法从routes中匹配,则根据path用“/”去截取第一段作为服务名进行请求转发,转发…...
餐饮门户网站 方案怎么做/网站排名怎么优化
上一篇讨论了链表的反转问题,这一篇讨论链表排序的问题 1. 排序两个有序链表 比较简单,属于归并排序,不再赘述 时间复杂度O(n), 空间复杂度O(1) 1 ListNode *mergeList( ListNode *list1, ListNode *list2 ) {2 if(!list1 || …...
做视频网站用什么源码/兰州网络推广技术
属性 类型 默认值 autoOpen Boolean true 实例化时是否自动显示对话框。设置为 false 时,使用 open 方法显示对话框。 false 代码示例 创建实例时设置属性值 $(".class").dialog({…...
做网站的法律/手机网站建设
一,类继承 1.1,C函数库的缺点 除非厂商提供了库函数的源码,否则无法根据自己的需求对库函数进行修改。 1.2,使用类继承带来的优点 面向对象编程的主要目的之一是提供可重用的代码,类继承提供了比修改源码更好的方法&…...
网站建设类有哪些岗位/青岛网站建设培训学校
理解javascript中的MVC MVC模式是软件工程中一种软件架构模式,一般把软件模式分为三部分,模型(Model)视图(View)控制器(Controller); 模型:模型用于封装与应用程序的业务逻辑相关的数据以及对数据处理的方法。模型有对数据直接访问的权利。模…...
wordpress开发视频教程/北京网站建设公司报价
一、发展现状 1、教育经费 随着我国经济迅速发展,社会对国民教育的重视程度日益增长,但在教育经费持续增加投人的同时,需重点关注教育经费的合法合规,真正做到效益的产出。只有建立完善的教育经费管理体系,坚持财务信息…...
俱乐部网站模板/产品推广平台有哪些
刚刚偶然之间在书上看到了关于如何进行raid配置的内容,就顺便给大家截取下来了,大家有兴趣的可以看看...