- 博客(14)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
原创 Linux 块设备层——CFQ调度策略(0)
I/O请求进入Linux块设备层过程中主要包括几个过程:Plug/Unplug 队列Elevator 系统队列设备队列其中:Plug/Unplug队列主要目的是为了提高IO吞吐量。通过plug(续流)/unplug(泄流)的方式使得IO能够在plug队列中进行提前合并。更为具体内容可参考:点击打开链接Elevator可视为一个容器,其中提供了多种调度策略,例如NOOP, Deadline,CFQ等...
2018-04-20 15:52:47 3333
原创 Linux Block Layer块设备层基于MultiQueue的部分源码分析
本文主要分析基于MultiQueue的Linux Block Layer层部分源码内容!!!为帮助理解,提供了一份整体流程图如下(内容太大模糊了),细致的visio以及pdf版本可在本人的下载资源中下载,地址:http://download.csdn.net/detail/g382112762/9691677: 当要写一个page页到底层设备时,需要通过submit_bh进行提交。该函数...
2018-03-19 00:52:17 4633 1
原创 Flashsim安装以及支持4KB,8KB闪存页
1、进行环境配置,具体配置内容可参照博主另一篇文章《DiskSim+ssd_add_on使用指南》2、下载对应的Disksim3.0以及Flashsim安装压缩包,可在博主提供的下载页中获得3、解压disksim3.0.zip,进入解压后的/disksim3.0文件夹4、删除压缩包内的disksim-3.0文件夹,然后进行解压 tar xfz disksim-3.0.tar.gz5
2017-05-05 13:38:40 1085
翻译 ROW调度算法翻译
在移动设备中,用户体验的优化性高于一切,因此,我们希望赋予读请求更高的处理权限。ROW的主要调度策略是:在不导致写请求更多饥饿的情况下赋予读请求更高的权限。ROW调度策略中,请求根据其权限将被放入不同的权限队列中。每个队列通过轮询的方式被调度,调度过程中每个队列被赋予一定的调度时间片。每个请求队列的调度片大小是根据该队列的权限所确定的。相比于写请求队列,在同一个调度周期(即一次轮询)内,读请求队列
2016-11-19 19:31:40 1242
转载 块设备层request plug/unplug机制
一、基本原理Linux块设备层使用了plug/unplug(蓄流/泄流)的机制来提升IO吞吐量。基本原理为:当IO请求提交时,不知直接提交给底层驱动,而是先将其放入一个队列中(相当于水池),待一定时机或周期后再将该队列中的请求统一下发。将请求放入队列的过程即plug(蓄流)过程,统一下发请求的过程即为unplug(泄流)过程。每个请求在队列中等待的时间不会太长,通常在ms级别。如此设计,可以增加I...
2016-11-18 19:13:37 3160
转载 Linux内核链表的一些注解!
为了减少重复代码的数量,内核开发者建立了一套标准双向循环链表的实现。这套实现并没有实现任何的锁方案,所以如果有对链表的并发操作,需要自己实现一个锁方案。该链表文件实现在内核源码树下include/linux/list.h一: 链表数据结构的定义 struct list_head { struct list_head *next, *prev;}; list_h
2016-11-18 15:54:36 535
原创 android blktrace
搭建NDK环境下载ndk安装包并解压下载地址http://dl.google.com/android/ndk/android-ndk-r5-linux-x86.tar.bz2拷贝压缩包至/usr/local/libcp android-ndk-r8b-linux-x86.tar.bz2/usr/local/libcd /usr/local/libtar
2015-03-20 18:59:56 1952
转载 Android源码目录结构详解
Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts
2015-03-20 15:27:16 491
转载 ubuntu 启动android模拟器
android源码下载完成编译成功后输入lunch full-eng出现以下内容============================================PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=2.3.3TARGET_PRODUCT=fullTARGET_BUILD_VARIANT=engTARGET_SIMULATOR
2015-03-20 15:13:33 4142
转载 ubuntu 10.04 通过git包下载安装git
ubuntu自带git版本为1.7.0版本而android源码编译时要求git版本不低于1.7.2,网上给出的升级git方法基本为下述方案:1:sudo add-apt-repository ppa:git-core/ppa2:sudo apt-get update 3:sudo apt-get install git-core curl但是,本人多次试验之
2015-03-19 14:07:25 914
转载 java -version 问题
在root下一切正常,在当前用户下就出现了问题。如下所示:root@gao-desktop:/usr/lib/java# java -version程序“java”已包含在下列软件包中: * gcj-4.4-jre-headless * openjdk-6-jre-headless * cacao * gij-4.3 * jamvm请尝试:apt-get insta
2015-03-19 11:03:28 878
原创 安卓内核编译流程
配置操作系统:ubuntu10.04 64位;安卓手机:Nexus5;手机Android版本:4.4.4注意:笔者在完成以下操作时在root权限下进行,建议进入root权限后开始以下操作Android源码\内核下载及编译1、 建立编译环境a) 安装JDK 1.6版本 i. 下载jdk-6u2
2015-01-13 13:29:36 3905
原创 blktrace编译使用
本文建立在安卓内核编译完成以后,且默认安卓根目录为《安卓内核编译流程》(在另一篇博文中)中的/root/Android_platform,默认当前用户为root用户1. 搭建NDK环境a) 下载ndk安装包并解压下载地址http://dl.google.com/android/ndk/android-ndk-r5-linux-x86.tar.bz2拷贝压
2015-01-13 13:27:54 2340
原创 DiskSim+ssd_add_on使用指南
配置:ubuntu 10.04、32位OS 简介:DiskSim是一个低层存储系统的模拟平台,它能够模拟产生基于时序的模拟结果。目前最新版本为4.0版本。ssd_add_on是由微软公司开发的,基于固态硬盘模拟的DiskSim扩展平台。 安装:1) 安装须知:a) DiskSim使用lex和yacc进行词法及语法分析,故linux如没有安装flex、bison
2014-12-30 14:47:54 3711 7
八位输入,五位输出电路设计
2016-06-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人