自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(145)
  • 收藏
  • 关注

原创 操作系统----第一章:操作系统的启动、接口、系统调用

1、简要解释了一下system模块为什么要用call2、转入setup执行,因为boot已经将setup模块和system模块的代码载入到了内存(即从磁盘读出,放入内存了)之后,修改CS:IP的值,CS=0x9020,IP=0x0000,所有,会转入setup模块在内存中的首地址0x90200处开始执行。

2025-03-25 22:51:00 817

原创 计算机网络----第一章:概论

节点和边计算机网络的节点:由多个节点组成的网络,其中,节点包括:主机节点(方框)、数据交换节点(包括中继器、路由器、交换机)(圆圈)计算机网络的边有两类:其中主机节点与数据交换节点之间的边称为“接入网链路”,而“数据交换节点”之间的边称为“主干链路”(即,有方框参与,就是“接入网链路”;只有圆圈参与,就是“主干链路”)协议:不同厂家的网卡根据同一个协议可以进行通信计算机网络不仅有节点和边,还有协议而协议,是对等层的实体在通信的过程中应该遵守的规则集合。

2025-03-10 23:08:08 847

原创 计算机网络----主要内容简介

路由协议:即 在网络中,路由器与路由器们会互相发送一些测试报文,得出路由器自己到其他不同的子网所需的时间、所耗费的代价等信息,而路由器们都共享这些信息(称为路由信息),之后路由器拿到足够多的信息之后,根据路由算法,得出一个路由表(这个表根据共享的信息,计算出了当前路由器“如果收到一个子网的数据,如何转发会是最优策略”)而链路层提供的是点到点的服务(即相邻网卡设备之间的传输,(可能是主机路由器(或者交换机)之间跳转,可能是路由器和路由器之间跳转),总之是网卡与网卡之间的跳转)(特指网络使用的操作系统)

2025-03-09 23:33:50 971

原创 计算机组成原理--第五章:中央处理器

1、首先包含一个算术逻辑运算单元(ALU),负责进行算术运算或者逻辑运算2、之后,运算器里面还有许多的“通用寄存器组”,对于一般的CPU而言,我们可以使用R0、R1、R2、R3来表示,同样,对于x86CPU来说,其使用AX、BX、CX、DX来表示,且有一个SP,但是其本质与R0~4是一样的对于指令寄存器:1、其不是整个向总线进行输出,而是分为两部分,其中,存放的指令的“地址码”部分,是会向总线输出的。

2025-01-02 22:46:38 971

原创 计算机组成原理--第四章:指令系统

注意,不同的架构设计的芯片,支持的指令集不同,所以,在x86架构上的软件,在ARM架构下是无法直接运行的扩展操作码也是一种指令格式,首先我们知道,一条指令,由“操作码” + “操作数”(或者叫“地址码”)组成而这种格式就是,1、指令的总长度不变2、操作码的长度可以变3、优点是,可以根据“地址数”,也就是地址码的数量,来使用不同长度的操作码。

2025-01-02 16:31:51 1260

原创 前后端、网关、协议方面补充

接口文档,是对一个接口的功能、参数、返回值、调用凡是等进行详细描述的文档路由器可以有多个IP地址,这取决于其配置和网络结构。WIFI与LAN口是平级的,他们都是在局域网子网中的连接方式,只不过一个是无线,一个是有线。

2024-11-13 00:49:26 1430

原创 计算机组成原理--第三章:存储系统

1、首先,第一点,可以看到一个金字塔,他越向上的部件,速度越快,造价越高,容量越小2、当我们启动一个应用的时候,一般应用的数据、启动程序都在辅存(硬盘)中,而启动一个程序需要CPU去运行其启动程序、数据等,而CPU不能直接访问辅存,所以,一般辅存会将数据给到主存(内存),然后内存再给到CPU(我们开启微信时,刚开始的一个地球的画面,就是等待数据从辅存调入主存)在主存与CPU之间,多出了一个cache,称为高速缓冲存储器。

2024-11-09 17:47:24 918

原创 C++98、C++11新特性补充

上述包含一个头文件memory,这是智能指针的头文件,之后使用using namespace std,可以看到,在main函数中可以直接使用其模版创建一个智能指针,这个时候对于命名空间的范围可能还没有感觉接下来,我们将using namespace去除,而是使用std进行指定:可以看到,不管是iostream中的cout、endl还是memory中的智能指针。

2024-10-20 18:29:58 1105 1

原创 计算机组成原理--一章二章

ALU的输入有两个数,每个数都是使用一个机器字长的位数来表示数据的,比如上图中A和B都是4位bit,最终计算得到的结果也是4位ALU中会接入CU的控制,其中,M为1时表示逻辑运算,M为0时表示算术运算而S有四个bit,所以可以表示2的四次方种功能,所以,可以控制实现算术运算和逻辑运算各16种运算。

2024-10-17 00:22:46 859

原创 系统编程--线程同步

使用两个线程,同时向“公共输出”(共享区)写数据,没有加锁机制打印完全随机,各个线程的一帧数据写入都会被其他线程打断、插入其他数据。

2024-09-13 12:39:07 1005

原创 系统编程--线程

对于一个进程来说,他有独立的进程地址空间,如上图左侧0~4G的进程地址空间,且他有一个PCB进程控制块而当该进程调用pthread_create()创建线程时,这个线程不会再有新的0~4G的进程地址空间,而是使用当前进程的地址空间,但是该线程会创建出一个自己的PCB控制块而一旦一个进程创建出一个线程,该进程也叫做线程了,就相当于从一开始的整租->合租,虽然你是第一个租的,但由于有别人一起来租,你们俩就都叫合租。

2024-09-08 17:28:26 1183

原创 系统编程--信号

注意:所有信号的产生及其处理都是内核完成,所以,后续我们做的任何有关信号的代码操作,都不是我们直接去创建一个信号,或者操作一个信号,而是驱使内核去创建、操作信号。

2024-09-04 23:01:27 283

原创 系统编程--进程间通信

父子进程,对于0到3G的区域,是用户段,映射到内存中是各自独立的而3G到4G的区域,是内核段,映射到内存中是同一块内存地址空间,而既然是在同一块内存地址空间下,就说明二者可以进行通信,进行数据交流、共享而进程间通信,简称IPC管道只能作用于有血缘关系的进程之间,我们可以使用pipe这个函数来创建一个管道,或者在命令行使用命令:mkfifo f1但是其本质上是一个伪文件,不是真正存在磁盘空间中的文件,他实际上是一个内核缓冲区。

2024-09-01 18:20:51 497

原创 模型训练套路+GPU训练

输出经过模型处理过后的输出,打印其shape,可以看到最后的shape是[64, 10],64表示抓取数,一般是不变的,10表示最后的尺寸,发现符合我们的预期,验证完成(main函数可以保留至此,无需注释)可以看到,先进行一个with语句,该语句的作用是不进行梯度的设置,如果没有梯度,那么就不会进行调参的动作,也就不会改变当前轮训练完之后的模型,,这里就是从100、200、300…同时,可以设置训练模式时,训练每100次,进行一次损失函数损失值的打印,防止测试集的输出淹没在训练时的损失函数输出中。

2024-08-20 00:18:09 639

原创 神经网络搭建与训练实战

图中少化了一个input,实际上,将数据处理完之后,展开成一维的结果,就是一个线性处理中的输入层,大小是64 * 4 * 4之后进行一次线性层的处理,数据量变成了64再经过一次线性层的处理,数据量变成了10(因为模型最后要从十个类别中预测一个,最后的数据可以是对应类别的对应概率)后续我们拿到最终的10数据之后,就可以做一些逻辑处理,比如,如果最后的数据是对应类别的对应概率,那么我们取最大的即可。

2024-08-10 18:31:21 501

原创 Pytorch训练神经网络-入门

这是一个python库的集合,在python中,库也叫做包,而anaconda中包含了大部分我们训练模型所需要的包可以使用miniconda+pip 代替anaconda。

2024-08-02 00:10:40 394

原创 系统编程--进程

但是对于早先的单核CPU处理器,虽然在我们人类的感官上,CPU确实是在并发,但是实际上CPU是在轮流的执行他们,也就是说,在任何一个时刻,只有一个进程在运行,之所以感觉不到,是因为CPU的处理速度远在人类的感知范围之上。多道程序设计,是基于单核CPU的前提下解释的,也就是在CPU穿插运行多个进程,其中,时钟中断,是指CPU强制执行的,满足时钟中断则进行进程的切换。给到CPU,CPU一顿计算之后,将结果返回到存储介质的寄存器,之后返回到缓冲区,又给到内存的进程,此时屏幕可以获取到结果,进行展示。

2024-07-23 23:56:04 479

原创 系统编程--目录操作与重定向

首先明确:目录也是一个文件其文件内容就是所有子文件的目录项(dentry),使用vim打开一个目录,也是显示其子文件的目录项而其三个权限与文件的区别见上图实现一个ls -R,也就是显示当前子文件的同时,如果子文件是一个目录,那么将其目录内的子文件也显示出来,依次类推,有目录就向内显示。

2024-07-21 23:34:16 1106

原创 系统编程--Linux下文件的“其他操作”函数

因为lstat与stat没有其他区别,而且lstat不会进行穿透,所以,以后我们直接使用lstat就可以了建立硬链接,也就是新建dentry项,而使用mv命令修改文件名时,也是修改了dentry,并不对真正的文件做操作。

2024-07-20 18:52:11 881

原创 机器学习方向--总览

神经网络是参考生物中的神经元进行设计的,有若干个输入和一个输出假设我们有五个神经元,即有五个MP模型,将其分成两组,将第一组的输出连到第二组的输入,就构成了神经网络,神经网络的关键就在于将神经元以层级的方式链接起来两层的神经网络还有一个别称:感知机。

2024-07-17 22:03:38 150

原创 网络编程--网络理论基础(二)

路由器分为LAN口和WAN口,LAN口用来接各种家庭中的设备,而WAN口用来接运营商提供的互联网,从而连接到互联网中如果没有WAN口,那么路由器就是一台交换机,也是一个子网而WAN口,实际上是另一台交换机,只不过这台交换机是全球通信的巨大的一张网,称为互联网,是另一个子网而路由器就是网关,负责两个子网之间的通信的桥梁。

2024-06-17 17:27:45 973

原创 TCL编程

set 变量名 值其中,值可以是常量,如上图的12,也可以是从变量中拿到的值,如上图中的$a注意,如果变量名不是由字母数字和下划线组成的,那么在$时,要将变量名加上花括号[]是计算表达式的值,语法:[expr 1+2]在中括号里进行表达式运算,且表达式之前要加expr补充:如果使用[glob *v]本意是想拿到所有以v结尾的文件,但是虽然他确实返回结果是a.v b.v c.v,但是他将这三个.v合并成了一个变量进行返回,当前目录并没有名为“a.v b.v c.v”的单个文件,所以,这里想要返回三个

2024-06-05 11:15:31 685

原创 shell编程

shell是我们的linux所使用的命令行解释器,他负责程序员与Linux内核的沟通,所以可以认为shell是一个程序员与linux内核沟通的编程语言我们将命令交给shell,shell将我们的命令翻译为机器语言,交给内核,去调动内核我们还可以将多个shell命令写成在一起,存入一个文件,该文件就叫做脚本从2)可以看到,sh是当前系统的默认解释器,他默认链接到了bash上,说明centos默认的shell解析器是bash需要注意的:1、=前后不可有空格。

2024-05-26 18:14:06 778

原创 系统编程--“文件IO”函数

系统调用,就是一些操作系统所提供的函数API,通过键入man man,可以查看man手册的简介,可以看到,man手册的第二卷,都是系统调用的函数原型,即内核提供的函数。

2024-05-18 11:17:13 719

原创 B/S模式的web通信(高并发服务器)

之后,因为http协议中,对于从浏览器发送而来的文件的位置,是以启动配置的第三个参数为参考根目录的相对路径,服务器要设法拿到服务器对应的路径,而拼接路径又过于繁琐,所以,使用chdir函数,该函数可以让服务端的工作目录跳转到某个目录下(实际上就是与cd的作用一样),所以,chdir(argv[2]),就是将服务器跳转到第三个参数所指明的目录内,这样,从http协议封装出来的数据包拿到的数据,可以直接拿到当前服务器使用,因为服务器的工作目录已经跳转到第三个参数的目录了。如果是cfd,那么进行数据的读取。

2024-05-09 17:21:32 896

原创 Gradio之blocks灵活搭建页面

(在诸多水平布局之间,混入了几个没有写任何布局的组件,那是因为该行就那一个组件,所以,在只有一个组件,且目前在垂直布局的大引导下,也就无需再写一个水平布局了,但是还是建议写上,便于代码的阅读和维护)所以,我们在这里调整其最小宽度,只要保证最小宽度比我们想要设置的宽度小就可以了,我们调为1,就已经是最小的宽度了,基本上调为1之后,不会限制任何比例对宽度的下调了。可以看到,最后的效果,有一点小bug,因为那一行六个按钮,本来是写在一个row内的,也就是本就是一行,现在怎么会变成两行,

2024-05-07 16:57:25 1599

原创 CMake

首先,我们知道,一个源文件生成可执行文件的步骤为:1、预处理,将源文件中的宏、头文件等展开,将注释删去2、进行编译,将源文件进行编译。3、进行汇编,汇编完成之后,就会根据源文件生成二进制文件,win平台下以“.obj”为后缀,而linux平台下以“.o”为后缀4、链接,将.obj或者.o文件进行链接,最终生成可执行文件,win平台下为.exe,linux平台下为.out文件CMake就是一个项目构建的工具,项目编译构建的工具。

2024-04-22 16:10:34 977

原创 GCC、gcc、g++辨析

GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C等语言。gcc是GCC中的GUN C Compiler(C 编译器)g++是GCC中的GUN C++ Compiler(C++编译器)由于编译器是可以更换的,所以gcc不仅仅可以编译C文件所以,更准确的说法是:gcc调用了C compiler,而g++调用了C++ compiler。

2024-04-22 14:56:04 300

原创 算法刷题应用知识补充---数论

这里的应用是,将a,m,x,y带入exgcd,得到函数的返回值是gcd(a, m),且x和y会引用返回,其中,x就是我们要找的值的初态,我们还要对其处理。这里要判断,是否真正要得到的余数b是gcd(a,m)的倍数,如果不是,那么无解,如果是,则结果是x乘上倍数,即x * (b / d),这就是我们要找的x。知识点2:a在mod p时的逆元,等于 qmi(a, p - 2, p),即a * qmi(a,p - 2, p) = 1 (mod p)知识点3:要判断是否有解,若a%p!=0,则有解,否则,无解。

2024-04-10 16:09:50 397

原创 算法刷题应用知识补充--搜索与图

这里写目录标题DFS题结BFS题结一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录DFS题结BFS题结一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录

2024-04-07 20:49:07 246

原创 算法刷题应用知识补充--基础算法、数据结构篇

所以,初步的认知已经建立了。所以,a = a ^ b,a是第一行代码执行后变化的a,b是原来的a,所以,将a拆开(得到原来的a 和 b)并且将b换成原来的a:a ^ b ^ a,再使用交换律,得到a ^ a ^ b,最后等于原来的b。所以在求4的次幂时,因为2的偶次幂,一定是4的次幂,所以,我们在找到2的次幂数的基础上,再找到那些是2的偶次幂的数,那些数mod3==1。b = a ^ b,此时a是变化之后的a,将其拆开:a ^ b ^ b,此时a是变化之前的a,所以,就等于a ^ 0,最终等于原来的a。

2024-04-05 23:20:55 696

原创 C++算法补充---STL

printf(“%.xf”,x)可以实现四舍五入.0f,是保留到整数,四舍五入仅用于整数四舍五入如果用于小数:那么要满足要保留的位数后面还有两个有效数字,编号为1、2,2号不能为0如果是结构体,那么传入引用。

2024-04-01 09:28:17 1263

原创 算法错题本

上图中 在循环里 不要定义int i = 0;这样的话每次循环都会使其为0;低级错误 只能在for循环里设置为int i= 0;利用for循环 计数器++ 求长度终止条件(跳出循环条件):可以看到定义好了数组之后 不赋值的地方 就是乱码 以此为终止条件。

2024-04-01 09:27:49 1041

原创 Linux系统下连接mysql要注意的问题

安装mysql8的话,他会默认自带四个数据库,最好不要在这四个库中进行修改。如果想要在源码中使用mysql,需要下载mysql连接库。

2024-04-01 08:41:05 240

原创 网络编程--高并发服务器(二)

之后进入while循环,在循环内,无需做任何连接相关的操作,所以我们可以直接进行数据的读写,但是这里read、write函数都无法使用了,因为我们没有connfd,且recv、send函数也不能用,因为他们只能用于TCP,所以,这里read被替换成recvfrom函数,之后进行业务代码,最后将结过通过sendto函数写回。TCP是面向连接的,可靠的数据包传输,也就是他会在复杂的网络环境中,在通信两端建立起连接,可以弥补网络层的不稳定,如果传输过程中丢包,那么会重新传递丢掉的包(主要依赖于ACK应答实现)

2024-03-29 09:37:15 760

原创 网络编程--高并发服务器

我们从客户端连接上服务端,可以进行正常的运行,但是如果此时第二个客户端也连接上服务端的话,第二个客户端是无法正常运行的,因为目前我们只能处理单进程,一对一的服务提供,无法进行多个客户端同时连接,所以,就有了高并发服务器。现在我们有了服务端和客户端(上图均以终端代替)

2024-03-15 11:04:54 708

原创 系统编程--makefile项目管理

makefile就是一个命令脚本文件,接下来我们介绍如何使用他一个规则:目标:依赖(tab缩进)命令如下图所示,是一个最简单的Makefile脚本文件目标:就是最后要生成的文件的文件名依赖:就是生成可执行文件的源文件下一行先起一个tab,之后输入正常情况下我们要在终端输入的命令假如我们按照如上所示命令,进行多个源文件的联合编译,从而生成可执行文件a.out。

2024-03-10 11:03:29 928

原创 算法考前必看

如果计算过程中出现int越界,那么就需要在等号右边计算的时候就加上(long long),之后看运算结果能不能回到int范围,如果回不到,那么等号右边的变量也要用long long 类型来接收,要是可以回到int,那么就可以使用int(建议都改为long long,因为算法对空间很宽松)比较时尽可能用乘法,可以移项的移项。

2024-03-02 21:54:05 427

原创 算法--时空复杂度分析以及各个数据量对应的可使用的算法(C++;1s内)

这里写目录标题由数据范围反推算法时间复杂度以及算法内容一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录由数据范围反推算法时间复杂度以及算法内容一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录一级目录二级目录二级目录二级目录

2024-02-28 20:56:44 417

原创 算法--动态规划(线性DP、区间DP)

从顶部出发,可以向左下或者右下移动,最后形成一条路径,找到一条路径使得路径上的数字之和最大例如这样一个序列,最长子序列就是 1 2 5 6,长度最长是4。

2024-02-27 21:32:03 1038

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除