《现代操作系统》1.3节笔记

一台简单的计算机可以抽象成下图的模型。CPU、内存、I/O设备等都由一条系统总线连接起来,通过该总线互相通信。
在这里插入图片描述

1.3.1 处理器

1、CPU:计算机的“大脑”。
2、CPU内部一些通用寄存器:用于保存变量和临时结果。
3、CPU内部对程序员可见的一些专门寄存器:

程序计数器:保存将要取出的下一条指令的地址,指令取出后更新以便指向后继的指令。

  • 堆栈指针:指向内存中当前栈的顶端,该堆栈框架保存了有关的输入参数、局部变量以及没有保存在寄存器中的临时变量。
  • 程序状态字(Program Status Word, PSW):包含了条件码位、CPU优先级、内核态/用户态等控制位。
4、为了提高效率,许多现代CPU具有同时取出多条指令的机制

通过内部的取指单元、解码单元、执行单元三部分完成。当CPU执行指令n时,可以对指令n+1解码,并读取指令n+2,这样,当执行完指令n后,无需等待,就可以直接执行n+1,然后n+2,这样的机制,称为流水线(pipeline)
在这里插入图片描述

4、每个CPU都有其一套可执行的专门指令集

Intel公司的X86处理器不能执行sun公司的SPARC程序,SPARC也不能执行X86的程序。

5、摩尔(Moore)定律

芯片中晶体管的数量每18个月翻一番。

6、多线程在操作系统中的意义和缺陷

(1)意义:每个线程在操作系统看来就像是单个的CPU,考虑一个实际有两个CPU的系统,每个CPU有两个线程,这样在操作系统看来就有4个CPU。
(2)缺陷:在某个时间的特定点上,只能维持2个CPU忙碌的工作量,那么在同一个CPU上调度2个线程,而让另一个CPU完全空转,这样的效率远远不如在每个CPU上运行一个线程的效率高。

1.3.2 存储器

在这里插入图片描述
存储系统的顶层是CPU中的寄存器,它用和CPU一样的材料制成,和CPU一样快,访问没有时延。其典型的存储容量:32位CPU为32x32位,在64位CPU中为64x64位

下一层次为高速缓存,CPU读取数据时,如果数据在高速缓存行中,则成为高速缓存命中。提升高速缓存命中有利于提升效率。

1.3.3 磁盘(硬盘)

磁盘同RAM相比,每个二进制位的成本低两个数量级以上,所以容量大且便宜,但是读取速度低。

磁盘中有一个或多个金属盘片以不同速度旋转,信息写在磁盘上的一系列同心圆上。边缘开始有一个机械悬横在盘面上,在任意一个给定臂的位置,每个磁头可以读取一段环形区域,称为磁道(track)。把一个给定臂的位置上的所有磁道合并起来,组成了柱面(cylinder)

每个磁道划分为若干扇区,扇区的典型值为512字节。

每个盘面都有读写头用来读写数据。机械臂从一个柱面移动到相邻的柱面大约需要1ms,而随机移动到某一个柱面的典型时间为5-10ms。
在这里插入图片描述
在这里插入图片描述

1.3.4 磁带

存储器体系的最后一层,这种介质经常用于磁盘的备份,并且可以保存非常大量的数据集。

1.3.5 I/O设备

1、概念

输入输出设备,比如键盘、鼠标、打印机、硬盘灯。I/O设备一般包含两部分:设备控制器和i/o设备本身。控制器是插在电路板上的一块或一组芯片。

2、设备驱动程序(device driver)

每一类设备控制器都是不同的,需要不同的软件进行控制,专门与控制器对话,发出命令并接收响应的软件,叫做设备驱动程序(device driver).

3、实现输入输出有三种方式

(1)用户程序发出一个系统调用,然后就执行I/O过程,CPU一直等待I/O的数据,直到得到数据后处理,处理完以后返回结果,CPU才继续处理其他事情。这种方式称为忙等待。

(2)通过中断机制,需要I/O时,先让I/O设备执行对应操作,这个时候CPU不需要等待,继续做其他事情,如果I/O执行完,拿到数据了,这个时候由中断控制器对CPU发起一个中断,处理这个I/O得到的数据。大白话就是先让CPU处理其他事情,当得到I/O数据后,告诉CPU,你先停一下现在手头上的事儿,你刚刚要的数据准备好了,现在给你,你处理下。

(3)使用直接存储器访问芯片(DMA,Direct Memory Access),直接控制位流,DMA得到数据时,也会对CPU发起中断。
在这里插入图片描述

1.3.6 总线

在这里插入图片描述
**通用串行总线(Universal Serial Bus,USB)**是用来将所有慢速I/O设备,如键盘和鼠标,与计算机连接。所有的USB设备共享一个USB设备驱动器,就不需要为新的USB设备安装新设备驱动器了,即无须重启就可以给计算机添加USB设备。

1.3.7 启动计算机

Pentium的简要启动过程

(1)每个Pentium上有一块双亲板,上面有着被称为 基本输入输出系统(Basic Input Output System, BIOS) 的程序。BIOS内有底层I/O软件,包括读键盘、写屏幕、进行I/O以及其他进程。
(2)BIOS开始运行,检查RAM数量,各个I/O设备是否已经安装并正常响应。接着开始扫描ISA和PCI总线并找出连在上面的所有设备(不管是遗留设备还是即插即用设备)。如果现有设备和上次启动时的设备不同,则配置新的设备。
(3)然后BIOS通过尝试存储在CMOS存储器中得设备清单决定启动设备。此时用户可以在系统刚启动之时进入一个BIOS配置程序,对设备清单进行修改。
(4)操作系统询问BIOS,以获得配置信息。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始化有关表格,创建需要的任何背景进程,并在每个终端上启动登录程序或GUI。

发布了131 篇原创文章 · 获赞 81 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43469047/article/details/104740645