• 操作系统考研笔记


    根据王道操作系统专业书课后习题整理得到,md文档网址:https://gitee.com/infiniteStars/wang-dao-408-notes

    1.计算机系统概述

    1.操作系统的基本概念

    • 系统调用是由操作系统提供给用户的,它只能通过用户程序间接使用
    • 制约性,间断性,共享性属于多道程序设计的基本特征,顺序性不是
    • 单处理机系统中,进程与进程不可并行处理
    • 计算机开机后,操作系统最终被加载到RAM中

    2. 操作系统发展历程

    • 实时操作系统必须在被控制对象规定时间内处理来自外部的事件
    • 分时系统追求的目标是比较快速响应用户
    • 允许多个用户以交互的方式使用计算机的操作系统称为分时操作系统;允许多个用户将若干作业提交给计算机系统集中处理的操作系统称为批处理系统;在实时操作系统的控制下,计算机系统能及时处理由过程控制反馈的数据并及时作出响应;在IBM-PC中,操作系统称为微型计算机操作系统
    • 中断技术使得多道批处理系统的I/O设备可与CPU并行工作

    3. 操作系统运行环境

    • 输入输出指令必须在核心态下执行
    • 操作系统中,通道技术是一种硬件技术
    • 用户程序在用户态下要使用特权指令引起的中断属于访管中断
    • 进程调度不需要硬件的支持
    • 从核心态到用户态的转换是由操作系统程序执行后完成的,而用户态到核心态的转换则是由硬件完成的
    • 访管指令仅在用户态下使用,执行访管指令,将用户态转变为核心态
    • 广义指令即为系统调用指令
    • 命令解释程序在用户态执行
    • 子程序调用只需保存程序断点,即该指令的下一条指令的地址;中断处理不仅要保存断点(PC的内容),还要保存程序状态字寄存器(PSW)的内容
    • 处理外部中断时,应该由操作系统保存的是通用寄存器的内容
    • 异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。访存时缺页属于异常
    • 执行系统调用的过程包括如下主要操作:①传递系统调用参数 ②执行陷入(trap)指令 ③执行相应的服务程序 ④返回用户态

    4.操作系统结构

    • 分层式架构设计的操作系统结构清晰且便于调试

    • 分层式结构具有非常灵活的依赖关系是错误的

    • 微内核OS的主要缺点是性能问题,因为需要频繁地在核心态和用户态之间进行切换,因而切换开销偏大

    • 可以从4个方面来描述微内核OS,①内核足够小 ②基于客户服务器模式 ③应用“机制与策略分离”原理 ④采用面向对象技术

    • 添加系统服务时,不必修改内核是微内核的优点

    • 一般来说内核的服务越少内核越稳定,所以微内核结构比单一内核稳定

    • Windows是宏内核操作系统

    • 计算机操作系统的引导程序位于硬盘中

    • 引导程序分为两种:一种是位于ROM中的自举程序(BIOS的组成部分),用于启动具体的设备;另一种是位于装有操作系统硬盘的活动分区的引导扇区中的引导程序(称为启动管理器),用于引导操作系统

    • BIOS将控制权交给排在首位的启动设备后,CPU将该设备主引导扇区的内容(主引导记录MBR)加载到内存中,然后由MBR检查分区表,查找活动分区,并将该分区的引导扇区的内容(分区引导记录PBR)加载到内存加以执行。

    2. 线程与进程

    1. 进程与线程

    • 线程包含CPU现场,可以独立执行程序

    • 线程没有自己独立的地址空间,它共享其所属的进程的空间

    • 进程获得处理器运行是通过调度得到的

    • 并发进程失去封闭性是指并发进程共享变量,其执行结果与速度有关

    • 不管系统中是否有线程,进程都是拥有资源的独立单位

    • 内核级线程是处理机调度和分派的基本单位

    • C语言编写的程序在使用内存时一般分为三个段,二进制代码和常量存放在正文段,动态分配的存储区在数据堆栈,临时使用的变量在数据栈段。函数调用实参传递值在栈段

    • 同一进程或不同进程内的线程都可以并发执行

    • 整个系统只有一个键盘,而且键盘输入是人的操作,速度比较慢,完全可以使用一个线程来处理整个系统的键盘输入。

    • 用户登录成功,启动程序执行可以创建新进程,设备分配不能创建新进程

    • 进程对管道进行读操作和写操作都可能被阻塞

    2. 处理机调度

    • 时间片轮转调度算法是为了多个用户能及时干预系统
    • CPU繁忙型作业是指该类作业需要大量的CPU时间进行计算,而很少请求I/O操作。因此先来先服务调度算法(有利于长作业)有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业
    • 时间片轮转调度算法是绝对可抢占的
    • 作业是用户提交的,进程是由系统自动生成的,除此之外两者的区别是前者以用户任务为单位,后者以操作系统控制为单位
    • 分时操作系统通常采用时间片轮转调度算法来为用户服务
    • 假设系统中所有进程同时到达,则使进程平均周转时间最短的是短进程优先调度算法
    • Unix属于分时操作系统
    • 中断向量本身是用于存放中断服务例行程序的入口地址,因此中断向量地址就是该入口地址的地址
    • 中断由硬件保护并完成,主要是为了保证系统运行可靠,正确,提高处理速度也是一个好处,但不是主要目的
    • 创建新进程后能进行处理器调度;在进程处于临界区时能进行处理机调度
    • 一般来说,I/O型作业的优先级高于计算型作业的优先级

    3. 同步与互斥

    • 一个正在访问临界资源的进程,由于申请等待I/O操作而被中断时,它允许其他进程抢占处理器,但不得进入该进程的临界区

    • 临界区是指进程中用于访问临界资源的那段代码

    • 临界资源是互斥共享资源,非共享数据不属于临界资源

    • 管程定义了共享数据结构和各种进程在该数据结构上的全部操作

    • 用PV操作实现进程同步,信号量的初始值为由用户确定

    • 可以被多个进程在任意时刻共享的代码,必须是不允许任何修改的代码

    • 一个进程映像中的共享程序段必须用可重复编码编写,因为共享程序段可能同时被多个进程使用,所以必须可重入编码,否则无法实现共享的功能。

    • 管程中signal操作的作用和信号量机制中的V操作不同,管程中的signal操作是针对某个条件变量的,若不存在因该条件而阻塞的进程,则signal不会产生任何影响

    • 若系统有N个进程,则就绪队列中进程的个数最多有N-1个阻塞队列中进程的个数最多有N个

    • 信箱通信是一种间接通信方式

    • 临界区互斥机制必须遵循忙着等待,空闲让进,有限等待准则,让权等待准则不一定非得实现

    4. 死锁

    • 在操作系统中,死锁出现是指若干进程因竞争资源而无限等待其他进程释放已占有的资源
    • 一次分配所有资源的方法可以预防死锁的发生,它破坏死锁4个必要条件中的占有并请求
    • 资源有序分配策略破坏了循环等待条件
    • 资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态
    • 死锁的4个必要条件中,无法破坏的是互斥使用资源
    • 死锁检测时 检查的是资源有向图
    • 每种资源只有一个并出现环路,说明一定发生死锁
    • 死锁定理适用于检测死锁方法
    • 银行家算法是避免死锁的方法,不是预防死锁的方法
    • 当系统处于安全状态时,系统中一定无死锁进程
    • 限制用户申请资源的顺序属于死锁预防,属于破坏循环等待条件

    3. 内存管理

    1. 内存管理概念

    • 在虚拟内存管理中,地址变换机构将逻辑地址变换为物理地址,形成该逻辑地址的阶段是链接
    • 实现虚拟内存管理必须有相应硬件的支持
    • 动态重定位是在作业的执行过程中进行的
    • 对重定位存储管理方式,应在整个系统中设置一个重定位寄存器
    • 分段存储管理方法有利于程序的动态连接
    • 可重入程序是通过减少对换数量方法来改善系统性能的
    • 引入段式存储管理方式,主要是为了满足用户的下列要求:方便编程,分段共享,分段保护,动态链接和动态增长
    • 存储管理的目的是方便用户和提高内存利用率
    • 对主存储器的访问以字节或字为单位
    • 分页存储管理方式提供一维地址结构;分段存储管理方式,作业地址空间是二维的
    • 在分段存储管理系统中,用共享段表描述所有被共享的段,若进程P1和P2共享段S,在物理内存中仅保存一份段S的内容,段S对于进程P1,P2来说,使用位置可能不同,所以在不同的进程中的逻辑段号可能不同
    • 最容易产生内存碎片的是最佳适应算法

    2. 虚拟内存管理

    • 请求分页存储管理中,若把页面尺寸增大一倍而且可容纳的最大页数不变,则在程序顺序执行中缺页中断次数会减少。 这是因为由于页面尺寸增大,存放程序所需要的页帧数就会减少,因此缺页中断的次数也会减少
    • 导致LRU算法实现起来耗费高的原因是需要对所有的页进行排序
    • 在虚拟存储器系统的页表项中,决定是否会发生页故障的是合法位
    • 产生内存抖动的主要原因是页面置换算法不合理
    • 在虚拟分页存储管理系统中,若进程访问的页面不在主存中,且主存中没有可用的空闲帧时,系统正确的处理顺序为:缺页中断—>决定淘汰页—>页面调出—>页面调入
    • 虚拟存储只能基于非连续分配技术
    • 系统调用是用户进程发起的请求操作系统的服务。通过系统调用完成的操作是创建新进程。页置换和进程调度是由操作系统完成的,没有使用进程调度。

    4. 文件管理

    1.文件系统基础

    • 打开文件操作的主要工作是把指定文件的目录复制到内存指定区域
    • 有些操作系统中将文件描述信息从目录项中分离出来,这样做的好处是减少查找文件时的I/O信息量。
    • 操作系统为保证未经用户拥有者授权,任何其他用户不能使用该文件,所提供的解决方法是文件保护。
    • 在文件系统中,属于文件保护的方法是口令,用户权限表,存取控制
    • 加密保护和访问控制两种机制相比,访问控制机制必须由系统实现
    • 为了对文件系统中的文件进行安全管理,任何一个用户在进入系统时都必须进行注册,这一级安全管理是系统级
    • 流式文件属于文件的逻辑结构的范畴
    • 文件的逻辑结构是为了方便用户而设计的。
    • 用磁带做文件存储介质时,文件只能组织成顺序文件
    • 不适合直接存取的外存分配方式是链接分配
    • 在磁盘上最容易导致存储碎片发生的物理文件结构是顺序存放
    • 顺序文件进行检索时,首先从FTP中读出文件的第1个盘块号;而对索引文件进行检索时,应先从FCB中读出文件索引块的开始地址。
    • 适合随机访问且易于文件扩展的是索引结构
    • read系统调用只需要文件描述符作为参数,不需要文件名作为参数

    2.目录

    • 在利用顺序检索法时,只要路径名的一个分量名未找到就应停止查找。

    • 对文件的访问控制常由用户访问权限和文件属性共同限制

    • 设文件F1的当前引用计数值为1,先建立文件F1的符号连接(软连接)文件F2,再建立文件F1的硬连接文件F3,然后删除文件F1,此时文件F2和文件F3的引用计数值分别为1,1。

      解释:==建立符号链接时,引用计数值直接复制;建立硬链接时,引用计数值加1。==删除文件时,删除操作对于符号链接是不可见的,这并不影响文件系统,当以后再通过符号链接访问时,发现文件不存在,直接删除符号链接;但对于硬链接则不可直接删除,引用计数值减1,若值不为0,则不能删除此文件,因为还有其他硬链接指向此文件。

      当建立F2时,F1和F2的引用计数值都为1。当再建立F3时,F1和F3的引用计数值就都变成了2。当后来删除F1时,F3的引用计数值为2-1=1,F2的引用计数值不变。

    • 若文件F1的硬连接为F2,两个进程分别打开F1和F2,获得对应的文件描述符为fd1和fd2,则F1和F2共享同一个内存索引节点,fd1和fd2分别指向各自的用户打开文件表中的一项

    • 若多个进程共享同一个文件F,则在系统打开文件表中仅有一个表项包含F的属性。

    3. 文件系统

    • 从用户的观点来看,操作系统引入文件系统的目的是实现对文件的按名存取
    • Unix操作系统中文件的索引结构放在索引结点中
    • 文件的存储空间管理实质上是对外存空闲区的组织和管理
    • 可用于文件系统管理空闲磁盘块的数据结构是位图,空闲磁盘块链,文件分配表(FAT)

    5. 输入输出(I/O)管理

    1.I/O管理概述

    • 可寻址是块设备(如U盘,硬盘)的基本特征。
    • 分配共享设备是不会引起进程死锁的。
    • 共享设备必须是可寻址和可随机访问的设备。
    • 为了便于上层软件的编制,设备控制器通常需要提供控制寄存器,状态寄存器和控制命令
    • 在设备控制器(IO控制器)中用于实现设备控制功能的是IO逻辑
    • 在操作系统中通道技术指的是一种硬件机制。
    • 字节多路通道用作连接大量的低速或中速I/O设备。
    • 及时性不是设备分配中应该考虑的问题。
    • 将系统中的每台设备按某种原则统一进行编号,该编号称为设备的绝对号
    • 通道控制设备控制器,设备控制器控制设备工作
    • 设备只需一个设备驱动程序,不是每一个设备都需要设备驱动程序。如2台绘图机和3台打印机只需要两个设备驱动程序。
    • 将系统调用参数翻译成设备操作命令的工作由设备无关的操作系统软件完成。
    • 用户程序发出磁盘io请求后,系统的正确处理流程是用户程序—>系统调用处理程序—>设备驱动程序—>中断处理程序
    • 用户程序发出磁盘io请求后,计算数据所在磁盘的柱面号,磁头号,扇区号的程序是设备驱动程序
    • 系统将数据从磁盘读到内存的过程包含以下操作:①初始化DMA控制器并启动磁盘 ②从磁盘传输一块数据到内存缓冲区 ③DMA控制器发出中断请求 ④执行“DMA结束”中断服务程序

    2. 设备独立性软件

    • 设备的独立性是指用户编程时使用的设备与实际使用的设备无关
    • 缓冲区管理着重要考虑的问题是实现进程访问缓冲区的同步,因为缓冲区是一种临界资源,所以在使用缓冲区时都有一个申请和释放的问题(即互斥问题)需要考虑
    • 磁盘是共享设备,打印机和磁带机不是共享设备
    • 提高单机资源利用率的关键技术是多道程序设计技术
    • 在采用SPOOLing技术的系统中用户的打印结果首先被送到输出井中,输出井在磁盘中
    • 采用SPOOLing技术的计算机系统,外围计算机需要0台
    • SPOOLing系统由预输入程序,井管理程序和缓输出程序组成
    • SPOOLing系统中的用户程序可以随时将输出数据输送到输出井中,待输出设备空闲时,再由SPOOLing系统完成数据的输出操作
    • SPOOLing技术是操作系统中采用的以空间换取时间的技术
    • 不能改善磁盘设备IO性能的是在一个磁盘上设置多个分区
    • 在系统内存中设置磁盘缓冲区的主要目的是减少磁盘I/O次数

    3. 磁盘和固态硬盘

    • 既可以随机访问,又可以顺序访问的有光盘,U盘,磁盘,磁带不行
    • 磁盘的操作系统引导扇区产生在对硬盘进行高级格式化时
    • 扇区数据的处理时间主要影响传输时间,与旋转延迟没什么关系
    • 旋转延迟的大小取决于磁盘空闲空间的分配程序,以及与文件的物理结构有关
    • 固态硬盘(SSD)基于闪存的存储技术,随机读写性能明显高于磁盘,随机写比较慢,它的缺点是易磨损
    • 相比于常规硬盘,固态硬盘优势主要体现在随机存取的速度
    • 静态磨损均衡算法比动态磨损均衡算法的表现更优秀
    • 磁盘逻辑格式化程序所做的工作是建立文件系统的根目录,对保存空闲磁盘块信息的数据结构进行初始化
    • 绝大多数操作系统为改善磁盘访问时间,以簇为单位进行空间分配
    • 系统总是访问磁盘的某个磁道而不响应对其他磁道的访问请求,这种现象称为磁壁黏着。先来先服务算法不会导致磁壁黏着
  • 相关阅读:
    智慧农业SaaS系统
    Anaconda & Jupyter
    华为机试真题 C++ 实现【正方形数量 】
    全流程|2022年度山东高新技术企业认定
    第一百七十四回 如何创建扇形渐变背景
    python re findall search finditer complie 预加载
    C++ Reference: Standard C++ Library reference: C Library: cstring: strncmp
    Mybatis-Flex框架初体验
    这6点建议,助你解决海外客户的视频验厂!
    Redhat(7)-文件挂载Mount-管理cockpit-文件查找locate和find
  • 原文地址:https://blog.csdn.net/love521314123/article/details/125915782