自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 linux5.1中没有do_gettimeofday

可以使用ktime时间函数参考:https://blog.csdn.net/rikeyone/article/details/98498526其中5.1的时候do_gettimeofday已经没有了

2019-11-18 17:49:11 2232

转载 ext2学习

学习参考:《linux文件系统分析 - 欧进利 20815007》文章目录文件系统分析2.1 文件系统的结构2.1.1 文件系统的磁盘组织2.1.2 文件系统的数据存储结构2.1.3 文件系统的文件及目录结构2.2 文件系统挂载挂载过程挂载点切换过程2.3 文件查找文件查找例子2.4 文件系统中的虚拟化主要介绍:fs结构; fs的挂载和文件的查找文件系统分析2.1 文件系统的结构文件系统...

2019-05-13 22:34:33 467

转载 SSD卡驱动中trim命令的实现原理

转自:http://blog.csdn.net/yuzhihui_no1/article/details/51325360有关trim命令的简介 可以看下http://blog.csdn.net/yuzhihui_no1/article/details/46519701这里就大概的说下驱动中对trim命令的实现吧,由于对公司代码的保密性,这里就不沾贴代码了,就大概的说下实现原理...

2019-05-06 09:29:11 703

原创 linux内核设计与实现 - 16 页高速缓存和页写回

文章目录第16章 页高速缓存和页写回16.1 缓存手段16.2 linux页高速缓存16.2.1 address_space对象16.2.2 address_space操作16.2.3 基树16.3 缓冲区高速缓存16.4 flusher线程16.4.1 膝上型计算机模式16.4.2 历史上的bdflush、kupdated和pdflush16.4.3 避免拥塞的方法:使用多线程第16章 页高...

2019-04-15 14:57:07 297

原创 linux设计与实现 - 15 进程地址空间

第15章 进程地址空间内核除了管理自身的内存外,还必须管理用户空间中进程的内存,这个内存我们成为进程地址空间。linux采用虚拟内存技术。15.1 地址空间进程地址空间由进程可寻址的虚拟内存组成。尽管一个进程可以寻址4GB的虚拟内存,但不代表它有权访问所有虚拟地址。可以被访问的合法地址空间成为内存区域,如08048000-0804c000。进程只能访问有效内存区域内的内存地址,否则会返回“段...

2019-04-15 09:34:55 174

原创 linux内核设计与实现 - 块I/O层

第14章 块I/O层块设备,系统能够随机访问固定大小数据片(chunks)的硬件设备,他们基本以文件系统的方式使用。另一种基本的设备类型时字符设备。这两种设备的区别在于是否可以随机访问数据。内核块设备管理比管理字符设备麻烦得多。14.2 缓冲区和缓冲区头当一个块被调入内存时(在读入后或写出时),它要存储在一个缓冲区中,每一个缓冲区与一个块对应,一个块包含一个或多个扇区,但不能超过一个页面。由...

2019-04-14 23:02:43 273

原创 linux内核设计与实现 - 虚拟文件系统

第13章 虚拟文件系统小结:VFS的目的,各种的数据结构(inode、dentry、sb)虚拟文件系统,为用户空间提供了文件和文件系统相关的接口。VFS和块I/O相结合,提供抽象、接口以及交融,使得用户空间的程序调用统一到系统调用访问各种文件。VFS提供了一个通用文件系统模型,囊括了任何文件系统的常用功能集和行为。这是因为它定义了所有文件系统都支持的、基本的、概念上的接口和数据结构。实际文...

2019-04-12 00:02:48 233

原创 linux内核设计与实现 - 内存管理

第12章 内存管理内核中分配内存不容易,根本原因在于内核本身不能奢侈地使用内存,一般内核不能睡眠,且其分配机制不能太复杂。与用户空间中的内存分配不太一样。12.1 页内存管理单元(MMU)通常以页为单位进行处理。大多数32位体系结构支持4KB的页,而64位体系结构一般会支持8KB的页。内核用struct page结构表示系统中的每个物理页。内核用这个结构来管理系统中所有的页,需要知道页是否空...

2019-04-11 22:01:37 846

原创 linux内核设计与实现 - 内核同步介绍

第九章 内核同步介绍9.1 临界区和竞争条件临界区:访问和操作共享数据的代码。竞争条件:两个执行线程有可能在同一个临界区中同时执行。同步:避免并发和防止竞争条件。9.2 加锁锁的形式和锁的粒度各不相同,各个锁机制之前的主要区别在于:当锁被其他线程持有时,其他的行为表现。造成并发执行的原因用户空间:因为会被抢占或重新调度。信号处理:异步发生中断:任何时刻异步发生软中断和task...

2019-04-11 00:27:06 137

原创 linux内核设计与实现 - 中断与中断处理

第七章 中断与中断处理处理器和外部慢设备通过轮询和中断协同工作。7.1 中断中断使得硬件得以发出通知给处理器,处理器收到中断后,会马上向操作系统反馈此信号的到来,然后由操作系统处理。硬件设备生成中断的时候并不考虑与处理器的时钟同步(中断随时可以产生)。特定的中断总是与特定的设备相关联。每个IRQ线都会被关联一个数值量。异常:异常与中断不同,产生时必须考虑处理器时钟同步。异常也称为同步中断...

2019-04-09 19:28:23 622

原创 linux内核设计与实现 - 内核数据结构

第六章 内核数据结构小结:链表:环形双向链表,container_of, list_for_each(), list_for_each_entry队列: kfifo映射: uid映射到指针二叉树:rbtree其他:基树,位图,散列表6.1 链表特点:(1). 动态创建,不需要知道具体多少个元素;(2). 无需占用连续内存区;(3). 加入或删除链表时调整节点指针即可。单向...

2019-04-08 21:41:56 275

原创 linux内核设计与实现 -第5章系统调用

第五章 系统调用

2019-04-08 19:39:06 430

原创 linux内核设计与实现 - 进程管理

第三章 进程管理本章内容进程、线程linux内核如何管理每个进程:列举、创建、消亡3.1 进程进程:处理执行期的程序以及相关的资源的总称。(可执行代码、打开的文件、挂起的信号、内核内部数据、处理器状态、内存地址空间、执行线程、数据段)线程: 进程中活动的对象,内核最小的调度对象。(独立的程序计数器、进程栈、进程寄存器)linux线程实现非常特别:不区分线程和进程。进程的两种虚...

2019-04-07 23:59:47 308

原创 linux内核设计与实现 - 前言

前言认真阅读源码很重要,应该钻研并尝试着手改一些代码,寻找一个bug然后去修改它,改进你的硬件设备的驱动程序第一章 linux内核简介1.1 unix的历史unix特点:简洁所有东西都被当做文件对待,通过一套相同的系统调用接口C语言编写,硬件移植能力强进程创建迅速,独特的fork()系统调用简单而稳定的进程间通信元语1.3 操作系统和内核简介操作系统:指系统中负责完成最基...

2019-04-06 12:16:26 130

原创 编程之法:面试与算法心得 - 海量数据处理(2)

这里介绍海量数据处理中常用的算法1. simhash算法背景如果某一天,面试官问你如何设计一个比较两篇文章相似度的算法?可能你会回答几个比较传统点的思路:一种方案是先将两篇文章分别进行分词,得到一系列特征向量,然后计算特征向量之间的距离(可以计算它们之间的欧氏距离、海明距离或者夹角余弦等等),从而通过距离的大小来判断两篇文章的相似度。另外一种方案是传统hash,我们考虑为每一个web文...

2019-04-05 16:58:50 364

原创 编程之法:面试和算法心得 - 海量数据处理(1)

第六章 海量数据处理本章导读针对时间问题,可以采用巧妙的算法搭配合适的数据结构(如布隆过滤器、哈希、位图、堆、数据库、倒排索引、Trie树)来解决;而对于**空间问题,可以采取分而治之(哈希映射)**的方法,也就是说,把规模大的数据转化为规模小的,从而各个击破。针对常说的单机及集群问题,通俗来讲,单机就是指处理装载数据的机器有限(只要考虑CPU、内存、和硬盘之间的数据交互),而集群的意思是指...

2019-04-05 11:36:41 148

原创 编程之法:面试和算法心得 - 动态规划

第五章 动态规划小结:不太会动态规划1.最大连续乘积子串2. 字符串编辑距离3. 格子取数问题4. 交替字符串5. 最长递增子序列本章导读学习一个算法,可分为3个步骤:首先了解算法本身解决什么问题,然后学习它的解决策略,最后了解某些相似算法之间的联系。例如图算法中,广搜是一层一层往外遍历,寻找最短路径,其策略是采取队列的方法。最小生成树是最小代价连接所有点,其策略是贪心,...

2019-04-05 10:55:22 153

原创 编程之法:面试和算法心得 - 查找匹配

第四章 查找匹配小结:二分查找:关于right的赋值right = n - 1 ⇒ while( left <= right) ⇒ right = middle - 1;right = n ⇒ while(left < right) ⇒ right = middle;middle的计算不能写在while循环之外行列递增矩阵的查找分治法、定位法出现次数超过一半...

2019-04-05 08:51:05 137

原创 编程之法:面试和算法心得 -最近公共祖先LCA问题

最近公共祖先LCA问题小结:暴力二叉查找树(左右子树递归找)非二叉查找树转换为单向链表第一个公共点递归缺点:适合一次查询,不适合多次,多次复杂度扩大N倍Tarjan算法是一个找强连通分量的算法。dfs+并查集,每次将两个节点对的最近公共祖先的查询保存起来,然后dfs更新一次。复杂度:O(n + Q), Q为查询个数RMQ(没看)但前面暴力求a[i,j]最小值的...

2019-04-04 22:04:44 243

原创 编程之法:面试和算法心得 - B树

B树小结:问题的提出:树深度过大而造成的磁盘IO读写过于频繁,查找效率低特点场景B树1. 每个节点最多m个孩子; 2. 中间节点个数范围:[ ceil(m/2)-1, m - 1] 3. 所有叶子节点都在同一层; 4. 中间节点按升序排列B+树1. 叶子节点包含全部关键字信息,叶子节点顺序链接; 2. 所有中间节点是索引部分文件索引、数据库索引B*...

2019-04-04 20:09:28 136

原创 编程之法-面试和算法心得 - 红黑树

《编程之法-面试和算法心得》本章导读1. 红黑树1.1 二叉查找树二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若任意结点的右子树不空,则右子树上所有结点的值均大于...

2019-04-04 09:49:26 141

原创 编程之法 -面试和算法心得 - 数组

《编程之法:面试和算法心得》本章导读面试编程题的常用思路:暴力穷举(递归、回溯) 如求n个数的全排列或八皇后(N皇后问题)分治法空间换时间(如活用哈希表)合适的数据结构,如寻找最小的k个数中,用堆代替数组排序不允许排序,考虑不改变数列顺序的贪心算法(如最小生成树Prim、kruskal和最短路径dijkstra,或动态规划(01背包)细节处理,不要忽略边界小结:1.寻找最...

2019-04-03 16:06:55 224

原创 数据结构 - 字符串

不知道找工作怎么复习,不管面试了,一点一点开始学,首先从数据结构开始学习内容:编程之法:面试和算法心得>表小结或个人笔记 表示问题1. 程序员如何准备面试中的算法…一、第一部分 数据结构1. 第一章 字符串本章导读:本章重点介绍6个经典的字符串问题:旋转字符串、字符串包含、字符串转成整数、回文判断、最长回文子串、字符串的全排列,这6个问题要么从暴力解法入手,然后逐步优化,要...

2019-04-02 14:45:16 254

原创 测量程序运行时间

测量程序运行时间由于之前运行fxmark时遇到rdtscp,之前只用过gettimeofday,故学习一下程序测量时间参考:https://yq.aliyun.com/articles/15114,https://www.cnblogs.com/kosmanthus/articles/1423466.html小结:精度排序:rdtsc > clock_gettime(ns) &gt...

2019-03-31 19:29:32 501

原创 fxmark测试

fxmark测试文件系统的多核可拓展性参考:https://arkingc.github.io/2018/12/08/2018-12-08-linux-benchmark-fxmark/本人环境centos7文章目录fxmark测试文件系统的多核可拓展性1. 安装与使用fxmark源码阅读1. run-fxmark.py1. main函数2. 修改Runner3. 调试fxmark,问题:虚...

2019-03-31 19:25:36 846

转载 workqueues学习

linux workqueues学习https://www.ibm.com/developerworks/cn/linux/l-cn-cncrrc-mngd-wkq/index.html 内核中提供了许多机制来提供延迟执行,如中断的下半部处理可延迟中断上下文中的部分工作;定时器可指定延迟一定时间后执行某工作;工作队列则允许在进程上下文环境下延迟执行等。工作队列 (workqueues...

2018-05-05 20:58:56 212

原创 openstack keystone token 超时时间扩展

由于测试时间长,本人keystone 1小时后token超期,本人ubuntu系统。失败方法:用openstack-cofig来扩展token,根本找不到openstack-config命令,有博客说centos下安装openstack-utils即可,但是在ubuntu下我没找到成功方法:参考 https://access.redhat.com/solutions/152

2017-08-31 09:08:42 4977

翻译 openstack storlet 文档(九):python storlet编写和部署指南

这是Python特定的storlet编写和部署指南。 本指南补充了编写和部署更一般的指南,应该首先阅读。实现一个storlet的python模块如下所示:class <Class name>(object): def __init__(self, logger): self.logger = logger def __call__(self, in_files, out

2017-08-23 16:34:01 247

翻译 openstack swift 文档(八):Java Storlet 编写和部署指导

这是Java特定storlet编写和部署指南。 本指南补充了编写和部署storlet的更一般的指南,应该首先阅读。 要编写Java storlet,您将需要将SCommon.jar作为开发和测试指南中描述的构建storlet过程的一部分。将.jar导入Eclipse中的Java项目并实现org.openstack.storlet.common.IStorlet接口。 该接口有一个单一的方法,如下所示

2017-08-23 16:17:24 444

翻译 openstack storlet 文档(七):storlet编写和部署向导

Storlet writing and deploying guideStorlet可以用Java或Python编写。 本指南是一个与语言无关的用于编写和部署storlet起点。 Java和Python的具体指南会补充本指南,并应在此之后阅读。编写一个storlet涉及实现一个称为invoke的函数(确切的名称因语言而异)。通常,the invoke操作会获取一个输入流和一个输出流。输入流将包含正在

2017-08-23 15:11:50 302

翻译 openstack storlet文档(六):IPython Notebook Integration

IPython Notebook IntegrationIPython / Jupyter提供了一个基于浏览器的交互式shell以支持数据可视化。与IPython集成的storlet可以通过IPython notebook轻松部署和调用storlets。 在下面的章节中,我们将介绍如何将IPython notebook设置为使用storlet,如何部署python storlet以及如何调用一个st

2017-08-22 16:42:41 266

原创 centos7下KVM的网桥模式配置

记录本人第一次用kvm配置网桥模式的错误最初配置命令如下:# brctl addbr br0 #添加br0这个bridge# brctl addif br0 eth0 #将br0与eth0绑定起来# brctl stp br0 on #将br0设置为启用STP协议# ifco

2017-08-20 16:49:44 10963

转载 Linux lspci查看硬件设备

转自:http://blog.csdn.net/joker0910/article/details/7755268 但是这个作者也是转的,我不知道原作者是谁。本人仅用于保存Linux 主机的硬件配备lspci 找到的是目前主机上面的硬件配备[root@www ~]# lspci [-vvn]选项与参数:-v     :显示更多的 PCI 接口装置的详细信息-vv :

2017-08-20 14:48:12 2038

转载 只有一行VNC server running on ’::1:5900' 没有其他输出

本人仅用于保存,转载自【已解决】QUEMU安装完毕后测试arm出错:只有一行VNC server running on `127.0.0.1:5900’没其他输出]  https://www.crifan.com/qemu_test_arm_vnc_server_running_on_127_0_0_1_5900_no_other_output/【问题】折腾:【记录】尝试用

2017-08-17 17:15:16 14687 2

原创 安装kvm创建虚拟机的问题:VNC server running on '::1:5900'

在安装好kvm和qemu之后,运行创建客户虚拟机的命令如下:qemu-system-x86_64 -m 4096 -smp 4 -boot order=cd -hda /root/workspace/ubuntu14.img -cdrom /root/Downloads/iso/ubuntu-14.04.5-server-amd64.iso没有任何输出或反应,一直是这个:VNC server run

2017-08-17 17:03:39 4531

转载 命令行方式进行teamviewer安装与服务启动

本人仅用于保存  转载自 命令行方式进行teamviewer安装与服务启动1.Ubuntu KaLi 获取下载:wget -c  url2.sudo dpkg -i filename 安装下载的文件3.sudo apt-get -f install 4.停止服务。执行命令 sudo teamviewer --daemon stop5.修改配置文件。

2017-08-17 16:14:53 3204

翻译 openstack storlet文档(五):storlet API

Storlets API v1storlets API是Swift API的扩展。在某些情况下,我们使用Swift API。例如,使用Swift上传到指定的容器来完成上传storlet。在其他情况下,我们在特定的Swift操作中添加了特定的头部。例如,通过将“X-Run-Storlet”头添加到Swift下载操作中,可以进行下载时进行调用。Operations on StorletsS

2017-08-16 13:20:45 285

翻译 openstack storlet 文档(四):storlet引擎

Storlet Engine Overview

2017-08-16 11:16:04 313

原创 openstack storlet文档(三):storlet术语和角色

Storlets Terminology [storlets术语]整个storlets机制涉及到整个系统使用过程中的大量移动部件、人和角色。 我们在下面给出了整个文档中使用的各种术语的定义。Storlet一个storlet是作为Swift对象部署的二进制代码。 在一个data object上调用storlet是以一个隔离的方式完成的,以保证the computation可访问的数据只是

2017-08-15 17:15:57 354

翻译 openstack storlet文档(二)

storlet用例目录:storlet用例 Queriable Secondary Storage Data可查询的二级存储数据Pushing down SQL filtering from Spark从spark中推送SQL过滤条件到storlet中执行Analysis over binary data在二进制数据上进行分析Data PrivacyThe Chip Bakers Use

2017-08-15 16:42:15 378

插值建模方法

插值建模方法,包含interp,二维插值等插值建模的方法

2013-12-26

空空如也

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

TA关注的人

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