操作系统学习(WEEK6-WEEK12)

WEEK 6

  • 管程:是一个特殊的模块,有一个名字,由关于共享资源的数据结构及在其上操作的一组过程组成。
    进程只能通过调用管程中的过程来间接的访问管程中的数据结构
  • 作为一个同步机制,管程需要解决互斥问题(由编译器保证)和同步问题(设置条件变量及等待/唤醒操作)
  • HOARE管程
    HOARE管程

WEEK 7

  • 地址重定位:为了保证CPU执行指令时可正确访问内存单元,需要将用户程序中的逻辑地址转换为运行时可由机器直接寻址的物理地址。
  • 空闲内存管理,数据结构:位图;空闲区表、已分配区表;空闲块链表
  • 内存分配算法
    1. 首次匹配:在空闲区表中找到第一个满足进程要求的空闲区
    2. 下次匹配:从上次找到的空闲区处接着查找
    3. 最佳适配:查找整个空闲区表,找到能够满足进程要求的最小空闲区
    4. 最差适配:总是分配满足进程要求的最大空闲区
  • 内存回收算法:当某一块归还后,前后空闲空间合并,修改内存空闲区表
  • 伙伴系统主要思想:将内存按2的幂进行划分,组成若干空闲块链表。假设整个可用空间为2^U。进程申请空间大小s,若2^(U-1) < s <= 2^U。则分配给这个进程,否则将块分成两个大小相等的块。进程结束归还块时,若它的伙伴块也空闲,则组成合并成一个大的空闲块。
  • 基本内存管理方案1 : 整个进程进入内存连续的区域
    1. 单一连续区:一段时间内只有一个进程在内存。简单、内存利用率低
    2. 固定分区:分区大小固定不变,每个分区装一个进程
    3. 可变分区:进程需要多大,就分配给他多大空间,剩余部分成为新的空闲区。有碎片问题(有很小的,不容易利用的空闲区,内存利用率低),可用紧缩技术解决(在内存中移动程序,将小的空闲区合并为大的空闲区),要考虑开销,移动时机。
  • 基本内存管理方案1 : 一个进程进入内存中若干片不连续的区域
    1. 页式:用户进程地址空间被划分为大小相等的部分,称为页或页面,从0开始编号。内存空间按同样大小划分为大小相等的区域,称为页框,从0开始编号。
      分配规则:以页为单位进行分配,并按进程需要的页数来分配。逻辑上相邻的页,物理上不一定相邻。典型页面尺寸:4K或4M
      页表项:记录了逻辑页号与页框号的对应关系。每个进程都有一个页表存放在内存
    2. 段式:用户进程地址空间,按程序自身的逻辑关系划分为若干个程序段,每个程序段都有一个段名。内存空间被动态划分为若干长度不相同的区域,,称为物理段,每个物理段由起始地址和长度确定
      分配规则:以段为单位进行分配,每段在内存中占据连续空间,但各段之间可以不相邻
    3. 段页式:用户进程划分,先按段划分,每一段再按页面划分。内存划分,同页式存储管理方案
      内存分配:以页为单位进行分配
  • 内存“扩充”技术
    1. 紧缩技术
    2. 覆盖技术(解决的问题:程序大小超过内存总和)
    3. 交换技术
      内存空间紧张时,系统将内存中某些进程暂时移到外存,把外存中某些进程换进内存,占据前者所占用的区域
    4. 虚拟存储技术

WEEK 8

  • 虚拟存储技术:当进程在运行时,现将一部分代码和数据装入内存,另一部分暂时留在磁盘上。当要执行的指令或访问的数据不在内存中时,由操作系统自动完成将他们从磁盘调入内存中的工作。
  • 虚拟地址空间,即为分配给进程的虚拟内存。虚拟地址是在虚拟内存中指令或数据的位置,该位置可以被访问,仿佛它是内存的一部分。
  • 把内存和磁盘有机的结合起来使用,从而得到一个容量很大的内存,即虚存。是对物理内存的抽象,构建在存储体系上

WEEK 9

  • 文件是对磁盘的抽象。所谓文件是指一组带标识(标识即为文件名)的、在逻辑上有完整意义的信息项的序列。
  • 信息项:构成文件内容的基本单位(单个字节, 或多个字节),各信息项之间具有顺序关系
  • 典型的文件逻辑结构
    流式文件:构成文件的基本单位是字符。文件是有逻辑意义、无结构的一串字符的集合
    记录式文件:文件由若干个记录组成,可以按记录进行读、写、查找等操作
    每条记录有其内部结构
  • 物理地址形式: 磁头号(盘面号)、磁道号(柱面号)、扇区号
  • 文件控制块:为管理文件而设置的数据结构,保存管理文件所需的所有有关信息
  • 文件目录:统一管理每个文件的元数据,以支持文件名到文件物理地址的转换, 将所有文件的管理信息组织在一起,即构成文件目录
    目录文件: 将文件目录以文件的形式存放在磁盘上
    目录项: 构成文件目录的基本单元。目录项可以是FCB,目录是文件控制块的有序集合
  • 文件的物理结构
    1. 连续(顺序)结构:文件的信息存放在若干连续的物理块中
      优点: 简单, 支持顺序存取和随机存取, 所需的磁盘寻道次数和寻道时间最少,可以同时读入多个块,检索一个块也很容易
      缺点: 文件不能动态增长,不利于文件插入和删除,外部碎片(紧缩技术)
    2. 链接结构:一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一 个物理块
      优点:提高了磁盘空间利用率,不存在外部碎片问题,有利于文件插入和删除
      ,有利于文件动态扩充
      缺点:存取速度慢、不适于随机存取,可靠性问题:如指针出错,更多的寻道次数和寻道时间,链接指针占用一定的空间
    3. 索引结构:一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个专用数据结构—索引表,并将这些物理块的块号存放在该索引表中
      优点:保持了链接结构的优点,又解决了其缺点。既能顺序存取,又能随机存取, 满足了文件动态增长、插入删除的要求,能充分利用磁盘空间
      缺点:较多的寻道次数和寻道时间,索引表本身带来了系统开销
  • 磁盘分区:把一个物理磁盘的存储空间划分为几个相互独立的部分,称为分区
  • 文件卷:磁盘上的逻辑分区,由一个或多个物理块(簇)组成。一个文件卷可以是整个磁盘或部分磁盘或跨盘(RAID) 。
    同一个文件卷中使用同一份管理数据进行文件分配和磁盘空闲空间管理,不同的文件卷中的管理数据是相互独立的
    一个文件卷上:包括文件系统信息、一组文件(用户文件、 目录文件)、未分配空间
    块(Block)或 簇(Cluster) : 一个或多个(2的幂)连续的扇区,可寻址数据块
  • 格式化:在一个文件卷上建立文件系统,即建立并初始化用于文件分配和磁盘空闲空间管理的管理数据

WEEK 10

  • WINDOWS系统常用FAT16文件系统。文件系统的数据在“引导扇区”。文件分配表FAT作用主要是描述簇(大小一般是2的幂次扇区)的分配状态、标注下一簇的簇号等。根目录大小固定。
  • 文件操作的实现
    1. 创建文件:建立系统与文件的联系,实质建立文件的FCB(在目录中为新文件建立一个目录项,分配存储空间)
    2. 打开文件:根据文件名在文件目录中检索,并将该文件的目录项读入内存,建立相应的数据结构,返回文件描述符(文件句柄)
  • 文件系统的可靠性:抵御和预防各种物理性破坏和人为性破坏的能力。坏块问题,备份。
  • 文件系统的一致性指的是文件系统源数据的一致性。
  • 文件系统的写入策略
    1. 通写:内存中的修改立刻写到磁盘,速度性能差(例:FAT系统)
    2. 延迟写:利用回写缓存的方法得到,高速,可恢复性差。
    3. 可恢复写:采用事务日志来实现文件系统的写入,既考虑安全性又考虑速度性能。
  • 文件的保护机制:用户身份验证,访问控制
  • UNIX系统文件访问控制采用文件的二级存取控制,审查用户身份和操作的合法性。第一级:文件主,同组用户,其他用户。第二级:读操作r,写操作w,执行操作x。例如chmod 777 即rwx rwx rwx。说明有全部权限。
  • 设计文件系统时要尽可能减少磁盘的访问次数。提高文件系统性能的方法:目录项分解,当前目录,磁盘碎片整理,块高速缓存,磁盘调度,提前读取,合理分配磁盘空间,信息的优化分布,RAID技术
  • 块高速缓存,又称为文件缓存,磁盘高速缓存、缓冲区高速缓存。是指在内存中为磁盘块设置的一个缓冲区,保存了磁盘中某些的副本。读请求到来时,看块是否在高速缓存中,在的话直接进行读操作,不在的话先将数据块读入高速缓存再拷贝到所需的地方。
  • 合理分配磁盘空间:分配磁盘快时把有可能顺序存取的块放在一起,尽量分配在同一柱面上,从而减少磁盘臂的移动次数和距离。
  • 提前读取:每次访问磁盘,多读取一些磁盘快。
  • 磁盘调度算法
    1. 先来先服务(FCFS),简单公平,但是效率不高,相邻两次请求可能距离很远增加了服务时间,对机械也不好。
    2. 最短寻道时间优先(SSTF):优先选择距当前磁头最近的访问请求进行服务。可以改善磁盘平均服务时间,但是造成某些请求长期得不到服务。
    3. 扫描算法(SCAN):有请求时,磁头按一个方向移动,遇到请求进行服务,然后判断该方向上是否还有请求,没有移动方向,如此反复。
    4. 单向扫描调度算法C-SCAN
  • 磁盘调度策略:N-step-SCAN策略,FSCAN策略旋转调度算法。
  • 信息的优化分布:记录在磁道上的排列方式也会影响操作时间。
  • RAID技术(独立磁盘冗余阵列),多块磁盘按照一定要求构成一个独立的存储设备,目的是提高可靠性和性能。
    通过把多个磁盘组织在一起,作为一个逻辑卷提供磁盘跨越功能
    通过把数据分成多个数据块,并行写入/读入多个磁盘,以提高数据传输率(数据分条stripe)
    通过镜像或校验操作,提高容错能力(冗余)

WEEK 12

  • 一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象称为进程死锁,这一组进程称为死锁进程
  • 产生死锁的必要条件:
    1. 互斥使用(资源独占):一个资源每次只能给一个进程使用
    2. 占有且等待(请求和保持,部分分配):进程在申请新的资源的同时保持对原有资源的占有
    3. 不可抢占(不可抢夺):资源的申请者不可从资源的占有者手中夺取资源,资源只能由占有者自愿释放
    4. 循环等待:进程对资源的申请形成环路
  • 资源分配图:用有向图描述系统资源和进程状态
  • 死锁定理:如果资源分配图中没有环路,则系统中没有死锁;如果存在环路,则可能出现死锁。如果每个资源类中只包含一个资源实例,则环路是死锁的充分必要条件。
  • 资源分配图化简:找一个非孤立、且只有分配边的进程结点(去掉分配边,将其变成孤立节点);再把相应的资源分配给等待该资源的进程即将该进程的申请边变成分配边。重复上述两个步骤,直到只剩下孤立节点,则没有死锁。
  • 解决死锁的方法
    1. 不考虑此问题(鸵鸟算法
    2. 不让死锁发生:(1)死锁预防:设计合适的资源分配算法,不让死锁发生(2)死锁避免:以不让死锁发生为目标,跟踪并评估资源分配过程,根据评估结果决策是否分配
    3. 让死锁发生:死锁检测与解除
  • 死锁预防:破坏四个必要条件中任何一个
    1. 互斥使用:把独有资源变为共享资源(Spooling技术)
    2. 占有且等待:进程运行前一次性申请所有所需资源(资源利用率低,饥饿现象);一个进程在申请新的资源得不到满足时,释放掉之前占有的资源
    3. 不可抢占:可以通过操作系统抢占(两个进程优先级不一样)。局限性,h适用于状态易于保存和恢复的资源
    4. 循环等待:通过定义资源类型的线性顺序,资源有序分配法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值