操作系统概念第七版abraham Silberschatz著知识点总结---第二章

Chapter2 计算机系统结构

4.计算机系统的总体结构:

 

 CPU和设备控制器可以同时执行,争夺内存周期。为了确保对内存的有序访问,提供了一个内存控制器memory controller来同步对内存的访问。

5.bootstrap---引导

引导操作系统bootstrap an operating system:当用户仅仅使用计算机时,就没有可用的操作系统。我们必须将操作系统内核从某些持久存储(如磁盘和网络服务器)加载到内存中。然后将控件转移到具有非常基本环境的操作系统的入口。

引导操作系统的程序称为引导加载程序boot-loader不是操作系统的一部分。例如:NTLDR, GRUB

6. 中断interrupt

  现代计算机和操作系统是由中断驱动的,外围设备使用中断来通知CPU发生了什么事情。当CPU被中断时,它必须为中断服务

1.硬件:保存一些寄存器和分支到中断服务例程interrupt service routine(ISR);

2.ISR中的汇编语言过程:必要时保存其余寄存器,设置方便的环境;

3.ISR中的C语言过程:服务中断,通常从外围设备中年/读取和缓冲输入数据;

4.ISR中的C语言过程:返回ISR中的汇编语言过程;

5.ISR中的汇编语言过程:恢复保存的寄存器并返回被中断的位置。

7.中断矢量interrupt vector

通常,计算机系统有几个外围设备。当中断发生时,CPU必须知道是哪个设备触发的。 1.计算机系统给每个设备分配一个唯一的中断请求号(例如,一个8位整数),或者简单的IRQ2.所有ISRs(中断服务例程)的地址都被收集到一个名为中断向量的表中。3.在处理中断时,CPU使用IRQ索引中断向量来获取ISR的地址和分支。


8.异常 exception

中断和异常的不同:

   (1)中断:由周边设备引发的; ·---异步的 Asynchronous.

  (2)异常:当处理器在执行一条指令时检测到一个错误条件时,就会发生异常,比如零除法和无效的内存访问。--- 同步Synchronous

除了上边的之外,中断和异常的处理是相同的,异常也被称为软件生成中断或同步中断

9. I/O结构

CPU使用外围设备进行I/O时,有两种方法:1.同步;2.异步

9.1 CPU如何访问外围设备

        1. CPU通过设备控制器访问设备。设备控制器包括用于保存命令和正在传输的数据的寄存器。

  9.2.CPU如何访问这些寄存器:两种方法:I / O端口 和 内存映射I / O

9.3 I/O端口

聚集设备控制器中的所有寄存器。

一个唯一的地址(称为端口,一个8位或16位的整数)被分配给每个寄存器。

特殊的I/O指令被设计为允许在这些寄存器和内存之间进行数据传输。例子:IBM-PC

在I/O端口方法中,我们可以将I/O端口视为另一个独立的地址空间独立于内存地址空间。

9.4 内存映射I/O(Memory-mapped I/O)

   设备控制器内的寄存器仅仅是一块存储器。使用与内存相同的方法来访问这些寄存器:在这种情况下,一个(唯一的)内存地址被分配给每个寄存器,而不是一个端口地址。

内存映射的I/O使用相同的总线来寻址内存和I/O设备, 为了容纳I/O设备,必须为I/O而不是内存预留CPU可寻址空间的区域.

优点:a.可以引用内存的每条指令也可以引用设备控制器寄存器。设备驱动程序可以完全用C语言编写。

b.不需要特殊的保护机制来阻止用户进程执行I/O

缺点:现在大多数计算机都有某种形式的缓存内存字。但是,缓存设备控制器寄存器将是灾难性的。

现代计算机系统同时使用它们:a使用内存映射I/O用于数据缓冲区,并为命令寄存器分离I/O端口,b.就像之前Radeon 7500的机动性例子一样。

10.硬件保护(重要)

为了确保正确的操作,我们必须保护操作系统和所有其他程序及其数据不受任何故障程序的影响。

硬件保护可以通过不同的方式进行分解:

  双模式操作——防止用户程序接管部分操作系统,并使用它覆盖其他程序,甚至修改操作系统本身。

特权指令-防止用户程序通过发出非法的I/O指令扰乱系统的正常运行。

内存保护—防止用户程序直接访问另一个用户程序甚至操作系统的内存。

CPU保护—防止用户程序陷入无限循环,并且永远不会将控制返回给操作系统。

10.1双模式操作:

·我们至少需要两种不同的运作模式:

      用户模式-代表用户程序执行;

      监控模式——代表操作系统执行。也称为监督者,系统,特权或内核模式。

·模式位被添加到计算机硬件以指示当前模式:监视器(0)或用户(1)。它被设置为在系统启动时监视。然后加载操作系统,并以用户模式启动用户程序。

·当发生中断或异常时,硬件切换到监视模式。当操作系统获得对计算机的控制时,它处于监视模式。系统总是在将控制传递给用户程序之前切换到用户模式。

     例子:INTEL IA-32 supports 4 modes to operate, named protection rings保护环。But, most operating systems running on IA-32 only use 2 of 4.Ring 0 as monitor mode;

ring 3 as user mode.


10.2 I/O保护(特权指令)

    所有的I/O指令都是特权指令。硬件允许特权指令仅在监视模式下执行。如果要在用户模式下执行这些指令,硬件不会执行指令,而是将其视为非法并生成异常。例如,IN和OUT是INTEL IA-32中的两个特权指令。必须确保用户程序永远不能在监控模式下获得对计算机的控制。

 10.3内存保护

为了保护内存,添加两个寄存器来确定程序可以访问的合法地址范围:基本寄存器Base register—拥有最小的合法物理内存地址;限位寄存器 limitregister—包含范围的大小。


10.4 CPU 保护

· 操作系统只有在有机会运行时才能执行策略。如果一个出现故障的程序进入了无限循环,并且从来没有将控制返回给操作系统,那么CPU就从操作系统中脱离了控制。

·  定时器timer——在指定周期后中断CPU以确保操作系统保持控制。当中断发生时,操作系统将通过ISR获得控制。

11.定时器

计数器寄存器在每一个脉冲处都减少1当计数器寄存器为零时,计时器将中断CPU。然后,计数器寄存器将被重新加载,其值是持有holding寄存器中存储的数值和递减重复。



12.系统调用(或者说是supervisor call 管理程序调用)唯一入口

 操作系统本身没有任何用处。但是它为用户程序提供了一些有用的服务,比如从磁盘读取文件并通过网络适配器向远程主机发送数据。

操作系统怎么提供这些服务:

 它是系统调用——操作系统和用户程序之间(定义良好的)接口。用户程序只能通过系统调用请求操作系统提供的服务。接口中的系统调用因操作系统和操作系统而异。

13.进程:procedure

1 - 3准备参数;4调用系统调用的封装器wrapper(用汇编语言编写);

5存储“读”的系统调用号到一个寄存器中;6进入操作系统;7通过使用系统调用号索引系统调用表获取“读”的

系统调用服务例程;8-11系统调用服务例程运行并在完成时返回给用户程序。

 常驻监视器Resident monitor (或简单的监视器)

在这里表示操作系统

n是系统调用号。

 13.1进入操作系统 trap into the operating system

用户程序不能直接进入操作系统。

如何进入操作系统?

方法1:异常(软件生成的中断)。 方法2:特殊的指令

1 异常

INTELIA-32提供了一个触发异常的指令---INT

例如,Linux/FreeBSD使用INT0x80进入trap into操作系统,WindowsNT/XP使用INT 0x2e。

2 特殊指令

此外,INTEL IA-32提供了两种特殊的指令,使其进入操作系统:SYSENTER和SYSEXIT,(因为INT指令的额外开销。)

只支持奔腾II后的处理器,即,Family 6, Model 3, Stepping 3.

ARM处理器使用swi 3trap into操作系统。

14 系统调用和库函数对比

系统调用将进入操作系统内核;而库函数则不是。因此,系统调用要比库函数慢得多。

库函数与用户定义的函数相同。我们可以用自己的版本替换现有的库函数,但不能替换系统调用。一个操作系统中的系统调用可能成为另一个操作系统中的库函数,反之亦然。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值