实验要求:
- 操作系统工作的基础:存储程序计算机、堆栈(函数调用堆栈)机制和中断机制;
- 在操作系统工作的基础之上,请您简述操作系统(内核)是如何工作,宏观概述结合关键点的微观(CS:EIP、EBP/ESP等的变化)分析。
- 完成500字左右的一段总结文字(务必是自己写的),附上学习研究笔记,另外请大家养成尊重知识产权的习惯引用或参考别人的资料注明出处URL。
一.存储程序计算机-处理器读并解释存储在存储器中的指令
一个典型系统的硬件组成:
主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。硬件上,主存是一组动态随机存取存储器(DRAM)芯片组成的。逻辑上,存储器是一个线性的字节数组,每个字节都有其唯一的地址(数组索引),这些地址从零开始.
处理器CPU,解释或执行存储在主存中指令的引擎。CPU的核心是一个寄存器-PC程序计数器。
从系统通电开始,直到系统断电,CPU一直在不断的执行PC指向的指令,再更新PC,使其指向下一条指令。
二. 堆栈(函数调用堆栈)机制
一个过程调用包括将数据(过程参数或返回值)和控制从代码的一部分传递到另一部分,它还必须在进入时为过程的局部变量分配空间,并在退出时释放空间。
大多数机器只提供转移控制到过程,或者反之的简单指令,数据传递、局部变量的分配和释放通过操纵 程序栈 来实现。(参考http://blog.sina.com.cn/s/blog_927b6d2e010193vf.html)
三.中断机制-变内核主动为硬件主动
处理器和外部设备速度往往不在一个数量级,使其能协工作,轮询polling固然可以但是CPU利用率低,于是想提供一种机制:让硬件在需要时再向内核发出信号--即中断机制。
硬件设备产生的中断并不考虑与CPU的时钟同步,中断可以随时产生。还包含时钟中断:更新新系统自启动以来所经过的时间Jiffies;更新时间和日期Xtime;确定当前进程的执行时间,考虑是否抢占;更新资源使用统计计数;检查到期的软定时器。
异常与中断不同,它在产生时必须考虑与CPU时钟同步。分为处理器探测异常(故障fault,陷阱trap,异常终止abort)和编程异常(又叫软中断,如系统调用)
四. 操作系统是如何工作的
操作系统是一些基本的程序集合,其中最重要的程序称为内核kernel,又习惯称为操作系统。
当操作系统启动时,内核被装入RAM中,内核包含系统运行必不可少的很多核心过程procedure,操作系统必须完成两个主要目标:
- 与硬件交互,为硬件平台上所有低层可编程部件提供服务;
- 为运行在计算机系统上的应用程序提供执行环境。
– 用户地址空间:包括程序代码,数据,用户堆栈等
– 控制信息:进程描述符,内核堆栈等
– 硬件上下文:进程恢复时必须用的一组寄存器值。
– Thread_info
– 进程的内核堆栈