[架构之路-229]:计算机体硬件与系结构 - 计算机系统的矩阵知识体系结构

目录

一、纵向:目标系统的分层结构

1.1 目标系统的架构

1.2 网络协议栈

1.3 计算机程序语言分层

二、横向(构建目标系统的时间、开发阶段):软件工程

三、二维矩阵知识体系结构


一、纵向:目标系统的分层结构

1.1 目标系统的架构

[架构之路-106]:《软件架构设计:程序员向架构师转型必备》-16-常见的十余种软件分层架构_软件分层设计_文火冰糖的硅基工坊的博客-CSDN博客

计算机系统的分层知识体系是指计算机硬件和软件系统按功能和抽象程度的不同被划分为多个层次,每个层次负责不同的任务和功能。这种分层的设计有助于提高系统的可移植性、可扩展性和维护性,同时也方便不同层次的开发人员进行独立的开发和测试。

以下是计算机系统常见的分层知识体系:

  1. 硬件层:计算机系统的最底层是硬件层,包括处理器、内存、存储器、输入/输出设备等硬件组件。硬件层负责管理和控制硬件资源,并提供底层的执行能力。

  2. 网络/硬件驱动层:网络层位于硬件层和操作系统层之间,负责数据在不同计算机之间的传输和通信。网络层提供了数据传输的基本功能,包括数据的分组、路由选择、流量控制和错误检测等。它使用协议(如TCP/IP协议)来实现数据的可靠传输和通信。网络层实现了计算机之间的互联,使得计算机可以通过网络进行数据交换和通信。网络层的功能是支持应用程序的远程访问和数据传输。

  3. 操作系统层:操作系统层位于硬件层之上,负责管理计算机的资源和提供各种系统服务。它提供了进程管理、内存管理、文件系统管理、设备驱动程序等功能,以支持上层应用的运行。

  4. 中间件层:中间件层位于操作系统层之上,提供了更高级别的服务和功能,以方便应用程序的开发和部署。中间件层包括数据库系统、消息队列、Web服务器等,它们提供了不同的服务和接口,以满足应用程序的需求。

  5. 数据库层:数据库层位于中间件层和应用程序层之间,负责管理和组织数据。数据库系统提供了一种结构化的方式来存储和查询数据,以支持应用程序对数据的管理和访问。数据库系统具有数据持久性、数据一致性和数据安全性等特点。常见的数据库系统包括关系型数据库(如MySQL、Oracle)、非关系型数据库(如MongoDB、Redis)等。数据库层承担着数据的存储、查询、事务处理和并发控制等任务,为应用程序层提供数据支持。

  6. 应用程序层:应用程序层是计算机系统中最上层的层次,包括各种用户应用程序和应用软件。应用程序层通过中间件和操作系统层提供的服务来实现特定的功能,如办公软件、图像处理软件、游戏等。

整个计算机系统的分层知识体系可以用类似于金字塔形状的模型来表示,底层是硬件层,然后是操作系统层、中间件层和应用程序层。每个层次都依赖于下层提供的功能和服务,并为上层层次提供相应的接口和抽象。这种分层设计使得不同的开发人员可以专注于不同的层次进行开发,提高了系统的可维护性和可扩展性。

1.2 网络协议栈

在计算机系统的分层知识体系中,协议栈是一种按照不同层次组织的网络通信协议集合。

协议栈通过将通信功能和任务分解为多个层次,从而实现了对网络通信的有效管理和处理。

常见的协议栈是TCP/IP协议栈,它是互联网中最为广泛使用的网络通信协议栈。TCP/IP协议栈根据功能和抽象程度的不同分为多个层次,包括:

  1. 物理层:物理层负责传输和接收原始的比特流,使用物理媒介进行数据传输,如电缆、光纤等。

  2. 数据链路层:数据链路层通过帧的方式将比特流划分为数据包,并为其添加控制信息,以实现可靠地传输数据。在这个层次上,数据传输是局域网(LAN)内的直接通信。

  3. 网络层:网络层提供了数据包的路由和转发功能,负责确定数据从源到目的地的路径。它使用IP协议来处理网络地址和路由选择。

  4. 传输层:传输层提供端对端的通信服务,主要使用TCP协议和UDP协议。其中,TCP协议提供可靠的、面向连接的通信,而UDP协议提供不可靠的、面向无连接的通信。

  5. 应用层:应用层是最高层的协议层,包含各种应用程序和协议,如HTTP、FTP、SMTP等。应用层的协议负责处理特定应用领域的通信需求。

协议栈中的每个层次都有独立的功能和责任,下层向上层提供服务和接口,并通过协议交互来实现通信。上层向下层传递数据和请求,以使数据在网络中得到正确的处理和传输。协议栈的分层结构使得不同层次的协议能够独立进行开发、测试和升级,同时也提供了灵活性和可扩展性,以适应不同的应用场景和需求。

除了TCP/IP协议栈外,还有其他协议栈,如ISO/OSI七层模型、Ethernet协议栈等。不同的协议栈可能有不同的层次数量和名称,但都遵循类似的分层设计原则,以实现有效的通信和数据传输。

1.3 计算机程序语言分层

二、横向(构建目标系统的时间、开发阶段):软件工程

[架构之路-175]-《软考-系统分析师》-知识体系大全(图解)_文火冰糖的硅基工坊的博客-CSDN博客

软件工程是系统化、规范化地应用技术和方法,以开发高质量软件的学科和实践。软件开发过程是软件工程的核心,它描述了从需求分析到软件交付的全过程,并包括了软件设计、编码、测试、部署和维护等阶段。

常见的软件开发过程包括以下几个主要阶段:

  1. 需求分析:在需求分析阶段,开发团队与用户进行沟通和讨论,确保对用户需求和系统功能有清晰的理解。需求分析的目标是明确系统的功能需求、性能要求、用户界面等方面的需求。

  2. 软件设计:在软件设计阶段,根据需求分析的结果,设计软件系统的整体架构和模块的详细设计。软件设计包括系统结构设计、数据结构设计、算法设计等,旨在保证软件的可靠性、健壮性和可维护性。

  3. 编码与实现:在编码与实现阶段,开发团队根据软件设计的规范,将设计的模块实现为具体的编程代码。开发人员使用合适的编程语言和开发工具进行编码,并进行代码的单元测试。

  4. 软件测试:软件测试是为了评估软件是否满足预期需求和质量标准。测试可以分为单元测试、集成测试和系统测试等不同层次和类型。通过不同的测试手段,检验软件的功能正确性、性能、安全性和可靠性等方面。

  5. 软件部署与维护:在软件部署阶段,将已经测试通过的软件安装和部署到生产环境中。软件维护阶段则是在软件交付后,通过修复错误、改进功能、升级版本等方式来保障软件的运行和持续改进。

除了以上主要阶段,软件开发过程中还需要进行持续的需求管理、变更控制、配置管理、项目管理等工作,在整个开发过程中进行合理的管理和协调。

需要注意的是,不同的软件项目可能采用不同的开发方法和过程模型,如瀑布模型、敏捷开发、迭代开发等。具体的软件开发过程可根据项目的特定要求和团队的实际情况进行调整和选择。

三、二维矩阵知识体系结构

对于计算机二维知识体系结构,我们可以考虑以下两个维度:软件开发阶段维度和计算机分层维度。

  1. 软件开发阶段维度(人的维度、时间的维度):这个维度关注软件的开发生命周期,将软件开发过程划分为不同的阶段。常见的软件开发阶段包括需求分析、软件设计、编码与实现、软件测试和部署与维护。每个阶段都有不同的目标、方法和工具。

  2. 计算机分层维度(机器的维度、目标系统的维度):这个维度关注计算机系统的分层结构。常见的计算机分层模型是ISO/OSI七层模型和TCP/IP四层模型。ISO/OSI七层模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,它描述了计算机系统中各个层次的功能和协议。TCP/IP四层模型包括网络接口层、网络层、传输层和应用层,它是实际互联网中广泛使用的分层模型。

综合以上两个维度,我们可以构建如下的知识体系结构:

- 软件开发阶段维度- 需求分析- 软件设计- 编码与实现- 软件测试- 部署与维护- 计算机分层维度- 应用层- 表示层- 会话层- 传输层- 网络层- 数据链路层- 物理层

在实践中,我们需要学习和理解这两个维度的知识,掌握软件开发的各个阶段的技能和方法,并了解计算机系统中各层次的功能和协议。这有助于我们在实际的软件开发和计算机系统设计中应用相应的概念、技术和工具。

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

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

相关文章

mysql主从复制和读写分离

在企业应用中,成熟的业务通常数据量都比较大 单台MySQL在安全性、高可用性和高并发方面都无法满足实际的需求 配置多台主从数据库服务器以实现读写分离 所以要做主从服务器,保证安全性 做一写一读服务器,将提升性能 1、什么是读写分离 …

Redis Cluster Gossip Protocol: PING, PONG, MEET

返回目录 PING / PONG / MEET 的发送 过程 计算freshNodes。freshNodes表示在消息中能携带的,在cluster节点字典中的节点总数,但需要减去myself和对端节点,因为myself的信息会存储在消息头中。实际上,并非所有在cluster节点字典…

IPv4 、IPv6

以下是一个简单的表格,用于比较IPv4和IPv6的主要区别: 特性IPv4IPv6地址表示32位二进制数,点分十进制表示128位二进制数,冒号分隔的16进制表示地址长度32位(约42亿个可能的地址)128位(几乎无限…

C语言中的异常处理机制是什么?

C语言中的异常处理机制 C语言是一门强大而灵活的编程语言,它为程序员提供了广泛的控制权和自由度。然而,C语言本身并不提供像其他高级语言一样的内置异常处理机制,如Java中的try-catch或Python中的异常处理。因此,C语言程序员需要…

中间件中使用到的设计模式

本文记录阅读源码的过程中,了解/学习到中间件使用到的设计模式及具体运用的组件/功能点 1. 策略模式 1. Nacos2.x中grpc处理时通过请求type来进行具体Handler映射,找到对应处理器。 2. 模板模式 1. Nacos配置数据读取,内部数据源、外部数据…

隐私交易成新刚需,Unijoin 凭什么优势杀出重围?

随着区块链技术的普及和发展,全球加密货币用户在持续增长,根据火币研究院公布的数据,2022年全球加密用户已达到 3.2亿人,目前全球人口总数超过了 80亿,加密货币用户渗透率已达到了 4%。 尤其是在 2020 年开启的 DeFi 牛…

如何像人类一样写HTML之图像标签,超链接标签与多媒体标签

文章目录 前言一、图像标签1.1 什么是图像标签?2.2 如何使用图像标签? 二、超链接标签2.1 什么是超链接标签?2.2 如何使用超链接标签? 三、多媒体标签3.1 什么是多媒体标签?3.2 如何使用多媒体audio标签?3.…

Python入门教程 | Python 常用标准库概览

Python3 标准库概览 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,使用标准库我们可以让您轻松地完成各种任务。 以下是一些 Python3 标准库中的模块: os 模块:os 模块提供了许多与操作系统交互的函数,例如创…

【小沐学前端】Node.js实现基于Protobuf协议的UDP通信(UDP/TCP)

文章目录 1、简介1.1 node1.2 Protobuf 2、下载和安装2.1 node2.2 Protobuf2.2.1 安装2.2.2 工具 3、node 代码示例3.1 HTTP3.2 UDP单播3.4 UDP广播 4、Protobuf 代码示例4.1 例子: awesome.proto4.1.1 加载.proto文件方式4.1.2 加载.json文件方式4.1.3 加载.js文件方式 4.2 例…

多线程 - 单例模式

单例模式 ~~ 单例模式是常见的设计模式之一 什么是设计模式 你知道象棋,五子棋,围棋吗?如果,你想下好围棋,你就不得不了解一个东西,”棋谱”,设计模式好比围棋中的 “棋谱”. 在棋谱里面,大佬们,把一些常见的对局场景,都给推演出来了,照着棋谱来下棋,基本上棋力就不会差到哪…

TAADpapers的工具包用到的lru是lru-dict

TAADpapers的工具包用到的lru是lru-dict 运行时提示:no model named lru 安装lru时报错详情: (textattack-master) G:\xxx\TextAttack-master>pip install lru Collecting lruUsing cached lru-0.1.tar.gz (1.1 kB)Preparing metadata (setup.py) ..…

docker-compose一键启动neo4j

下载镜像 docker pull neo4j:3.5.22-community 编写配置文件 参考文档 编写docker-compose.yml文件 version: "3"services:neo4j:image: neo4j:3.5.22-communitycontainer_name: neo4j restart: alwaysports:- 7474:7474- 7687:7687environment:- NEO4J_AUTH:ne…

Scala第十五章节

Scala第十五章节 1. 递归 2. 案例一: 求阶乘 3. 案例二: 斐波那契数列 4. 案例三: 打印目录文件 scala总目录 文档资料下载

机器学习必修课 - 如何处理缺失数据

运行环境:Google Colab 处理缺失数据可简单分为两种方法:1. 删除具有缺失值的列 2. 填充 !git clone https://github.com/JeffereyWu/Housing-prices-data.git下载数据集 import pandas as pd from sklearn.model_selection import train_test_split导…

竞赛 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列&#x…

C语言实例_调用SQLITE数据库完成数据增删改查

一、SQLite介绍 SQLite是一种轻量级的关系型数据库管理系统(RDBMS),它是一个开源的、零配置的、服务器端的、自包含的、零管理的、事务性的SQL数据库引擎。它被广泛应用于嵌入式设备、移动设备和桌面应用程序等领域。 SQLite的特点包括&…

SpringBoot快速入门

搭建SpringBoot工程,定义hello方法,返回“Hello SpringBoot” ②导入springboot工程需要继承的父工程;以及web开发的起步依赖。 ③编写Controller ④引导类就是SpringBoot项目的一个入口。 写注解写main方法调用run方法 快速构建SpringBoo…

MySQL体系结构和四层架构介绍

MySQL体系结构图如下: 四层介绍 1. 连接层: 它的主要功能是处理客户端与MySQL服务器之间的连接(比如Java应用程序通过JDBC连接MySQL)。当客户端应用程序连接到MySQL服务器时,连接层对用户进行身份验证、建立安全连接并管理会话状态。它还处理…

python获取时间戳

使用 datetime 库获取时间。 获取当前时间: import datetime print(datetime.datetime.now()) . 后面的是微秒,也是一个时间单位,1秒1000000微秒。 转为时间戳: import datetimedate datetime.datetime.now() timestamp date…

小谈设计模式(14)—建造者模式

小谈设计模式(14)—建造者模式 专栏介绍专栏地址专栏介绍 建造者模式角色分类产品(Product)抽象建造者(Builder)具体建造者(Concrete Builder)指挥者(Director&#xff0…