操作系统复习提纲
-钟惠平 第一章操作系统
操作系统定义 1.运行在内核态的软件
2.操作系统的任务是创建好的抽象,并实现和管理它所创建的抽象对象。作为资源管理者,记录哪个程序使用什么资源,对资源请求进行分配,评估使用代价,调解资源请求。
3.计算机系统资源(硬件资源、软件资源)的管理员,又是计算机系统用户(用户、应用程序)的服务员。俗称管家婆。
计算机的两种运行模式:内核态,用户态,(进程的状态) 软件:内核态(操作系统),用户态(普通软件)
资源管理的方式:多路复用(共享)资源
多路复用:通常表示在一个信道上传输多路信号或数据流的过程和技术 1.时间复用,排队
2.空间复用:每个客户得到资源的一部分。
操作系统的发展史 硬件和用户需求 推进了操作系统的发展
1.(第二代)批处理系统:输入室收集全部的作业,用相对便宜的计算机,如IBM 1401,将他们读到磁带上。装入磁带机上,一个特殊的程序读取一个作业 结果写到第二盘磁带上,不断循环执行作业,第一批作业结束,换第二批,并将输出磁带进行打印。
2.批处理系统:操作系统的前身,关键词:系统软件,控制下,计算机,自动,成批处理,多个用户的作业。
优点:系统吞吐量大,资源利用率高 缺点:在批处理系统中,作业一旦投入就不受用户控制,直到结束,缺乏交互性。
3.(第三代)集成电路芯片 多道程序设计
多道程序设计:内存中分几部分,每部分存放不同的作业,一个在等待IO,另外一个作业就可以使用CPU
4.个人计算机,大规模集成电路与现代操作系统
在操作系统中引入多道程序设计技术以后,会使系统具有以下特征 1.Multi-channel (多道性 ) 2.Schedulable(调度性 )
3.Disorder/Uncertainty (无序性/不确定性 )
4.Parallel macro, serial micro (宏观上并行、微观上串行)
实现多道程序设计的条件: 1. 内存管理技术:内存中分几部分…. 2. SPOOLing技术(假脱机技术):提高I/0速度,输入缓冲区---》磁盘输入井
3. DMA直接内存访问,内存和I/O设备之间的数据传输,类似于包工头,CPU不干预。 4. 分时技术,每个用户都有一个联机终端,操作系统分时段为每个终端用户轮流服务 假设A,B,C三个作业所需CPU时间均为T,多道程设计中,A,B,C三个作业所需的CPU时间是多少? 答案:T
是什么推动了操作系统的发展? 1.硬件的技术、工艺、成本
2.人们对计算机的需求:功能多,复杂性 3.提高硬件的性能和利用率
系统硬件
cpu : 从内存中取出指令并执行 指令集: 取指令、解码和执行指令
寄存器: 保存关键变量和临时数据的。 通用(general ):保存变量和临时结果 专门(special) :程序员可见
Program counter 程序计数器:下一条指令的地址 堆栈指针stack pointer :指向内存中当前栈的顶端
程序状态字(Program Status Word, PSW):CPU优先级、模式和各种其他控制位等
执行指令模型 executing instruction models 1.同时读取、解码和执行一条指令 简单模式
2.流水线: pipeline 三个指令是分开工作的。同时取出多条指令,一个CPU有分开的取指单元、解码单元和执行单元
弊端:进入流水线,必须执行完毕。
3.超标量CPU: superscalar CPU 多个执行单元,在执行单元前加一个保持缓冲区。有多个执行单元,一旦空闲,就从缓冲区中读取待执行的指令。
系统调用:从操作系统中获得服务。 从用户态切换到内核态 TRAP指令把用户态切换到内核态并启用操作系统
系统调用可看成一个特别的过程调用指令:具有从用户态切换到内核态的特别能力
多线程(multithreading)或超线程(hyperthreading) 1.多线程 宏观并行,微观串行 2.多线程也不是真正的并行处理,在一个时刻只有一个进程在运行,但是线程的切换时间减少到纳秒数量级,允许CPU保持两个不同的线程状态,然后在纳秒级的时间尺度内进行切换 例如某个进程需要从内存读出一个字,多线程CPU可以切换至另一个线程
MMU,Memory Management Unit 1.存储器管理单元; 2.CPU的一个部件
3.快速的将程序生成的地址转换为主存中的真实物理地址,即实现虚拟内存机制 --程序放在磁盘上,主存作为一种缓存,保存最频繁使用的部分程序 --使得运行大于物理内存的程序成为可能
注:缓存的思想很重要 1.只要存在大量的资源可以划分为小的部分,那么这些资源中的某些部分就会比其他部分更频繁的得到使用。
缓存的使用带来性能上的改善
1.内存保留频繁使用的文件的一部分 2.缓存路径名转换为磁盘地址的结果
3.缓存Web页面(URL)转换为网络地址(IP地址)
Memory 存储器 1.RAM(Random Access Memory) 2.ROM(Read Only Memory)
3.EEPROM(Electrically Erasable Programmable Read Only Memory) 4.闪存 5.CMOS
实现I/0的三种方式:
程序控制I/O (Programmed I/O) 中断驱动I/O (Interrupt-Driven I/O)
使用DMA的I/O (Direct Memory Access I/O )
程序控制I/O(Programmed I/O) 1.用户程序发出一个系统调用,内核将其翻译成一个对应设备驱动程序的过程调用 ,设备驱动程序启动I/O,并连续不断的检查该设备,直到任务完成,操作系统将控制权返回给调用者。
2.忙等待方式 比喻:你烧开水,一直在开水前面等它烧开
(中断驱动 I/O)Interrupt-Driven I/O 1.设备驱动程序启动设备并让该设备在操作完成时发出一个中断 2.设备驱动程序通过写设备寄存器通知设备控制器做什么
3.设备控制器启动设备,设备完成工作后,设备控制器发送中断信号 4.处理器检查是否存在中断请求,若决定响应中断 -可能挂起正在执行的程序
-转而去执行中断处理程序(interrupt-handler routine,设备驱动程序的一部分),例如将磁盘buffer中的数据读入内存
比喻:水壶自动式,在水壶上设定闹钟,烧开了就闹铃。
使用DMA的I/O (Direct Memory Access) 1.直接存储器访问芯片控制内存和控制器之间的位流,无需CPU干预
2.CPU对DMA芯片进行设置,说明需要传送的字节数,有关的设备,内存地址和操作方向,接着启动DMA
3.DMA芯片完成任务后,发送一个中断
包工头式:比喻:你请一个人来帮你烧开水。
启动计算机:
1.主板BIOS芯片进行设备自检 2.读取CMOS数据
3.读取启动设备的第一个扇区 4.读取活动分区里的启动装载模块 5.加载操作系统
三个抽象 cpu抽象成进程 内存抽象成虚拟地址 磁盘抽象成文件
操作系统概念 进程 1.正在执行的一个程序
-地址空间Address space(程序,数据,堆栈)
-相关资源集(程序计数器,堆栈指针,打开文件的清单??) 2.是容纳运行一个程序所需所有信息的容器 3.操作系统中有一个进程表(process table),每个进程是其中的一项 4.一个进程包括:
地址空间/磁芯映像core image Process table(进程表项) 地址空间 1.管理和保护主存的地址空间 -避免内存中同时存在的程序彼此干扰 2.管理进程的地址空间 -一个或多个进程需要的地址空间 3.虚拟内存技术,把程序的部分地址空间装入主存,部分留在磁盘上,根据需要再进行交换,OS创建了一个地址空间的抽象,是进程可以引用的地址的集合 4.程序地址空间<->物理地址空间
文件:操作系统隐藏磁盘和其他I/O设备的细节特征,提供给程序一个良好、清晰的独立于设备的抽象,即文件模型
特殊文件:使I/O设备看起来像文件一样,通过系统调用,像文件读写一样对设备进行读写
管道pipe: 一种虚文件,连接两个进程,使得进程间通信也类似于普通文件的读写
Shell 是终端用户和操作系统之间的接口,非常重要,但是它不是操作系统的组成部分
Processes进程
进程地址空间(磁芯映像)、资源集、进程表、进程表项 Address spaces地址空间
虚拟内存技术、进程地址空间映射内存地址空间 Files文件
层次结构文件系统、文件系统挂载、特殊文件、管道 Input/Output输入输出
设备控制器、设备、驱动程序 I/O的三种方式
系统调用: 系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,将处理结果返回给应用程序
操作系统的两大功能: 为应用程序提供抽象和管理计算机资源 为应用程序的运行创建良好的环境:
第一章课后习题
22.块特殊文件和字符特殊文件的差? 答案:块特殊文件可以寻址 1.Block special file 块特殊文件,指那些可随机存取的块组成的设备,如磁盘
2.Character special file 字符特殊文件,用于接收或输出字符流的设备,如打印机 相同点:按惯例,保存在/dev目录中
第一章课后习题 22 块可寻址 23
库调用的名字更重要,系统调用是采用系统调用号来识别
25.对程序员而言,系统调用就像对其他库过程的调用一样。有无必要让程序员了解哪一个库过程导致了系统调用?在什么情形下,为什么?
一般不需要,除非考虑性能,使用系统调用,需要额外的开销
操作系统结构: 1.Monolithic systems 单体系统 2.Layered systems 层次式系统 3.Microkernels 微内核 4.Client-server systems 客户机-服务器模式