操作系统笔记

操作系统

1. os概述

  • 中断
    • 外中断,也称中断。包括可屏蔽和不可屏蔽
    • 内中断,也称异常。包括
      • 故障:缺页、除数为0、运算溢出
      • 自陷:系统调用
      • 终止:硬件故障如控制器出错、存储器校验错。和外部中断合称硬件中断。
  • 处理器运行模式
    • 用户态(目态)——非特权指令
    • 核心态(管态、内核态)——特权指令——管理资源、原语、时钟、中断(硬件完成从用户态到核心态的转换,自动保存断点。os执行中断服务程序、保存PSW、保存中断屏蔽字、通用寄存器的值)
  • 系统调用过程
    • 首先要传递系统调用参数,因为之后会进入内核态,用户不能传参。再执行trap指令
  • 用户态到核心态由硬件中断完成,核心态到用户态由os程序执行后完成

2. 进程管理

  • 进程是除了CPU以外的系统资源的分配单元,线程是处理机的分配单元

  • 线程的实现方式(os只为内核级线程建立TCB)

    • 用户级线程:线程切换不需要转换到内核空间,每次只有一个线程执行
    • 内核级线程:线程切换需要到核心态执行,内核同时调度同一进程的多个线程
  • 处理机的三层调度图

  • 带权周转时间是作业周转时间与作业实际运行时间的比值

  • 先有资源调度(在队列里给进程排位置),后有进程切换,广义的进程调度包括选择进程和切换进程。

  • 上下文切换与模式切换

    • 上下文切换只能发生在内核态
    • 模式切换:用户态和内核态之间的切换。进程运行在用户态,因中断或异常进入内核态,执行后返回原进程。
  • 处理机调度算法中

    • 时间片和多级队列肯定是抢占式
  • 软件实现互斥方法理解

    • 单标志法:turn=0意为P0可以进入,之后修改为1。如果P0不进入,则P1也不能进。违背“空闲让进”。
    • 双标志法(flag数组2)先检查:定义flag数组,flag[i]为false则Pi未进入。先检查对方未进入,再进入并设置标志。如果同时检查都通过,会同时进入,违背“忙则等待”。
    • 双标志法后检查:先设置标志为true,再检测。如果都设置为true,都进不去。出现“饥饿”现象。
    • 皮特森算法:算法一和三的结合。每个进程设置flag后再设置turn标志,同时检测对方的flag和turn。
  • 硬件方法有TestAndSet和Swap

  • 整形信号量wait里面是循环,会阻塞。记录型信号量,wait会把进程加到等待队列中,使用block原语阻塞单个进程。signal会唤醒。

  • PV问题解题思路

    • 生产者消费者问题

      • 把进程分类,一种进程对应一个函数,函数内中文描述动作
      • 考虑每个动作前P什么,如果P,找出V。缓冲区必须互斥访问。
      • 所有PV写完之后定义信号量
      • 检查多个P连续的时候,是否可能死锁,调整多个P的顺序。
    • 读者写者问题(同类不互斥,异类互斥)

      • 用count计数,同类进程第一个上锁,最后一个解锁
    • 哲学家问题(只有一类进程)

      • 只有能拿两双筷子才能就餐
    • 理发师问题

  • 死锁与循环等待:死锁的进程互相占有对方需要的资源,循环等待中的进程可以从别的地方获取资源从而打破等待的循环链。

  • 死锁预防:破坏死锁的四个条件

    • 破坏互斥:资源共享
    • 破坏不剥夺:得不到满足的话释放所有资源
    • 破坏请求并保持:预先静态分配法,运行前一次性申请完所有资源
    • 破坏循环等待:顺序资源分配法,进程只能按照编号递增申请资源,不存在申请对方的资源。

3. 内存管理

  • 链接的时候,把相对地址构成逻辑地址
  • 装入的时候,把逻辑地址改为物理地址(地址重定位)
  • 进程的内存映像:当程序调入内存运行,就形成了进程的内存映像。包括代码段(只读,多个进程可共享)、数据段、PCB、堆栈
  • 内存保护中,cpu先把逻辑地址和界地址寄存器比,再加上基地址寄存器(重定位寄存器)的值
  • 分段为什么方便进程的只读内存区域共享:若共享40页的代码区,每个进程都要建立40个页表项,而分段的话,每个进程只需要一个段表项(始址+段长)
  • 覆盖用于同一个程序或进程,交换用于不同作业进程之间。
  • 紧凑技术:内存时不时对进程进行移动和整理,用于克服外部碎片。
  • 首次适应算法性能最好
  • 连续分配管理和非连续例子:1GB的作业,需要连续的1GB空间,非连续的话,可以分散。
  • 分页不会有外部碎片,有很少的内部碎片,分段有外部碎片
  • 进程未执行的时候,页表始址和页表长度存放在进程PCB中,进程调度执行时,放入页表寄存器中。
  • 地址变换过程由硬件自动完成
  • 分级页表:例如1024个页表,每次查页表都需要调入这么多页面,如果分级,只需要调入一级页表,然后调入一个二级页表,总共两个页表,不用浪费空间存储无关页表。
  • 段的保护
  • 请求分页的地址变换机构图

4. 文件管理

  • 文件的逻辑结构(理解)
    • 顺序结构:记录定长,读写大批记录时效率高
    • 索引文件:可以根据位序计算地址,有定长和变长(需要索引表)
    • 索引顺序文件:索引+顺序,索引间有序,索引内顺序查找,类似分块排序。eg:字典
    • 直接文件或散列文件:就是通过哈希算物理地址
  • 文件分配方式☞非空闲块;文件存储空间管理☞空闲块管理
  • 文件物理结构
    • 分配方式
      • 连续分配(数组)
      • 链接分配(链表):隐式链接(链表,顺序查找);显式链接(FAT表就是静态链表数组,也显示空闲块)
      • 索引分配:每个文件有个索引块,包括所有盘号。
      • UNIX混合索引分配(重点计算题!):10个直接地址,一级间址,二级间址,三级间址。
    • 空闲管理
      • 空闲表法(内存动态分配)空闲链表法
      • 位示图
      • 成组链接法UNIX:空闲表+空闲链表法:顺序n个空闲盘块号存在第一个成组链块中,成组链块的最后一个空闲盘块号指的那个块,作为成组链块,保存第二组空闲盘块。
  • 目录:FCB的有限集合,一个FCB就是一个文件目录项
  • Linux操作系统中,“/dev/hda"就是绝对路径,”./ls"是相对路径,"."表示当前工作目录
  • 建立硬链接(索引结点)和软链接(符号链)的流程图
  • os维护一个包含所有打开文件信息的表(打开文件表)。每个进程的打开文件表存储对文件的使用信息,系统表包含文件相关信息如位置,进程调用open时,在进程打开表中增加条目指向系统表。系统表对每个文件有一个计数器,计数为0,可以删去。
  • 文件系统存放在磁盘上,多数磁盘划分为一个或多个分区,每个分区有一个独立的文件系统。MBR主引导记录负责引导计算机,确定活动分区,读入引导块。引导块程序负责启动分区中的操作系统。

5. I/O管理

  • I/O设备:磁盘、打印机、鼠标、键盘、光盘等
  • I/O接口(设备控制器):位于CPU与设备之间,与CPU和设备通信。结构图!
  • I/O端口:设备控制器中可以被CPU直接访问的寄存器(数据、状态、控制寄存器)
  • I/O控制方式(理解)
    • 直接控制(轮询)和中断驱动方式都是一次一个字,且都经过CPU存入主存。前者CPU发出读命令之后要等待I/O设备准备好,后者发命令之后不需要等待,只需要在指令周期末尾检查中断,若I/O设备发出中断,则接受一个字。
    • DMA在设备和内存间开辟一条数据通路,传输的是数据块,只需要在开始和结束传输前请求CPU。
    • 通道是一个处理机,与DMA区别:DMA需要通道来控制数据块大小和内存位置,通道方式由通道控制;DMA对应一台设备和内存,通道可以控制多台设备与内存。
    • 通道与一般处理机区别:通道指令类型单一,没有自己的内存,与CPU共享内存。
  • I/O软件的层次记忆(软件☞软件☞程序☞程序)
    • 用户层I/O软件(使用read命令)
    • 设备独立性软件(设备无关性:逻辑设备和物理设备,每个设备都能执行的共有操作)
    • 设备驱动程序(I/O进程与设备控制器之间的通信程序,每个设备接受命令之后行为不同,解析read指令)
    • 中断处理程序(中断当前进程,执行命令)
  • 磁盘高速缓存不同于介于CPU与内存之间的小容量存储器,而是指利用内存中的存储空间暂存磁盘中读的信息。
  • 高速缓存与缓冲区的区别:
    • 高速缓存有的,低速设备必有。缓冲区存放的是低速设备给高速设备的数据,不一定有备份。
    • 如果高速缓存没有,会访问低速设备。但有缓冲区的话,不会直接访问低速设备。
  • 缓冲区处理数据时间(处理机C,输入到缓冲区T,输出到处理机M)
    • 单缓冲max(c, t) + m
    • 双缓冲max(c, m) + t
  • SPOOLING假脱机技术(理解)
    • 输入输出井(磁盘)、输入输出缓冲区(内存)、输入输出进程
    • 因为向磁盘输出数据速度快于向打印机输出数据,所以当有用户进程请求打印输出,SPOOLING系统同意打印,但不会给进程分配打印机。由假脱机管理进程把打印数据送给缓冲区暂存,送入输出井。对用户进程而言,打印已经完成。
    • 要打印的作业在输出井排队,等到设备空闲,按顺序打印。(SPOOLING就是多了输入井和输出井这两个排队环节)
    • 图(预输入程序、井管理程序、缓输出程序)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1) 二值图像: 一幅二值图像的二维矩阵仅由0、1两个值构成,“0”代表黑色,“1”代白色。由于每一像素(矩阵中每一元素)取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。 2) 灰度图像: 灰度图像矩阵元素的取值范围通常为[0,255]。因此其数据类型一般为8位无符号整数的(int8),这就是人们经常提到的256灰度图像。“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。在某些软件中,灰度图像也可以用双精度数据类型(double)表示,像素的值域为[0,1],0代表黑色,1代表白色,0到1之间的小数表示不同的灰度等级。二值图像可以看成是灰度图像的一个特例。 3) 索引图像: 索引图像的文件结构比较复杂,除了存放图像的二维矩阵外,还包括一个称之为颜色索引矩阵MAP的二维数组。MAP的大小由存放图像的矩阵元素值域决定,如矩阵元素值域为[0,255],则MAP矩阵的大小为256Ⅹ3,用MAP=[RGB]表示。MAP中每一行的三个元素分别指定该行对应颜色的红、绿、蓝单色值,MAP中每一行对应图像矩阵像素的一个灰度值,如某一像素的灰度值为64,则该像素就与MAP中的第64行建立了映射关系,该像素在屏幕上的实际颜色由第64行的[RGB]组合决定。也就是说,图像在屏幕上显示时,每一像素的颜色由存放在矩阵中该像素的灰度值作为索引通过检索颜色索引矩阵MAP得到。索引图像的数据类型一般为8位无符号整形(int8),相应索引矩阵MAP的大小为256Ⅹ3,因此一般索引图像只能同时显示256种颜色,但通过改变索引矩阵,颜色的类型可以调整。索引图像的数据类型也可采用双精度浮点型(double)。索引图像一般用于存放色彩要求比较简单的图像,如Windows中色彩构成比较简单的壁纸多采用索引图像存放,如果图像的色彩比较复杂,就要用到RGB真彩色图像。 4) RGB彩色图像: RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。RGB图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像,当然也可以存放灰度图像。 4.图像数字化 通过取样和量化过程将一个以自然形式存在的图像变换为适合计算机处理的数字形式。图像在计算机内部被表示为一个数字矩阵,矩阵中每一元素称为像素。图像数字化需要专门的设备,常见的有各种电子的和光学的扫描设备,还有机电扫描设备和手工操作的数字化仪。图像编码。 对图像信息编码,以满足传输和存储的要求。编码能压缩图像的信息量,但图像质量几乎不变。为此,可以采用模拟处理技术,在通过模-数转换得到编码,不过多数是采用数字编码技术。编码方法有对图像逐点进行加工的方法,也有对图像施加某种变换或基于区域、特征进行编码的方法。脉码调制、微分脉码调制、预测码和各种变换都是常用的编码技术。 5.图像压缩 由数字化得到的一幅图像的数据量十分巨大,一幅典型的数字图像通常由500×500或1000×1000个像素组成。如果是动态图像,是其数据量更大。因此图像压缩对于图像的存储和传输都十分必要。 有两类压缩算法,即不失真的方法和近似的方法。最常用的不失真压缩取空间或时间上相邻像素值的差,再进行编码。游程码就是这类压缩码的例子。近似压缩算法大都采用图像交换的途径,例如对图像进行快速傅里叶变换或离散的余弦变换。著名的、已作为图像压缩国际标准的JPEG和MPEG均属于近似压缩算法。前者用于静态图像,后者用于动态图像。它们已由芯片实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值