8 heiworld

尚未进行身份认证

我要认证

school of software engineer , ustc

等级
TA的排名 12w+

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

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

2014-06-21 19:37:14

对虚拟化技术的理解

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

2014-06-19 20:38:28

GDB调试中查看栈信息

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

2014-06-03 21:51:48

电梯算法

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

2014-06-01 18:58:01

Git fetch和git pull的区别

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

2014-05-25 16:41:43

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

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

2014-05-14 13:41:38

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

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

2014-05-13 23:04:04

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

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

2014-05-13 19:02:03

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

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

2014-05-11 21:55:41

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

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

2014-05-11 20:54:29

对于ftok的理解

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

2014-05-09 21:55:39

对于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

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

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

2014-05-09 15:24:20

对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

剑指offer面试题42

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

2014-05-07 20:17:22

函数对象

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

2014-04-25 22:01:26

智能指针

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

2014-04-24 21:56:25

排列的问题

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

2014-04-24 19:35:36

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

在微处理器的历史上,第一款微处理器芯片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

bochs安装

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

2014-04-22 10:43:26

查看更多

勋章 我的勋章
    暂无奖章