文章分类 -  x86汇编语言

摘要:3、调度函数schedule()分析 当kernel/sched.c:sched_tick()执行完,并且时钟中断返回时,就会调用kernel/sched.c:schedule()完成进程切换。我们也可以显示调用schedule(),例如在前面“Linux进程管理“的介绍中,进程销毁的do_exit 阅读全文
posted @ 2016-04-09 19:33 PhiliAI 阅读(551) 评论(0) 推荐(0)
摘要:1. 概述 对于分时操作系统而言,表面上看起来是多个进程同时在执行,而在系统内部则进行着从一个进程到另一个进程的切换动作。这样的进程并发执行涉及到进程切换(process switch)和进程调度(process scheduling)两大问题。其中进程调度是操作系统的核心功能,它是一个非常复杂的过 阅读全文
posted @ 2016-04-09 12:41 PhiliAI 阅读(684) 评论(0) 推荐(0)
摘要:★Linux切换并没有使用X86CPU的切换方法,Linux切换的实质就是cr3切换(内存空间切换,在switch_mm函数中)+ 寄存器切换(包括EIP,ESP等,均在switch_to函数中)。 switch_to主流程: ★此时已经在new_task的执行环境中了,pop ebp, pop e 阅读全文
posted @ 2016-04-09 11:48 PhiliAI 阅读(358) 评论(0) 推荐(0)
摘要:PART4:内存映射机制 现代意义上的操作系统都处于32位保护模式下。每个进程一般都能寻址4G的内存空间。但是我们的物理内存常常没有这么大,进程怎么能获得4G的内存空间呢?这就是使用了虚拟地址的好处。我们经常在程序的反汇编代码中看到一些类似0x32118965这样的地址,操作系统中称为线性地址,或虚 阅读全文
posted @ 2016-04-03 11:57 PhiliAI 阅读(500) 评论(0) 推荐(0)
摘要:既然学习了汇编,我一直想找现代操作系统的内存管理模型的文章看看,在网上看到一个写的挺详细的是以Linux为基础的,就转过来了。 来源:http://blog.csdn.net/zhoudaxia/article/details/7880359 http://blog.csdn.net/zhoudax 阅读全文
posted @ 2016-04-03 11:05 PhiliAI 阅读(496) 评论(0) 推荐(0)
摘要:现在的CPU比25年前要精密得多了。在那个年代,CPU的频率与内存总线的频率基本在同一层面上。内存的访问速度仅比寄存器慢那么一点点。但是,这一局面在上世纪90年代被打破了。CPU的频率大大提升,但内存总线的频率与内存芯片的性能却没有得到成比例的提升。并不是因为造不出更快的内存,只是因为太贵了。内存如 阅读全文
posted @ 2016-04-03 10:51 PhiliAI 阅读(593) 评论(0) 推荐(0)
摘要:控制寄存器(CR0~CR3)用于控制和确定处理器的操作模式以及当前执行任务的特性, 如图4-3所示。 CR0中含有控制处理器操作模式和状态的系统控制标志; CR1保留不用; CR2含有导致页错误的线性地址; CR3中含有页目录表物理内存基地址,因此该寄存器也被称为页目录基地址寄存器PDBR(Page 阅读全文
posted @ 2016-03-31 16:40 PhiliAI 阅读(1087) 评论(0) 推荐(0)
摘要:CPU的页式内存管理单元,负责把一个线性地址,最终翻译为一个物理地址。从管理和效率的角度出发,线性地址被分为以固定长度为单位的组,称为页(page),例如一个32位的机器,线性地址最大可为4G,可以用4KB为一个页来划分,这页,整个线性地址就被划分为一个 tatol_page[2^20]的大数组,共 阅读全文
posted @ 2016-02-22 17:43 PhiliAI 阅读(163) 评论(0) 推荐(0)
摘要:字节序(C++)谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用big endian方式存储数据,而x86系列则采用little endian方式存储数据。那么究竟什么是big endian,什么又是l 阅读全文
posted @ 2016-01-31 21:12 PhiliAI 阅读(1892) 评论(0) 推荐(0)
摘要:1:Overview 中断的来源除了来自于硬件自身的NMI中断和来自于软件的INT n指令造成的软件中断之外,还有来自于外部硬件设备的中断,这些中断是可屏蔽的。这些中断也都通过PIC(Programmable Interrupt Controller)进行控制,并传递给CPU。在IBM PC极其兼容 阅读全文
posted @ 2016-01-29 17:48 PhiliAI 阅读(2064) 评论(0) 推荐(1)