2019-2020-20199316《Linux内核原理与分析》第三周作业

操作系统是如何工作的

(一)计算机的三大法宝

  • 存储程序计算机
  • 函数调用堆栈机制
  • 中断机制

(二)堆栈

(1)堆栈相关寄存器

  • ESP:堆栈指针
  • EBP:基址指针,在c语言中用作记录当前函数调用基址。
    对于x86体系结构来讲,堆栈空间是从高地址向低地址增长的。

(2)堆栈操作

  • push:栈顶地址减少4个字节(32位),然后将操作数亚茹栈顶存储单元;
  • pop:栈顶地址增加4个字节(32位),然后将栈顶存储的内容放回原寄存器。

(3)其他关键寄存器

CS:EIP:用于指向下一条指令地址,它的实用有几种不同情形:

  • 顺序执行:总是指向地址连续的下一条指令;
  • 跳转/分支:执行这样的指令时,CS:EIP的值会根据程序需要被修改;
  • call:将当前存储的值压入栈顶,然后指向被调用函数的入口地址;
  • ret:原来保存的值从栈顶弹出,回到CS:EIP中。

(三)实验情况


   >cd ~/LinuxKernel/linux-3.9.4
    >rm -rf mykernel
    >patch -p1 < ../mykernel_for_linux3.9.4sc.patch
    >make allnoconfig
    >make


然后进入到mykernel目录,查看mymain.c和myinterrupt.c:

    > cd mykernel


查看mymain.c文件:

    >vi mymain.c


查看myinterrupt.c文件:

    > vi myinterrupt.c

(四)总结

本次学习主要是进程的切换。在操作系统中,当时间片用完需要切换进程时,需要保存进程的运行环境和进度,待下次再被调度时,需要恢复这样的运行环境。我觉得这是操作系统能够实现多道处理的难点和重点!

posted @ 2019-09-29 18:28  乔延松20199316  阅读(304)  评论(0编辑  收藏  举报