自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入了解计算机系统——利用循环展开对程序的优化

理论上,随着循环展开数量的不断增加,操作的时延应该会不断逼近Issue. 而如果有两个处理单元的话,那么1个lock里就能执行两个操作,这使得时延变为0.5!比方说,一个整数乘法需要3个时钟周期,但如果用pipeline执行,每一个clock都能“发射”一条微指令,这样每一个clock都能执行一条指令.在本例中优化幅度很小.但是由于length()的时间复杂度是O(n), 当v的长度很大的时候, 循环执行n次, 时间复杂度为O(n^2), 增长速度远远大于O(n)现代的处理器都有多个处理单元。

2024-04-24 21:04:21 773

原创 HTML5详解!在HTML上增加的特性

controls: 控件(播放器控制条- autoplay: 自动播放\: 用于定义\元素的媒体资源。可以提供多个 `` 元素以支持不同的视频格式。浏览器将选择第一个支持的格式进行播放。- src: 路径- type: 文件格式\: 用于在 `` 元素不受支持时提供替代内容。这里提供了一个 Flash 视频(SWF 格式)的备用方案.`` 元素是 `` 的一种替代方式,这里用于嵌入

2024-02-27 00:08:20 1011

原创 全面介绍HTML的语法!轻松写出网页

HTML,即**Hypertext Markup Language(超文本标记语言)**, 是网页显示的核心语言.HTML中最重要的要素是tag(标签). 所有的关键词都被一组标签包含.```html My First Heading My first paragraph. ```例如\和\,

2024-02-26 21:38:51 1255

原创 速查git命令(大部分常用功能)

git init git checkout git push git pul...

2024-02-24 00:05:13 523

原创 HTTP概要

HTTP,即超文本传输协议它是一个”请求-相应“的协议,用于客户端和服务器间交换信息。

2024-02-24 00:02:05 1051

原创 Qt超简单实现贪吃蛇

Qt c++ 实现的贪吃蛇,非常易懂

2024-01-16 14:28:47 875

原创 操作系统详解(5.2)——信号(Signal)的题目进阶

Q3中的问题:由于fork()以后子进程最后一定会直接exit返回,所以跳出while循环的父进程最少拥有两个子进程。以child为例,如果不屏蔽信号,那么很可能会使进程接收到信号后使child+1=1, 那么当fork以后,的时候就会执行handler, 并且回收所有子进程,这样就会使child >=2,不会执行pause().:由上图标红的n=4, n=3, n=2可以知道,sum分别是3, 2, 1.上面的流程图虽然表明了n的取值,但是不能反映出父进程与子进程之间的关系。

2024-01-15 21:30:23 1043

原创 操作系统详解(5.1)——信号(Signal)的相关题目

前面说过,handler不会被同种信号再次打断,所以一旦执行过一次handler, pre_alarm和post_alarm都会置1,所以不存在post_alarm为0而pre_alrm为1的情况。所以31行的alarm可能返回0,1,2. 即30执行完后可能被阻塞了0, 1, 2秒甚至更长的时间。由代码可知,第30,31,38,9行都可能会向子进程发送信号, 故最多发送4个信号。了31行的alarm,要么第9行发送的信号被31行发送的pending signal。这里很有意思的是,第33行的。

2024-01-14 15:35:30 847

原创 操作系统详解(5)——信号(Signal)

与Exception(异常处理)相比,signal是软件层面的,更高级的处理机制。signal能使当前的进程和kernel打断其它的进程。Signals 提供了机制,能把exceptions的出现暴露给用户进程本文介绍了signal的基本原理与实现机制, 并给予了signal发送,接收,处理的使用用例. 但信号的知识点非常复杂, 接下来的文章将辅以实际的案例, 通过题目以及手搓一个简单的shell来加深对signal的理解.

2024-01-14 00:07:09 1366

原创 文件批量修改文件名

笔者在使用jekyll生成网页时,需要把每个md文档的前面加上形如"2023-12-26-"的前缀,那么如何批量地修改文件名呢?

2023-12-26 10:16:16 1026

原创 qt的血泪教训——地图存储与绘制

本文并不是严格的教程,只是笔者考试一败涂地后的碎碎念。

2023-12-23 23:56:56 812 1

原创 QT GUI代码大全(MainWindow, QFile, QPainter, QGraphicsItem/Scene/View)

例子:return QRectF(-TILE_SIZE, -TILE_SIZE, TILE_SIZE * 2, TILE_SIZE * 2 );//使用实例:scene->setSceneRect(-100, -100, 200, 200);//设置scene的位置。//设置事件过滤器, filterObj会拦截并处理this的实践。对应的intersect(相交),而contain是包含(区域)使用:serData(GD_Type, GO_Food);

2023-12-20 00:37:45 1762

原创 关于指针的辨析——指针,数组,数组指针,指针数组,函数指针,返回指针的函数

当遇见一个无比复杂的定义时,只要看括号最里面是什么即可,更准确地说,是看*这就又涉及到操作符的运算顺序了,数组名可以看作是指针常量。

2023-12-11 10:31:07 391 1

原创 操作系统详解(4)——进程控制(fork, waitpid, sleep, execve)

介绍了进程控制的相关函数, 包括fork, waitpid, sleep, execve, 其中fork与wait是极其重要且难懂的.下一章将讲解信号机制以及实现.

2023-12-10 15:40:57 1391 1

原创 操作系统详解(3)——进程、并发和并行

进程是计算机科学中 最深刻、最成功的概念之一。进程的经典定义就是一个执行中程序的实例。系统中的每个程序都运行在某个进程的上下文(context)中。介绍了进程的概念以及并发的内涵,并区分了并发与并行的区别。下一章将讲解进程的控制,包括子进程的创建(fork), 子进程回收(waitpid), 加载并运行程序(execve)

2023-12-07 20:23:03 1237 1

原创 操作系统详解(2)——异常处理(Exception)

介绍了操作系统的异常处理机制,并区分了异常的种类以及它们相应不同的处理方式。下一章将讲解进程的具体内容,包括并发的概念以及如何用Fork创建子进程。

2023-12-06 23:37:53 1277 1

原创 操作系统详解(1)——操作系统的作用

操作系统是管理电脑硬件的程序,为应用程序提供基础,是用户与硬件间的桥梁。它保护硬件不被应用程序误用。应用程序通过简单且统一的方法操作硬件分工:applications 不能直接访问I/O设施通过操作系统提供的services(比如syscall)简要介绍了什么是操作系统。下一章会说明操作系统的异常处理机制。数据在内存中的对齐问题计算机编译程序的原理函数调用的汇编原理汇编语句详解(持续更新)关于位运算必须记住的事C语言中的类型转换。

2023-12-05 13:06:07 501

原创 图论(2)——道路与回路

设C是简单图G中含结点数大于3的一个初级回路,如果结点vi和vj在C中不相邻,而边 (vi,vj)∈\in∈E(G),则称(vi,vj)是C的一条弦。该回路也称为带弦回路(chordal circuit)。设G=(V,E)是无向图,如果V(G)可以划分为子 集X和Y,使得对所有的e=(u,v)∈\in∈E(G), 都有u 和v分属于X和Y,则称G是二分图。无向连通图G=(V, E)中的一条经过所有边的简单回路(道路)称为G的欧拉回路(道路)包含欧拉回路的图为欧拉图。

2023-11-28 11:23:02 1975

原创 图论(1)——图的基本概念

二元组(V(G),E(G))称为图。其中, V(G)是非空集合,称为结点集E(G)是V(G)诸结点之间边的集合常用G=(V,E)表示图即结点数|V|=n, 边数|E|=m两个图G1=(V1, E1), G2=(V2, E2),如果V1和V2之间存在双射f, 而且(u, v)∈\in∈E1, 当且仅当(f(u), f(v))∈\in∈E2时, 称G1和G2同构记作G1≅G2。

2023-11-23 18:18:23 289

原创 printf用法详解

本文详细介绍了printf的基础以及进阶用法,并给了相应的代码示例。

2023-11-22 15:36:01 351

原创 C语言中的类型转换

介绍了数据在内存中的存储以及类型转换的规则

2023-11-20 14:39:17 166 1

原创 数据在内存中的对齐问题

数据类型在内存中的对对齐要求

2023-11-17 12:57:52 32

原创 计算机编译程序的原理

本文介绍了我们写的c语言等程序是如何得以被计算机执行的,包括了对程序运行时内存分配的介绍

2023-11-17 10:14:13 354

原创 函数调用的汇编原理

本文介绍了函数调用是怎么在机器上实现的,并给出了相应的汇编代码.

2023-11-16 22:27:58 832 1

原创 如何在Windows下使用Valgrind

Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。可惜这么强大的工具(几乎)只能在linux上运行, Windows上是不能直接使用的.好在可以通过Windows下的linux子系统进行使用.本文是配置linux子系统并初步使用Valgrind的教程

2023-11-15 21:37:40 3122 3

原创 gdb常用命令总结

gdb常用命令

2023-11-15 13:10:40 245

原创 VMware虚拟机连不上网问题解决

VMware上的linux系统无法联网的问题解决

2023-11-14 20:53:53 408

原创 汇编语句详解(持续更新)

常用的汇编语句

2023-11-13 23:53:44 216

原创 一道题读懂汇编语言

一道汇编的填空题,包含了汇编主要的知识点

2023-11-10 14:42:19 321

原创 关于位运算必须记住的事

关于位运算的一些useful Tips

2023-11-07 23:24:16 45

空空如也

空空如也

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

TA关注的人

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