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

操作系统是如何工作的

(一)计算机的三大法宝

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

(二)堆栈

(1)堆栈相关寄存器

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

(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

1801303-20190929180858841-2120066867.png


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

    > cd mykernel

1801303-20190929181051853-691845494.png


查看mymain.c文件:

    >vi mymain.c

1801303-20190929181120186-938900466.png


查看myinterrupt.c文件:

    > vi myinterrupt.c

1801303-20190929181142163-373659981.png

(四)总结

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

转载于:https://www.cnblogs.com/destiny-love/p/11609312.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值