进程的切换和系统的一般执行过程
摘要:1 进程切换的关键代码switch_to分析 1.1 进程调度与进程调度的时机分析 1.1.1 进程的分类 第一种分类: I/O-bound:频繁的进行I/O,通常会花费很多时间等待I/O操作的完成。 CPU-bound:计算密集型,需要大量的CPU时间进行计算。 第二种分类: 批处理进程(batch process):不必和用户交互,通常在后台进行;不必很快的响应;典型例子:编译程...
阅读全文
posted @
2016-05-13 16:23
LeoSanford
阅读(348)
推荐(0)
可执行程序的装载
摘要:1.预处理、编译、链接和目标文件的格式 1.1可执行程序的来源 1.1.1一个简单的流程 .c(省略了预处理)汇编成汇编汇编代码asm,然后汇编成目标码.o,在链接成可执行文件,可执行文件加载到内存执行。 1.1.2用hello.c做简单的实验 1.2目标文件的格式elf(executable an
阅读全文
posted @
2016-05-13 09:36
LeoSanford
阅读(276)
推荐(0)
进程的描述和进程的创建
摘要:1.进程的描述 1.1进程描述符 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 1.2Linux进程状态转换 1.3进程链表 为了对给定类型的进程(比如所有在可运行状态下的进程)进行有效的搜索,内核维护了几个进程链表。 2进程的创建 2.1进程的创建概览及
阅读全文
posted @
2016-05-10 15:56
LeoSanford
阅读(303)
推荐(0)
系统调用下
摘要:1.系统调用简易的伪代码 #systme call #asm pseudo code #系统调用处理过程的伪代码 .macro INTERRUPT_RETURN iret .endm .macro SAVE_ALL ... .endm .macro RESTORE_INT_REGS ... .endm ENTRY(system_call) SAVE_ALL ...
阅读全文
posted @
2016-05-09 18:00
LeoSanford
阅读(143)
推荐(0)
系统调用上
摘要:1.用户态、内核态和中断处理过程 1.1 用户态和内核态简介 一般现代CPU都有几种不同的指令执行级别。在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别就对应着内核态;而在相应的低级别执行状态下,代码的掌控范围会受到限制,只能在对应级别允许的范围内活动,这种CPU执行级别
阅读全文
posted @
2016-05-09 13:15
LeoSanford
阅读(248)
推荐(0)
构造一个简单的linux系统
摘要:1.搭建环境 然后打开另一个shell窗口 2.分析start_kernel 可以在http://codelab.shiyanlou.com/xref/linux-3.18.6/init/main.c找到start_kernel所在函数的源代码。 关注需要关注的,删除不必要的代码: 执行start_
阅读全文
posted @
2016-04-25 21:58
LeoSanford
阅读(325)
推荐(0)
操作系统是怎么工作的——mykernel环境的搭建
摘要:可以参见:https://github.com/mengning/mykernel 首先感谢:http://www.euryugasaki.com/archives/1014 1.搭建实验环境(实验环境centos6.5) wget https://www.kernel.org/pub/linux/
阅读全文
posted @
2016-04-22 16:37
LeoSanford
阅读(674)
推荐(0)
操作系统是怎么工作的——函数的堆栈框架/嵌入式代码
摘要:1.函数堆栈框架 1.1框架模型 call指令: 1)将eip中的下一条指令的地址A保存在栈顶; 2)设置eip指向被调用程序的代码处。 ret指令:将地址A恢复到eip中 这样就将函数的调用变为顺序执行的指令流。 1.2框架形成 初始堆栈 1)call xxx(函数),执行call时, cs : eip原来的值指向call下一条指令,该值被保存到栈顶,然后cs ...
阅读全文
posted @
2016-04-18 21:48
LeoSanford
阅读(471)
推荐(0)
计算机是如何工作的
摘要:1.冯诺依曼体系结构(存储程序计算机) 1.1 解释 从硬件角度可以抽象为一下模型: 从硬件角度可以抽象为一下模型: CPU与内存通过总线连接,CPU中有很多寄存器(总是指向内存的某一块区域),如IP(Instruction Pointer)。假如指向CS(Code Segment,代码段),CPU
阅读全文
posted @
2016-04-13 00:02
LeoSanford
阅读(1346)
推荐(0)