MOS_Chapter1_Introduction

引论

1.1什么是操作系统

1.1.1作为扩展系统的操作系统

1.1.2作为资源管理者的操作系统

按照自底向上的观念,操作系统的任务是相互竞争的程序之间有序控制对处理器 存储器 其他I/O接口是设备的分配资源管理实现多路复用/共享资源的方式:时间时间上复用,不同程序用户轮流使用空间上复用,每个客户得到资源的一部分,比如程序分割内存

1.3计算机各个部分

1.3.1处理器

从内存取指令并执行

具体过程:每个CPU的周期中,首先从内存取指令,解码确定类型和操作数,执行,然后进入下一个循环周期每个CPU都有专门的指令集

程序计数器寄存器对程序员可见,保存了要取的下条指令的内存地址

堆栈指针指向内存当前栈顶,存储了每个执行的栈帧(保存了输入参数,局部变量,临时变量)

程序状态字寄存器Program Status word PSW:

系统调用中,包含了条件码位,CPU优先级,模式(用户态/内核态)以及其他控制位

流水线:CPU被分为取址,解码,执行单元,对三条指令同时分别执行这三个操作

超标量CPU:多个CPU可同时取指,解码 通过共同的保持缓冲区被执行单元执行.

CPU的两种模式由PSW控制

内核态:CPU可执行指令集中每条指令,使用硬件的各种功能

用户态:仅可执行整个指令集的一个子集和访问

系统调用System call:用户程序陷入内核从操作系统中获得服务

TRAP指令:用户态切换到内核态,同时启用操作系统,系统调用后的指令把控制权返回给用户程序

计算机使用陷阱而不是一条指令来执行系统调用

其他多数陷阱由硬件引起警告异常

多线程:一个CPU保持多个不同的线程状态,然后切换在纳秒级

GPU:由上万个微核组成的处理器,擅长大量并行简单计算

1.3.2存储器

按速度从上往下排的金字塔结构

  1. 寄存器

  2. 高速缓存(可能由两级):高速缓存命中:读取一个存储字时,高速缓存硬件检查存储该高速缓存行是否在缓存中,如果是则命中

  3. 主存(被分割成高速缓存行cache line) 随机访问存储器 Random Access Memory,RAM

1.3.3磁盘

磁盘:信息写在磁盘的一系列的同心圆上。磁头划过的环形区域称为磁道track。一个给定臂的所有刺刀合并组成柱面cylinder

  1. 虚拟内存:将程序放在磁盘上,主存作为缓存来保存频繁使用的部分程序,存储器管理单元MMU来完成快速映像内存地址,把程序的地址转换为RAM的物理地址

  2. 上下文切换context switch 一个程序切换到另一个程序

1.3.4I/O设备

I/O设备 = 设备控制器+设备本身

设备控制器:插在电路板的芯片,从操作系统接收指令物理地控制设备,被设备驱动程序的软件控制,其发出接收指令与控制器交互.拥有少量用于通信的寄存器(保存内存/磁盘地址等)所有I/O设备的寄存器构成I/O端口空间

设备自身:有个标准化的接口数据流从这里出入

设备驱动程序装入操作系统的三种方法:

  1. 内核与驱动程序重新链接,重启系统,UNIX

  2. 在一个操作系统文件设置入口,并通知该文件需要要给设备驱动程序,系统重启时会去寻找所需设备驱动程序并装载 WIN

  3. OS运行时接收新的设备驱动程序并安装好

实现输入输出三种:

  1. 忙等待busy wating:用户程序发出系统调用,内核翻译成对驱动程序的过程调用,驱动程序启动I/O,在不断循环中检查该设备是否结束.若结束,驱动程序把数据发送到指定订房,并返回.操作系统把控制返回给调用者

  2. 中断:设备驱动程序启动设备,并让设备在操作完成时发出一个中断.设备驱动程序在中断发生时返回.操作系统接着在需要时阻塞调用者并安排其他工作进行,当驱动程序检测到设备操作完成时,发出要给中断通知操作完成

  3. 对I/O使用直接存储器访问(DMA)芯片 可控制内存和一些控制的位流,无需CPU的干预.当DMA芯片完成操作,会引起一个中断.

1.3.5总线

每种总线的功能与速度不同,操作系统需了解对所有总线的配置和管理,主要的PCIe总线.

共享总线架构:多个设备使用相同的导线传输数据

PCIe使用端到端与其相反.

并行总线架构:

穿行总线架构:

USB(universal serial bus)

SCSI:高速硬盘上.

1.5操作系统概念

1.5.1进程

进程proces:正在执行的一个程序,是程序的抽象概念.

1.5.2地址空间

避免进程之间的相互干扰,管理进程的地址空间非常重要

1.5.6shell

操作系统是进行系统调用的代码.命令解释器shell体现了操作系统的特性,并说明了系统调用的各种用法

1.6系统调用

调用操作系统的接口.

完成read(df,buffer,nbyters)的11个步骤

分类:

  • 进程管理

  • 文件管理

  • 目录管理

  • 管理其他

1.7操作系统的结构

1.7.1单体系统

  • 一个主程序用来处理服务过程的请求

  • 一套服务过程来执行系统调用

  • 一套实用过程来辅助服务过程

1.7.2层次系统

THE系统的结构分为操作员 用户程序 输入输出管理 进程通信 存储器管理 处理器分配和多道程序设计

1.7.3微内核

机制与策略分离

1.7.4 客户端-服务器

服务器提供服务

客户端使用服务

1.7.5虚拟机

JVM二进制代码可以到具体有JVM解释器的计算机上执行

1.7.6外核

给每个用户分配整个资源的一个子集 对机器进行分区.对虚拟机分配资源,检查使用资源目的

Exercise

  1. 操作系统的两大主要作用是什么?

扩展的机器:提供使用硬件一层抽象

硬件资源的管理者

  1. 分时系统和多道程序系统的区别是什么?

分时系统: 将对CPU的利用分成时间片,每个时间片可分给一个用户作业,提供快速交互式服务.
多道程序系统: 将内存分为多道(块),每块放一个任务/作业,当一个作业在等待I/O操作完成时,另一个作业使用CPU
区别:分时系统的计算机资源可以给多个用户中断同时使用,多道程序系统只能在一台机器上运行多个程序

  1. 为了使用高速缓存,主存被划分为若干cache行,通常每行长32或64字节。每次缓存一整个cache行。每次缓存一整行而不是一个字节或一个字,

这样做的优点是什么?

减少I/O次数,提高缓存速率
一次缓存的多,提高对缓存的命中率

  1. 内核态和用户态有哪些区别?解释在设计操作系统时存在两种不同的模式有什么帮助。

内核态:CPU可以执行指令集中的所有指令,最大限度地利用硬件资源
用户态:只能执行部分指令使用部分硬件资源
可以灵活地授予管理员的权限,可拒绝访问关键指令保护系统

  1. 一个255GB大小的磁盘有65536个柱面,每个磁道有255个扇区,每个扇区有512字节。这个磁盘有多少盘片和磁头?假设平均寻道时间为11 ms, 平均旋转延迟为7ms,读取速率为IOOMB/s, 计算从一个扇区读取400KB需要的平均时间.

柱面 x 片 x 2= 磁道 2^16 x 盘片 = 磁道 (代入3)
盘片 x 2 = 磁头
磁道 x 扇区 = 容量 2^16 x 255 x 512 x 盘片=255GB 盘片=8 磁头=16
读操作:寻道时间11+旋转延迟7+传输时间0.4/100 s = 22ms

  1. 下面的哪一条指令只能在内核态使用?

(a)禁止所有的中断.

(b)读日期-时间时钟。

©设坟日期一时间时钟。

(d)改变存储器映像。

a c d

  1. 考虑一个有两个CPU的系统,井且每一个CPU有两个线程(超线程)。假设有三个程序P0、P1、P2,分别以运行时间5ms,10ms、20ms开始。运行这些程序需要多少时间?假设这三个程序都是100%限于CPU,在运行时无阻塞,并且一旦设定就不改变CPU.

P0和P2使用一个CPU P1使用另外一个:25ms
P0和P1使用一个CPU P2使用另外一个:20ms
P1和P2使用一个CPU P0使用另外一个:30ms
三者使用同一个cpu 35ms

  1. 一台计箕机有一个四级流水线,每一级都花费相同的时间执行其工作,即1ns。这台机器每秒可执行多少条指令?

建议画一个流水线执行指令与时间有关的图
刚开始时没有完整指令完成,结束时没有指令输入 前后时间上互补
导致命令数只与时间有关与级数无关,10^9条

  1. 假设一个计算机系统有高速缓存、内存(RAM)以及磁盘,操作系统用虚拟内存。读取缓存中的一个词需要1ns,RAM需要10ns,磁盘需要10ms。如果缓存的命中率是95%,内存的是99%(缓存失效时),读取一个词的平均时间是多少?

1ns x 0.95 + 10ns x 0.99 x 0.05+ 0.01 x 0.05 x 10ms = 5.001445

  1. 什么是陷阱指令?在操作系统中解释它的用途。

从用户态转入内核态的指令

原文地址:https://www.cnblogs.com/most-silence/p/15495342.html