[关闭]
@vourdalak 2018-05-07T21:28:45.000000Z 字数 3364 阅读 357

CS143AWk1笔记

CS143A


1. 操作系统(Operating System)

1.1 操作系统是什么?

操作系统是一个用户电脑硬件之间交流的媒介。
电脑进行计算时的主要目的是用户使用软件,操作系统简化管理应用软件运行时候的有效性复杂度
首先要了解电脑的组成部分:

1.2 操作系统视角

1.2.1 用户视角

对用户来说电脑分各种不同的应用,不同电脑各有所长。例如个人PC追求效率和便携行,但对资源使用不是很在意。大型工作站强调资源使用率。手持电脑,如手机等便携优先,同时还在意续航等节能问题,要求其能够有效利用资源。

1.2.2 操作系统视角

从计算机的角度看,基本有如下三种视角:

资源分配器(Resource allocator)

分配软硬件资源,达到有效管理。

控制程序(Control program)

控制用户程序I/O设备执行。

内核 (Kernel)

总是在运行的内核程序。

1.3 操作系统的角色

裁判(Referee)

幻术师(Illusionist)

粘合剂(Glue)

例如:在一个文件系统中:裁判角色防止用户未经许可接触彼此的文件;幻术师角色承诺文件可以无限大,假定存储时机器崩溃,文件仍然存在;粘合剂提供界面。

1.4 操作系统的目的

2. I/O设备

I/O设备和CPU同时执行。每一个设备控制器都管理一种设备类型,每个Controller都有一个本地缓存Buffer,信息从I设备流入Buffer再进入CPU,CPU把主存内容移动到Buffer在进入O设备。

2.1 中断(Interrupt)

Interrupt Service Routine: 一段决定行动/中断的代码(AKA Interrupt Handler)。Interrupt把控制传给ISR。

中断种类:

Interrupt Handling

OS保存CPU的状态,即保存register和PC,即为中断的指令的地址。
如CPU在处理一个中断时产生了新的中断,将出现如下三种情况:

DMA

直接记忆体存取,AKA DMA(Direct Memory Access)。大多用于所有文件传输的I/O设备(以减少对CPU的负荷)。原理为设备控制器直接把缓存的信息传给主存,无需CPU介入。设备控制器在I/O成功时打断CPU。
在为需要大块数据移动的I/O设备设置好缓冲,指针和计数器后,无需CPU干预,数据成块传送,每块只产生一个中断而不用每个字节产生一个中断。

3. 进程

进程是一个拥有有限权利的软件对象。其权利包含:

4. 保护

保护规定了如何限制进程的权利。
进程不可以执行全部的指令,原因包含而不局限于:
- 可能导致改变系统结构(Can alter system configuration)
- 可能导致接触未经授权的内存(Can access unauthorized memory)
- 可能导致接触未经授权的I/O(Can access unauthorized I/O)

4.1 保护措施

4.1.1 双重模式运作(Dual-mode operation)

提供了计算机两种操作模式:用户模式(User mode)系统模式(Kernel mode)。硬件系统添加了一位模式位(Mode bit)。UM为0,KM为1.
规定了特权指令(Privileged instructions),特权指令只能在KM执行。
当trap或interrupt出现时,硬件切换为KM。

4.1.2 CPU保护--定时器Timer

定时器在超时时产生一个interrupt。为一个定义好的时间,随着时间流逝慢慢减少的参数。也可用于计算当前系统时间。对Timer的编程属于特权指令,必须在KM内执行。

4.1.3 内存保护

当进程运行时,仅有在此进程权利内的内存可以被其接触并使用。
在KM运行时,内核对所有内存均有权访问。

Base and Bounds method

设置两个register来保存内存相关的信息:
- Base Register:保存此进程的最低访问内存编号。
- Limit register:保存此进程最大内存范围。
超出部分即为保护部分。任何对Base和Limit的load都属于特权指令

4.1.4 I/O保护

所有I/O指令都属于特权指令
所以,用户只能通过系统调用(System Call)执行I/O操作。

概念:System Call

系统操作:一种进程向系统做请求的方法。

用户指令可以使用SysCall,从而引发一个Trap。切换到KM进行操作。
是用户应用(Application)和操作系统(OS)的Interface。应用使用assembly instruction来引发trap从而进入内核。一些高级语言为这些assembly instruction(SysCall)提供包装(Wrapper)。SysCall在应用和OS之间通过register和memory传送参数。
Screen Shot 2018-04-23 at 12.50.41 PM.png-63.2kB

4. 系统服务或系统程序

目的是提供程序执行和开发的便利环境。

指令编译器(Command Interpreter System)

输入到OS的指令由指令声明执行。CIS会得到一条条的指令并且执行。读取和解释Control statements的程序也叫Command-line Interpreter,shell(UNIX里)。

5. 存储结构

主存

只能由CPU直接接触的大容量存储。

次要存储

有大量的非易失内存。如磁盘。

5.1 存储层次

存储系统是有严格规整层次的。层次的基准为:

缓存:把低速存储器的信息复制到告诉存储器的过程。主存可看作次要存储的上级存储器。

6. 操作系统

集成式核心(Monolithic OS)

有一个大的,有许多组成部分的内核。(如Linux,Windows)

微内核(Microkernel OS)

微内核把内核中信息移动到用户空间。在内核层次只运行小的OS,OS服务建立在很多独立的用户层面进程中。
由message passing沟通不同modules。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注