自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (11)
  • 收藏
  • 关注

原创 Linux RCU机制

1. 简介RCU (Read-copy update)是2002年10月添加到Linux内核中的一种同步机制。作为数据同步的一种方式,在当前的Linux内核中发挥着重要的作用。RCU主要针对的数据对象是链表,目的是提高遍历读取数据的效率,为了达到目的使用RCU机制读取数据的时候不对链表进行耗时的加锁操作。这样在同一时间可以有多个线程同时读取该链表,并且允许一个线程对链表进行修改(修改的时候,需要加锁)。RCU适用于需要频繁的读取数据,而相应修改数据并不多的情景,例如在文件系统中,经常需要查找定位目

2022-03-24 12:47:58 5021

原创 虚拟化技术介绍

虚拟化是一种资源管理技术,它将计算机的各种实体资源(CPU、内存、存储、网络等)予以抽象和转化出来,并提供分割、重新组合,以达到最大化利用物理资源的目的。VMM(Virtual Machine Monitor),虚拟机监控器,也称为Hypervisor,VMM软件层实现了虚拟化功能。虚拟化分类软件虚拟化和硬件虚拟化软件虚拟化是指通过VMM层纯软件的环境来模拟执行客户机里的指令。其中QEMU可以将使用客户机指令集的二进制代码转换为宿主机指令集的二进制代码,然后交给实际的物理平台执行。硬件虚

2022-03-24 12:41:58 10214

原创 pageCache和bufferCache

1.前言PageCache又称页高速缓存,页高速缓存是由内存中的物理页面组成,对应的是磁盘上的物理块,可以动态扩大缩小。Linux支持的文件大小可以达到TB级别,访问较大文件时高速缓存中会存储属于该文件大量的页,因此采用struct address_space对页高速缓存进行管理,同时设计了基树结构来加速对缓存中页的查找。早期的Linux内核版本中,同时存在PageCache和BufferCache,前者用于缓存对文件操作的内容,后者用于缓存直接对块设备操作的内容。page cache按照文件的逻辑

2022-03-21 11:48:19 2300

原创 QEMU调试Linux内核环境搭建

一个最小可运行Linux操作系统需要内核镜像bzImage和rootfs,本文整理了其制作、安装过程,调试命令,以及如何添加共享磁盘。编译内核源码从The Linux Kernel Archives网站下载内核源码,本文下载的版本为4.14.191,4.14.191源码下载。使用wget获取源码。wgethttps://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.14.191.tar.gz解压源码:tar -...

2022-03-21 11:43:34 2428

原创 采用radix_trees加快文件查找

概述radix tree内核函数初始化radix tree复制 1234567 #include <linux/radix-tree.h>RADIX_TREE(name, gfp_mask); /* Declare and initialize */struct radix_tree_root my_tree;INIT_RADIX_TREE(my_tree, gfp_mask); 第一种方式以一种给定的名称初

2022-03-21 10:48:37 781

原创 移动设备页缓存优化

预读算法预读模式提高了Linux系统的读性能,但是在Android上直接使用传统的预读方案并不完全适用。移动设备上的请求大小和页面缓存大小要小很多,可能导致降低预读效率,从而损害用户体验,比如很多预读的页面没有被使用,导致频繁的页面缓存回收,导致额外的延迟。根据论文实验数据显示,传统的预读方案直接移植到移动设备,当预取100个页面到页面缓存时,平均大约有75个页面没有使用。在当前的Linux内核中预读算法的不足:当一个请求属于顺序读操作时,将执行预读操作,预取大小为该读请求的2或4倍的页面。如果

2022-03-21 10:44:45 2840

原创 Netty组件和设计

Netty的组件和设计Channel 接口在基于Java的网络编程中,其基本的构造是class socket。Netty的Channel接口所提供的api,大大的降低了直接使用Socket类的复杂性。EventLoop 接口EventLoop 定义了 Netty 的核心抽象,用于处理连接的生命周期中所发生的事件。一个EventLoopGroup包含一个或者多个EventLoop; 一个EventLoop在它的生命周期内只和一个Thread绑定;所有由EventLoop处理的 I/O

2022-03-21 10:36:40 86

原创 Next主题开启文章分享功能及去除图片上的分享按钮

Hexo的Next主题中已经集成了文章分享功能,我们只需要clone下github上的分享插件,并修改Next主题配置文件就可以实现文章的分享功能。具体操作如下。配置Next主题配置文件打开主题配置文件检索baidushare配置如下:复制 12345678910111213141516171819 baidushare: type: slideneedmoreshare2: enable: true po

2022-03-21 10:33:47 395

原创 系统调用跟踪-xv6 lab syscall

1.概述本文记录xv6操作系统的系统调用跟踪实验,xv6是一个类Unix的简单操作系统。该实验是要求实现一个trace系统调用,该系统调用的功能是根据用户传入的系统调用号跟踪某个或者某些进程的系统调用情况。2. 实验要求2.1 实验铺垫有一个已给出的用户态trace.c程序如下:复制 1234567891011121314151617181920212223242526272829 #inclu

2022-03-20 10:18:39 6684 1

原创 编写简单文件系统

1. 前言文件系统是操作系统向用户提供一套存取数据的抽象数据结构,方便用户管理一组数据。文件系统在Linux操作系统中的位置在下图红框中标出,如Ext2、Ext4等。而在windows中现在常用的文件系统为NTFS、exFAT等,想必大家在格式化U盘、硬盘的时候就经常见到了。为什么要用文件系统来存取数据呢?是为了图个方便。试想如果没有文件系统,放置在存储介质(硬盘)中的数据将是一个庞大的数据主体,无法分辨一个数据从哪里停止,下一个数据又从哪里开始。通过将数据分为一块一块的,并为每一块都赋予一个名字,数

2020-11-16 10:55:43 2289

原创 进程管理常见系统调用

进程管理笔记1.前言2.如何提供有许多CPU的假象?2.1 操作系统是管理多个进程执行的软件3.操作系统提供哪些系统调用API?3.1创建(fork)1.前言进程的定义非常简单:进程就是运行中的程序。程序本身没有生命周期,它只是存在磁盘上面的一些指令或者静态数据。这些字节需要操作系统的帮助运行起来,发挥其应该有的作用。我们在使用计算机的时候,会喜欢一边听着音乐,一边玩着游戏,这样是没问题的,我们的操作系统可能有上百个进程在同时运行。但是我们的硬件资源是有限的,假设一个计算机只有一个CPU(实际上也不会

2020-11-04 14:10:34 1585

原创 OceanConnect编解码插件开发教程

概述本文共分为四个章节,第一章介绍书写本文的意图,编解码概述,以及书写编解码插件所需的前期准备。编解码概述书写编解码插件之前首先需要书写Profile文件,定义如下。Profile文件用于描述一款设备的能力特性。Lot平台通过解析Profile文件,获取该设备支持的服务(通信协议里面的一条完整报文)、属性(报文中的一个字段)、命令(报文中的一个字段)等信息。Lot平台通过编解码插件,对N...

2018-11-27 11:39:24 2466

原创 myeclipse新建Maven工程pom.xml首行报错解决

新建maven工程后pom.xml首行错误信息如下:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject,org.apache.maven.archiver.MavenArchiveConfiguration)第一种解决方案:将maven-jar-plugin的版本修改为2...

2018-05-03 15:52:34 3889

原创 Asynchttpclient实现模拟登陆教务系统失败解决办法

虽然已经有很多关于模拟登陆的资料了,但是自己还是想趁着刚做完写一下,算是做个记录,本来打算从头一直写完,但写起来感觉东西也挺多的,自己没有充裕的时间了,还有重定向,解析上的好多问题想写,以后再补充吧。

2016-10-29 14:47:25 678

neo4j-community-4.0.0-unix.tar_2.gz

neo4j 社区版,服务器版,版本4.0.0,linux系统安装包,解决官网下载不下来的问题,解压即用。

2020-02-13

neo4j-community-4.0.0-windows.zip

neo4j社区版版本4.0.0,服务端windows系统安装包,解压即可用,官网下载太慢,而且经常失败

2020-02-13

plsqldeveloper-1105_x64+Instant Client Setup.exe

远程连接oracle数据库,使用到的两个软件...................................................................................

2018-04-12

springmvc表单验证JSR-303验证框架jar包

hibernate-validator-5.2.4.Final.jar hibernate-validator-annotation-processor-5.2.4.Final.jar hibernate-validator-cdi-5.2.4.Final.jar validation-api-1.1.0.Final.jar jboss-logging-3.2.1.Final.jar classmate-1.1.0.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar

2017-07-22

软件工程国家标准文档

操作手册,测试分析报告,测试计划,概要设计说明书,软件需求说明书,详细设计说明书

2017-03-14

java课程设计二叉排序树

java语言控制台实现的二叉排序树,含详细设计文档

2017-03-14

BS树形结构(jsp+mysql数据库+设计文档)

简单的jsp和servlet开发的B/S树形结构,实现了节点的增删改查,同级节点排序,包含工程+mysql数据库+开发文档

2017-03-04

学生选课(数据库课程设计)(java+sqlsever数据库+设计文档) 下载

sqlsever数据库课程设计,内含java(swing)工程+sqlsever数据库+开发文档,可直接食用

2017-03-04

图书管理系统(C#课程设计+sqlsever数据库+设计文档)

C#课程设计,内含工程+文档+sqlsever数据库,本工程使用VS2005+sqlsever2000开发

2017-03-04

BS实现树形结构(jsp+mysql数据库+设计文档)

内含工程源码+开发文档+sqlsever数据库,可直接导入myeclipse

2017-03-04

enmp3player破解版(孤月残影)

通过与mp3文件对应的lrc字幕文件,实现逐句复读和字幕显示。找了好久的资源,正在使用中,很好用,断句模式只能选择一行一句。

2016-11-06

空空如也

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

TA关注的人

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