计算机 系统 层次 结构

自己动手从零写桌面操作系统GrapeOS系列教程——18.外设和IO

学习操作系统原理最好的方法是自己写一个简单的操作系统。 一、外设和I/O接口 前面我们介绍过冯·诺依曼结构包含5部分,其中输入设备和输出设备统称为外部设备,简称外设。常见的外设有鼠标、键盘、显示器、硬盘等。由于外设种类多、差异大、速度慢等原因,导致CPU无法直接与外设沟通。于是在CPU和外设之间产生 ......
外设 桌面 GrapeOS 教程 系统

自己动手从零写桌面操作系统GrapeOS系列教程——16.封装打印字符串函数

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在上一讲中我们向屏幕打印字符串“GrapeOS”用了十几行汇编代码,如果要输出的字符比较多,这种方法太繁琐了。本讲我们将打印字符串封装成一个函数,使用时就方便多了。 一、mbr7.asm mbr7.asm代码如下: org 0x7c00 ;如果 ......
字符串 函数 字符 桌面 GrapeOS

自己动手从零写桌面操作系统GrapeOS系列教程——17.用汇编语言清空屏幕

学习操作系统原理最好的方法是自己写一个简单的操作系统。 在QEMU中会默认输出一些字符,有时候会干扰我们自己输出的字符。一个比较好的办法是向将屏幕清空,再输出我们想要输出的字符。下面就来学习如何清空屏幕。 一、清空屏幕 其实清空屏幕的原理很简单,就是将屏幕写满空格就行了。 下面来实战。mbr8.as ......
屏幕 桌面 GrapeOS 语言 教程

设计一款可扩展和基于windows系统的一键处理表格小工具思路

原创总结/朱季谦 设计一款可扩展和基于windows系统的一键处理表格小工具思路 日常开发当中,业务人员经常会遇到一些重复性整理表格的事情,这时候,就可以通过一些方式进行自动化程序处理,提高工作(摸鱼)效率。 例如,业务人员有这样需要,日常需要手工整理以下原始xlsx表格数据,这些数据格式都是固定死 ......
表格 思路 windows 工具 系统

设计模式(十五)----结构型模式之外观模式

1 概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域,而基金投资的 ......
模式 结构型 设计模式 外观 结构

设计模式(十四)----结构型模式之组合模式

1 概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以 ......
模式 结构型 设计模式 结构

设计模式(十六)----结构型模式之代理享元模式

1 概述 定义: 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 2 结构 享元(Flyweight )模式中存在以下两种状态: 内部状态,即不会随着环境的改变而改变的可共享部分。 外部状态,指 ......
模式 结构型 设计模式 结构

ASP.NET Core - 配置系统之配置添加

2. 配置添加 配置系统可以读取到配置文件中的信息,那必然有某个地方可以将配置文件添加到配置系统中。之前的文章中讲到 ASP.NET Core 入口文件中,builder(WebApplicationBuilder 对象) 中有一个 Configuration 属性,这里就是我们扩展添加额外的配置的 ......
系统 Core ASP NET

ASP.NET Core - 选项系统之选项配置

1. 选项 前面讲完了.NET Core 下的配置系统,我们可以通过 IConfiguration 服务从各种来源的配置中读取到配置信息,但是每次要用的时候都通过 Iconfiguration 读取配置文件会比较不方便,而且效率低。.NET Core 体系下提供了一个选项系统,该功能用于实现以强类型 ......
系统 Core ASP NET

ASP.NET Core - 配置系统之配置提供程序

3. 配置提供程序 上面提到,通过 IConfigurationBuilder 的实现类对象,我们可以自由地往配置系统中添加不同的配置提供程序,从而获取不同来源的配置信息。.NET Core 中,微软提供了以下这些内置的配置提供程序: 文件配置提供程序 环境变量配置提供程序 命令行配置提供程序 Az ......
程序 系统 Core ASP NET

ASP.NET Core - 配置系统之自定义配置提供程序

#4. 自定义配置提供程序 在 .NET Core 配置系统中封装一个配置提供程序关键在于提供相应的 IconfigurationSource 实现和 IConfigurationProvider 接口实现,这两个接口在上一章 ASP.NET Core - 配置系统之配置提供程序 中也有提到了。 I ......
程序 系统 Core ASP NET

ASP.NET Core - 配置系统之配置读取

一个应用要运行起来,往往需要读取很多的预设好的配置信息,根据约定好的信息或方式执行一定的行为。 配置的本质就是软件运行的参数,在一个软件实现中需要的参数非常多,如果我们以 Hard Code(硬编码)的方式写在应用代码中,这样配置就会很乱,而且后续也不容易修改。乱而多,而且不容易修改,这就需要一个统 ......
系统 Core ASP NET

面试官:请说一下如何优化结构体的性能?

使用内存对齐机制优化结构体性能,妙啊! 可以简单理解为:将对齐系数小的字段,尽可能放在一起,尽量减少空白填充。 掌握了内存对齐机制后,结构体Struct的优化,调整下字段顺序,效果立竿见影。内存对齐其实就是典型的空间换时间的方式,来达到优化的目的。牢记对齐原则,对实际场景进行分析,减少空白填充。 ......
性能 结构

vivo全球商城:库存系统架构设计与实践

作者:vivo官网商城开发团队 - Xu Yi、Yan Chao 本文是vivo商城系列文章,主要介绍vivo商城库存系统发展历程、架构设计思路以及应对业务场景的实践。 一、业务背景 库存系统是电商商品管理的核心系统,本文主要介绍vivo商城库存中心发展历程、架构设计思路及应对各种业务场景的实践。 ......
架构 库存 商城 全球 系统

.NET应用系统的国际化-多语言词条服务

上篇文章我们介绍了 VUE+.NET应用系统的国际化-整体设计思路 系统国际化改造整体设计思路如下: 提供一个工具,识别前后端代码中的中文,形成多语言词条,按语言、界面、模块统一管理多有的多语言词条 提供一个翻译服务,批量翻译多语言词条 提供一个词条服务,支持后端代码在运行时根据用户登录的语言,动态 ......
词条 应用系统 国际 系统 NET

推荐系统[八]算法实践总结V2:排序学习框架(特征提取标签获取方式)以及京东推荐算法精排技术实战

0.前言 「排序学习(Learning to Rank,LTR)」,也称「机器排序学习(Machine-learned Ranking,MLR)」 ,就是使用机器学习的技术解决排序问题。自从机器学习的思想逐步渗透到信息检索等领域之后,如何利用机器学习来提升信息检索的性能水平变成了近些年来非常热门的研 ......
算法 实战 框架 特征 标签

.NET应用系统的国际化-整体设计思路

近期产品要支持国际化多语言,主要涉及前端界面国际化以及后端提示信息、异常信息的国际化多语言支持。 目前我们的开发技术栈:前端VUE、后端.NET。面向前端界面和后端服务,分别涉及对应的国际化多语言支持方案。 一、前端界面国际化多语言支持 前端VUE界面的源码如下: 上述代码中,我们将需要多语言支持的 ......
应用系统 思路 整体 国际 系统

【数据结构与算法学习】线性表(顺序表、单链表、双向链表、循环链表)

实现语言:C++ 1. 线性表相关概念 线性表(Linear List) 是由n(n≥0)个具有相同特性(数据类型)的数据元素(结点)a1,a2,...,ai-1,ai,ai+1,...,an组成的有限序列。 其中,a1为线性起点(起始结点),an为线性终点(终端结点)。对于每一个数据元素ai,我们 ......
数据结构 线性 双向 算法 顺序

【数据结构与算法学习】散列表(Hash Table,哈希表)

实现语言:C++ 1. 散列表 散列表,英文名称为Hash Table,又称哈希表、杂凑表等。 线性表和树表的查找是通过比较关键字的方法,查找的效率取决于关键字的比较次数。 而散列表是根据关键字直接访问的数据结构。散列表通过散列函数将关键字映射到存储地址,建立了关键字和存储地址之间的一种直接映射关系 ......
数据结构 算法 结构 数据 Table

掌握4C原则,设计高效的系统架构

hi,我是熵减,见字如面。 在软件开发中,设计一个好的架构是非常重要的,好架构能够影响整个系统的质量和可维护性。 而要设计出好架构,就需要遵循一些设计原则。 其中,架构设计的4C原则是一种常用的架构设计基础原则,4C原则强调架构设计的清晰性、简洁性、一致性和可改性。 这些原则可以帮助我们评估和优化架 ......
架构 原则 系统

一文带你吃透操作系统

文章字数大约1.9万字,阅读大概需要65分钟,建议收藏后慢慢阅读!!! 1. 进程、线程管理 进程和线程基础知识 进程:进程是系统进行资源分配和调度的一个独立单位,是系统中的并发执行的单位。 线程:线程是进程的一个实体,也是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,有时又 ......
系统

AIR32F103(十) 在无系统环境和FreeRTOS环境集成LVGL

LVGL是嵌入式设备中常用的图形显示库, 这篇基于 256K Flash 的 AIR32F103CCT6 和 SPI接口的 ST7735 128x160 LCD屏, 介绍 LVGL 在无系统环境和FreeRTO环境, 带DMA和不带DMA方式的集成步骤 ......
环境 FreeRTOS 系统 F103 LVGL

Linux系统下祼机安装mysql8.0和docker mysql 8.0 性能差异对比~

环境准备 准备两台服务器环境,配置相同,分别安装Centos7,mysql8.0,docker mysql 8.0 准备测试代码 public class Chat { public static long Count = 0; public Chat() { } public static voi ......
mysql 差异 性能 mysql8 docker

基于内容的推荐系统算法

基于内容的推荐算法是一种常用的推荐算法,它主要通过分析物品的特征(如文本、图片、视频等)来实现推荐。其核心思想是利用物品属性的相似性,将已经喜欢的物品的特征作为输入,推荐与该物品相似度高的其他物品。 基于内容的推荐算法仅考虑了单个用户对物品的偏好,而未考虑多个用户之间的交互和影响。此外,该算法在特征 ......
算法 内容 系统

sqlite3数据库Linux 系统移植和使用

sqlite3数据库是一个小型的数据库,当数据量不大,要求不是特别高的时候,是个不错的选择。 在Linux上移植和使用也非常的方便。 本示例是在硬件全志r528 .linux5.4 上验证的。 移植操作: 1、源码下载 去官网进行下载源码SQLite Download Page,根据自己的选取选择不 ......
sqlite3 数据库 数据 sqlite 系统

AI 大战 AI,一个深度强化学习多智能体竞赛系统

小伙伴们快看过来!这是一款全新打造的 ⚔️ AI vs. AI ⚔️——深度强化学习多智能体竞赛系统。 这个工具托管在 Space 上,允许我们创建多智能体竞赛。它包含三个元素: 一个带匹配算法的 Space,使用后台任务运行模型战斗。 一个包含结果的 Dataset。 一个获取匹配历史结果和显示模 ......
深度 大战 智能 系统 AI

云原生时代顶流消息中间件Apache Pulsar部署实操之轻量级计算框架

本篇逐层递进了解Pulsar Functions的基本概念和理论,如工作原理、处理保证模式、窗口函数;进一步搭建Pulsar函数运行环境,一步步操作演示函数也包括窗口函数的示例使用,最后通过Java语言实现原生语言接口和Pulsar函数SDK两种方式的代码示例、打包、部署和结果验证。 ......
轻量 轻量级 中间件 框架 消息

记一次 .NET某汽车零件采集系统 卡死分析

一:背景 1. 讲故事 前段时间有位朋友在微信上找到我,说他的程序会出现一些偶发卡死的情况,让我帮忙看下是怎么回事,刚好朋友也抓到了dump,就让朋友把 dump 丢给我,接下来用 windbg 探究下到底咋回事。 二:WinDbg 分析 1. 程序真的卡死吗 因为是一个 winform 程序,验证 ......
汽车零件 零件 汽车 系统 NET

Linux系统调优介绍

前言: Linux服务器运行了很多应用,在高负载下,服务器可能会出现性能瓶颈,例如CPU利用率过高、内存不足、磁盘I/O瓶颈等,从而导致系统卡顿,服务无法正常运行等问题。所以针对以上问题,可以通过调整内核参数和系统的相关组件,优化应用程序来提高服务器的性能和稳定性,避免系统崩溃和服务中断。 Linu ......
系统 Linux

在线文本翻译能力新增14个直译模型,打造以中文为轴心语言的翻译系统

经济全球化的今天,人们在工作和生活中经常会与外语打交道。相较传播性较广的英语而言,其他语种的识别和阅读对大多数人来说是一件难事,此时就需要借助语言翻译软件来帮助理解。 华为 HMS Core 机器学习服务(ML Kit)翻译功能提供了多种翻译模式,不仅可以满足应用出行购物、网络社交等日常场景,还提供 ......
直译 以中 轴心 模型 文本