操作系统学习笔记一 导论

引导程序 

计算机开机的时候需要运行一个初始化程序,又名引导程序。这段程序用于初始化系统,包括CPU寄存器、设备控制器和内存。然后运行操作系统。通常,引导程序位于ROM或EEPROM中。装入操作系统的关键在于定位操作系统,即知道操作系统入口在哪里。记忆中,通常应该是在硬盘的引导扇区?

中断

操作系统开始执行,初始化完毕以后,就静静地等待事件的发生。事件的发生通过中断表示。硬件和软件都可以中断。当CPU中断时,它暂停当前工作,立即开启中断服务程序,执行完毕以后,重新回到被中断的工作。中断发生时,为了尽快开启相应的中断服务程序,会有一份这些服务程序的地址指针表,称为中断向量表?


指令执行周期

一个典型的指令执行周期,首先从内存中获取指令,并保存在指令寄存器。接着,指令被解码,并可能导致从内存中获取操作数或将操作数保存在内部寄存器中。在指令完成对操作数的执行后,结果存回到内存。


多处理器系统

规模带来成本下降。多处理器系统有三个优点:

1)增加吞吐量

2)共享外设、存储和电源,节省资金

3)增加可靠性,一个处理器挂掉,系统只会变慢,而不会崩溃。


分为非对称多处理 和 对称多处理。非对称,CPU一主多从;对称,所有CPU对等。

目前的CPU趋势是单芯片,多内核,相当于多处理器。

刀片服务器:一个服务器有多块主板,每块板都有处理器,这些板有自己的操作系统,独立启动,相当于一*立的电脑。


集群

集群通常用于打造高可用性,集群中一个系统出错,服务仍然可以继续。

1)非对称集群

比如热备份模式

2)对称集群

所有机器都运行应用程序,互相监视。能充分使用硬件资源,更为高效。

3)并行集群

多个主机共享数据。一致性控制是关键。

4)WAN集群

分布式集群

作业调度

分时和多道程序设计需要在存储器中同时保存几个作业。通常由于主存较小而不能容纳太多作业,所以刚开始时作业会存储在作业池中。所谓的作业池,放在磁盘中,由等待分配内存的作业组成。调入哪些作业进内存执行,称为作业调度。

同时,系统也必须在分配CPU上做出选择,是为CPU调度。

除此而外,相关的还有进度调度、磁盘存储、内存管理等等。


虚拟内存

虚拟内存允许一个执行中的作业不完全放在内存中,适合程序比物理内存大的情况。另外,虚拟内存将内存抽象成逻辑内存,与真正的物理内存区隔开,使程序员不必为内存空间的限制而担心。

双重模式

用户模式(用户态?) 和 内核模式(监督程序模式、管理模式、系统模式、特权模式、核心态?)

系统引导时,机器处于内核模式;装入操作系统,开始在用户模式下运行。一旦出现陷阱(软件错误会触发陷阱)或中断(硬件或软件中断),就会从用户模式切换到内核模式。

双重模式提供了保护操作系统和用户程序不受错误用户程序影响的手段。实现原理为:用户模式下,执行只有在内核模式下的指令(特权指令)是不行的,会被认为非法,以陷阱形式通知操作系统。


双重模式需要硬件支持。在计算机硬件中增加一个模式位,内核模式为0,用户模式为1,以此区分。

缺乏硬件支持的双重模式会产生一些缺点。比如奔腾以前的英特尔CPU,MS-DOS下系统很容易崩溃。靠,我印象中win2000以前的操作系统都很容易崩溃。


定时器

防止用户程序执行时间过长

设计意图

1)充分优化硬件的使用率,如大型机的Unix,服务器的Linux、Windows Server?

2)支持从复杂游戏到商业应用,如个人电脑的windows

3)方寸之间,自有天地的Android

所以不同的操作系统有不同的适用对象,及设计意图,往往相互之间比较是没有意义的。