自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hnZone

$\mathsf{life}\not=\int_{birth}^\infty \,\mathrm dt$

  • 博客(186)
  • 收藏
  • 关注

原创 详解K均值聚类算法(K-means Clustering)简易实例:从空调温度判别使用者

本文以空调温度的模拟记录为数据集,利用一个一维二类的K均值聚类算法实例进行分析,从而阐明聚类算法的核心精神,并手把手带你完成一个K均值聚类算法的实战。最终利用实验结果阐明这种聚类的一个小型缺陷,以期启发读者思考。

2020-10-31 11:51:18 9411 2

原创 Python 装饰器的若干补充:装饰模式,functools.wraps,以及‘NoneType‘ object is not callable问题

本文在廖雪峰的Python教程“装饰器”之外补充了一些相关的问题。包括:为什么要使用装饰,以及装饰模式的初步知识;通过函数名称的变换,说明装饰器实现的粗略原理;和一个代码紧缩导致的功能缺陷问题。

2020-08-05 14:07:17 3162

原创 电路课组(一)电路原理 Part 3 电阻和电源的等效变换

本节包括电路分析的主要基本方法。电路分析中有很多典型而简单的分析方法,比如混联电路的分析、平衡电桥。但同时我们发现很多问题是不能简单地进行求解的,所以我们还要讨论一些网络等效的方法,包括的Y-Δ变换、电源等效,etc。

2020-06-24 18:33:18 3522 2

原创 【Java】字符串内存池机制备忘

另外,可以使用StringBuilder。Java字符串变量指向字符串池中的字符串常量,直接对于字符串变量的改变是改变其指向,传值时无法改变原指向处的内容。而StringBuilder是指向一个确定的字符串,传值进去是一个地址,改变这个变量会改变其地址上的字符串。这说明,java中函数的传递都是值传递,都是建立一个对于变量的拷贝。使用一般的传递方法的静态函数或静态函数,都无法改变无论是函数成员还是一个字符串对象。仅有change3自行改变成员才可以真正改变。

2023-07-09 20:19:33 326

原创 【Go】vscode 安装go环境gopls失败

想要在VSCode安装go环境,但是gopls下载失败,导致vscode无法使用language server。

2023-07-09 14:59:09 2490 1

原创 Onedrive删除过程记录

删除Onedrive

2022-09-07 00:27:15 1690 1

原创 【windows使用】C盘清理内存:哪些文件夹比较大且可以删

C盘没位置了,简单遍历一下,找找可以删掉的东西~/AppData/Local/Temp~/AppData/Local/pip/cache:使用pip cache purge~/AppData/Local/Packages:主要内容是WSL,因为有linux本子了,这个直接删掉,多出60G~/AppData/Local/Steam/htmlcache:尽管重启steam之后很快又恢复~/AppData/Roaming/Code:除了user似乎删掉都没啥问题,清理了7G+user/workspa

2022-03-04 13:27:10 6366

转载 【C++】 split函数实现方法

https://stackoverflow.com/questions/14265581/parse-split-a-string-in-c-using-string-delimiter-standard-c单个分隔符的方法:using namespace std;string parsed,input="text to be parsed";stringstream input_stringstream(input);if (getline(input_stringstream,parsed

2022-02-14 14:55:51 743

原创 【Java】面试语法积累

为什么说接口修饰符只能用public?当使用private和protected修饰接口中的方法时,会编译报错public和默认修饰符default都可以修饰接口中的方法当用默认修饰符修饰接口中的方法会在编译后自动变为public修饰接口方法。而且在子类实现的时候都会自动变为public.反射访问字段时:getDeclaredField访问当前类的公有私有。getField访问父类及其本体的public,更接近于封装的思想。...

2022-02-04 17:53:30 472

原创 【双系统】删除linux系统扇区后无法启动windows

参考:https://unix.stackexchange.com/questions/259069/how-to-start-a-windows-partition-from-the-grub-command-line问题描述:重装双系统,但是在没有设置windows的mgr时,提前在windows磁盘管理中将linux系统扇区删除。此时进入grub引导页面:GNU GRUB version 2.02 beta2-9ubuntu1.3 <br> minimal BASH-like e

2022-01-15 17:11:38 1432 2

原创 【面试复盘】腾讯IEG天美j3工作室

面试复盘腾讯IEG天美j3工作室

2021-12-23 11:30:41 2315 2

原创 批量复制提取Word中所有的表格到Excel(Python办公自动化)

将一批Word文档(doc、docx)中的表格批量复制,转换为Excel

2021-12-10 14:49:47 2525 9

原创 调频:双频调制的推导

设双频信号为f(t)=Am1cos⁡ωm1t+Am2cos⁡ωm2tf(t)=A_{m1}\cos\omega_{m1}t+A_{m2}\cos\omega_{m2}tf(t)=Am1​cosωm1​t+Am2​cosωm2​t由调频信号的一般表达式可得:SFM(t)=Acos⁡[ωct+KFMAm1ωm1sin⁡ωm1t+KFMAm2ωm2sin⁡ωm2t]=Acos⁡[ωct+βFM1sin⁡ωm1t+βFM2sin⁡ωm2t]\begin{aligned}S_{FM}(t)&=A

2021-11-04 00:51:30 1152

原创 联想Lenovo拯救者 Legion R9000P 2021H 触控板失灵

太长不看版:长按电源重启项目场景:Windows11 Beta版,联想Lenovo拯救者 Legion R9000P 2021H 触控板失灵。未知bug。问题描述:触控板失灵。仅在Win11风格的锁屏可以移动点击(偶尔重启有概率成为win10风格锁屏也无效)。驱动程序正常。原因分析:在Win11风格的锁屏可以移动点击,说明硬件正常。触控板驱动是免驱的,操作系统可以自动识别,不需要安装驱动程序。驱动程序也显示正常。BIOS中并没有相关选项。普通重启之后没有效果。解决方案:

2021-10-01 14:03:07 11707 1

原创 嵌入式系统练习1:在 qemu 中运行自己的文件系统和内核

代码仓库在https://github.com/Honour-Van/ES-lab要求:内核与文件系统都使用源代码编译生成二进制目标文件,通过 qemu 测试运行自己的内核与文件系统。使用 buildroot 即可完成,体系结构推荐使用 arm(具体开发板类型不限),也可以使用 x86(相对简单些)生成 Linux 操作系统的内核和可用的文件系统,用 qemu 进行测试。报告要求:说明自己使用的源代码版本,基本操作过程,和最终成品截图。截图要使用 uname -a 命令显示所使用的内核版本

2021-08-13 22:14:54 447

原创 Your PATH contains spaces, TABs, and/or newline (\n) characters. This doesn‘t work. Fix you PATH.

项目场景:使用qemu+buildroot在x86平台上模拟arm硬件并运行linux。问题描述:使用https://www.cnblogs.com/arnoldlu/p/9689585.html中的方法,make时出现路径错误:Your PATH contains spaces, TABs, and/or newline (\n) characters. This doesn't work. Fix you PATH.原因分析:思考路径中并无空格、制表符、换行符等等。看到原文章中的图片运

2021-08-12 13:38:29 2823 1

原创 清华向勇《操作系统》学习笔记13:I/O子系统

文章目录13.1 I/O系统13.1.1 I/O分类13.1.2 I/O结构13.1.3 I/O数据传输13.2 磁盘I/O13.2.1 磁盘调度13.2.2 磁盘缓存13.3 练习题撒花13.1 I/O系统13.1.1 I/O分类三种常见的设备接口类型字符设备:键鼠、串口等块设备:磁盘驱动器、磁带驱动器、光驱等网络设备:以太网、无线、蓝牙等设备访问特征:字符设备:以字节为单位顺序访问;get()、put()等,通常使用文件访问接口和语义块设备:均匀的数据块访问;原始I/O或者文件系

2021-08-10 16:31:00 275 2

原创 清华向勇《操作系统》学习笔记12:文件系统

文章目录12.1 文件系统概念12.1.1 文件系统基本概念12.1.2 文件系统种类12.2 文件组织和存储12.2.1 虚拟文件系统,目录和别名12.2.2 文件分配12.2.3 空闲空间管理12.2.4 RAID12.3 文件访问12.3.1 文件描述符12.3.2 文件缓存和打开12.1 文件系统概念12.1.1 文件系统基本概念文件系统:操作系统中管理持久性数据的子系统,提供数据存储和访问功能组织、检索、读写访问功能大多数计算机系统都有文件系统Google也是一个文件系统文件:具

2021-08-09 23:57:52 324

原创 清华向勇《操作系统》学习笔记11:死锁和进程通信

文章目录11.1 死锁11.1.1死锁概念11.1.2 死锁处理方法11.1.3 银行家算法11.1.4 死锁检测11.2 进程通信11.2.1 进程通信概念11.2.2 信号11.2.3 管道11.2.4 消息队列11.2.5 共享内存11.1 死锁窄桥上,互不相让,就会发生“死锁”。窄桥上一方持续车流,另一方就无法通过,就是“饥饿”。根源是没有讲窄桥本身视作一个整体资源,“互斥访问”11.1.1死锁概念我们将死锁使用进程和资源的关系进行描述。资源类型R1, R2, R3…Rm。CPU执

2021-08-08 22:18:08 235

原创 清华向勇《操作系统》学习笔记10:信号量与管程

10.1 信号量概念信号量(Semaphore)是另一种临界区的保护机制,它是操作系统提供的一种协调共享资源访问的方法。它将资源纳入全局考虑,从操作系统的层面对资源进行宏观的调配。这个机制由Dijkstra在20世纪60年代提出,是早期操作系统的主要同步机制。信号量Semphore中的整数sem就是这个系统资源剩余量。申请时减少,释放时增加即可,没有时等待分配,所以先进先出。实现的结构和lock很像。具体的实现接口为P()和V(),分别是荷兰语(?)增加prolagg和减少verhoog的缩写。

2021-08-07 17:38:14 497

原创 清华向勇《操作系统》学习笔记9:同步互斥

文章目录9.1 同步互斥9.1.1 背景、问题和基本概念9.1.2 临界区9.1.3 实现方法9.1.3.1 禁用中断9.1.3.2 软件方法9.1.3.3 更高级的抽象方法9.2 信号量9.3 管程9.4 练习题9.1 同步互斥9.1.1 背景、问题和基本概念对于独立程序不和其他程序共享资源输入状态决定结果,具有确定性可重现起始条件调度顺序不重要但对于并发进程来说,多个进程间有资源共享,可能会因为不同顺序出现相互的干扰。从而产生不确定性不可重现未定义行为,程序错误是间歇性发生的

2021-08-06 23:44:17 207

原创 清华向勇《操作系统》学习笔记8:处理器调度算法

文章目录8.1 处理器调度概念8.1.1 调度的技术背景8.1.2 调度时机8.2 调度准则8.2.1 评定调度算法好坏的指标8.2.2 调度策略的低时延目标8.2.3 调度策略的吞吐量目标8.2.4 调度的公平性目标8.3 调度算法8.3.1 就绪队列优先级8.3.2 时间控制8.3.3 算法小结8.4 实时调度和多处理器调度8.4.1 实时调度8.4.2 多处理器调度8.5 优先级倒置8.6 练习题8.1 处理器调度概念8.1.1 调度的技术背景在此前我们已经介绍了进程和线程机制, 它们可以使得C

2021-08-05 00:06:58 465

原创 清华向勇《操作系统》学习笔记7:进程和线程

文章目录7.1 进程7.1.1 进程的概念7.1.2 进程控制块7.1.3 进程状态7.1.4 三状态进程模型7.1.5 挂起进程模型7.1.6 状态队列7.2 线程7.2.1 背景和需求7.2.2 线程的概念7.2.3 用户线程7.2.4 内核线程进程和线程表征操作系统的运行过程是如何维护的。7.1 进程7.1.1 进程的概念进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。这里特别注意程序和进程之间的关系:程序=文件(静态的可执行文件)进程=程序+执行过程(数据和和运

2021-08-03 21:01:49 209

原创 清华向勇《操作系统 》学习笔记6:页面置换算法

文章目录6.1 页面置换算法概念6.2 局部页面置换算法6.2.1 最优置换算法(OPT)6.2.2 先进先出算法(FIFO)6.2.3 最近最久未使用算法(LRU)6.2.4 时钟算法(Clock)6.2.5 最不常用算法(LFU)6.2.6 Belady现象6.2.7 几种算法的对比6.3 全局页面置换算法6.3.1 背景6.3.2 工作集置换算法6.3.3 缺页率置换算法6.1 页面置换算法概念本节强烈建议看视频:课程第九讲。其中给出了大量的动画示例,有助于理解。另外,我认为需要足量的练习。留

2021-08-02 12:09:17 444

原创 清华向勇《操作系统 》学习笔记5:虚拟存储概念

文章目录5.0 虚存的需求背景5.1 覆盖技术和交换技术5.2 局部性原理5.3 虚存的概念5.4 虚拟页式存储5.5 缺页异常5.0 虚存的需求背景虚存是一种放大机制,和地震中的弹性回跳、投资中的杠杆、电路中的放大器一样,都是借力打力,产生一种等效的放大作用。实际的存储受限于成本等原因,为了物尽其用,往往设计为层次结构,大容量存储往往性能较差,性能较好的存储往往设计的很小。但借助软硬件的协同,将读写较慢的硬盘作为读写较快的内存来使用,如果处理得当,相当于提高了存储的综合性能。我们可以将其戏称为“

2021-08-01 17:05:36 196

原创 清华向勇《操作系统 》学习笔记4:非连续内存,页表

文章目录4.1 非连续内存分配的背景与需求4.2 段式存储管理4.2.1 段式存储管理概念4.2.2 段式存储的访问4.3 页式存储管理4.3.1 页式存储的基本单元4.3.2 页式存储的地址转换4.4 页表4.4.1 基本要点4.4.2 快表4.4.3 多级页表4.4.4 反置页表4.5 段页式存储管理4.6 课后题知识点整理4.1 非连续内存分配的背景与需求之前已经讲到操作系统的连续内存分配,但比如在WFA(worst-fit allocation,先拆最大块方法)中,随着分配的进行,较大的内存申请

2021-07-31 14:33:53 434

原创 清华向勇《操作系统 》学习笔记3:连续物理内存

文章目录0. 综述1. 地址空间和地址生成1.1 地址空间的定义1.2 逻辑地址的生成0. 综述基本要求:一个进程需要一块存储时分配,完成工作后收回基本结构:首先分为物理存储和逻辑存储。物理存储可以从计算机体系结构的三个重要模块入手:CPU、内存和IO我们可以将各个部分以存储为逻辑,做层次化的区分:大体的调用关系如下,首先要考虑最为快速的缓存,其存取速度与CPU主频相同。缓存的使用是我们所不能意识到的,因为其依靠硬件实现。但内存和虚存是我们需要在操作系统当中操作的。逻辑地址空间:物理地址如

2021-07-30 23:25:14 292 1

原创 清华向勇《操作系统》Lab1-3,4 记录

lab 1-3关于A20 Gate,参考这篇博文即可:http://hengch.blog.163.com/blog/static/107800672009013104623747/ucore中的A20代码如下:.code16 # Assemble for 16-bit mode cli # Disable interr

2021-07-30 19:36:16 129

原创 清华向勇《操作系统》Lab1-2 记录:QEMU使用小结

QEMU是一种常见的硬件模拟器,这里我们尝试不使用虚拟机,在WSLg上使用QEMU进行操作系统实验。为了熟悉使用qemu和gdb进行的调试工作,我们进行如下的小练习:从CPU加电后执行的第一条指令开始,单步跟踪BIOS的执行。在初始化位置0x7c00设置实地址断点,测试断点正常。从0x7c00开始跟踪代码运行,将单步跟踪反汇编得到的代码与bootasm.S和 bootblock.asm进行比较。自己找一个bootloader或内核中的代码位置,设置断点并进行测试。首先需要在原有的WSLg基础

2021-07-21 20:52:33 316 2

原创 清华向勇《操作系统》Lab1-1 记录:Makefile使用小结

今日份发现的一个好玩的缩写:Perl = “Pathologically Eclectic Rubbish Lister”https://chyyuu.gitbooks.io/ucore_os_docs/content/lab1/lab1_2_1_1_ex1.html理解通过make生成执行文件的过程。(要求在报告中写出对下述问题的回答)列出本实验各练习中对应的OS原理的知识点,并说明本实验中的实现部分如何对应和体现了原理中的基本概念和关键知识点。在此练习中,大家需要通过静态分析代码来了解:.

2021-07-20 23:23:04 230

原创 oh-my-zsh安装失败

官方推荐的三种安装方法如下:MethodCommandcurlsh -c “$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)”wgetsh -c “$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)”fetchsh -c “$

2021-07-20 13:39:17 1225

原创 清华向勇《操作系统 》学习笔记2

2. 启动、中断、异常和系统调用文章目录2. 启动、中断、异常和系统调用2.1 计算机系统的启动过程2.1.1 BIOS2.1.2 主引导记录2.1.3 加载操作系统2.2 中断、异常和系统调用2.2.1 背景2.2.2 定义2.2.3 三种机制的对比2.2.4 中断2.2.5 系统调用2.1 计算机系统的启动过程CPU在加电之后,执行的第一条指令在内存中。但是我们说过,停电之后,内存中的DRAM会丢失全部数据。所以CPU是如何启动的呢?本节参考:https://www.cnblogs.com/

2021-07-19 17:18:38 346 1

原创 清华向勇《操作系统 》学习笔记第一章

文章目录第一章 操作系统概述1.1 操作系统定义操作系统的难点操作系统的实例、演变第一章 操作系统概述主要讲以下的几个模块:中断和系统调用:分别是软件和硬件、软件和软件之间的联结内存管理:负责调度内存资源(物理内存和虚存)进程和线程:负责程序运行过程的调度CPU调度:进程共用处理器时的时间共享进程间通信:同步互斥文件系统:组织文件,便于读写和查找I/O子系统:使用较为统一性的接口对不同的外设兼容1.1 操作系统定义控制程序?控制程序执行,防止不当使用,为使用者提供服务中间层?协

2021-07-18 16:01:46 297 1

原创 2021-07-16 暑校结课

暑校结束之后,对图形学产生了懈怠,不打算在这个暑假深入了解图形学了。这门学科博大精深,工程量很大,对于初学者来说,即便掌握了一些有价值的图形学基本常识,也很难做出即便是差强人意的作品。最主要还是能力受限,需要把有限的经历进行调整。或许图形学中有一些有价值的东西,但并不是我现在急需的,或许以后进一步学习计算机视觉的时候会用到。嵌入式的调研需要赶紧做起来,相关的知识准备需要做起来了。当前重要的是学一点操作系统然后开始做Lab1。然后再总结一下当前可选的的杂项Java、SQL(包括一些大数据处理的感兴趣

2021-07-16 23:31:57 91 1

原创 PowerVR贪吃蛇环境配置全流程

代码仓库见:https://github.com/Honour-Van/OpenGL-PowerVR-Lab/tree/main/GlutSnake由于自己之前的很多代码运行困难,所以专门写这样一篇博文来说明代码环境从无到有的配置全过程。设置debian为默认distro:wsl config /s Debiansudo apt update# sudo apt install vim # 安装之后换源:https://blog.csdn.net/weixin_45502929/articl

2021-07-16 15:06:35 258

原创 在Windows 11端配置图形化界面的WSL(WSLg)

sudo apt install libegl1ls libEGL*sudo ln libEGL.so.1 libEGL.so

2021-07-08 20:44:43 7236 2

原创 OpenGL PowerVR SDK 编译:Could NOT find X11 (missing: X11_X11_INCLUDE_PATH X11_X11_LIB)

项目场景:编译PowerVR SDK问题描述:cmake PowerVR SDK的过程中,报错信息如下:CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message): Could NOT find X11 (missing: X11_X11_INCLUDE_PATH X11_X11_LIB)Call Stack (most recent call first):

2021-07-07 20:50:58 3461

原创 Linux Ubuntu20.04LTS 换国内镜像源/换源!只要四条命令!

备份之前的源文件,使用cp命令复制:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak启用编辑:sudo vim /etc/apt/sources.list其实可以改的随性一点。我们已经将原来的文件备份为/etc/apt/sources.list.bak,如下,和原来的一模一样。使用vim替换命令,注意两点:句首的1是用于指定替换活动开始的行因为涉及链接替换,其中有斜线,所以使用#作分隔符:1,$s#http://arch

2021-07-07 17:26:11 1383

原创 windows10启动虚拟机蓝屏,终止代码:SYSTEM_SERVICE_EXCEPTION

关闭Hyper-V不管用。将VMWare更新到16.1.2即可安装新版VMWare正常了!✿✿ヽ(°▽°)ノ✿

2021-07-06 15:44:13 2505

原创 2021-07-04 起假

这个假期自然地分成两个大部分。第一部分是暑校+嵌入式培训的部分。包括图形学和嵌入式系统的知识。图形学的课程主要学习OpenGL,而我们找到的GAMES101刚好是这样编码实现的课程的有效补充。嵌入式系统的硬件知识在之前已经有所了解,Python也已经有了初步的了解,获得了一个相对实用的工具,打算下学期学习Java语言并为转行做准备。第二部分就是知识的扩展。一方面包括课内的知识,或许可以简单看看通信原理。另一方面就觉得虽然可以以Java为线索学习计算机的知识,但是其中很多内容可能仍然不能完全地理解,

2021-07-04 14:07:10 103 2

空空如也

空空如也

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

TA关注的人

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