自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一个简单的鸽巢原理的应用

证明:对每个整数n,存在一个数是n的倍数,且它的十进制表示中只出现0和1

2014-06-21 19:37:14 1375

原创 对虚拟化技术的理解

VMM为每个虚拟机分配一套数据结构来管理状态,包括虚拟处理器的全套寄存器,物理内存使用情况、虚拟设备状态。VMM调度虚拟机时,将其部分状态恢复到主机系统中。Guest OS运行在低特权级,涉及到需要特权级操作的时候,比如写CS或者GDT寄存器的时候,权限不错会导致异常,运行权自动交还给VMM,VMM可以使用一些二进制翻译的技术,比如把压cs寄存器的指令替换成压到栈上面,把读取GDT的指

2014-06-19 20:38:28 3532

转载 GDB调试中查看栈信息

查看栈信息当程序被停住了,你需要做的第一件事就是查看程序是在哪里停住的。当你的程序调用了一个函数,函数的地址,函数参数,函数内的局部变量都会被压入“栈”(Stack)中。你可以用GDB命令来查看当前的栈中的信息。下面是一些查看函数调用栈信息的GDB命令:    Backtrace,bt 打印当前的函数调用栈的所有信息。如:                (gdb) bt    

2014-06-03 21:51:48 2041

原创 电梯算法

在看linux 0.11版本的块设备驱动部分,里面提到了电梯算法,

2014-06-01 18:58:01 4072

转载 Git fetch和git pull的区别

Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge

2014-05-25 16:41:43 567

原创 对linux 0.11版本内核中进程创建fork()的理解

首先来看一下fork的系统调用,源码如下:

2014-05-14 13:41:38 931

原创 对linux 0.11版本内核中的进程退出和回收的理解

常常看到调用exit结束进程,那结束进程到底做了哪些事情叫结束进程呢?目前在看的linux 0.11版本的内核里面的exit()系统调用里面就是调用了do_exit(),它的源码如下:

2014-05-13 23:04:04 1611

原创 对linux 0.11版本内核的kill系统调用的理解

kill系统调用以前一直认为只是用来杀死某个进程的,看了源码纠正下自己的错误认识。源码如下:

2014-05-13 19:02:03 1523

原创 对linux 0.11版本中do_signal()的理解

do_signal()的做法蛮让人印象深刻的,在此记录下来。do_signal()函数式内核系统调用(int 0x80)中断处理程序中对信号预处理程序。假如看过系统调用或者时钟中断的源码,会发现他们在退出的时候总会检查下信号位图,假如有的会就会调用do_signal,它会把信号的处理函数插入到用户程序堆栈中,然后修改中断返回的环境,直接返回到用户态的信号处理函数中先,再从用户态中跳转到原先执行

2014-05-11 21:55:41 2321

原创 linux 0.11版本内核中信号signal()和sigaction()的区别

记录下我对这两个有关信号程序的理解,signal()和sigaction()主要用来设置针对某一信号的处理程序,这两个系统调用会首先会在进程自己的任务数据结构中设置sigaction[]结构数组,该元素结构如下图所示:

2014-05-11 20:54:29 1484

原创 对于ftok的理解

回顾了一下以前的实验,一直不理解

2014-05-09 21:55:39 5598

原创 对于linux 0.11版本中睡眠和唤醒函数的理解

sleep_on()函数主要是为了在一个进程所请求的资源忙的时候进行进程调度,并把该进程放到等待队列上等待一段时间。代码如下:void sleep_on(struct task_struct **p){ struct task_struct *tmp; if (!p) return; if (current == &(init_task.task)) panic("task[

2014-05-09 18:15:27 1817 1

原创 对linux 0.11版本中switch_to()的理解

switch_to的代码在linux-0.11\include\linux中的sched.h。它是一个宏定义,代码如下:

2014-05-09 15:24:20 2560

原创 对linux 0.11版本中进程调度源码的理解

刚看到有关进程调度的源码,记录下。部分源码如下:void schedule(void){ int i,next,c; struct task_struct ** p;/* check alarm, wake up any interruptible tasks that have got a signal */ for(p = &LAST_TASK ; p > &FIRST_TA

2014-05-09 13:56:54 1420

原创 剑指offer面试题42

题目42:翻转单词顺序,翻转句子中单词的顺序

2014-05-07 20:17:22 765

原创 函数对象

总结下函数对象函数对象可以认为是重载了

2014-04-25 22:01:26 623

原创 智能指针

刚看到c++中智能指针,总结下

2014-04-24 21:56:25 704

原创 排列的问题

今天上离散数学,几道有意思的题整理了下。

2014-04-24 19:35:36 878

原创 实地址模式和保护模式的理解

在微处理器的历史上,第一款微处理器芯片4004是由Intel推出的,那是一个4位的微处理器。在4004之后,intel推出了一款8位处理器8080,它有1个主累加器(寄存器A)和6个次累加器(寄存器B,C,D,E,H和L),几个次累加器可以配对(如组成BC, DE或HL)用来访问16位的内存地址,也就是说8080可访问到64K内的地址空间。另外,那时还没有段的概念,访问内存都要通过绝对地址,因此程

2014-04-23 16:46:03 4400 1

原创 bochs安装

最近想照着书和网上的资料写

2014-04-22 10:43:26 965

原创 虚拟文件系统VFS的内核数据结构及联系

VFS:Linux支持各种各样的文件系统格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式,然而这些文件系统都可以mount到某个目录下,使我们看到一个统一的目录树,各种文件系统上的目录和文件我们用ls命 令看起来是一样的,读写操作用起来也都是一样的,这是怎么做到的呢?Linux内核在各种不同的文件系统格

2014-04-20 23:35:44 898

原创 linux的内建命令和外部命令

今天室友去笔腾讯,回来问了我

2014-04-20 23:24:12 2168

原创 编程之美中有关阶层的算法

①给定一个整数,求N!末尾有多少个0思路:假如想把N!算出来之后再对其求末尾0的个数只有在N比较小的时候才能行得通。换种思路,任何一个大于1的正整数都可以唯一的写为两个或者多个素数的乘积,其中素数因子以非递减的顺序出现。举个例子,比如100 = 2*2*5*5 = 2的平方乘以5的平方 ,那N!同样可以表示成这种形式,如果N!的末尾有0,那N!的因子里至少包含一个2和1个5,现在求末尾有多

2014-04-20 19:47:13 2336

原创 gdb调试器的原理

上次实习生面试问道GDB的问题,现在来总结下。当运行gdb,接着通过命令行去run一个程序的时候,gdb会执行如下几个操作:①    通过fork()系统调用创建一个新的进程,一开始是gdb的进程,现在要fork出一个函数去执行被调试的程序。②    在新创建的子进程中执行下述操作ptrace(PTRACE_TRACEME,0,0,0);这样这个新创建出来的子进程就能被父进程追踪。

2014-04-18 21:42:35 2892

原创 2014阿里实习生面试感想

本来就对a公司很感兴趣,但是又觉得自己的水平还不够。

2014-04-17 23:47:33 1277

原创 2014s公司实习生面试

前些天那边招做有关内核的岗位,投了好多人,

2014-04-15 00:18:16 1076

原创 剑指offer第28题扩展题

输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。

2014-04-14 23:55:54 1037

原创 微软2014机试第二题

DescriptionConsider a string set that each of them consists of {0, 1} only. All strings in the set have the same number of 0s and 1s. Write a program to find and output the K-th string according to

2014-04-14 19:29:41 914

原创 2014腾讯测试实习面试题

今天腾讯在学校附近招测试

2014-04-14 01:05:42 1277

原创 微软2014机试第一题

DescriptionFor this question, your program is required to process an input string containing only ASCII characters between ‘0’ and ‘9’, or between ‘a’ and ‘z’ (including ‘0’, ‘9’, ‘a’, ‘z’). Y

2014-04-12 21:25:28 686

转载 linux常用的内存分配接口

void * kmalloc(size_t size, gfp_t flags);该接口返回至少size字节的物理连续的内存空间。用法和c语言malloc函数一样。当然还有类似free的内存释放函数void kfree(const void *ptr);内核还提供vmalloc函数,用法和kmalloc一样,唯一的不同的vmalloc不保证分配的内存是物理连续的。怎么选择用哪个

2014-04-06 23:14:35 876

原创 判断链表是不是有环

void Isloop(Llink head){ if(!head||!head->next) return; Llink p,q; bool loop=false; p=q=head->next; while(q&&q->next)//判断是否有环 { p=p->next; q=q->next->next; if(p==q) { loop=true; break; } }

2014-04-06 16:18:42 729

原创 Linux 下统计文件夹中文件的数量

ls -l  |  grep  '^d'  |  wc -lls -l

2014-04-06 15:57:34 648

原创 求二进制数中的1的个数

今天在做深入理解计算机系统的LAB1,其中有道题求二进制数中的1的个数看到这种算法int bitCount(int x) {     n = (n &0x55555555) + ((n >>1) &0x55555555) ;     n = (n &0x33333333) + ((n >>2) &0x33333333) ;     n = (n &0x0f0f0f0f) +

2013-12-01 21:21:59 932

智能小车循迹

51单片机用定时器来实现坦克的循迹功能,

2012-10-12

空空如也

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

TA关注的人

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