操作系统
2021-06-29 12:12:39 1 举报
AI智能生成
自考本科 02326 操作系统笔记
作者其他创作
大纲/内容
存储管理
第六章 存储管理
第一节 存储管理的概述
存储体系
存储管理的任务
内存空间一般分为两个区域
系统区:存放操作系统常驻内存部分,用户不能占用这部分空间
用户区:分配给用户使用,用于装入和存储用户程序和数据,随时变化
存储管理的实质:用户空间的管理
内存管理问题主要包括
①内存管理方法
②内存的分配与释放算法
③虚拟存储器的管理
④控制内存和外存之间的数据流动方法
⑤地址变换技术
⑥内存数据保护和共享技术
内存的分配和回收
功能
①记住每个存储区域的状态:空闲与否
②实施分配:用户提出请求,分配内存
③回收:回收用户释放的区域
内存分配表
①位示图表示法
②空闲页面法
③空闲块表法
内存分配方式
①静态分配:程序运行前分配内存,不允许“搬家”
②动态分配:程序运行时允许动态分配内存,且允许“搬家”
存储共享
所谓存储共享是指两个或多个内存公用内存中相同区域
包括:代码共享和数据共享
目的:节省内存空间,提高内存利用率;通过内存共享实现进程通信。
存储保护
目的:为多个程序共享内存提供保障,使在内存中的各道程序,只能访问它自己的区域,避免各道程序间相互干扰
方法
1.地址越界保护
2.权限保护
“扩充”内存容量
用户在编制程序时,不应该受内存容量的限制,所以要采用一定技术来“扩充”内存的容量,使得用户得到比实际内存容量大得多的内存空间
借助虚拟存储技术或交换技术完成,达到在逻辑上扩充内存容量的目的
地址转换
地址重定位
1.绝对地址
存储器以字节为单位编址,每个字节都有对应的地址
2.物理地址空间
由绝对地址对应的内存空间称为“物理地址空间”
3.逻辑地址
在多道程序系统中,内存中同时存储了多个用户程序,每个用户不能预先知道他的程序被存储到了什么地方。为了方便,每个用户都可认为自己的程序和数据存储在一组“0”地址开始的连续空间中,用户程序中使用的地址,称为“逻辑地址”或“相对地址”
4.逻辑地址空间
由逻辑地址对应的存储空间称为逻辑地址空间
当用户把程序装入内存时,存储管理为它分配的内存空间可能是从某一单元的一组连续的地址空间,它的起始地址不固定,即逻辑地址与物理地址经常不一致
把逻辑地址转换为绝对地址的工作称为“地址重定位”,分为“静态重定位”和“动态重定位”两种
静态重定位
内存在装入一个程序时,把程序中的指令和数据地址全部转换为绝对地址,该过程在程序运行前进行,程序运行过程中无需在转换,这种转换方式称为“静态重定位”
动态重定位
内存在装入程序时,不进行地址转换,而是直接把程序装入到分配的内存中,程序在执行过程中完成地址的转换,这种转换方式称为“动态重定位”
第二节 分区管理方案
固定分区
基本思想:多道程序环境下,整个用户空间划分为若干个固定大小的区域,每个分区中只装入一道作业。分区大小可以相同,也可以不同。
内存分配表与分区的分配、回收
内存分配表是一张分区说明表,记录分区号、分区大小、分区起始地址及使用状态等
分配时按照进程的内存需求,按一定策略从分区表中找到空闲分区进行分配
回收时,将内存分区登记在分区说明表中,并将其状态置为空闲状态
可变分区
基本思想:系统不预先划分固定分区,而是在装入程序时划分内存分区,使为程序分配的内存区大小正好等于程序的需求量,且分区的个数是可变的
紧缩技术
内存经过一段时间分配后,会存在很多很小的空间。解决办法:紧缩
紧缩应注意的问题
1.增加系统开销
2.移动是有条件的,比如进程正与设备交换信息,此时不能移动。
所以,采用紧缩技术时,应该尽可能减少需要移动的进程数和信息量
可变分区的实现
1.硬件支持:两个专用控制寄存器:基址寄存器和限长寄存器
2.绝对地址形成:程序装入内存后,分区的起始地址和长度装入两个寄存器,程序执行后,取出指令中的逻辑地址,绝对地址=逻辑地址+基址寄存器内容
3.地址越界:当逻辑地址>限长寄存器值时,产生“地址越界”中断
4.地址转换过程
5.内存分配表:两个表格
可变分区的分配策略
1.首次适应算法
思想:当接到内存申请时,查找分区说明表,直到找到一个大小能满足要求的空闲分区为止,将其分割并分配
优点:简单,可以快速作出分配决定
2.最优适应算法
思想:当接到内存申请时,查找分区说明表,找到一个大小能满足要求的最小空闲分区,将其分割并分配
优点:节约空间
缺点:形成许多碎片
3.最坏适应算法
思想:当接到内存申请时,查找分区说明表直到找到一个大小能满足要求的最大空闲分区,将其分割并分配
优点:碎片少
缺点:分割了大的空间,遇到较大申请,无法满足
分区回收
当用户程序执行结束后,系统回收已使用完毕的分区,将其记录在空闲区表中
①回收区与插入点的上临空闲分区F1相邻接
②回收分区与插入点的下临空闲分区F2相邻接
③回收区同时与插入点的上、下两个空闲分区相邻接
④回收区既不与F1邻接,又不与F2邻接
分区的保护
两种方法
1.系统设置界限寄存器,包括:上、下界寄存器或基址、限长寄存器
2.保护键方法
分区管理方案的优缺点
优点:简单、表格不多,实现起来容易,内存额外开销小,保护措施也简单。在内存利用率方面可变分区比固定分区高
缺点:碎片多,不能为用户提供“虚存”,每个用户程序的存储受物理存储的限制
第三节 覆盖与交换技术
覆盖技术
1.概念:是指一个程序的若干程序段,或几个程序的某些部分共享某一个存储空间
2.实现:把程序划分为若干个功能上相对独立的程序段,按照其自身逻辑结构使那些不会同时执行的程序段共享同一块内存区域
3.解决的问题:从用户级彻底解决内存小装不下程序的问题
4.优点:打破了需要将一个程序的全部信息装入内存后程序才能运行的限制。在逻辑上扩充了内存空间,从而在某种程度上实现了在小容量内存上运行较大程序的功能
5.缺点:对用户不透明,增加了用户的负担
交换技术
1.交换的含义:进程从内存移到磁盘,并再移回内存
2.适用场景:分时系统和大多数现在的操作系统,是虚拟存储系统的基础
3.主要内容
①换出进程的选择
②交换时机的确定
③交换空间的分配
④换入进程换回内存时位置的确定
第四节 虚拟页式存储管理方案
虚拟存储技术
1.基本思想
利用大容量外存来扩充内存,产生一个比有限的实际内存空间大得多的、逻辑的虚拟内存空间,简称虚存。
采用二级存储器方式。
是一种设计技巧,受外存容量的限制。
2.虚拟存储器需要硬件支持
①系统有容量足够大的外存
②系统有一定容量的内存
③实现虚-实转换的地址映射机制
3.工作原理:程序部分装入内存便可运行,其他部分需要运行时再装入内存
4.与交换技术的区别
交换技术交换单位是进程
虚拟内存以页为单位进行交换
虚拟页式存储管理
1.物理页面和页面
物理页面:酱内存分成大小相等的许多区,每个区成为一个“物理页面”
页面:将程序中的逻辑地址也进行分页,页的大小和物理页面大小一致
2.虚拟地址组成
物理内存的分配与回收
位示图:位示图中的每一位与一个物理块对应,其值为0/1,表示空闲/占用
内存分配与回收
分配:在位示图中找出空闲物理页面数,如果能满足,则分配,并把相应位置为1,计算物理页面号。物理页面号=字号x字长+位号
回收:当归还物理页面时,计算归还页面在位示图中对应的位置,将1改为0.
[]中括号表示取整 mod表示取余
虚拟页式存储地址转换过程
1.页式存储管理的地址转换
页表:记录装入内存的逻辑页面与物理页面的对应关系。是硬件进行地址转换的依据。
硬件支持:页表始址寄存器和页表长度寄存器,分别用来存储正在运行程序的页表在内存的起始地址和页表的长度
地址转换过程
①在执行检索前,先将页号与页表长度进行比较,若页号大于或等于页表长度,则地址越界
②若未出现越界错误,则将页表始址与页号和页表项长度的乘积相加,则找到该表项在页表中的位置,找到该页的物理页号
③将有效地址的页内地址送入物理地址寄存器的块内地址字段中
(1)十进制计算:物理地址=物理页面号*块长+页内地址
(2)二进制计算:物理页面号作为绝对地址的高位地址,页内地址作为它的地址部分
2.页表项
物理页面号:页面在内存对应的物理页面号
有效位:页面是在内存还是在外存
访问位:页面在内存中是否被访问过
修改位:页面在内存中是否被修改过
保护位:页面能否读/写
3.页表
多级页表
散列页表
反置页表
4.转换检测缓冲区(TLB)
高速缓存,也称快表,登记了页表中的部分页号和物理页面的对应关系
地址转换过程及原理
5.缺页异常处理
缺页异常:若在页表中发现索要访问的页面不在内存,则产生缺页异常
处理:查看有无空闲页面,若有,把要访问的页面调入内存;若无,选择一页换出内存,再把要访问的页面调入内存
6.页面调度策略
调入策略:决定什么时候将一个页由外存调入内存。两种方法:请求调页和预调页
置页策略:当产生缺页时,将所调入的页面置于何处。
置换策略:如果内存已满,确定哪个页面从内存中移出,为新的页面腾出空位。三种方法:固定分配局部置换、可变分配全局置换、可变分配局部置换。
7.页面置换算法
“抖动”或“颠簸”:刚被换出的页面又立即要用,把它装入内存后,不久又被换出,换出不久又被调入内存,如此反复,使调度非常频繁。这种现象称为“抖动”或“颠簸”
算法:OPT、FIFP、第二次机会页面置换算法、CLOCK、LRU算法
1.OPT——理想页面置换算法(最佳页面置换算法)#是一种理论上的算法
2.FIFO--先进先出:总是选择最先装入内存的页面调出,或者说把驻留在内存中时间最长的那一页调出
3.LRU--最近最少使用:总是选择距离现在最长时间内没有被访问过的页面调出
Belady现象:当分配给进程的页面数增加时,缺页次数反而增加的现象
8.缺页率
缺页率计算:f=F/A F为缺页次数,A为页面总访问次数
影响缺页率的因素
(1)分配给程序的物理页面数
(2)页面的大小
(3)程序编制方法
(4)页面调度算法
虚拟页式存储管理的优点缺点
优点:不要求进程的程序段和数据段在内存中连续存放,有效解决了碎片问题,提高了内存利用率
缺点:存在页面空间的浪费,程序的最后一页往往有一部分得不到利用
虚拟存储管理的性能问题
(1)颠簸问题
缺页率高引起,如页面置换算法不合理
“活动”页面:进程在一段时间内集中访问的一些页面,与程序的局部性有关
如果分配给进程的物理页少,则活动页面不能全部装入内存,可能频繁产生却也,从而导致颠簸
(2)工作集模型
工作集:对于给定的进程访问序列,从时刻(t-Δ)到时刻t之间所访问页面的集合,称为该进程的工作集。Δ称为工作集窗口
采用工作集模型可以解决颠簸问题
解决办法:操作系统为每一个进程保持一个工作集,并为该进程提供与工作集大小相等的物理页面数,这一过程可动态调整。
文件系统
第七章 文件系统
第一节 文件系统的基本概念
文件系统的任务
文件的定义
研究文件系统的两种观点
用户观点:关心文件由什么组成,如何明明,如何保护文件,可以进行何种操作
系统观点:文件目录是怎样实现的,怎样管理存储空间,文件存储位置,磁盘实际运作方式,存取速度,磁盘利用率等等
文件的定义:一组带标识的、在逻辑上有完整意义的信息项的序列
读写指针:读指针用来记录文件当前的读取位置,写指针用来记录文件当前的写入位置
特点:存储在磁盘,可长期保存
文件系统的定义
文件系统是操作系统中统一管理信息资源的一种软件。它管理文件的存储、检索、更新,提供更安全的共享和保护手段,并且方便用户使用
功能
1.统一管理文件的存储空间,实时存储空间的分配与回收
2.实现文件按名存取,以对用户透明的方式管理名字空间
3.实现文件信息的共享,并提供文件的共享和保密措施
4.向用户提供一个方便使用的接口
5.系统维护及向用户提供有关信息
6.保持文件系统的执行效率
7.提供与I/O的统一接口
文件的存储介质及存取方式
外存储设备的特点
特点:容量大、断电后仍可保存信息
组成:驱动部分和存储介质部分
种类:磁盘、磁带、磁鼓、纸带、光盘、闪存等
外存储设备的存储介质
1.磁带 特点:容量大,存取速度慢,适合顺序存储
2.磁盘
分类:软盘和硬盘
特点:容量大,成本低,适合随机存储
3.光盘
是利用在激光的作用下特性发生变化的一些材料制成的非磁性记录介质
特点:容量大、速度快、价格便宜
4.闪存
特点:电擦除,随机存取、可靠性高、寿命长
文件在存储设备中的存取方式
顺序存取:按从前到后的次序依次访问文件的各个信息项
随机存取:又称直接存取,允许用户按任意的顺序,直接存取文件中的任意一个记录,或者根据存取命令把读写指针移到文件中的指定记录处读取
文件的分类
按文件的用途分类
1.系统文件
2.库函数文件
3.用户文件
按文件的组织方式分类
1.普通文件
2.目录文件
3.特殊文件
一些常见的文件分类方式
按文件的保护方式:制度文件、读写文件、可执行文件、无保护文件
按信息的流向分:输入文件、输出文件、输入输出文件
按存放时限分:临时文件、永久文件、档案文件
按存储介质分:磁盘文件、磁带文件、卡片文件等
按文件的组织结构分类:逻辑文件、物理文件
UNIX类操作系统中文件的分类
1.普通文件
2.目录文件
3.特殊文件
第二节 文件的逻辑结构和物理结构
文件的逻辑结构和物理结构
文件的逻辑结构:从用户观点出发所观察到的文件组织形式
文件的物理结构:又称为文件的存储结构。是指系统酱文件存储在外存上所形成的一种存储组织形式,是用户不能看见的。
设计文件逻辑结构的原则
1.易于操作
2.查找快捷
3.修改方便
4.空间紧凑
文件的逻辑结构
1.流式文件:有序字符的集合,基本单位是字符,源程序、目标代码等属于流式文件
2.记录式文件:是一组有序记录的集合,基本单位是记录。又可分为定长记录文件和变长记录文件
文件的物理结构
顺序结构
顺序结构原理:又称连续结构,它把逻辑上连续的文件信息依次存放在连续编号的物理块中
顺序结构的优缺点
优点
①存取速度快,一旦知道了文件在存储设备上的起始块号和文件长度,便能快速进行存取
②支持顺序存放和随机存取
缺点
①文件不能动态增长
②要求为一个文件分配连续的存储空间
③不能灵活地删除和插入记录
④出现碎片
链接结构
链接结构原理:将逻辑上连续的文件分散存储在若干个不连续的物理块中。每个物理块中都设有一个指针,指向其后续的物理块。
优点
①解决了碎片问题,提高了磁盘空间利用率
②文件可以动态扩充
缺点
①存取速度慢,不适于随机存取
②可靠性差
索引结构
索引结构原理:为每个文件分配一个索引块(表),把分配给该文件的所有盘块号,都记录在该索引块中
优点
①文件动态增长
②不要求为一个文件分配连续的存储空间
③能灵活地删除和插入记录
④能顺序存取和随机存取
缺点
①引起较多的寻道次数和寻道时间
②索引表本身增加了存储空间的开销
多级索引
当文件太大,其索引块太多时,单机索引方式过于低效。此时,应为这些索引块再建立一级索引,称为第一级索引,即系统在分配一个索引块,作为第一集索引的索引块,将第一块、第二块、...等索引块的盘块号,填入到此索引表中,这样便形成了两级索引分配方式。如果文件非常大时,还可用三级、四级索引分配方式。
第三节 文件目录
文件控制块
文件控制块(FCB)
为文件设置的用于描述和控制文件的数据解耦股。文件管理程序可借助于文件控制块中的信息,对文件施以各种操作
文件目录
文件控制块的有序集合(文件与文件控制块一一对应)称为文件目录,一个文件控制块就是一个文件目录项
文件控制块的内容
1.基本信息类:文件名、文件物理位置、文件逻辑结构、文件物理结构
2.存取控制信息类:文件主的存取权限、核准用户的存取权限一级一般用户的存取权限
3.使用信息类:文件的建立日期和时间、文件上一次修改的日期和时间、当前已打开该文件的进程数、是否被其他进程锁住、文件在内存中是否已被修改但尚未拷贝到盘上等。
文件目录和当前目录
一级目录结构
优点:简单且能实现目录管理的基本功能——按名存取
缺点:查找速度慢、不允许重名
二级目录结构
为改变一级目录文件目录命名冲突,并提高对目录文件检索速度而将目录分为两级:一级成为主文件目录,给出用户名,用户子目录所在的物理位置;二级成为用户文件目录,给出该用户所有文件的FCB
优点:解决了文件的重名问题和文件共享问题,提高搜索速度,查找时间降低
缺点:不太适合大量用户和大量文件的大系统,增加了系统开销
多级目录结构
多级目录结构也称树形目录,产生于UNIX操作系统,已被现代操作系统广泛采用
优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存取权限的控制
缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度
当前目录与目录检索
当前目录:当前正在使用的目录(也称工作目录或值班目录)
目录检索:用户访问文件时,需要进行目录检索,这时用户给出文件名,系统按名寻找目录项
检索方法:全路径名(绝对路径名),相对路径
目录项和目录文件
目录项:一个文件控制块做成一个定长记录,这个记录成为目录项
目录文件:多个文件的文件控制块集中在一起组成了文件的目录。文件目录以文件的形式保存,该文件成为目录文件。
目录项分解法
1.目的:加快目录检索速度
2.分解
目录项分解成两部分:符号目录项(次部)和基本目录项(主部)
符号目录项:包含文件名和文件号
基本目录项:除文件名以外的FCB的其他全部信息
3.优点:减少磁盘的访问次数,提高文件目录检索速度
UNIX的文件目录结构
1.i结点的引入
文件目录通常是存放在磁盘上的,可能要占用大量的潘快。在查找目录的过程中,需要多次启动磁盘。
UNIX系统,采用了把文件名与文件描述信息分开的办法,亦即,使文件描述信息单独形成一个成为索引结点的数据结构,简称i结点
2.i结点的内容:文件主标识符、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间等
3.物理结构:三级索引结构
4.目录查询
查询/usr/ast/mbox为例(2)
查询/usr/ast/mbox为例(1)
FAT文件系统的实现
FAT的含义:文件分配表--File Allocation Table,最初为DOS系统设计,适合小容量的磁盘,分配给文件的所有盘块号都放在该表中。
三个版本:FAT-12、FAT-16、FAT-32
第四节 文件存储空间管理
磁盘空间管理
基本思想:对于磁盘空间的分配和回收的方法
磁盘空间的分配与回收算法
1.位示图
2.空闲块表
3.空闲块链
空闲块成组链接法
1.成组链接的含义:文件区中的所有空闲盘块,被分为若干个组。比如,将每100个盘块作为一组。将每一组含有的盘块总数N和改组所有的盘块号记入其前一组的第一个盘块中。这样,由各组的第一个盘块可链成一条链
2.成组链接法的分配:在空闲块链中,不足100块的组,通常放在内存专用块中,系统初始化时,先把专用块内容读到内存中,需要分配时,就直接在内存中找到哪块是空闲的,然后进行分配,空闲块数减1,如果这一组的第一个空闲块也要分配,子啊分配之前,先把其保存的下一组的空闲盘块号读入内存中,再分配出去,以此类推
3.成组链接法的回收:归还一个空闲盘块时,把要归还的快号登记在当前组中,空闲块数加1,如果当前组已满100块,则把这100个块号写到要归还的那块中,该块就成为新组的第一块
4.成组链接法的优点:分配和回收空闲块时军在内存中查找和修改,只有在一组空闲块分配完成或空闲的磁盘块构成一组时才需要启动磁盘读写,效率高,能快速找到大量空闲盘块的地址,UNIX采取这种方案
第五节 实现文件系统的表目
系统打开文件表
专门用来保存一打开文件的文件控制块,通常放在内存。
共享计数:记录有多少个进程同时打开该文件
修改标志:指文件控制块或i结点的内容是否被修改过,如果修改过,则关闭文件时要将文件控制块写回磁盘。
用户打开文件表
每个用户都有一个“用户打开文件表”,其位置记录在PCB中
系统打开表与用户打开表之间的关系
第六节 文件及目录的操作
典型的文件操作
1.建立文件
2.打开文件
3.读文件
4.写文件
6.删除文件
典型的目录操作
以UNIX系统为例
1.创建目录
2.打开目录
3.读目录
4.创建链接
5.删除链接
6.修改目录名
7.关闭目录
8.删除目录
第七节 文件系统的性能
磁盘高速缓存
基本思想:系统子啊内存中保存一些磁盘块,这些磁盘块在逻辑上属于磁盘,内存的这一区域被称为块高速缓存。运行时,系统检查所有的读请求,查看文件块是否在高速缓存,在,则读;不在,首先启动磁盘,将所需块读到高速缓存,再复制到其他内存区域。若高速缓存已满,按照淘汰算法,选择较少使用的磁盘块换出。块高速缓存要定期写回磁盘,以保存对磁盘块的修改
文件一致性问题
1.记录的成组:把若干个逻辑记录合成一组存储到一个物理块的工作,称为记录的成组。每块中的逻辑记录个数称为“块因子”
实现原理:信息交换以块为单位,故成组需要使用内存缓冲区来完成。缓冲区的长度=记录的长度*块因子。
2.记录的分解:从一组记录中把一个逻辑记录分离出来的操作称为记录的分解
过程:当用户请求读某记录时,文件系统首先找到该记录所在的磁盘块的位置,然后将把含有该记录的物理块全部读入内存缓冲区,从内存缓冲区分解出指定的记录,然后送到用户工作区。
记录成组
优点:提高了磁盘利用率,减少了启动磁盘的次数,提高了系统工作效率
要考虑的因素:定长记录和不定长记录
RAID技术(独立冗余磁盘阵列)
RAID是一种把多块独立的硬盘(物理硬盘)按照不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术
好处
①通过把多个磁盘组织在一起做为一个逻辑卷提供磁盘跨越功能
②通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度
③通过镜像或校验操作提供容错能力
常用
RAID 0
RAID 1
RAID 0+1
RAID 3
RAID 5
第八节 文件共享、保护和保密
文件共享
文件共享的概念:文件共享是指一个文件可以允许多个用户共同使用
文件共享的分类
从共享时间段上看,共享文件有两种使用情况
①文件可以同时使用
②文件不允许同时使用
在文件共享具体方式上,有三种共享方式
①文件被多个用户使用,由存取权限控制
②文件被多个用户使用,但分别用自己的读写指针
③文件被多个程序使用,但共享读写指针
文件共享的实现方法
多级目录结构,常见的是连接法,分两种
①允许目录项链接到任一表示文件目录的结点上
②只允许连接到表示普通文件的节点上
文件的保护
影响文件安全性的主要因素
1.人为因素
2.系统因素
3.自然因素
为了确保文件系统的安全性,可采取的措施
1.建立副本,即把同一个文件保存到多个存储介质上
2.定时转储,即每隔一定时间就把文件转储到其他的存储介质上
3.规定文件的存取权限。可采用树形目录结构和存取控制表两种方法
UNIX的文件使用权限管理方案
1.存储控制矩阵
2.二级存取控制
3.UNIX中的文件存取权限
UNIX中对文件的存取权限划分为两级
在第一级中对访问者或者用户进行分类识别。在第二级中,对文件操作权限的权限设置。
文件的保密措施
文件保密的目的:防止不经文件拥有者授权而窃取文件
常见文件保密措施
1.隐蔽文件目录
2.设置口令
3.使用密码
4.病毒防范
设备管理
第八章 I/O设备管理
第一节 I/O设备的基本概念
I/O设备管理的任务
1.解决I/O设备和PCU速度不匹配的矛盾
2.提供简单易用的接口,实现对设备的统一管理
3.保证设备的安全性
I/O设备分类
1.按设备的使用特性分类:输入设备、输出设备、交互式设备、存储设备
2.按设备的信息组织方式分类:字符设备和块设备
3.按设备使用的可共享性分类:独占设备、共享设备、虚拟设备(虚拟设备是指在一类设备上模拟另一类设备,目的是为了提高设备利用率)
I/O设备管理与文件管理的关系
I/O设备管理对象:I/O设备,是对资源的管理,提供标准接口供用户用这些设备
文件管理对象:设备里面存储的数据和信息,提供一整套对这些资源的管理规则,并且以文件及其配套的概念来具体实施
UNIX系统中:所有设备都当做文件对象来管理
第二节 I/O硬件和I/O软件的组成
I/O硬件组成
硬件角度,I/O硬件由物理设备和电子部件两部分组成。物理设备是达成I/O硬件功能的基础,对操作系统而言更注重的是其电子部件的控制方式
典型的硬件结构图
第一层:处理器和内存,通过总线与接口部件连接
第二层:接口(适配器)
第三层:设备控制器,是一种电子部件,每个设备控制器都有若干个寄存器与处理器进行通信
第四层:外围设备,设备并不直接与CPU进行通信,而是与设备控制器进行通信
I/O软件组成
I/O软件结构:四层:中断处理程序、设备驱动程序、设备独立层软件、用户层软件
设备独立性
除了直接与设备打交道的底层软件之外,其他部分软件并不依赖与硬件。应用程序中所使用的设备,不局限于使用某个具体的物理设备,也成为了设备无关性
优点:当I/O设备更新时,没有必要重新编写全部I/O软件。
功能
1.设备命名
2.设备保护
3.提供一个与设备无关的逻辑块
4.缓冲
5.存储设备的块分配
6.独占设备的分配和释放
7.错误处理
第三节 I/O设备的控制方式
程序控制方式(PIO)
指用户进程直接控制处理器或内存和外围设备通信,这种方式控制者是用户进程
优点:处理器和外设的操作能通过状态信息得到同步,而且硬件结构比较简单
缺点:处理器效率较低,传输完全在处理器控制下完成,对外部出现的异常事件无实时响应能力
中断控制方式
过程
1.处理器通过数据总线发出命令,启动外设工作,当前进程阻塞,调度程序调度其他进程
2.外设数据准备好,置位中断请求触发器
3.若此时接口中断屏蔽其状态为非屏蔽状态,则接口向处理器发送中断请求(IR)
4.处理器接收中断请求,且中断为允许中断状态,则中断判优电路工作
5.中断判优电路对优先级最高的中断请求给予响应(INTR),处理器中断正在执行的其他进程,转而执行中断服务程序
优点
1.处理器与外设并行工作,提高计算机的利用率
2.具有实时响应能力
3.可及时处理异常情况,提高计算机的可靠性
DMA方式
DMA(直接访问内存)方式,是一种完全由硬件执行I/O数据交换的工作方式,数据交换不经过处理器,而直接在内存和I/O设备之间进行
传送方式结构图
传送过程
1.预处理阶段:由处理器执行I/O指令对DMAC进行初始化与启动
2.数据传送阶段:由DMAC控制总线进行传送。当外设数据准备好,发DMA请求, CPU当前机器周期结束,响应DAM请求,DAMC从CPU接管总线的控制权,完成对内存寻址,决定数据传送的内存单元地址,对数据传送字进行计数,执行数据传送的操作。
3.后处理阶段:传送结束, DMAC向处理器发中断请求,报告DMA操作结束。处理器响应中断,转入中断服务程序,完成DMA结束处理工作,包括数据校验,决定是否结束传送等。
优点:操作均由硬件完成,传输速度快;处理器只在初始化和结束时参与,对数据传输基本不干预,可以减少大批量数据传送时处理器的开销;处理器与外设并行工作,效率高。
通道控制方式
1.引入通道的目的
通道是一个特殊功能的处理器,它有自己的指令和程序,可以实现对外围设备的统一管理和外围设备 与内存之间的数据传送。
引入通道的目的是为了进一步减少数据输入输出对整个系统效率的影响。
通道是一个特殊功能的处理器,它有自己的指令和程序,可以实现对外围设备的统一管理和外围设备 与内存之间的数据传送。
引入通道的目的是为了进一步减少数据输入输出对整个系统效率的影响。
2通道的优点
与DMA方式相比,通道方式增加了处理器与通道操
作的并行处理能力;增加了通道之间或同一通道内各设备的
并行操作能力;为用户提供了灵活增加外设的可能性。
与DMA方式相比,通道方式增加了处理器与通道操
作的并行处理能力;增加了通道之间或同一通道内各设备的
并行操作能力;为用户提供了灵活增加外设的可能性。
3.通道的分类
选择通道、数组多路通道、字节多路通道
选择通道、数组多路通道、字节多路通道
4.通道的功能
( 1 )接收处理器的指令,按指令要求与指定的外围
设备进行通信
设备进行通信
( 2 )从内存读取属于该通道的指令,并执行通道程
序,向设备控制器和设备发送各种命令
序,向设备控制器和设备发送各种命令
( 3 )组织外围设备和内存之间进行数据传送,并根
据需要提供数据缓存的空间,以及提供数据存入内存的地址
和传送的数据量。
据需要提供数据缓存的空间,以及提供数据存入内存的地址
和传送的数据量。
( 4 )从外围设备得到设备的状态信息,形成并保存
通道本身的状态信息,根据要求将这些状态信息送到内存的
指定单元,供处理器使用。
通道本身的状态信息,根据要求将这些状态信息送到内存的
指定单元,供处理器使用。
( 5 )将外围设备的中断请求和通道本身的中断请求,
按序及时报告处理器。
按序及时报告处理器。
第四节 设备分配与回收
设备分配与回收
1.数据结构
系统设备表
设备控制表
控制器控制表
通道控制表
2.分配原则
( 1 )要充分发挥设备的使用率,尽可能让设备忙碌,但又要避免由于不合理的分配方法造成的死锁
( 2 )要做到把用户程序和具体物理设备隔离开来,即用户面对的是逻辑设备,而分配程序将在系统把逻辑设备转换成物理设备之后,再根据要求的物理设备号进行分配。
( 3 )设备分配方式:静态分配和动态分配静态分配效率低,动态分配可能死锁
3.分配策略
主要考虑的因素: I/O设备的固有属性、分配算法、
设备分配的安全性以及设备独立性。
设备分配的安全性以及设备独立性。
设备固有属性:独占设备、共享设备、虚拟设备
分配算法:先来先服务、高优先级优先
独占设备的分配
1.设备的绝对号与相对号
绝对号:系统为每一台设备确定的一个编号,用来
区分和识别各种不同类型的外部设备,以便进行管理。
区分和识别各种不同类型的外部设备,以便进行管理。
相对号:由用户在程序中定义的设备编号称为设备
的“相对号”
的“相对号”
二者的对应关系:规定用户使用“设备类相对号"
来提出使用设备的要求,而系统在为用户分配具体设备的
同时,建立设备的“绝对号”与用户使用的“设备类相对
号”的对应关系。
来提出使用设备的要求,而系统在为用户分配具体设备的
同时,建立设备的“绝对号”与用户使用的“设备类相对
号”的对应关系。
2.设备的指定方式:两种方式:绝对号
设备类相对号。
设备类相对号。
使用绝对号的缺点,当指定的设备出现故障,
即使还有其他同类设备,作业的请求仍然得不到满足
必须等待。
即使还有其他同类设备,作业的请求仍然得不到满足
必须等待。
使用设备类相对号的好处:实现了设备的独立
性,即用户程序使用的逻辑设备与程序实际执行时使
用的物理设备无关。
性,即用户程序使用的逻辑设备与程序实际执行时使
用的物理设备无关。
3.独占设备的分配和释放
设备分配表的组成
两部分:设备类表和设备表
两部分:设备类表和设备表
分配过程
①用户作业提出某类外部设备申请
②系统首先检查“设备类表”,
若现存台数能满足请求
则取得该类设备的"设备表”始址;否则等待
若现存台数能满足请求
则取得该类设备的"设备表”始址;否则等待
③系统再依次检查该类设备在设备表中的登记项
④若找到“设备状态”为好,且末分配的设备则准备进
行分配,否则等待
行分配,否则等待
⑤修改设备类表和设备表,进行设备分配
释放过程
系统收回设备时,对该台设备的"设备表”中的
有关登记项进行修改,即把"分配状态”改为"末分配
同时撤销该设备的作业名和设备相对号,最后,在该类
设备的"设备类表”中,把该类设备的现存台数加1。
有关登记项进行修改,即把"分配状态”改为"末分配
同时撤销该设备的作业名和设备相对号,最后,在该类
设备的"设备类表”中,把该类设备的现存台数加1。
共享设备的分配
共享设备可被多个进程共享,但在每个I/O传输的单
位时间内只由一个进程所占用,以块为传输单位,可以交
叉进行,没有明显的申请和释放活动。
位时间内只由一个进程所占用,以块为传输单位,可以交
叉进行,没有明显的申请和释放活动。
使用方法
①申请设备,如设备被占用,则进入设备等待队
列,否则分配设备。
列,否则分配设备。
②启动设备。I/O传输
③释放设备。当设备结束,发出中断信号,系统
唤醒-个等待设备的进程。
第五节 磁盘调度策略
信息输出时间
位置计算:
块号计算: b=k+sx ( j+ixt )
t :每个柱面上的磁道数
S :每个盘面上的扇区数
i:柱面
j:磁头
k:扇区
块号计算: b=k+sx ( j+ixt )
t :每个柱面上的磁道数
S :每个盘面上的扇区数
i:柱面
j:磁头
k:扇区
移臂调度及调度算法
移臂调度
根据访问者指定的柱面位置来决定执行次序的调
度,称为“移臂调度”
度,称为“移臂调度”
目的:尽可能减少操作中的寻找时间
常用算法:先来先服务调度算法、最短寻找时间
优先调度算法、电梯调度算法、单向挂描调度算法
优先调度算法、电梯调度算法、单向挂描调度算法
调度算法
1先来先服务调度算法:根据进程访问磁盘的先后次序进行调度.
优点:公平和简单
缺点:效率低
2.最短寻找时间优先调度算法
思想:
选择这样的进程其要求访问的柱面号,与当前磁
头所在的柱面距离最近,以使每次的寻找时间最短。
选择这样的进程其要求访问的柱面号,与当前磁
头所在的柱面距离最近,以使每次的寻找时间最短。
优点:
平均每次磁头移动距离明显低于FCFS的距离,
固有较好的寻道性能,过去曾- -度被广泛使用。
平均每次磁头移动距离明显低于FCFS的距离,
固有较好的寻道性能,过去曾- -度被广泛使用。
缺点:会出现饥饿
3.电梯调度算法(扫描算法)
思想:
从移动臂当前位置开始沿着臂的移动方向去选择
离当前移动臂最近的那个柱面访问,如果沿臂的移动方
向无请求,就改变臂的移动方向再选择。
从移动臂当前位置开始沿着臂的移动方向去选择
离当前移动臂最近的那个柱面访问,如果沿臂的移动方
向无请求,就改变臂的移动方向再选择。
4.单向扫描调度算法
思想:
不考虑访问者等待的先后次序,总是从0号柱面开
始向里扫描,按照各自所需要访问的柱面位置的次序去
选择访问者。当移臂到达最后一个柱面后,立即返回0号
柱面,再次进行扫描。
不考虑访问者等待的先后次序,总是从0号柱面开
始向里扫描,按照各自所需要访问的柱面位置的次序去
选择访问者。当移臂到达最后一个柱面后,立即返回0号
柱面,再次进行扫描。
旋转调度优化
旋转调度
在移动臂定位后,若有若千个访问者等待访问该柱面的情况下,若从减少输入输出操作总时间为目标出发,应该优先选择延迟时间最短的访问者去执行。
根据延迟时间来决定执行次序的调度称为"旋转调度”
根据延迟时间来决定执行次序的调度称为"旋转调度”
旋转调度时应分析下列情况
①若干访问者请求访问同一
磁道上的不同扇区
磁道上的不同扇区
②若干访问者请求访问不同
磁道上的不同编号的扇区
磁道上的不同编号的扇区
③若干访问者请求访问不同
磁道上的具有相同编号的扇区
磁道上的具有相同编号的扇区
①②总是为首先到达读写
磁头位置下的扇区进行读写操作;
③可任意选择一个读写磁头。
磁头位置下的扇区进行读写操作;
③可任意选择一个读写磁头。
信息的优化分布
记录在磁道上的排列方式也会影响磁盘的输入输出操作时间
第六节 缓冲技术
缓冲的引入
1.缓和CPU与I/O设备间速度不匹配的矛盾
2.减少外部中断次数和处理器进行中断处理所花费的时间
3.解决DMA或通道出现的瓶颈问题
缓冲的种类
单缓冲
在I/O设备和处理器之间设置一个缓冲区
双缓冲
在I/O设备和处理器之间设置两个缓冲区
多缓冲
具有多个缓冲区,其中一部分专门用于输入,另一个部分专门用于输出
缓冲池
把多个缓冲区连接起来统一管理,每个缓冲区既可以用于输入,也可以用于输出
缓冲池管理
缓冲池的组成
三个队列
空缓冲队列emq
输入队列inq
输出队列outq
四种工作缓冲区
用于收容输入数据的工作缓冲区
用于提取输入数据的工作缓冲区
用于收容输出数据的工作缓冲区
用于提取输出数据的工作缓冲区
缓冲池的操作
申请缓冲区:getbuf
收回缓冲区: put_ buf
选取缓冲区: take_ buf,由get_ buf调用
插入缓冲队列: add_ buf ,由put_ buf调用
第七节 虚拟设备技术
虚拟设备的实现原理--SPOOLing系统工作原理
工作原理
①输入程序模块 ,在作业执行前就利用慢速设备将作业预先输入到后援存储器(如磁盘、磁鼓成为输入井) ,称为预输入。
②作业进入内存后,数据直接从输入井取出
③作业输出数据时,把数据写入输出井,称为缓输出。待作业全部完成后,再由外部设备输出全部数据
SPOOLing的组成和实现
组成
2.SPOOLing系统的实现--打印机的值班进程
SPOOLing技术的使用:当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给用户进,假脱机管理进程只为它做两件事:①在输出井中为之请求一个空闲磁盘块区并将要打印的数据送入其中。②再为用户进程申请-张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂在请求打印队列上。
打印输出过程:
如果打印机空闲,假脱机打印进程将从请求打印队列的队首取出一-张请求打印表,根据表中的要求将要打印的数据,从输出井传送到内存缓冲区,再由打印机进行打印.
如果打印机空闲,假脱机打印进程将从请求打印队列的队首取出一-张请求打印表,根据表中的要求将要打印的数据,从输出井传送到内存缓冲区,再由打印机进行打印.
结论:把一台独占设备改造为可为多个进程共享的设备, 实现了虚拟设备的功能。
对每个用户而言,系统只是即时将数据输出到缓冲区,并没真正被打印,只是让用户感觉系统已为他打印。其真正的打印操作,是在打印机空闲且该打印任务在等待队列中已排到队首时进行的,并且,打印操作本身也是利用CPU的一个时间片,没有使用专门门的外围机。这一过程是用户不可见的。
对每个用户而言,系统只是即时将数据输出到缓冲区,并没真正被打印,只是让用户感觉系统已为他打印。其真正的打印操作,是在打印机空闲且该打印任务在等待队列中已排到队首时进行的,并且,打印操作本身也是利用CPU的一个时间片,没有使用专门门的外围机。这一过程是用户不可见的。
操作系统概论
第一章 操作系统概论
第一节 操作系统的概念
计算机系统
定义 计算机系统是一种可以按用户的要求接收和存储信息、自动进行数据处理并输出结果信息的系统
分类
广义 机械式系统和电子式系统
电子式系统 模拟式和数字式计算机系统
组成 硬件(子)系统和软件(子)系统
计算机系统的资源
硬件资源
软件资源
定义解析
1.组织和管理计算机系统中的硬件资源和软件资源
2.“有效” 指操作系统在管理计算机资源时要考虑系统运行的效率和资源的利用率
3.“合理” 指把操作系统要“公平”对待不同的用户程序,保证系统不发生“死锁”和“饥饿”的现象
4.“方便” 指操作系统的人机界面要考虑到用户使用界面和程序接口两个方面的易用性、易学性和易维护性
操作系统的特征
1.并发性
2.共享性
3.随机性(不可预知性)
操作系统的观点
软件的观点
外在特定:接口
内在特性:与硬件交互
资源管理的观点
操作系统负责登记谁再使用什么样的资源,系统中还有哪些资源空闲,当前响应了谁对资源的请求,以及回收那些不再使用的资源等
进程的观点
把操作系统看做由多个可以同时独立运行的程序和一个队这些程序进行协调的核心
虚机器的观点
在操作系统的支持下,用户不需要直接使用硬件机器(裸机),而是通过操作系统提供的各种手段来控制和使用计算机
服务提供者的观点
从用户的角度,站在操作系统之外观察操作系统,认为该服务提供者为用户提供了比裸机功能更强、服务质量更高、更方便灵活的虚拟机
操作系统的功能
进程管理
进程管理的实质:对中央处理器进行管理。或者成为处理机管理
多道程序技术:多个程序同时放入内存如果一个程序因为等待某个条件而不能运行,就把处理器专用权转交给另一个可运行程序
进程的引入:为了描述多道程序的并发而引入
进程的简单定义:一个程序的运行过程
进程管理的内容:进程控制、进程同步、进程间通信、调度
存储管理
任务:管理计算机内存的资源
功能
①内存的分配与回收
③内存扩充
文件管理
任务:有效地支持文件的存储、检索和修改等操作,解决文件的共享、保密和保护问题,以便用户方便、安全地访问文件
功能
①文件存储空间的管理
②目录管理
③文件系统的安全性
设备管理
设备管理的含义:指计算机系统中除了处理器和内存意外的所有输入、输出设备的管理
功能:负责外部设备的分配、启动和故障处理
采用的技术:中断技术、通道技术、虚拟设备技术、缓冲技术,尽可能发挥设备和主机的并行能力
用户接口
从用户观点看,操作系统是用户与计算机之间的接口
任务:为用户提供一个使用系统的良好环境,使用户能有效地组织自己的工作流程,并使整个系统高效运行
第二节 操作系统的体系结构
windows操作系统的体系结构
内核
功能:线程调度、陷入处理和异常调度、中断处理和调度、多处理器同步、供执行体使用的基本内核对象
硬件抽象层HAL
系统可移植性的关键部分,为运行在windows操作系统上的硬件平台低级接口,隐藏了各种与硬件有关的细节,如I/O接口等专用的和依赖与计算机平台的函数
执行体
属于内核,以系统函数的形式提供了系统的服务,可通过win32api进行访问
系统进程和系统线程
执行系统代码
unix操作系统的体系结构
内核层
是操作系统管理和控制中心,常驻内存。有两种接口:内核与硬件的接口和内核与shell的接口
内核本身分为两部分:进程控制子系统和文件子系统
系统层
内核层与应用层之间,供程序员开发调用,包括进程管理、文件管理、中断状态
应用层
面向用户操作的界面
linux操作系统的体系结构
四个部分:内核、shell、文件系统和应用程序
Android操作系统的体系结构
四个部分
从低到高:应用程序层、应用框架层、系统运行库层和linux内核层
第三节 操作系统的发展
手工阶段
监控程序
多道批处理
分时与实时操作系统
unix通用操作系统
个人计算机操作系统
Android操作系统
第四节 操作系统的分类
根据用户界面和功能特征分类
三种基本类型
批处理系统
特点:呈批处理,用户不能干预自己作业的运行
目标:系统资源利用率高,作业吞吐率高
分类:简单批处理和多道批处理
一般指令和特权指令
操作系统的运行模式:用户模式和特权模式
处理器的状态:目态和管态
机器指令:一般指令和特权指令
系统调用:用户程序不能直接使用特权指令,它们必须向操作系统请求这些功能,这些功能通过系统调用完成
系统调用的过程
首先,当系统调用发生时,由中断或异常处理程序,把控制流程转移到监控程序内的一些特定位置,处理器模式变为特权模式
其次,由监控程序执行被请求的功能
最后,恢复现场,运行模式转变为用户模式,控制权交给用户程序
分时系统
特点
多路性
交互性
“独占性”
及时性
实时系统
分类
硬实时操作系统
软实时操作系统
能力
实时时钟管理
过载防护
高可靠性
根随着体系结构的发展
新类型
个人操作系统
网络操作系统
分布式操作系统
嵌入式操作系统
第五节 操作系统的设计
操作系统的设计过程
功能设计:确定所涉及的操作系统应具备哪些功能以及操作系统的类型。跟目标有关
算法设计:选择和设计蛮族系统功能的算法和策略,并分析和估算其效能
结构设计
操作系统的设计目标
可靠性
高效性
易维护性
可移植性
安全性
简明性
操作系统的结构设计
操作系统结构研究的目标
系统模块化
模块标准化
通信规范化
操作系统的结构
常见的操作系统结构
整体式结构
层次是结构
微内核(客户/服务器)结构
操作系统运行环境
第二章 操作系统运行环境
第一节 处理器
处理器的构成与基本工作方式
处理器一般由运算器、控制器和一系列寄存器一级高速缓存构成
运算器实现算数与逻辑运算
控制器控制程序运行流程
寄存器用于处理器执行指令的过程中暂存数据、地址及指令信息
高速缓存:为CPU何内存提供一个告诉的数据缓存区域
处理器中的寄存器
两类寄存器
用户可见寄存器,由变异程序分配,减少程序运行时访问内存的次数
控制和状态寄存器,用来控制处理器的操作
指令执行的基本过程
两个步骤
读取指令,并将程序计数器的值变成下一条指令的地址
指令放入指令寄存器中,处理器解释并执行该指令
指令的分类
访问存储器指令、I/O指令、算术逻辑指令、控制转移指令、控制器控制指令
特权指令和非特权指令
特权指令
在操作系统中那些只能由操作系统使用的指令
不允许一般用户使用
比如:设置程序状态字、启动某设备、设置中断屏蔽字等
非特权指令
普通用户使用的指令
处理器的工作状态
管态和目态
管态:操作系统管理程序运行时的状态,又称内核态、系统态等,具有较高的特权
目态:一般用户程序运行时的状态,又称用户态、普通胎,具有较低特权
处理器工作状态的转换
目态到管态的转换:唯一途径是通过终端。
管态到目态的转换:可通过设置PSW指令,实现从操作系统到用户程序的转换
限制用户程序执行特权指令
程序状态字(PSW)
为了解决处理器当前工作状态的问题,所有的处理器都有一些特殊寄存器,用以表明处理器当前的工作状态。用来指示处理器状态的寄存器,称为程序状态字(PSW)
程序状态字一般包括
CPU的工作状态代码
条件码
中断屏蔽码
第二节 计算机系统硬件部件
存储系统
存储器的类型
类型
读写性存储器(RAM),用来存储随机存储的程序和数据
只读存储器(ROM),存放一些固化的程序
存储分块
存储的最小单位:位(bit)
最小编制单位:字节
分块:为了分配和管理方便,将内存划分为大小相等的块(物理页Page,以块为单位分配内存空间,大小一般为512B、1KB、4KB、8KB等
存储器的层次结构
容量、速度和成本的匹配
存储访问局部性原理
存储器保护
多道程序设计系统中,保证每个程序独立运行、互不干扰,称为存储器保护
方法:界地址寄存器
I/O部件
I/O结构
通道
DMA技术
缓冲技术
时钟部件
功能
发现死循环,防止机时的浪费
分时系统中,时钟间隔实现时间片轮转执行
实时系统中,按要求的时间间隔控制设备
定时唤醒各个外部事件
记录各种设备的使用时间和某外部事件发生的时间间隔
及记录用户和系统所需的绝对时间,即年、月、日
分类
硬件时钟和软件始终
用途分类:绝对时钟和相对时钟
第三节 中断机制
中断和异常的概念
中断和异常
中断:指处理器对系统中或系统外发生的异步事件的响应
异步事件:指无一定时序关系的随即发生的事件,如外部设备完成了数据传输任务,某一实时控制设备出现异常情况等
中断源:引起中断的事件成为中断事件或中断源
中断请求:中断源向处理器发出的请求信号
中断处理程序:处理中断事件的程序
断点:发生中断时正在执行的程序的暂停点
中断响应:处理器暂停当前程序转而处理终端的过程
中断返回:中断处理程序结束后回复原来程序的执行
中断向量表:为了使得中断装置可以找到恰当的中断处理程序,专门设计了中断处理程序的入口地址映射表,又称中断向量表
异常:由正在执行的指令引发的中断
中断与异常的分类
典型的中断
时钟中断
输入输出中断
控制台终端
硬件故障中断
典型的异常
程序性中断
访管指令异常
中断系统
中断请求的接收
中断响应
处理器的控制部件中有中断信号扫描结构,它在每条指令执行周期内的最后时刻扫描中断寄存器,查看是否有中断信号到来。
中断请求响应过程
处理器接收中断信号
保护现场
分析中断向量
将处理器的PC值置为中断程序的入口地址
调用中断处理程序
中断处理
中断信号被接收和响应之后,进行中断处理
中断处理结束后,中断返回,回复系统上下文,原有程序继续运行,处理器状态也从管态恢复成目态
步骤
①接收和响应中断
②保护中断断点现场
③分析中断向量,调用中断处理程序
④中断处理结束恢复现场,原有程序继续运行
几种典型中断的处理
①I/O中断
②时钟中断
③硬件故障终端
④程序性中断
⑤系统服务请求
中断优先级、中断屏蔽与中断嵌套
多级中断与中断优先级
作用
对各类终端信号依据其紧急程度和重要性划分级别,系统优先处理最紧急或最重要的任务
解决如果有多个中断信号同时到达,如何选择首个被处理的中断信号的问题
中断屏蔽
整个中断系统中,允许或禁止中断系统对某些类别中断的相应。PSW中设计有中断屏蔽位
中断嵌套
一般的计算机系统都有多个中断源,如果一个中断处理的过程中又发生了中断,有两种策略处理
1.当处理一个中断时禁止其他中断
2.中断嵌套。即中断按照优先级划分,允许优先级高的中断比优先级低的中断处理过程,优先进行处理
第四节 系统调用
系统调用的简介
系统调用概念
就是用户在程序中调用操作系统提供的一些子功能,是操作系统提供给编程人员的唯一接口
是一种特殊的过程调用,由特殊的机器指令实现,这条指令将系统转入管态
系统调用与函数调用的区别
1.运行在不同状态
2.状态的转换
3.返回问题
4.嵌套调用
系统调用的分类
1.进程控制类
2.文件操作类
3.进程通信类
4.设备管理类
5.信息维护类
系统调用与库函数、API、内核函数的关系
系统调用的处理过程
陷入(trap)
在系统中为控制系统调用服务的机构称为异常处理机构
陷入或异常指令(访管指令)
把由于系统调用引起处理器中断的指令称为陷入或访管指令
进程管理
第三章 进程与线程
第一节 多道程序设计
程序的顺序执行
顺序程序设计
程序是在一个时间上按严格次序前后相继的操作序列
计算机也是以顺序方式工作的:计算机依次执行一条指令、对内存一次访问一个字节或字,对外部设备一次传送一个数据块等
我们把一个具有独立功能的程序独占处理器直到得到最终结果的过程称为程序的顺序执行
程序顺序执行的特点
顺序性
封闭性
程序执行结果的确定性
程序执行结果的可再现性
程序的并发执行
所谓病发执行,是指两个或两个以上程序在计算机系统中,同时处于已开始执行且尚未结束的状态
能够参与并发执行的程序称为并发程序
并发程序的执行和程序顺序执行的特征不同
并发执行的特征
1.在执行期间并发程序相互制约
2.程序与计算不再一一对应,允许多个程序共享同一个程序段
3.并发程序的执行结果不可再现,并发程序与其执行的相对速度以及并发执行的多道程序之间的相互关系有关
4.程序的并行执行和程序的并发执行,程序的并发执行时宏观上的同时,微观是顺序。并行则是微观上是同时的
多道程序设计
多道程序环境特点
多道程序设计:就是允许多个程序同时进入内存并运行。根本目的是提高整个系统的效率
吞吐量:是指单位时间内系统所处理进程的道数,是衡量系统效率的尺度
1.独立性
2.随机性
3.资源共享性
3.多道程序设计环境缺陷
1.可能延长程序的执行时间
2.系统效率的提高有一定限度
第二节 进程
进程的定义
进程是具有一定独立功能的程序在某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位
分为
系统进程
用户进程
进程与程序的联系和区别
1.进程和程序的联系
程序是构成进程的组成部分之一,一个进程的运行目标是执行它所对应的程序
进程=程序+数据+进程控制块
2.进程和程序的区别
①程序是静态的,进程是动态的
②二者是多对多的关系
可再入程序
一个能够被多个用户同时调用的程序称作是“可再入”程序
可再入程序必须是纯代码,程序在执行过程中不会修改自己的代码,必须与数据区隔离
进程的特征
1.并发性
2.动态性
3.独立性
4.交往性
5.异步性
6.结构性
进程的状态与转换
三状态进程模型
1.运行状态
2.就绪状态
3.等待状态(阻塞状态)
状态转换
1.就绪-->运行
2.运行-->就绪
3.运行-->等待
4.等待-->就绪
五状态进程模型
1.运行状态
2.就绪状态
3.阻塞状态
4.创建状态
5.结束状态
七状态进程模型
进程控制块
为了便于系统控制和描述进程的活动过程,在操作系统核心中定义了一个专门的数据结构,称为PCB
PCB的作用
描述进程的基本情况以及进程的运行变化过程
PCB是进程存在的唯一标志,当系统创建一个进程时,为进程设置一个PCB,再利用PCB对进城进行控制和管理。撤销进程时,系统收回PCB,进程也随之消亡
PCB的内容
1.调度信息
供进程调度时使用,包括进程名、进程号、地址空间信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等
2.现场信息
刻画了进程的运行情况,主要是CPU寄存器的信息,如程序状态字、时钟、界地址寄存器等。当程序中断时,需要保存现场信息。
进程的组成
进程由程序、数据和进程控制块组成
PCB是“灵魂”
程序和数据是“躯体”
PCB组织
线性方式
索引方式
链接方式
进程的队列
就绪队列
等待队列
运行队列
进程队列的组成
进程队列实际是PCB的链接,链接分为:单向链表和双向链表
出队:一个进程从所在队列退出
入队:一个进程排入到指定队列
插队:一个进程插入到某个进程队列的指定位置
进程控制
进程控制
对进程整个生命周期中各种状态之间的转换进行的控制。由原语实现。
原语:就是由若干条指令组成的,用于完成一定功能的一个过程,是一个不可分割的基本单位,即原语在执行过程中不允许被中断。原子操作在系统态下执行,常驻内存
进程控制原语
1.创建原语
一个进程可以使用创建原语创建一个新的进程,前者称为父进程,后者称为紫禁城,紫禁城又可以创建新的进程,从而形成一个进程家族
主要任务:建立进程控制块PCB
过程:先申请一控线PCB,然后将有关信息填入PCB,置进程状态为就绪状态,插入就绪队列
2.撤销原语
当一个进程完成任务后,就应当撤销它,以便及时释放它所占用的资源
撤销的实质:撤销进程控制块PCB
过程:找到要被撤销进程的PCB,将它从所在队列中消去,撤销属于该进程的一切“子进程”,释放所占全部资源,并消去被撤销进程的PCB
3.阻塞原语
若某个进程的执行过程中需要I/O操作,则该进程调用阻塞原语将其从运行状态转换为阻塞状态
过程:产生中断,把处理器的当前状态保存在PCB的现场信息中,当前进程置为等待态,插入等待队列
4.唤醒原语
一个进程因为等待某事件的发生而处于等待状态,当该事件发生后,就用唤醒原语将其转换为就绪状态
过程:在等待队列中找到该进程,将进程的当前状态置为就绪状态,然后将它从等待队列中撤出兵插入到就绪队列中排队,等待调度执行
第三节 线程
线程的基本概念
进程的属性
一个可拥有资源的独立单位
可独立调度和分派的基本单位
程序并发执行所需付出的时空开销
创建进程的开销
内存空间、I/O设备、PCB
撤销进程的开销
对其资源做回收
进程切换的开销
保留CPU环境,设置新进程CPU环境
引入线程的目的
引入进程是为了使多个进程并发执行
引入线程是为了减少程序并发执行时所付出的时空开销
什么是线程
在引入线程的操作系统中,线程是进程中的一个实体,是处理器调度和分配的基本单位
线程基本上不拥有系统资源,只拥有少量在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的的全部资源
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程也可以并发执行
线程的属性
1.每个线程有一个唯一的标识和一张线程描述表(TCB)
2.不同的线程可以执行相同的程序
3.同一个进程中的各个县城共享该进程的内存地址空间
4.线程是处理器的独立调度单位,多个线程可以并发执行
5.一个线程具有生命周期,经历等待、就绪、运行等状态变化
引入线程的好处
1.创建一个新线程花费时间少
2.线程之间的切换花费时间少
3.线程之间通信无需调用内核,不需要额外的通信机制,使同心简单、信息传送速度快
进程和线程的比较
1.调度
线程作为调度的基本单位,同进程中线程切换不引起进程切换,当不同进程的线程切换时才引起进程切换
2.并发性
一个进程间的多个线程可以并发,不同进程的多个线程也可以并发执行
3.拥有资源
线程仅拥有隶属进程的资源;进程是拥有资源的独立单位
4.系统开销
线程低,进程高
线程实现机制
1.用户级线程
仅存在于用户空间,由用户层中的线程库提供对线程的创建、撤销、切换,以及线程之间的同步与通信等的支持,而无需内核的支持
2.内核级线程
由OS直接支持,更灵活,方便
3.混合方式
既有用户级线程又有内核级线程
书上有例子
第四节 进程调度
概述
进程调度的主要功能
1.记录系统中所有进程的执行状况
2.根据一定的调度算法,从就绪队列中选出一个进程,准备把处理器分配给它
3.分配处理器
进程调度的时机
1.正在执行的进程运行完毕
2.正在执行的进程由于某种错误而终止运行
3.时间片完
4.正在执行的进程调用阻塞原语将自己阻塞起来
5.创建了新的进程
6.正在执行的进程调用了唤醒原语操作激活了等待资源的进程
处理器的调度方式
1.非抢占式
一旦把处理机分配给某进程后,就一直让它运行下去,绝不会因为时钟中断,或其他任何原因,去抢占该正在运行进程的处理机,直至该进程完成,或发生某事件而被阻塞时,才把处理机分配给其他进程
2.抢占式
允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配给该进程的处理机,重新分配给另一进程
抢占方式能满足实时任务的需求。但抢占方式比较复杂,所需付出的统开销也较大
调度算法设计原则
进程行为
I/O密集型和计算密集型
一般先调度I/O密集型再调度计算密集型
系统分类
批处理、交互式、实时系统
调度算法的设计目标
共同目标:资源利用率高、公屏、平衡、强制执行策略
批处理目标:平均周转时间段、系统吞吐量高、处理机利用率好
分时系统目标:响应时间快、均衡性
实时系统目标:截止时间的保证、可预测性
进程调度算法
1.先来先服务
1.算法思想:总是把处理及分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便执行下去,直到该进程完成或阻塞时,才释放处理机
2.优点:实现简单
3.缺点:没考虑进程的优先级
2.最短进程优先
1.算法思想:该算法从就绪队列中选出:“下一个CPU执行期”最短的进程,位置分配处理机
2.优点:所有进程都同时可运行时算法最优
3.最短剩余时间优先算法
1.算法思想:总是选择剩余时间最短的那个进程运行。当一个新的进程到达时,其整个时间同当前进程的剩余时间作比较,如果新进程时间更少,则当前进程被挂起,运行新进程
4.最高响应比优先算法
1.算法思想:总是优先调度响应比最大的进程
2.性能:先来先服务和最短进程优先算法的折中
5.轮转算法
1.算法思想:最早来自于分时系统
将处理器的处理时间划分成一个个时间片,就绪队列中的诸进程轮流运行一个时间片,当时间片结束时,就强迫运行程序让出处理器,该进程进入就绪队列,等待下一次调度
2.影响时间片设置的因素
①系统响应时间
②就绪进程数目
③计算机的处理能力
小结:时间片设得太短,导致过多的进程切换;太长,响应时间变长。合理的时间片20-50ms
6.最高优先级算法
1.算法思想:为每个进程设立一个优先级,每次将处理器分配给具有最高优先级的就绪进程
2.可以保证紧迫性进程优先运行
7.多级反馈队列算法
结合了先进先出、时间片轮转、可抢占式最高优先级调度算法
1.算法思想要点
①被调度队列的设置
②在同一个队列内的调度原则
③在不同调度队列之间的调度原则
④进程优先级的调整原则
第五节 系统内核
内核的概念
内核的概念
为了提高系统的运行效率、保护系统的关键部分不被破坏,一般把操作系统中提供支持系统运行的各种基本操作和基础功能的一组程序模块集中安排,形成一个操作系统的核心,成为系统核心或内核,简称内核
内核的位置
内核本身不是进程,是系统进程和用户进程赖以活动的基础,一般内核常驻内存,操作系统其他部分则根据需要调进或调出内存
内核的功能
1.中断处理程序
2.进程同步与互斥
3.进程调度
4.进程控制与通信
5.存储管理
6.时钟管理
内核的各种功能通过执行原语操作来实现
第四章 进程同步与互斥
第一节 进程间相互作用
相关进程和无关进程
相关进程:在逻辑上具有某种联系的进程
无关进程:在逻辑上没有联系的进程
与时间有关的错误
对于相关进程来说,可能有若干并发进程同时使用共享资源,即一个进程一次使用未结束,另一进程也开始使用,形成交替使用共享资源
结果:形成与时间有关的错误
第二节 进程同步与互斥
进程的同步
是指进程之间一种直接的协同工作关系,一些进城相互合作共同完成一项任务
直接制约关系:A鶸没有把记录读入缓冲区,B等待;反之,B若没有从缓冲区去除记录,A等待
进程的互斥
在系统中,许多进程常常需要共享资源,而这些共享资源往往需要排他性的使用, 即一次只能为一个进程服务,因此,各进程间只能互斥使用这些资源,进程间的这种关系就是进程的互斥
进程间的互斥是一种间接制约关系
临界区
临界资源
若在系统中的某些资源一次只允许一个进程使用,则这类资源称为临界资源或共享变量
临界区
访问临界资源的那段代码
相关临界区
如果有若干进程共享某一临界资源,则该临界区称为相关临界区
相关临界区的调度使用原则
当临界资源空闲时,鶸有一个进程要求进入临界区,应允许它立即进入——有空让进,有效利用资源
若有一个进程已在临界区,其他要求进入临界区的进程必须等待。——无空等待,互斥进入
当没有进程在临界区,而同时有多个进程要求进入临界区,选择其一进入,其他等待。——多种择一
任一进程进入临界区的要求应在有限时间满足——有限等待,避免死等
处于等待状态的进程应放弃占用处理器——让权等待,避免忙等
第三节 信号量及P、V操作
为保证金程的同步与互斥,系统中应该有解决这些问题的机制,称为同步机制
实际上,同步是并发进程之间的执行时序上的一种相互制约关系
进程互斥的实质也是同步,可把进程互斥看做是一种特殊的进程同步
同步机制有两类:硬件同步机制、软件同步机制
信号量
信号量的提出
P、V操作的使用
放在程序中,用P(S)和V(S)表达,实现进程间的同步和互斥
P、V操作
P操作定义
V操作定义
信号量与P、V操作的物理含义
信号量S表示某类可用的资源。对于不同的资源,用不同的信号表示
S>0时,S表示某类资源的可用数量
S<0时,其绝对值表示排在S等待队列中进程的数目
执行一次P操作,表示请求一个资源
执行一个V操作,表示进程释放一个资源
用P、V操作实现进程之间的互斥
用P、V操作实现进程之间的同步
信号量及P、V操作总结
1.P、V操作必须成对出现
2.互斥操作时,P、V操作出现在同一个进程
3.同步操作时,P、V操作出现在不同进程
4.既有同步,又有互斥操作时,同步操作信号量P操作在前,互斥信号量P操作在后,V操作顺序不限
第四节 经典的进程同步问题
简单生产者——消费者问题
多个生产者——消费者问题
读者——写者问题
同步与互斥的综合应用
例4-1 路口单双号交通管制
第五节 管程
管程的提出
信号量及PV操作的缺点
1.程序易读性差
2.程序不利于修改和维护
3.正确性难以保证
为了更易于编写正确的程序,引入管程
管程的概念及组成
定义
是一个由过程、变量及数据结构等组成的集合,它们组成一个特殊的模块或软件包。进程可在任何需要的时候调用管程中的过程
组成
管程名称、共享数据说明、对数据进行操作的一组过程、对共享数据赋初值的语句
第六节 进程通信
共享内存
1.原理:在相互通信的进程之间设有一个公共内存区,一组进程向该公共内存中写。另一组进程从公共内存中读,通过这种方式实现两组进程之间的信息交换
消息机制——消息缓冲
消息缓冲通信原理:进程间的数据交换,是以格式化的消息(也称为报文)为单位的。程序员直接利用操作系统提供的一组通信命令(原语),实现大量数据的传递,通信过程对用户是透明的。
消息机制——信箱
信箱通信原理:为了实现进程间的通信,可以设计一个通信机构--信箱,以发送信件和接收信件为进程间通信的基本方式
管道通信
所谓“管道”,是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件
第五章 死锁
第一节 死锁的产生
死锁的定义
指在多道程序系统中,一组进程中的每一个进程均无限期地等待被该组进程中的另一个进程所占用且永远不会释放的资源
处于死锁状态的进程成为死锁进程
产生死锁的原因
1.资源的概念
1.永久性资源(可重用资源)
2.临时性资源(消耗性资源)
2.产生死锁的原因
1.竞争资源:系统在资源分配时出现失误、进程间对资源的相互争夺而造成僵局
2.进程推进顺序不合理
产生死锁的四个必要条件
对于永久性资源,产生死锁的四个必要条件
互斥条件
不可剥夺条件
请求和保持条件
循环等待条件
解决死锁的方法
预防死锁
避免死锁
检测与解除死锁
忽略死锁
第二节 死锁预防
死锁预防的概念
死锁预防:是指任何系统操作前(如分配资源、调度进程等),事先评估系统的可能情况,严格采取措施,使得产生死锁的四个必要条件不成立
基本思想:防患于未然
具体做法:破坏产生死锁的四个必要条件之一
静态的资源分配策略
分配原则:一个进程在申请新资源的要求的补刀满足时,便处于等待状态,而处于等待状态的进程的全部资源可以被剥夺
两个策略
1.破坏不可剥夺条件
两种方法
1.若一个进程已占用了某些资源,又要申请新的资源,在得不到新资源的同时释放原有资源,然后等待
2.若一个进程申请新资源,首先系统检查该资源是否可用,如果可用则分配。否则从其他等待进程剥夺资源分配给该进程,如果没有等待进程占有该资源,该进程必须等待,在等待过程中,资源也可能被剥夺
2.破坏请求和保持条件
每个进程必须在开始执行前就申请它所需的全部资源,仅当系统能满足进程的全部资源请求且把资源一次性分配给进程后,该进程才能开始执行
资源的有序分配法
策略:破坏循环等待条件
方法:对系统所有资源类型进行线性排序,并赋予不同的序号。进程申请资源时,必须严格按照资源编号的顺序进行。即一个进程先得到编号小的资源,才能申请编号大的资源。释放资源时,次序相反。
一般原则:较为紧缺、稀少的资源的编号较大
破坏循环等待条件
第三节 死锁避免
死锁避免
基本思想:系统对进城发出的每一个系统能够满足的资源申请进行动态检查,并根据检查结果决定是否分配资源;如果分配后系统不会发生死锁,则予以分配,否则不予分配
和死锁预防的区别:死锁预防是破坏产生死锁的四个必要条件之一,严格的防止死锁的出现。而思索避免是在系统运行过程中注意避免死锁的发生,即使死锁的必要条件存在,也不一定发生死锁
安全状态与安全序列
安全状态
如果操作系统能保证所有的进程在有限时间内得到所需的全部资源,则称系统处于“安全状态”,否则说系统是不安全的
判别:如果存在一个由系统中所有进程构成的安全序列{P1,P2,...,Pn},则系统处于安全状态
安全序列
系统能按某种进程推进顺序{P1,P2,...,Pn}为每个进程Pi分配其所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利完成。此时称{P1,P2,...,Pn}为安全序列
安全状态与不安全状态的关系:系统中不存在安全序列,则称系统为不安全状态
银行家算法
原意:确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况
操作系统中:保证系统不会进入不安全状态的算法
第四节 死锁的检测与解除
死锁的检测和解除
1.死锁的检测和解除
假如系统为进程分配资源时,不采取任何限制性措施来避免和预防死锁,而是在操作系统运行过程中,不断地监督程序的执行和资源占用情况,判断是否发生死锁,一旦发生死锁,采取专门的措施解除思索,并以最小代价使系统恢复正常
2.死锁检测时机
1.检测的实质:检测算法检测是否存在“循环等待”条件
2.时机
①一次资源分配后
②每次调度后
③定时器定时运行检测程序
④当某个进程长期处于阻塞状态或阻塞程序过多时
死锁检测的算法
算法规则:当人以进程Pj申请一个已被占用的资源Ri时,进行死锁检测,反复查找资源分配表和等待进程表,来确定Pj对资源Ri的请求是否导致形成环路,若是,出现死锁
解除死锁的方法
1.剥夺资源:一旦死锁,挂起一些进程,剥夺它们占有的资源给死锁进程,以解除思索
2.撤销进程:撤销部分死锁进程,将它们占有的资源分配给另一些死锁进程,直到死锁解除为止。可以一次撤销所有死锁进程,也可以逐个撤销
第五节 资源分配图
资源分配图
1.作用:描述系统中资源分配和申请情况,对死锁进行分析并采取对策
2.SRAG定义:是一张有向图,可定义为一个二元组,即,SRAG=(V,E),其中V是顶点的集合,包括进程集合、资源集合,E是有向边的集合,是一个有序对<Pi,ri>
死锁定理
1.作用:判断死锁的法则
2.死锁定理
1.如果资源分配图中没有环路,则系统无死锁
2.如果资源分配图中出现了环路,则可能存在死锁
①如果处于环路中的每个资源类中均包含一个资源实例,则环路存在意味着死锁存在。此时,环路是死锁的充分必要条件
②如果处于环路中的每个资源类中实例的个数不全为1,则环路存在是死锁的必要条件而非充分条件
资源分配图简化方法
可以使用资源分配图简化方法,来检测系统是否为死锁状态。步骤如下
1.在资源分配图中,找出一个既不阻塞又非独立的进程节点Pi。在顺利的情况下,Pi可获得所需资源而继续运行,直至运行完毕,再释放其所占有的全部资源,这相当于消去Pi的请求边喝分配边,使之成为孤立的节点
2.将Pi释放的资源分配给申请它的进程,若该进程能顺利运行完,释放资源,再次成为孤立节点
3.重复1.2.步,直到找不到符合条件的进程节点。经过化简后,若能消去所有的边,则该图可完全简化,系统不存在死锁;否则不可完全简化,存在死锁
第六节 哲学家就餐问题
哲学家就餐问题
自由主题
0 条评论
下一页