自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 操作系统中的同步互斥(锁与信号量)

互斥操作系统的同步与互斥可以从线程和进程两个角度进行理解。如果从线程的角度理解,这里本文以两个线程为例,需要考虑这两个线程是否属于同一个进程,对于不同进程的线程来说,它们本质上和从两个进程的角度进行理解是一样的,在之后讨论两个进程间的同步互斥时会详细说明。对于同一进程的两个线程,假设有这样一段代码。int res, temp=0;res = temp++;上文的代码是通过C语言编...

2018-08-03 23:31:00 281

转载 华为硬装实践之旅

大约1个月前的一个周三,主管通知我下周要去松山湖开始硬装实践。得到这个消息以后,心里还是有些说不清的滋味,一方面,我觉得可以暂时放松一下自己,摆脱工作的烦恼;另一方面,我又觉得这和我的主业不相关,一个月的时间太长了,我是在浪费时间。带着这种矛盾的心情,我踏上了东莞之旅,一个小插曲是,周日晚上飞东莞时,由于杭州下雨,航班延误了大概3个小时,晚上我赶到住宿地点时,已经凌晨1:30了,也许这不...

2018-06-16 20:40:00 1541

转载 C++ 11 实用特性总结

autoC++11新引入的auto是一个十分好用的特性,它的用途主要是自动类型推断和返回值占位。自动类型推断auto可以从表达式中推断出“返回值类型”,这里一定要有一个具体的表达式,然后根据表达式计算出结果,将结果返回给auto类型的变量。int main(){ auto a; //错误,无法推断出a的类型 auto a=10; //正确,可以推断出a的...

2018-03-12 12:36:00 140

转载 二叉排序树、平衡二叉树、B树&B+树、红黑树的设计动机、缺陷与应用场景

之前面试时曾被问到“如果实现操作系统的线程调度应该采用什么数据结构?”,因为我看过ucore的源码,知道ucore是采用斜堆的方式实现的,可以做到O(n)的插入、O(1)的查找。我回答了斜堆,但面试官坚持让我在B树和红黑树之间选择一个,由于实际上很少用到B树和红黑树,所以我也不太清楚,只是隐约记得红黑树用于磁盘读取比较好,好像和数据大小和数据连续性相关,显然我记错了。当时觉得红黑树还有一...

2018-02-28 19:50:00 176

转载 内存虚拟化之影子页表

概述对于客户机操作系统来说,存在两种常用的虚拟化方法,即full-virtualization(完全虚拟化)、para-virtualization(并行虚拟化)。由于本文讨论影子页表,因此只针对内存进行考虑,影子页表是完全虚拟化的做法,所谓完全虚拟化,是指客户机操作系统不感知自身处于虚拟环境,因此不需要修改客户机操作系统源码。对于虚拟化环境来说,存在四种地址,GVA(Guest vi...

2017-11-19 17:11:00 1106

转载 Xen的虚拟化详解

最近在看Xen在2003年发表在sosp上的论文《Xen and the Art of Virtualization》,中途遇到一些不理解的技术点,在网络上查找相关资料,发现大多数人都只是介绍了一些Xen的历史和相关概念,对底层实现方案几乎没有涉及,少有的几篇博客虽然介绍了一些内容,但是我个人觉得很多地方过于笼统,而且互相之间内容十分类似。因此决定在深入学习之后总结出一篇博客,既能理清自...

2017-06-22 21:56:00 479

转载 操作系统原理之《从系统上电到第一个用户进程的启动》

本文将以ucore为例,介绍一下从系统上电开始,到第一个用户进程的启动过程。这个过程是非常复杂和琐碎的,如果读者是刚刚接触操作系统,有些部分我可能不会介绍的十分详细,读者可以自行Google查阅不懂的部分,最好还是在理解理论的基础上自己做一些实验。实验用的硬件平台是x86架构(用qemu模拟的),实验用的ucore代码是清华大学教学操作系统,读者可以在github上搜索ucore_os_...

2017-06-20 17:34:00 403

转载 优先级队列之堆的分析与实现

设计动机以及基本框架在现实应用中,我们有这样一种需求,就是选取出当前队列中优先级最高的元素,比如操作系统中的线程调度,当前线程时间片用完的时候,需要从就绪队列中选出优先级最高的线程,对于一个无序队列,我们需要遍历所有的元素,那么时间复杂度就是O(n)。研究优先级队列的目的就是找到一种数据结构和对应的算法,实现高效的动态和静态操作。这里的动态操作指的是插入和删除元素,静态操作指的是查找。...

2017-06-10 09:08:00 140

转载 KMP算法详解

串的模式匹配可以说是非常常见的算法了,我们首先分析最简单易懂的蛮力算法(Brute-Force,简称BF),然后分析蛮力算法存在的问题以及如何改进,引出KMP算法,然后对KMP算法进行分析,关于蛮力算法和KMP算法我都会给出代码,这些代码都是我经过测试可以正确执行的,当然如果有疏漏或者没有考虑到的地方还请读者批评指正。串的模式匹配问题有两个字符串,一个是文本串(text串,后文简称为...

2017-06-08 22:46:00 119

转载 动态规划算法之理论与应用

最近在leetcode和牛客网上刷题,经常碰到一些和动态规划相关的问题,虽然动态规划的思路貌似不难,但是在具体的应用场景上却总是困扰我,很难巧妙结合,决定写一篇博客来记录下我对动态规划的理解和遇到的各种问题以及如果将理论与实际编码结合。这篇博客不是一次写成的,我会陆续将我遇到的、我认为有代表性的动态规划问题和解法在此进行总结。动态规划动态规划(Dynamic programming...

2017-06-02 22:48:00 128

转载 c语言关键字总结

由于面试中经常被问到各种c语言的关键字,本着利己又利人的原则,在这里做以总结。C语言中的关键字因为被各种重载,有时候显得比较诡异,好多关键字我用的也不太多,平时编码没有太注意,面试的时候有些细节就不太敢肯定了,因此我决定好好学习一下这些关键字,对那些说不清的细节我决定自己写几个简单的例子验证和分析一下。static其实static是很常用的关键字了,因为我自己是搞操作系统的,对这个...

2017-05-30 20:04:00 167

转载 STL源码剖析之序列式容器

最近由于找工作需要,准备深入学习一下STL源码,我看的是侯捷所著的《STL源码剖析》。之所以看这本书主要是由于我过去曾经接触过一些台湾人,我一直觉得台湾人非常不错(这里不涉及任何政治,仅限个人感受),在技术上他们比较严谨,在为人处世上也非常谦虚,所以一些台湾的技术资料我觉得是值得一看的。想要学习STL源码的设计,其实应该是从空间适配器(allocator)和迭代器(iterators)...

2017-05-14 16:41:00 156

转载 ARM平台的虚拟化介绍

本篇博文主要介绍虚拟化的基本思想以及在arm平台如何做虚拟化,arm提供的硬件feature等等。虚拟化技术简介虚拟化技术虚拟化是一个概念,单从这个概念的角度来看,只要是用某一种物品去模拟另一种物品都可以称为虚拟化,甚至于有些饭店用豆腐做出肉的味道,我认为这也可以称为一种虚拟化。但是这里我们主要讨论的是计算机领域的虚拟化,我们这样定义虚拟化“虚拟化是将单一物理设备模拟为相互隔离的多...

2017-05-09 11:34:00 1422

转载 OKL4虚拟化技术跟踪

这篇博客准备介绍OKL4的研究进展,本文的内容主要根据我个人阅读《OKL4_LongPaper_2010_HW_VM》这篇文章之后的理解,我也根据这篇论文的内容做了一些实验,奈何此论文涉及内容太广,有一些arm硬件我也不太熟,而且由于时间有限,只能做一部分它提到的实验,没做过的实验我会介绍我的分析和理解,如果有问题希望读者批评指正。这篇论文不会对所涉及的每一个虚拟化名词和技术都展开介绍...

2017-05-08 18:57:00 244

转载 qemu-trustzone编译&运行(包含linux内核的编译方法)

由于之前都是用的mtk6797开发板,回到实验室之后想要做实验的话需要弄一个支持trustzone的qemu,在这里记录一下我的编译和调试过程。本来最近一直忙着看论文和写论文,但是忽然发现自己在实验部分还有好多欠缺,对一些关键问题的理解存在一部分想象(没有经过实践验证),这让我有些难以接受,虽然去搞源码、调试和分析一定会很耗时间,但是奈何水平不高,我觉得这些事情都是我无法回避的,引用大学...

2017-05-08 15:32:00 327

转载 markdown语法测试

This is an example link.I get 10 times more traffic from Google than from Yahoo or MSN.<blockquote>` void dev_stdin_write(char c) {bool intr_flag;if (c != '\0') {local_intr_save(intr_...

2017-05-02 15:41:00 89

转载 ucore文件系统详解

最近一直在mooc上学习清华大学的操作系统课程,也算是复习下基本概念和原理,为接下来的找工作做准备。每次深入底层源码都让我深感操作系统实现的琐碎,即使像ucore这样简单的kernel也让我烦躁不已,文件系统相比于中断子系统、调度子系统、进程管理子系统等等,要复杂很多,因此被称为文件系统而不是文件子系统。参看网络上的资料有时会增加我的困惑,很多人只是简单转载,很多细节描述的很模糊,实验...

2017-05-02 10:47:00 600

转载 开天辟地第一篇!

合抱之木,生于毫末,九层之台,起于累土,千里之行,始于足下。我坚信技术的成长来源于点滴的积累,未来我会在这里总结每一个阶段的自己,我希望这里既是我的笔记也是我的日记,能够成为我生活的缩影,当很多年以后,我翻看的时候还能想到曾经的自己。转载于:https://www.cnblogs.com/miachel-zheng/p/6769670.html...

2017-04-26 17:23:00 116

空空如也

空空如也

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

TA关注的人

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