操作系统学习基础
CPU Clock Rates
由于速度差异,CPU和外设通过中断并行工作
多道程序出现,并发执行
多用户同时使用一个机器,互不干涉
该C语言内存模型在物理上存在,实际并上不存在,栈只有在运行的时候才存在,堆也是(在可执行文件中没有)
环境变量可看作栈的一部分,是main的参数。
参数和局部变量在变量的角度看是一样的
windows下可执行文件的扩展名:.exe , .sys , .com ,.bat等
CPU得知道寄存器运行的途径,并进行控制。
每个地址是有多个寄存器的
中断用于解决CPU与外设的操作关系
中断:外设为了让CPU了解自己的信息给出的刺激
CPU只有一个管脚,中断控制器连CPU,外设连中断控制器,中断是在当前指令完成后发生的,查中断向量表,找地址,中断处理程序。win2000之前的都不算现代操作系统
很小的操作系统:μCos 、Cos——C:Card
单道批处理系统与多道批处理系统
Real-Time System 实时系统——可预期
硬实时:必须在规定时间内完成
软实时:尽力而为,如互联网
实时系统与交互系统是矛盾的,桌面系统是结合了软实时的交互系统
操作系统从User mode进入Kernel mode需要由swi(software interrupt 软中断)指令触发exception。
所有User模式下软件的系统调用(System Call)都是通过swi指令进入Kernel模式的。Glibc中包含了一系列的System Call,如常用的open、read、write、ioctl,每个System call对应一个System call number。每个System call在kernel中都有相应函数来完成。在_vector_start开始的向量表中SWI exception handle将从vector_swi开始执行。实际vector_swi代码在entry_common.s中。Vector_swi主要做的事情就是根据user mode执行swi时存在寄存器中的system call number找到kernel中对应的handler routine,并跳转到该routine执行。
CPSR (current program status register)程序状态寄存器,包含条件码标志、中断禁止位、当前处理器模式以及其他状态信息。
从异常exception返回时要修改CPSR,从而恢复到Exception发生时的CPU mode继续执行。
作者: 伊甸一点
出处: http://www.cnblogs.com/zpfbuaa/
本文版权归作者伊甸一点所有,欢迎转载和商用(须保留此段声明),且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文链接 如有问题, 可邮件(zpflyfe@163.com)咨询.