操作系统学习基础

操作系统程序的运行提供环境

操作系统是直接运行在硬件上的特殊软件

CPU的中断是操作系统的生命所在!

学习操作系统需要注意的地方

了解C内存模型/UNIX/地址

CPU Clock Rates

由于速度差异,CPU和外设通过中断并行工作

多道程序出现,并发执行

多用户同时使用一个机器,互不干涉

重点:C语言内存结构

该C语言内存模型在物理上存在,实际并上不存在,栈只有在运行的时候才存在,堆也是(在可执行文件中没有)

环境变量可看作栈的一部分,是main的参数。

参数调用过程中的跳转,考虑为什么这样实现!

参数和局部变量在变量的角度看是一样的

从硬盘拿到可执行文件放到内存

windows下可执行文件的扩展名:.exe , .sys , .com ,.bat等

一般操作系统会读可执行文件的128个字符

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继续执行。

时间: 2024-10-17 12:40:52

操作系统学习基础的相关文章

php学习基础-文件系统(一) 文件处理,文件权限

一.PHP系统文件处理 /* PHP文件系统处理 * 所有文件处理都是使用系统函数完成的. * 是基于Linux/Unix系统为模型 * * 文件系统处理的作用: * 1. 所有的项目离不开文件处理 * 2. 可以用文件长时间保存数据 * 3. 建立缓存, 服务器中文件操作 * * 文件处理 * 1. 文件类型 * 以Linux为模型的, 在Windows只能获取file, dir或unknow 三种类型 * 在Linux/Unix下, block, char, dir, fifo, file,

Linux 操作系统学习笔记

一,unix 1.unix 特点 伸缩性强,开放性好, 2.基本原则 所有对象,硬件都是文件 配置数据以文本形式保存 短小的单目的程序构成 多个程序合作完成复杂任务 3.gnu 基本原则是共享,建立自由开放的unix系统 1984年 richard stallman 发起 基本体系是micro kernel 4.gpl Copyleft 原作者所有权 5.linux起源 Linustorvalds, 自由的类unix操作系统, 遵循gnu和gpl 6.linux 可以实现unix功能 遵循开源许

嵌入式Linux操作系统学习规划

开发板用友善之臂的吧mini2440 连3.5寸屏500块钱的样子有好几张DVD学习光盘 这款口碑比较高 嵌入式Linux操作系统学习规划ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目. 从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺.这一

新手必看,Linux学习基础

Linux学习基础 1.什么是Linux? 准确的说,是指Linux的kernel(系统的核心程序),其内核版权属于Linus Torvalds,在GPL(GNU General Public License)版权协议下发行, 任何人都可以自由的复制(copy), 修改(change), 套装分发(distribute),销售,但是不可以在分发时加入任何限制, 而且所有原码必须是公开的,所以任何人都可以无偿取得所有执行文件和原代码. 对于Linux用户和系统管理员来说,Linux是指包含Linu

20165235 学习基础和C语言基础调查

20165235 学习基础和C语言基础调查 首先第一个问题:你有什么技能比大多人(超过90%以上)更好?感觉很难回答这种问题,其实我对很多东西挺感兴趣的,如果非要拿出一种比较突出的技能的话我感觉就是象棋和书法.不敢说比大多数人更好,但是在业余爱好者中间相对来说还是不错. 针对这个技能的获取你有什么成功的经验?若想获取这种技能首先最重要的是对这种技能的兴趣,因为兴趣是人最好的老师.因为我对象棋书法的热爱导致我想去学习.其次是坚持,若想真正的掌握一门技能就得去坚持练习,不断的增进自己的技能. 对于第

Docker虚拟化实战学习——基础篇(转)

Docker虚拟化实战学习--基础篇 2018年05月26日 02:17:24 北纬34度停留 阅读数:773更多 个人分类: Docker Docker虚拟化实战和企业案例演练 深入剖析虚拟化技术概念和应用场景 虚拟化,一是项技术--,是一种资源解决方案. 虚拟化技术是将物理资源转变为逻辑上可以管理的资源,以打破物理结构之间的壁垒,使计算元件运行在虚拟的基础上,而不是真实的物理资源上. 通过虚拟化技术,可以将物理资源转变为逻辑资源(虚拟机),应用程序服务运行在虚拟资源上,而不是真实的物理机上.

操作系统学习 28/9/2015

操作系统学习 28/9/2015 虚拟内存:程序可以比内存大,允许执行程序不全在内存中,按需调页. 按需调页:通过设置有效无效位,有效表面该页合法且在内存中,无效表明该页不在进程的逻辑空间内或者该页合法但是在磁盘上.进程试图访问无效位的页时会产生错误陷阱,处理:1.检查进程内部页表,确定该引用是否合法,若非法,则终止进程,若合法,则调入该页面:2.在内存中找到一个空闲帧,将页面从磁盘掉入该帧中:3.修改进程的内部表和页表:4.继续该中断指令的执行.(重新对该指令进行获取,译码等) fork()调

操作系统学习

本文原创,转载请注明来至:http://blog.csdn.net/j903829182/article/details/38060553 1.计算机发展的4个时代:电子管时代,晶体管时代,集成电路时代和大规模集成电路时代 2.操作系统发展过程:(1)单道批处理,(2)多道批处理,分时和实时系统时代,(3)多方式系统时代(4)并行与分布式系统时代. 3.操作系统:是一种系统软件,是软硬件资源的控制中心,它以尽量合理有效的方法组织单个或多个用户以多任务方      式共享计算机的各种资源,并提供编

php学习基础-文件系统(二) 文件读写操作、文件资源处理

一.文件的打开与关闭 /* *读取文件中的内容 * file_get_contents(); //php5以上 * file() * readfile(); * * 不足:全部读取, 不能读取部分,也不能指定的区域 * * fopen() * fread() * fgetc() * fgets() * * * * * 写入文件 * file_put_contents("URL", "内容字符串"); //php5以上 * 如果文件不存在,则创建,并写入内容 * 如果