首页 > 其他分享 >操作系统复试笔记

操作系统复试笔记

时间:2024-02-23 13:33:06浏览次数:18  
标签:操作系统 笔记 复试 进程 IO 缓冲区 通道 CPU 设备

第三章 进程管理

进程间直接通信方式:管道、共享内存
进程间间接通信方式:消息队列、文件、信箱、信号量
公用队列属于临界资源
CPU繁忙型作业类似于长作业,需要耗费大量处理机时间,故先到先服务算法有利于CPU繁忙型作业;IO繁忙型作业类似于短作业,需要频繁请求IO操作而被阻塞,占用CPU的时间不会太长。一旦放弃CPU,必须重新排队等候,故短作业优先算法有利于IO繁忙型作业
中断向量是中断服务例行程序的入口地址,中断向量地址是程序入口地址的地址
中断发生时,由硬件保护并更新程序计数器PC,而不是软件完成,主要是为了保证系统运行可靠正确
现代操作系统中,不能进行进程的调度与切换的情况如下:
处理中断的过程中
进程在操作系统内核临界区中
其他需要完全屏蔽中断的原子操作过程中
进程切换发生在内核态
设计多级反馈队列时要考虑的因素:
就绪队列的数量,影响长进程的完成时间
就绪队列的优先级,影响进程的执行顺序
各就绪队列的调度算法,影响调度顺序
进程在就绪队列间的迁移条件,影响执行时间

第四章 死锁

死锁定理:S为死锁的条件是当且仅当S状态的资源分配图是不可完全化简的。死锁定理用于死锁检测
引入多道程序技术的前提条件之一是系统具有中断功能
死锁的四个必要条件中,无法破坏的是互斥使用资源
死锁避免方法不会限制用户申请资源的顺序,死锁检测方法(资源分配图)也不需要进程运行所需的资源总量信息
只有当进程提出资源申请且全部进程进入阻塞态时,系统才处于死锁状态

第五章 内存管理

静态装入(绝对装入):编程阶段就把物理地址计算好
可重定位:装入时把逻辑地址转换为物理地址,装入后不能改变
动态重定位:运行到访存指令时,再把逻辑地址转换为物理地址
内存保护需要操作系统和硬件机构合作完成
覆盖技术用于单一进程(作业),交换技术用于不同进程(作业)
分页会产生内部碎片,分段会产生外部碎片,段页式会产生内部碎片
分页或分段管理,提供给用户的物理地址空间不能确定,因为段表和页表长度不能确定
对重定位存储管理方式,在整个系统中设置一个重定位寄存器
操作系统实现分区存储管理的代价最小,因为分区管理是满足多道程序设计最简单的设计方案
对外存对换区的管理应以提高换入、换出速度为主要目标
操作系统采用分页存储管理方式,要求每个进程拥有一张页表,且进程的页表驻留在内存中(无论就绪、运行or阻塞)
虚拟内存管理中,逻辑地址在链接阶段形成,链接后形成的目标程序中的地址就是逻辑地址。
为使虚存系统有效地发挥其预期的作用,所运行的程序应具有的特性:较好的局部性,因为虚拟存储系统就是基于程序的局部性原理
区分:虚拟存储器的最大容量 ≤ 2^(地址寄存器位数),实际容量 ≤ 内存容量 + 外存容量
导致LRU算法实现起来耗费高的原因是:需要对所有的页进行排序
虚拟存储器系统的页表项中,决定是否发生页故障的是:合法位
能加快虚实地址转换的是:增大快表容量(容纳更多页表项,提高命中率)、让页表常驻内存(省去不在内存中的页表的调入过程)
固定分配,全局置换不可共存
工作集的窗口大小为n,表示进程最近n次访问的页面,包括重复访问的页面

第六章 文件管理

第七章 设备管理

  • 设备管理的目标:提高设备的利用率,提高CPU与IO设备之间的并行操作程度

IO系统的控制方式

程序直接控制

优点:简单
缺点:CPU效率低

中断控制 eg.键盘、鼠标

优点:提高了CPU利用率,使CPU和外设之间的并行工作成为可能
缺点:只适用于数据传输率低的设备

直接存储访问IO(DMA)

优点:CPU只干预IO操作的开始和结束,适用于高速设备

通道控制方式IO

  • 一个CPU可以连接若干个通道,一个通道可以连接若干个控制器,一个控制器可以连接若干个设备
  • 不仅能实现CPU和通道的并行操作,而且通道与通道之间也能并行,各通道上的外围设备也能并行,从而可达到提高整个系统效率的根本目的

字节多路通道

  • 主通道采用时间片轮转 流量为各个IO设备数据传输率之和
  • 仅适用于慢速外围设备

数组选择通道

  • 一段时间只能为一台设备服务 流量为各个IO设备数据传输率的最大值
  • 可以连接多台高速设备

数组多路通道

结合了字节多路通道能使各个子通道分时并行和选择通道传输速率高的优点,流量为各个IO设备数据传输率的最大值

解决"瓶颈"问题最有效的办法

增加设备到主机的通路

通道地址字和通道状态字

通道地址字(CAW):用来存放通道程序的首地址的单元
通道状态字(CSW):通道向操作系统报告工作情况的状态汇集

IO设备的分类

按数据组织分类

块设备 以数据块为单位 有结构设备

  • 传输速率较高;
  • 可寻址,随机读写;
  • 磁盘设备的IO采用DMA方式

字符设备 以单个字符为单位 无结构设备

  • 传输速率较低;
  • 不可寻址;
  • 字符设备的IO采用中断驱动方式

按数据传输率分类

低速设备 键盘、鼠标、语音的输入

中速设备 打印机

高速设备 磁带、磁盘、光盘

从资源分配角度分类

独占设备 属于临界资源,大多数低速的IO设备,eg.终端、打印机等

共享设备 允许多个进程同时访问 eg.磁盘

虚拟设备 利用假脱机技术(SPOOLing)将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备

IO软件的组成

  • IO软件的结构:用户->用户级软件->与设备无关的系统软件->设备驱动程序->中断处理程序->外部IO设备
  • 设置中断的目的:解决高速设备和低速IO设备之间的矛盾,提高系统工作效率

设备驱动程序

直接同硬件打交道的软件模块
任务:接受来自与设备无关的上层软件的抽象请求,进行与设备相关的处理

与设备无关的系统软件

建立在设备驱动程序之上,与具体设备无关的IO功能的集合
功能:统一命名、设备保护、提供与设备无关的逻辑块、缓冲管理、存储设备的块分配、独占设备的分配和释放、出错处理

用户空间的IO软件

IO系统调用、Spooling系统:构成虚拟设备

缓冲技术

引入缓冲的主要原因:缓和CPU与IO设备间速度不匹配的矛盾,减少对CPU中断频率,提高并行性

单缓冲

从磁盘把数据读入到缓冲区,花费时间为T;缓冲区数据传送到用户区,花费时间为M;最后由CPU对数据进行计算,花费时间为C
每批数据的处理时间为MAX(C,T) + M

双缓冲

双缓冲可以实现对缓冲区中数据的输入和输出,以及CPU的计算,这三者并行工作。要求CPU和外设的速度相近
系统处理一块数据的处理时间可粗略地认为是MAX(C,T)

环形缓冲

三种缓冲区

  • 空缓冲区R:用于存放输入数据
  • 满缓冲区G:其中数据提供给计算进程使用
  • 现行工作缓冲区C:计算进程正在使用的缓冲区

三个指针

  • Nextg,指示计算进程下一个可用的缓冲区G
  • Nexti,指示输入进程下一个可用的空缓冲区R
  • Current,计算进程正在使用的缓冲区单元

缓冲区的使用

Getbuf过程:对于计算进程,将Nextg所指缓冲区提供给进程使用,并改为现行工作缓冲区,同时Nextg指向下一个G缓冲区;对于输入进程,将Nexti所指缓冲区提供给进程使用,同时Nexti指向下一个R缓冲区
Releasebuf过程:当计算进程把G缓冲区的数据提取完,将其改为空缓冲区R。当输入进程将缓冲区装满时,将该缓冲区释放,并改为G缓冲区

进程的同步

  • Nexti指针追赶上Nextg指针,意味着输入速度大于计算速度,已把可用空缓冲装满。此时,输入进程应该阻塞,直至计算进程处理完某个缓冲区的全部数据。这种情况称为“系统受限计算(计算速度慢)”
  • Nextg指针追赶上Nexti指针,意味着计算速度大于输入速度,已把全部已有数据的缓冲区抽空。此时,计算进程应该阻塞,直至输入进程装满某个缓冲区。这种情况称为“系统受限IO(IO速度慢)”

缓冲池

三个队列

  • 空缓冲队列emq,由空缓冲区所链成的队列
  • 输入队列inq,由装满输入数据的缓冲区所链成的队列
  • 输出队列outq,由装满输出数据的缓冲区所链成的队列

四种工作方式

  • 设备输入:Getbuf(emq)->hin->Putbuf(inq,hin)
  • CPU输入:Getbuf(inq)->sin->Putbuf(emq,sin)
  • 设备输出:Getbuf(emq)->hout->Putbuf(outq,hout)
  • CPU输出:Getbuf(outq)->sout->Putbuf(emq,sout)

总线技术

单总线:用一条系统总线将各个部件连接起来
双总线:在单总线的基础上,在CPU和主存之间专门架设一组高速的存储总线
三总线:在双总线的基础上,增加了IO总线

设备管理中的数据结构

  • 设备控制表(DCT):每个设备一张,描述设备特性和状态
  • 控制器控制表(COCT):每个设备控制器一张,描述IO控制器的配置和状态
  • 通道控制表(CHCT):每个通道一张,描述通道工作状态
  • 系统设备表(SDT):每个系统一张,记录所有设备状态及控制表的入口

设备的分配与回收

  • 先来先服务
  • 基于优先级

标签:操作系统,笔记,复试,进程,IO,缓冲区,通道,CPU,设备
From: https://www.cnblogs.com/zjq182/p/18029185

相关文章

  • 期望学习笔记
    1.定义在一定区间内变量取值有有限个,或数值可以一一列举出来的变量称为离散型随机变量,一个离散型随机变量的数学期望是试验中每次可能的结果乘以其结果概率的总和信息学奥赛中的期望问题,大多数都是求离散型随机变量的数学期望,如果x是一个离散型随机变量,输入值为\(x_1,x_2,\dots......
  • 基环树学习笔记
    1.定义基环树,又称环套树,n个点n条边,也就是一棵树多一条边,形成唯一的环,这是保证这n个点n条边构成的是一个连通图的时候才是唯一环,如果图不连通但是每个连通块点数都等于边数的时候这个图就是一个基环树森林,可以有多个环如果一张有向弱连通图每个点的入度都为1,则称它是一棵基环外......
  • 《程序是怎样跑起来的》第五章读书笔记
    从都具有存储程序命令和数据这点来看,内存和磁盘的功能是相同的。在计算机的五大部位中,内存和磁盘也都也都被归类为存储部件。不过利用电流来实现存储的内存,同利用磁效应来实现存储的磁盘,还是有差异的,而从存储容量来看,内存是告诉高价,而磁盘则是低速廉价。程序保护在存储设备中,通过......
  • 扫描线学习笔记
    1.引入扫描线多用于图形上,是一条线在图形上扫来扫去,它一般被用来解决图形面积,周长,以及二维数点等问题。2.扫描线求面积并如下图:我们模拟一条扫描线,使它从下往上扫过整个平面,这条扫描线会在遇到横向线段的时候停下来更新一些东西。那么整个图形就可以找出四条线段,如图:更新的......
  • 【文化课学习笔记】【数学】函数(上)
    【数学】函数(上)概念【本质】唯一确定的对应。【定义】一般地,设\(A,B\)是非空的实数集,如果对于集合\(A\)中的任意一个数\(x\),按照某种确定的对应关系\(f\),在集合\(B\)中都有唯一确定的数\(y\)和它对应,那么就称\(f:A\toB\)为从集合\(A\)到集合\(B\)的一个函数......
  • 《程序是怎样跑起来的》第四章读书笔记
    内存IC中内存IC中有电源,地址信号,数据信号,控制信号等用于输入输出的大量引脚,通过为其指定地址,来进行数据的读写。像WR和RD这样可以让IC运行的信号称为控制信号。当WR和RD同时为0时,写入和读出的操作都无法进行。编程语言中的数据类型表示存储的是何种类型的数据。指针也是一种变量,......
  • 笛卡尔树学习笔记
    1.定义笛卡尔树是一种特殊的二叉树,同时满足小根堆和二叉搜索树的性质,笛卡尔树的每个节点有两个值(k,w),k满足二叉搜索树性质,w满足小根堆性质。Treap也是一种笛卡尔树2.性质如果k,w是分别两两不同的,那么笛卡尔树也是唯一的对于一颗笛卡尔树,它的中序遍历是原序列a在原序列中......
  • Syscall笔记
    本文首发:https://xz.aliyun.com/t/13687基础知识我们知道,系统核心态指的是R0,用户态指的是R3,系统代码在核心态下运行,用户代码在用户态下运行。系统中一共有四个权限级别,R1和R2运行设备驱动,R0到R3权限依次降低,R0和R3的权限分别为最高和最低。而我们的**syscall**是一个计算机......
  • 读千脑智能笔记13_读后总结与感想兼导读
    1. 基本信息千脑智能AThousandBrains(美)杰夫·霍金斯浙江教育出版社,2022年9月出版1.1. 读薄率书籍总字数287千字,笔记总字数39938字。读薄率39938÷287000≈13.92%1.2. 读厚方向千脑智能脑机穿越未来呼啸而来虚拟人AI3.0新机器人人工不智能:计......
  • Lua学习笔记
    Lua学习笔记lua的基本语法和数据类型在Lua中,最重要的线程是协同程序(coroutine)它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其它协同程序共享全局变量和其它大部分东西。线程和协程的区别:线程可以同时运行多个,而协程任意时刻只能运行一个,并且处于运行......