- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 vscode rust-analyzer在ubuntu18.04下因为GLIBC版本不起作用
ubuntu 下glibc版本过低,不兼容rust-analyzer
2022-08-25 15:09:39
1036
原创 kernel开发6:优化CPU统计子系统
优化 Linux 系统的 CPU 占用时间统计优化 Linux 系统的 CPU 占用时间统计相关的子系统如何完成统计周期性时钟中断时统计上下文切换时统计存在的问题我们的方法改进的具体内容未来展望结束语当我们想要观察或者监视Linux系统的负载情况时,经常会采用top、vmstat、mpstat等命令。但是这些命令的统计结果并不一定准确,我们在这个项目中仔细分析了现有的负载统计、调度以及时间子系统,针对现有的统计漏洞做了改进。下面我将会依次介绍这几个子系统是如何合作
2021-11-03 20:48:31
1062
原创 kernel开发5:CPU统计子系统
# 统计子系统- 统计子系统- 不同的任务时间统计方式- 参考文献这篇文章主要参考了[1-4]的内容## 不同的任务时间统计方式1. 相关数据结构- 在include/kernel/kernel_stat.h中定义了数据结构来变表示每个CPU的使用情况- 这个数据结构一定要和进程调度过程中红黑树那个数据结构区分开来,虽然两个数据结构都会在tick中加以更新,但是更新的函数截然不同2. tick统计-
2021-09-06 19:09:04
1092
1
原创 kernel开发4:CPU计时子系统
CPU计时子系统计时子系统发展历史系统架构参考文献我这里主要参考了[1-4]中的内容,这一节对优化CPU统计时间的主要作用是弄明白编译选项,以及修改编译选项后对总体的影响发展历史一开始的时间子系统是低精度的,是毫秒级别。我们也称这个版本为经典定时器、低分辨率定时器、timer wheel,实现代码在kernel/timer.c中。同时还有一个问题,如果我们的设备是一个对能耗非常敏感的设备,周期性的时钟信号能耗太大。所以我们在新的系统中急需解决这些问题但是
2021-09-06 19:06:26
365
原创 kernel开发3:CPU调度子系统
# CPU调度子系统- CPU调度子系统- CPU调度系统- 调度系统的机制- 调度系统的策略- 参考链接研究调度系统,主要想搞明白两个问题:CFS的调度是如何防御恶意进程的;补充进程调度的相关知识,进而为搞明白编译选项做基础。## CPU调度系统1. 调度系统的诞生- 调度是为了给用户一个程序并行执行的错觉,让用户的使用更加友好- 随着用户的需求的逐渐演变,我们有了不同调度系统2.&n
2021-09-06 19:02:15
255
原创 kernel开发2:内核统计CPU使用率相关源码解读
# 内核统计CPU使用率相关源码解读1. 工具- 工欲善其事必先利其器,下面介绍一下读代码的工具和资料- 网站- Linux内核官网- 官网里面可以下载内核源代码- 还可以查看各个patch当初修改的代码内容和提交时的内容- 官方文档- 在这个网站里面有官方的文档,详细回答了很多常见疑问- 在线阅读代码神器- 这个网站必须要多说一下,有三个优点:可以在线读;可以读到不同版本的源代
2021-09-06 19:00:27
286
原创 kernel开发1:编译openEuler内核以及gdb,make,makefile, qemu相关
编译openEuler内核并用虚拟机启动本文是开发openEuler内核系列的第一篇,由编译内核和运行内核组成;主要参考了[1]和[7]两篇文章。编译openEuler内核并用虚拟机启动编译内核编译基础知识内核编译相关用虚拟机启动内核参考链接编译内核编译基础知识GCC与编译知识GCC是在linux系统下常用的C语言编译工具,全称从GNU C Compiler变为GNU Compiler Collection;它是GNU工具集的一员,这个
2021-09-06 18:59:11
1933
1
原创 爬虫系列教程四:动态网页api分析实例之爬取dropbox上的pdf
动态网页api分析实例:爬取dropbox上的pdf动态网页api分析实例:爬取dropbox上的pdf任务分析写代码和debug今天老师让我下载一个网课里面的pdf材料,pdf的数目比较多,一部分pdf是放在dropbox上面的,看了一下是一个动态网页。想起来我的爬虫教程好久没填坑了,今天我就打算拿爬虫来完成这个任务,顺便写个教程,我今天选择的方式是分析api,下次再遇到动态网页写博客的时候,我就用js引擎(flag已经立下了)。废话不多说,下面开始。任务爬取的页面:https:
2021-03-22 21:01:43
410
原创 爬虫系列教程三:requests详解
前言:我从这部分内容开始逐步根据官方文档介绍教程二中提到的一些库;爬虫的基础是与网页建立联系,而我们可以通过get和post两种方式来建立连接,而我们可以通过引入urllib库[在python3的环境下导入的是urllib;而python2的环境下是urllib和urllib2]或者requests库来实现,从程序的复杂度和可读性考虑,requests库显然更能满足程序员的需求,但是我没有找...
2020-04-10 15:21:59
444
原创 爬虫系列教程二:如何获取网页信息并定位信息所处位置
在爬虫中如何获取并定位网页的信息由于我们获取网页的类型的不同,我们希望爬取的信息的定位方法也有很大差别,但总体来说我们想要爬取的网页可以分为静态和动态,下面讲述在不同的情况下如何爬取这些信息;网页的不同类型根据获取网页的方式不同可以分为静态网页静态网页是只在用户打开网页时,网站服务器与用户的浏览器通信一次,用户便获取了所有的信息,之后,用户可以不再与服务器发生任何通信;动态网...
2020-04-10 14:03:54
3056
原创 爬虫系列教程一:学习爬虫前需要看的基本术语和知识
在学习定位网页信息的之前,我们首先需要了解一下各个术语(这部分有很多是网页的知识,写爬虫需要对网页有较为深刻的认识,所以我罗列了很多知识点,挂一漏万,欢迎大家补充;当然急着写爬虫的读者可以略去不读,日后回看):SGML/HTML/XML/XHTMLSGML的全称是Standard Generalized Markup Language(标准通用标记语言);HTML的全称是Hyper Te...
2020-04-10 14:01:55
917
原创 爬虫系列教程零:怎么学习爬虫
我接触爬虫已经快两年了,但是一直没有写下一个系统的爬虫的笔记,最近在上web搜索的课程,又一次用到了爬虫,所以写下这系列文章。我写这个系列的目的主要是巩固自己的知识,梳理知识的体系,所以思路上的内容比较多,有时间也会补一些代码进行说明或者分享一些我做过的爬虫的内容。如果是想要入门爬虫,我强烈推荐崔庆才的视频:我当时爬虫入门比较痛苦,因为网上的资料比较多,需要仔细的去搜索各个模块的知识,才能有一个...
2020-04-10 13:57:21
512
原创 mysql数据库入门教程
Markdown database notebookMarkdown database notebook1.1. Mysql知识/基础1.1.1. Msyql的基本知识1.2. Mysql知识/深入1.2.1. Mysql的储存引擎1.2.2. MySQL的系统自带库1.3. Mysql实践/基础1.3.1. MySQL数据库的安装和运行(实践)1.3.2....
2019-05-15 00:50:25
7683
原创 pytorch基础入门教程/一小时学会pytorch
Pytorch一小时教程pytorch是什么它是一个基于python的科学计算库,致力于为两类用户提供服务:一些想要找到Numpy搭建神经网络替代品的用户;寻找一个可提供极强的可拓展性和运行速度的深度学习研究平台;让我们开始干活吧!1. 张量的概念和生成 张量和Numpy中ndarrays的概念很相似,有了这个作为基础,张量也可以被运行在GPU上来加速计算,下面介绍如何创...
2019-05-06 20:10:32
84942
54
原创 python爬虫 网页解析之pyquery的详解
一,写在前面1,前文已经进行了四种网页解析工具的对比,现在我们来具体介绍一下pyquery的使用;2,本文的参考资料来源于pyquery的官方文档,我会以翻译为主,然后加上一些总结和自己的理解。二,正文1,pyquery的历史由来:它是一个为python设计的类jQuery库,它可以在xml文件中寻找到你想要的信息,它的接口与语法设计尽可能地和jQuery(适用于javascrip...
2018-09-01 18:49:18
483
原创 python爬虫 定位和选择网页内容的几种方式比较 正则表达式\libxml、bs4、lxml和xpath、css选择器
一,数据抽取的工具1,有哪些可供选择的方式a,正则表达式;b,beautifulsoup;c,pyqurey;d,lxml;2,这四种方式的特点正则表达式: 优点:异常的强大 缺点:1,不够简单;2,可读性较差;3,不易更改;bs4: 优点:1,提供的内容很少,又可以有效的抓取信息 缺点:1,工具不够多...
2018-09-01 18:12:41
2317
原创 代码四 对输入输出流的一个详解
在c++中有很多输入输出的操作符,在一次c++的编程作业中,我发现很多错误都是由于不熟悉这些操作符而引发的,现在将其和字符串的操作一并归类:全文分为几大部分:基本知识的讲解ciin流的讲解;string的讲解;内存拷贝的讲解;文件的处理的讲解1,基本知识的讲解:A:输入;缓冲区B:\r与\n的区别和联系:主要是在平台之间的差异2,cin流的讲解 四个重要的问题:截至的地方,是否可以保存,输入的地方...
2018-04-19 09:16:15
219
原创 数据结构学习笔记 第三章 栈,队列和串
在第二章的基础上我们将会学习几种特殊类型的线性表--栈,队列,和串;这也是几种主要的数据结构,各有各的特点;比如栈的插入和删除只能在队尾进行,而队列的插入操作只能在队尾操作,而查出只能在表头操作;因此被认为是操作受限的线性表;而串是一种以字符作为数据元素的线性表。有时也称为字符串,是重要的非数值处理对象;目录:栈,队列,队列,实例分析,stl中相关模板类;内容:1.栈的逻辑结构A基本概念 基本...
2018-04-03 10:44:06
352
原创 数据结构学习笔记 第二章 线性表
目录:线性表的逻辑结构线性表的顺序储存结构线性表的链式储存结构顺序表和链表的比较应用举例内容:1.线性表的逻辑结构A:线性表的定义:线性表是一种最见到那最常用的数据结构,也是最典型的线性结构/线性表简称表,是由0个或者多个具有相同类型的数据元素构成的有限序列,元素的个数称为线性表的长度;长度为0的线程被称为空表,对于一个满足上述性质的集合我们认为它属于线性表结构。B:线性表的运算线性表的运算是指对...
2018-04-01 21:19:22
333
原创 python程序设计 第二章:核心对象 变量和输入和输出
目录:数值字符串输出列表,元组和文件内容一,数值1,数值的两种类型:整形数和浮点数 以及强制类型转换2,算数运算符 值得注意的几个运算符:/ // % +=3,print 函数4,变量5.一些基本的函数 abs int round6. 几种错误的类型7.内存和数据的几种关系习题的解答二,字符串1,字符串字面量2. 变量3,索引和切片: ...
2018-03-30 20:16:17
240
原创 数据结构学习笔记第一章绪论
目录数据结构的起源数据结构的基本概念算法和算法分析stl与数据结构内容1.数据结构的起源:算法+数据结构=程序数据结构=逻辑结构+储存方法2.数据结构的基本概念:A:数据:数值型数据和非数值型数据数据元素:是数据的基本单位,在有些情况下,数据元素也被称为元素顶点和节点或者记录。数据项:是构成数据元素的最基本的元素和单位。数据类型:是具有相同性质的计算机数据的集合以及在这个数据类型上的一组操作。(简...
2018-03-27 10:47:52
242
原创 python 程序的程序设计(第一章)
目录计算与python简介程序开发简介编程工具python简介内容:1.计算与python 简介在这个部分的内容中,我们看到了python程序设计 与计算机的一些基础的知识2.程序开发的简介在这个部分里面我们发现了程序开发的过程3.编程所需要用到的一些工具与软件4.python一个程序的创建的过程...
2018-02-26 11:14:31
556
原创 c++ peimer plus第二章 开始学习c++
目录创建c++程序c++程序的格式:包含include main 输入输出的语句 注释 endl 声明和使用变量 定义简单的函数内容(这里以点的形式来表示)1.分隔符与终止符2.int main ()与void main ()的区别是后者在某些系统上还不可以应用。3.main()不是一个必须的函数,比如在dll模块或者是在一个框架中;而main函数的启动也是因为编译器自动添加到程序中的一段启动代码...
2018-02-09 19:12:25
228
原创 c++ peimer plus第一章 预备知识
框架 c++和c的发展历史和基本的原理介绍过程性编程和面向对象的编程创建一个程序所需要的技术可移植性具体内容一,c/c++简介: 我们在语言的发展的过程中经历了这么几个阶段:第一个是机器语言,但是,在这个阶段,这些语言的工作量极大,需要对机器的硬件有着清楚的了解,所以很快就被淘汰;而在第二个阶段,是汇编语言,汇编语言的工作量会小一些,它是将一些代码用一些标识符来代替,而这个过程需要对电脑...
2018-02-09 18:16:49
248
原创 优秀的代码或者解决某个问题的思路(3)
// 自我学习.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include"student.h"int main(){ int a, b; //char *c="sasd"; cin >> a >> b; student stu_one(a,b, "lsasd"); stu_one.showInf();
2018-01-14 15:23:49
187
原创 优秀的代码或解决某个问题的思路(2)
1.数组的倒序排列// ConsoleApplication3.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;int *swap(int *c, int b){ int *a = new int [b]; int i; for (i = 0; i <= b - 1; i++) {
2018-01-14 00:27:23
226
原创 优秀的代码或者解决某个问题的思路(1)
1.闰年问题if((year%4==0)&&!((year%100==0)&&(year%400!=0)))cout<<"闰年"<<endl;elsecout代码讲解:这个代码,第一句是可以测是否是4的整数倍,第二句有两个组成部分,如果是整百年,但是不是整四百年的话就game over,但是如果是整四百年就ok2.进制的转化类问题cout<<hex
2018-01-01 21:23:01
361
原创 C++的学习笔记(第八章:继承)
目录:继承的基本概念基类和派生类 定义派生类 继承的方法和访问控制派生类的构造和析构虚基类调错的方法同名的覆盖和重载转换和重载正文继承的概念:现有的类为基类,新建立的为派生类。(以及各种比较搞怪的说法,还有多继承这个在虚基类要用到的东西)基类和派生类 定义派生类的方法:class 新的类名:继承的方式 原类名
2017-12-31 15:24:39
160
原创 C++的学习笔记(第七章:类与对象)
目录:类与对象的定义构造函数析构函数对象数组对象指针this 指针内部的类和堆对象面向对象的编程方法正文类与对象的定义 面向对象和面向过程的联系和区别 面向对象的基本介绍:数据成员和成员函数;类和结构体的联系和区别,类与对象的关系。 类的声明:类是一组对象的抽象
2017-12-30 21:31:25
198
原创 C++的学习笔记(第六章:指针和引用)
目录:指针的内容和与之相关的类型 引用 动态内存 内存泄漏和悬挂指针正文:指针:指针的定义:存放地址的变量叫做指针变量,简称为指针(指针实现的是间接访问,而对变量名的访问可以叫做直接访问)。 指针的使用:定义:类型名(必须与指向的地址相一致) +*+变量名
2017-12-26 23:19:27
218
原创 C++的学习笔记(第五章:函数)
目录函数的概述函数的定义函数的调用关于程序运行的两大基本方针之一(可见性,作用域,存在的时间)的理解。【友情提示,另外一个是硬件端的处理过程,比如变量的储存类型,函数调用的机制参数传递的机制······】进一步解释结构化程序设计的理念几类比较特殊,但是很常用的函数的整理:递归函数,内联函数,重载函数,带默认值的函数,正文:函数的概述:函数是具有一定功能的又经
2017-12-24 00:41:24
196
原创 C++的学习笔记(第四章:数组及自定义类型)
目录数组枚举类型结构类型联合类型正文一。数组:定义数组:注意点:数组对sizeof的使用;还有对传递后的数组的使用。 注意区分数组和字符串。【主要有两点区别 1:字符数组的结尾必须搞个'\0'(ascall码值为0);2.数组可以实现定位这个功能】 数组的
2017-12-23 21:10:10
441
原创 C++的学习笔记(第三章:控制语句)
目录:算法的基本知识:算法的三种结构:断点的跟踪:随机数的实现(伪随机数)正文算法的基本知识:设计算法 算法的设计流程1:明晰目的 2.划分部分(可以借助上面的流程图和伪代码来理清思路) 3.算法的实现 (需要具备学习与借鉴的能力)4.搞定bug(快又准) 5.发布程序的相关工作面向对象的编程方法:1.找出问题中的对象和类, ...
2017-12-23 17:51:16
319
原创 C++的学习笔记(第二章:基本数据类型与表达式)
目录:(1为字母;2-为单词)1.c++的单字母:a.字符集;b.关键字;c.标识符;d.分隔符;e.空白;2.c++的基本数据类型;3.c++的变量与常量4.运算符与表达式5.输入与输出语句6.比较常见的语句的讲解正文:1(重点只讲标识符):不能用关键字;第一个字母只能是字母的大小写或者下划线;中间不能出现空格。2.数据的类型分为自定义数据和基本数据类
2017-12-23 16:19:57
423
原创 C++的学习笔记(第一章:C++的基本概述)
目录(框架):程序设计的语言(既了解语言的历史以及各个语言之间的优劣) 程序设计的过程(讲解程序开发设计的方法与流程) 程序设计与硬件端的关系(这本书只讲解了内存,可以看另外的书或者计算机基础)1.程序设计的语言 发展的过程 各个语言的特点
2017-12-23 16:14:04
263
原创 C++的学习笔记
写在前面:计算机语言学习过程规划:1.通读相关入门书籍;2.细读一本经典教材,总结:语法,实际应用,易错点(知识点);3.学会编程:代码的规范性,代码的健壮性,代码的优雅性;4.继续深入钻研,保持学习的状态,主要学习优秀的思路,以及新鲜的库【均会有学习记录】。目录:1.C++的基本概述;2.基本数据类型;3.控制语句;4.数组,及自定义类型;5.函数;6.引用和指针;7.类和对象;8.继承;9.类...
2017-12-23 15:36:19
173
北邮数据结构实验一 题目四计算器
2018-06-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人