您的位置:首页 > 新闻 > 会展 > 湖北省建设信息网官网_多媒体应用设计师好考吗_全媒体广告代理_西安刚刚宣布

湖北省建设信息网官网_多媒体应用设计师好考吗_全媒体广告代理_西安刚刚宣布

2025/1/8 3:25:29 来源:https://blog.csdn.net/qq_62174860/article/details/144947310  浏览:    关键词:湖北省建设信息网官网_多媒体应用设计师好考吗_全媒体广告代理_西安刚刚宣布
湖北省建设信息网官网_多媒体应用设计师好考吗_全媒体广告代理_西安刚刚宣布

目录

只会在选择填空出现类型

第一章:操作系统导论

操作系统介绍

不得不知道的概念

可能出现在答题的类型

第二章:进程调度

进程管理:

处理机调度:

进程同步:

死锁:

预防死锁:

避免死锁:

解除死锁:

第三章:内存管理

引入目的:更好的支持多道程序的并发执行,提高系统性能。

主要功能:

用户程序的主要处理阶段​​​​​​

相关概念

管理方式

内存扩充:

第四章:文件管理

文件、文件系统

文件的逻辑结构

目录和目录结构

文件实现

磁盘管理

补充说明:

填空

解答

计算题进程调度,优先级,LRU进程调度:操作系统根据一定的算法选择进程并分配CPU时间。优先级:进程调度时,操作系统根据优先级决定哪个进程获得CPU资源。LRU:最少使用替换算法(Least Recently Used),用于页面置换中,淘汰最久未使用的页面。内存访问时间,地址转换内存访问时间:从发出内存访问请求到数据返回所需的时间。地址转换:通过页表、段表等将逻辑地址转换为物理地址。


只会在选择填空出现类型

第一章:操作系统导论

操作系统介绍

  • 定义:操作系统是一组用于控制和管理计算机系统硬件和软件资源、合理地对各类作业进行调度、方便用户使用的程序集合。
  • 地位:操作系统是裸机之上第一层软件是建立其它所有软件的基础,是整个系统的控制管理中心,管理所有的计算机资源(硬件和软件),为其它软件提供运行环境。
  • 基本特征
    • 并发:指两个或者多个活动在同一时间段(注意是时间段,并行是时刻)中进行。
    • 共享:指计算机系统中的资源被多个进程所共用。
    • 异步:进程以不可预知的速度向前推进。
    • 虚拟:把一个物理上的实体变为若干个逻辑上的对应物。
    • 最基本特征:并发,共享(两者互为存在条件)
  • 主要功能:
    • 处理机(进程)管理:主要是包括进程控制、同步、通信,死锁处理,进程机调度等
    • 存储器管理:主要是包括内存分配,地址映射,内存保护与共享,内存扩充(虚拟内存)等。
    • 文件管理:包括文件存储空间管理,目录管理,文件读写管理和保护等。
    • 设备管理:主要是包括缓冲管理,设备分配,设备处理,虚拟设备等功能。
  • 发展阶段及其优缺:
    • 手工操作阶段(该阶段无操作系统):缺(人机速度矛盾)
    • 批处理操作系统(该阶段操作系统出现)
      • 单道批处理阶段
        • 优:(程序并发执行)缺:(不提供人机交互能力,缺乏交互性)
      • 多道批处理阶段(操作系统正式诞生):目的(提高系统资源利用率)
        • 优:(多道程序并发执行,资源利用率高)缺:(不提供人机交互能力,缺乏交互性)
    • 分时操作系统(不可以插队,有了人机交互)
      • 优:(提供人机交互,有了交互性)缺:(不能优先处理紧急事务)
    • 实时操作系统(可以插队)
      • 硬实时系统:必须在规定时间内完成操作(火箭发射)
      • 软实时系统:相关要求相当放松(订票)
      • 优:(可以优先处理紧急任务)缺:(交互性相对低)
    • 从可靠性看实时操作系统更强,从交互性看分时操作系统更强。

不得不知道的概念

  • 两种指令:
    • 特权指令:不允许用户程序使用(只允许操作系统使用)。比如io操作,或者置中断指令。
    • 非特权指令:普通的运算指令。
  • 两种程序:
    • 内核程序:系统的管理者,可以执行一切指令、运行在核心态。
    • 应用程序:普通用户程序只能执行非特权指令,运行在用户态。
  • 处理机状态:
    • 用户态(目态):CPU只能执行非特权指令。
    • 核心态(管态,内核态):可以执行所有指令。
    • 用户态——》核心态:通过中断(硬件完成)
    • 核心态——》用户态:特权指令psw的标志位{0用户态1核心态}
  • 原语:操作系统中一种不可分割、不可中断的基本操作。(一般运行时间短,调用频繁。位于操作系统最低层,最接近硬件的部分)
  • 中断和异常:
    • 内中断(异常,信号来自内部):
      • 自愿中断——指令中断
      • 强迫中断——(硬件中断,软件中断)
    • 外中断(中断,信号来自外部):来自外设请求,人工干预。
  • 系统调用:系统给程序员(应用程序)提供的唯一接口,可以获取os服务,在用户态发生,核心态处理。
  • 体系结构:大内核(高性能),微内核(方便维护)

可能出现在答题的类型

第二章:进程调度

进程管理:

  • 引入进程目的:为了更好的描述和控制程序并发执行,实现操作系统的并发性和共享性(进程是动态的,程序是静态的)
  • 定义:进程就是计算机中程序关于某数据集合上的一次运行活动,是操作系统进行资源分配和调度的基本单位(如果涉及到线程,那么调度的基本单位为线程,分配还是进程)。
  • 组成:
    • PCB(保存进程运行时相关的数据,是进程存在的唯一标志,常驻内存)
    • 程序段:程序段是程序的逻辑组成部分,通常分为代码段、数据段和堆栈段。
    • 数据段:数据段是存储程序中静态数据的区域,包含已初始化和未初始化的全局变量、静态变量。
  • 进程的状态:
    • 状态种类:​​​​
      • 创建(New)
        进程在操作系统中被创建时,进入创建状态。这个过程通常发生在用户或系统请求启动一个新的进程时。操作系统为这个新进程分配所需的资源,并初始化相关的PCB(进程控制块)。

      • 就绪(Ready)
        进程已经获取了执行所需的所有资源(除CPU外),并且等待操作系统将其调度到CPU上执行。进程在此状态下可以被操作系统调度执行。

      • 执行(Running)
        进程正在CPU上执行。一个时刻内,只有一个进程处于执行状态(单核CPU),多核CPU可能有多个进程并行执行。

      • 阻塞(Blocked)
        进程因等待某个事件或资源(如I/O操作完成)而暂停执行。阻塞状态的进程无法继续执行,直到它所等待的资源或事件发生。

      • 终止(Terminated)
        进程执行完毕,已被操作系统销毁,释放所有资源。此状态下,进程不再需要调度。

    • 状态变化:
      • 就绪到执行
        操作系统调度器选择一个就绪队列中的进程,将其分配到CPU上,进程从就绪状态转换为执行状态。

      • 执行到就绪
        当前正在执行的进程被操作系统强制中断(例如,时间片耗尽),返回就绪队列,等待再次获得CPU执行机会。

      • 执行到阻塞
        当进程执行过程中需要等待某些事件(如I/O完成),它会从执行状态转为阻塞状态。

      • 阻塞到就绪
        当进程所等待的资源或事件(如I/O操作完成)变为可用时,进程从阻塞状态变为就绪状态,等待CPU调度。

      • 执行到终止
        当进程执行完毕或被终止时,操作系统将进程从执行状态转为终止状态。

      • 阻塞到终止
        如果进程在等待资源时被强制终止(例如,发生错误),它会从阻塞状态直接进入终止状态。

      • 创建到就绪
        进程从创建状态进入就绪状态,准备等待操作系统调度。

      • 终止到销毁
        进程终止后进入销毁状态,操作系统会清理和释放相关资源。

  • 线程:
    • 引入目的:为了更好的使用多道程序并发执行,提高资源利用率和系统吞吐量(单位时间内,操作系统或计算机系统能够处理的任务或作业的数量。
    • 定义:线程(Thread)是操作系统中进程的一部分,是程序执行的最小单元。它是程序中的一个执行流,代表程序中独立执行的一个任务。一个进程可以包含多个线程,多个线程共享进程的资源,但每个线程有自己的执行栈、程序计数器(PC)和寄存器状态。
    • 特点:是程序执行的最小单位,基本不拥有任何资源(调度的基本单位){ps:进程会占用内存空间,线程不用,因为线程是对进程的细分}
    • 线程可以看做轻量级进程。

处理机调度:

  • 概念:操作系统根据一定的规则和算法,选择就绪队列中的进程,分配CPU资源并将其从就绪状态转换为执行状态。它的目标是有效地利用CPU,提高系统的效率和响应速度。
  • 分类:
    • 根据调度时机
      • 长程调度(高级调度,作业调度,次数少):决定哪些作业从外存调入内存。它负责控制进入系统的作业数目,调度的单位是作业,通常在作业控制块(Job Control Block,JCB)中进行调度。
      • 中程调度(中级调度,内存对换,次数一般):在内存和外存之间移动进程,通常是决定进程是否交换出内存到外存,或从外存调入内存。
      • 短程调度(低级调度,进程调度,次数多):是最常见的调度类型,负责从就绪队列中选择一个进程,分配CPU执行。它是针对就绪进程的调度。
    • 根据调度策略
      • 抢占式调度(Preemptive Scheduling):进程的执行会被操作系统强制中断,CPU会被抢占给其他优先级更高的进程。
      • 非抢占式调度(Non-Preemptive Scheduling):当一个进程获得CPU时间片后,直到它自愿释放CPU,或者执行完毕,操作系统才会选择其他进程。
  • 调度准则:
    • CPU利用率(CPU Utilization):操作系统希望最大程度地利用CPU,避免CPU空闲。
    • 吞吐量(Throughput):单位时间内完成的作业数。吞吐量越大,说明系统的处理能力越强。
    • 周转时间(Turnaround Time):从进程提交到完成的时间,包括等待时间、执行时间等。希望周转时间越短越好。
    • 等待时间(Waiting Time):进程在就绪队列中等待的时间。希望等待时间最小。
    • 响应时间(Response Time):从提交请求到得到系统响应的时间。对于交互式系统,响应时间是非常重要的。
  • 算法:
    • 先来先服务(FCFS):根据进程到达就绪队列的顺序进行调度,最先到达的进程最先被调度执行。

    • 最短作业优先(SJF):选择估计运行时间最短的进程执行。这种策略可能导致长作业一直无法执行,出现“饿死”现象。

    • 优先级调度:为每个进程分配一个优先级,优先级高的进程先执行。优先级可以是静态的(固定的优先级)或动态的(根据进程行为调整)。

    • 时间片轮转(RR):为每个进程分配一个固定的时间片,时间片用完后进程被中断,返回就绪队列,操作系统将CPU分配给下一个进程。

    • 多级反馈队列(MFQ):结合多级队列和时间片轮转的策略,不同优先级的进程分配不同长度的时间片,低优先级的进程可能被“降级”到低优先级队列。

进程同步:

  • 引入原因:它的引入是为了协调多个进程之间的执行,确保它们能够按照预定的顺序、正确的方式进行工作。
    • 共享资源冲突:当多个进程共享资源时,如果不加以协调,可能会出现资源冲突和不一致的结果。例如,多个进程同时修改同一个共享数据,可能会导致数据损坏。
    • 协作执行:某些进程需要协作执行,结果依赖于其他进程的执行顺序。如果没有同步机制,协作的进程可能会提前或延迟执行,导致错误的结果。
    • 死锁防止:没有有效同步机制,可能会导致进程间相互等待,造成死锁。
  • 制约关系:进程之间的制约关系是指在多进程执行时,由于共享资源或者执行顺序的依赖,进程之间存在的相互影响和依赖性。
    • 数据一致性:多个进程对同一资源的读写操作,需要确保数据的一致性和完整性。
    • 执行顺序依赖(同步,直接制约关系):某些进程必须在其他进程执行之后才能执行。例如,生产者-消费者问题中,消费者必须在生产者生产数据之后才能消费数据。
    • 互斥访问(互斥,间接制约关系):当多个进程访问同一个临界资源时,必须保证同一时刻只能有一个进程进行访问。其它的必须等待该进程退出临界区。
  • 临界资源:临界资源是指在多进程环境中,需要共享的、可能导致冲突的资源。这些资源一旦被多个进程同时访问,可能导致数据不一致或程序错误。
    • 共享内存:多个进程可能同时读写共享的内存区域。
    • 文件:多个进程可能同时读写同一个文件,导致数据冲突。
    • 打印机、磁带等外设:多个进程请求同一硬件设备进行操作时,必须保证资源的互斥使用。
    • 还有公用队列,共享变量。
  • 临界区:临界区是指对临界资源进行访问的程序代码区域。为了避免多个进程在同一时刻同时进入临界区访问共享资源,必须采取同步机制确保每次只有一个进程可以进入临界区。
  • 临界区互斥:
    • 定义:临界区互斥是指在多进程或多线程环境中,确保在同一时刻只能有一个进程或线程进入临界区访问共享资源,从而避免资源冲突和数据不一致的现象。临界区是对共享资源进行操作的那部分代码,互斥要求在任何时刻只有一个进程能够进入临界区。
    • 原则:
      • 互斥性(忙则等待):只有一个进程或线程可以在同一时刻进入临界区,其他进程必须等待。也就是说,在任何时刻,临界区中只能有一个进程在执行。

      • 有限等待性(有限等待):保证任何进程在请求进入临界区时,能够在有限的时间内进入临界区,而不会被永久阻塞。

      • 让权等待:如果进程不能进入自己的临界区,就应该让出CPU,避免进程出现忙等现象

      • 进程互不干扰(空闲让进):在没有进程在临界区时,其他进程应能继续进入临界区。即,如果没有进程在执行临界区代码,并且有进程在等待进入,则必须让这些进程之一进入临界区。

    • 基本方法:
      • ​​​​​​​
      • 锁机制(Locking)

        • 互斥锁(Mutex):确保只有一个进程能进入临界区。
        • 自旋锁(Spinlock):进程等待锁时不停地检查锁状态。
      • 信号量(Semaphore)

        • 二值信号量:值为0或1,类似互斥锁。
        • 计数信号量:控制有限资源的访问,值为整数。
      • 临界区原语:提供 enterexit 操作,控制进程进入和退出临界区。

      • 锁自由算法(Lock-Free):通过原子操作(如CAS)避免锁的使用。

      • 条件变量(Condition Variable):进程根据条件进入临界区,否则挂起,直到条件满足。

死锁:

  • 定义:死锁是指一组进程在执行过程中,因为竞争资源或由于彼此的通信等待而进入一种互相等待的状态,导致它们无法继续执行下去,从而永远处于“等待”状态。这种情况的发生是由于进程之间的资源分配和请求关系形成了一个循环依赖。
  • 产生的原因:死锁的发生通常是因为系统中资源分配的四个必要条件同时满足,这四个条件被称为死锁的必要条件
    • ​​​​​​​
    • 互斥条件(Mutual Exclusion):至少有一个资源必须是以排他方式分配的,即同一时刻只能由一个进程使用该资源。如果其他进程请求该资源,则必须等待。

    • 占有且等待(Hold and Wait):已获得至少一个资源的进程,在等待获取其他资源时,不释放已占有的资源。

    • 非抢占条件(No Preemption):已分配给某个进程的资源,在进程完成使用之前,不能被其他进程抢占,只有进程自愿释放资源。

    • 循环等待(Circular Wait):存在一种进程资源请求的环形等待关系,即进程A等待资源B,进程B等待资源C,...,进程N等待资源A。

  • 解决方法:解决死锁的策略主要包括预防避免检测恢复(解除)四种方法​​​​​​​
    • 预防死锁:

      预防死锁的目的是从根本上打破死锁的四个必要条件中的一个或多个。常见的预防策略有:

      • 破坏互斥条件:确保所有资源都可以被多个进程共享,但这种方法通常不适用于需要独占访问的资源(例如打印机)。

      • 破坏占有且等待条件:要求进程在请求资源时,必须先释放自己已经占有的资源。这种方式会导致较高的开销,因为进程可能需要频繁地释放和重新请求资源。

      • 破坏非抢占条件:允许资源在进程持有期间被抢占。例如,操作系统可以通过强制撤销某些进程的资源占有,重新分配给其他进程。

      • 破坏循环等待条件:系统可以为每个资源分配一个顺序号,然后要求进程在请求资源时,必须按照资源的顺序请求,避免形成环形等待。

    • 避免死锁:

      避免死锁的思想是通过动态检测系统的资源分配状态,确保系统的资源分配不会导致进入死锁状态。常见的避免策略有:

      • 银行家算法:该算法由Dijkstra提出,用于判断进程是否处于安全状态。银行家算法基于进程的最大需求、已分配的资源以及可用的资源,计算是否能够满足所有进程的需求。只有当分配资源不会导致死锁时,才允许资源的分配。

      • 资源请求图:利用图形化模型,监视进程与资源之间的关系,通过判断图中是否存在环来避免死锁。

    • 检测死锁:
      ​​​​​​​如果系统不能预防或避免死锁,则需要定期检测系统中是否存在死锁,并在死锁发生时进行恢复。检测死锁的常见方法是:

      • 资源分配图:通过维护一个资源分配图来检测死锁,进程和资源之间的关系可以通过图来表示。如果图中存在环,则说明系统存在死锁。

      • 轮询检测:操作系统定期检查系统中进程的资源占有情况,判断是否存在死锁。如果发现死锁,就进行相应的处理。

    • 解除死锁:

      一旦死锁发生,必须采取措施来恢复系统的正常运行。常见的恢复方法有

      • 资源剥夺,撤销进程,进程回退

第三章:内存管理

  • 引入目的:更好的支持多道程序的并发执行,提高系统性能。

  • 主要功能:

    • 内存空间的分配与回收:分配内存给进程,回收不再使用的内存,避免内存浪费。
    • 存储的保护和共享:保护进程的内存空间,防止非法访问;允许进程安全地共享资源。
    • 地址转换:将进程的虚拟地址转换为物理地址,确保程序访问正确的内存区域。
    • 内存扩充:使用虚拟内存技术,将不常用数据存储在外存,扩展可用内存空间。
  • 用户程序的主要处理阶段​​​​​​​​​​​​​

    • 加载阶段

      • 用户程序从磁盘加载到内存,操作系统分配内存空间,并将程序的指令和数据搬入内存。
    • 执行阶段

      • 程序在内存中运行,CPU执行程序的指令,操作系统负责进程调度和资源管理。
    • 结束阶段

      • 程序执行完成后,操作系统回收分配给程序的资源,并释放内存。
  • 相关概念

    • ​​​​​​​​​​​​​​程序装入:程序装入是指操作系统将用户程序从磁盘加载到内存并准备执行的过程。
      • ​​​​​​​绝对装入:程序的代码和数据被加载到固定的内存地址。程序在编译时就已经指定了内存地址,装入时不做任何修改,程序只能在该特定地址运行。
      • 静态重定位:程序加载到内存时,操作系统将程序中的所有地址(如变量、函数地址)按照一个固定的偏移量进行调整,使得程序可以在任意内存位置加载运行。{操作系统通过修改程序中的地址来实现重定位,确保程序可以在任何位置运行。}
      • 动态重定位:程序运行时,操作系统通过内存管理单元(MMU)进行实时地址转换。程序的逻辑地址(虚拟地址)会根据运行时的实际内存位置进行转换成物理地址。{程序可以在不同的内存位置运行,且在程序执行过程中,地址会动态进行转换。}
      • 绝对装入是将程序加载到固定地址,静态重定位在加载时修改地址,动态重定位在程序运行时动态调整地址。
    • 程序的链接:
      • ​​​​​​​静态链接:在编译和装入阶段,程序的所有外部符号(如函数和变量)会被解析并替换为实际的内存地址。链接过程在程序执行前完成,生成一个独立的可执行文件。
      • 装入时链接:程序在加载到内存时,操作系统负责解析外部符号并将它们链接到适当的内存地址。链接工作在装入阶段完成,但仍然属于静态链接的一部分。
      • 运行时链接:链接过程发生在程序运行时。程序在执行时,根据需要动态加载共享库或模块,链接过程由操作系统或程序本身在运行时完成。
    • 地址空间:
      • ​​​​​​​逻辑地址空间:
        • ​​​​​​​​​​​​​​也叫虚拟地址空间,是程序运行时使用的地址空间。在程序代码中,所有的内存访问都是基于逻辑地址。操作系统通过地址转换将逻辑地址映射到物理地址。
        • 逻辑地址是由程序生成的,它不直接对应物理内存中的具体位置。
      • 物理地址空间:
        • 也叫实际地址空间,是计算机物理内存(RAM)中的地址空间。它由硬件和操作系统管理,代表计算机中实际的内存位置。
        • 物理地址是实际用于访问硬件内存的地址,程序不能直接使用物理地址。
  • 管理方式

    • 连续分配管理方式:整个程序被分配到一块连续的内存区域中。操作系统为每个进程提供一个连续的内存块,程序从开始到结束占用这个连续区域。

      • 单一连续分配:整个程序被装入到一块连续的内存区域中。只有一个内存块用于存放进程的所有内容,简化了内存分配。(容易导致内存碎片,尤其是当进程频繁进入和退出时,空闲内存分布不均,可能无法找到足够的连续空间。)

      • 固定分区分配:内存被划分为若干个大小固定的分区,每个分区内存储一个进程。进程装入时选择一个合适的分区。(减少了内存碎片。可能造成内存浪费,如果进程过小或过大,剩余内存无法高效使用。)

      • 动态分区分配:内存按需分配,根据进程的实际需要动态划分内存空间。内存不再固定为某个大小,而是根据进程的实际要求来分配。(可能出现内存碎片,操作系统需要对内存的分配和回收进行有效管理。)

        • 动态分区分配策略算法:

          • 首次适应(Best Fit)

            • 从空闲分区中选择第一个能够容纳进程的区域。由于此策略尽量选最小的合适块来减少剩余空间的浪费。
            • 优点:避免了大块空闲空间的浪费。
            • 缺点:可能造成许多小碎片,导致无法高效使用空间。
          • 最佳适应(First Fit)

            • 选择第一个足够大的空闲分区来容纳进程。这是最常用的策略,通常会在链表或空闲区中扫描直到找到合适的内存块。
            • 优点:实现简单、速度较快。
            • 缺点:可能会浪费空间,导致较小的空闲区残留,增加碎片。
          • 最坏适应(Worst Fit)

            • 从所有空闲分区中选择最大的一个来分配。目的是尽量避免造成大的碎片。
            • 优点:减少内存碎片,但可能导致小碎片多。
            • 缺点:可能产生大量不必要的大块空闲空间。
          • 邻近适应(Next Fit)

            • 从上次分配内存的位置开始查找,直到找到合适的空闲区进行分配。
            • 优点:简单,不需要重新扫描所有的空闲区。
            • 缺点:可能导致内存分配不均,增加碎片。
    • 非连续分配管理方式:将程序划分为多个块(如页面或段),并将这些块分散存放在物理内存中的不连续位置。进程可以分散占用多个内存块,而不是连续的一块内存区域。

      • 基本分页式存储管理

        • 将程序划分为固定大小的页面,内存被划分为大小相同的物理块(页框)。程序的页面可以被加载到物理内存中不连续的位置。
        • 优点:避免了内存碎片,支持程序分散存储。
        • 缺点:需要额外的页表来进行地址转换,存在一定的管理开销。
      • 基本分段式存储管理

        • 将程序划分为多个段(如代码段、数据段、堆栈段等),每个段可以独立加载到内存的不同区域。
        • 优点:支持程序的逻辑划分,适应不同大小的数据结构。
        • 缺点:内存的分配和回收较为复杂,可能出现外部碎片。
      • 段页式存储管理

        • 结合了分页和分段的优点。程序首先被划分为若干段,然后每个段又被划分为多个页面。每个页面可以加载到内存的不同位置。
        • 优点:兼具分段和分页的优点,灵活且高效。
        • 缺点:实现复杂,需要维护段表和页表。
  • 内存扩充:

    • ​​​​​​​覆盖(同一程序或进程中):覆盖是一种将程序分成多个模块(覆盖块),每次只加载当前需要执行的模块到内存中,其他不需要的模块则覆盖掉已加载的模块,以节省内存空间。这种方法通常用于内存较小的系统中。
    • 交换(不同进程/作业之间):交换是一种通过将进程或作业从内存交换到外存(如硬盘)并在需要时重新加载的技术。操作系统可以将不活动的进程交换到外存,从而为其他进程腾出空间。
    • 虚拟内存:虚拟内存是操作系统和硬件配合使用的一种技术,它允许程序使用超出物理内存的地址空间。虚拟内存通过将内存分为页面(或段),并将这些页面按需调入物理内存来工作。操作系统使用分页或分段机制来管理虚拟地址和物理地址的转换。
      • 组成部分:
        • 页表机制:页表是操作系统用来映射虚拟地址到物理地址的结构。每个进程都有自己的页表,操作系统通过页表来查找虚拟页面对应的物理页框。
        • 中断机制:当发生缺页中断时,操作系统会暂停当前进程的执行,查找缺失的页面并将其从外存调入内存。处理完后恢复进程执行。
        • 地址变换机制:地址变换是指虚拟地址转为物理地址的过程,通常通过页表来完成。操作系统通过硬件和软件支持这一机制。
        • 内存与外存:内存(RAM)用于存放当前正在运行的程序和数据,而外存(如硬盘)用于存放不常用的数据和程序。
      • 页面淘汰(置换)算法:当物理内存满时,操作系统通过页面淘汰算法选择一个页面将其调出内存,腾出空间给新的页面。
        • 先进先出页面淘汰(置换)算法(FIFO):根据页面进入内存的顺序来淘汰页面。最早进入的页面最先被淘汰。
        • 最近最久未用页面淘汰(置换)算法(LRU):淘汰在内存中最久未使用的页面。
        • 最近最少用页面淘汰(置换)算法(clock):类似于LRU,但通过循环方式维护一个“时钟”来模拟最近使用情况。每个页面会有一个使用标志,时钟按顺序检查并淘汰标志为0的页面。
        • 最优(最佳)页面淘汰(置换)算法(OPT):选择未来最久不会使用的页面进行淘汰。理论上可以提供最优的性能,但实际操作中难以实现,因为需要预知未来的访问模式。
        • 注意:页面淘汰是由缺页中断引起的,但缺页中断不见得一定引起页面淘汰
      • 抖动:页面频繁地从内存和外存之间交换,造成频繁的缺页中断,导致系统性能显著下降。
        • 页面频繁的换进换出:
        • 原因:分配给进程的物理内存块不足,或页面置换算法不合理。
      • 页面分配的策略:
        • 固定分区局部置换(物理块不变):每个进程的物理内存块数目固定,只能在自己的分区内进行页面置换。
        • 可变分配全局置换 (动态增加物理块):操作系统可以根据需要为进程分配更多的物理内存块,进程的页面可以在整个系统的物理内存中置换。
        • 可变分配全局置换(只允许从该进程的内存页面中挑选一页):只在进程自己的页面中进行页面淘汰,保证每个进程至少有一部分内存空间。

第四章:文件管理

文件、文件系统

  • 概念:文件是以计算机硬盘为载体的存储在计算机上的信息集合。文件系统就是操作系统负责操纵和管理文件的一套设施,实现文件的共享和保护,方便用户【按名存取(基本目标),提高文件的存取速度(最重要目标)】
  • 功能:文件管理,目录管理,文件空间管理,文件共享和保护,提供方便的接口。

文件的逻辑结构

  • 无结构文件(流式文件):
  • 有结构文件(记录式文件):
    • ​​​​​​​顺序文件:
    • 索引文件:
    • 顺序索引文件:

目录和目录结构

  • 文件控制块:文件系统内部给每一个文件设置了一个文件控制块,用于描述和控制文件的数据结构,与文件一一对应。
  • 目录机构:
    • ​​​​​​​单级目录(不可以重名)
    • 二级目录(解决重名问题)
      • ​​​​​​​主文件目录
      • 用户文件目录
    • 树形目录:(优:方便,缺:不便共享)
      • ​​​​​​​绝对路径:从根目录出发
      • 相对路径:从当前目录出发
    • 图形目录(实现了共享)

文件实现

  • 文件分配方式:
    • ​​​​​​​连续分配(有外部碎片)
    • 链接分配(解决外部碎片,但不支持直接访问,数据易丢失)
    • 索引分配(加入fat表可直接访问,减少了访问磁盘的次数)
  • 文件存储空间管理:
    • ​​​​​​​空闲表法
    • 空闲链表法
    • 位示图法

磁盘管理

  • 磁盘地址结构:柱面号,片面号,扇面号。
  • 磁盘调度算法:
    • ​​​​​​​先到先服务算法(FCFS):按照磁盘请求到达的顺序依次处理,简单但可能导致效率低下。
    • 最短查找时间优先算法(SSTF):优先处理距离当前磁头最近的请求,减少磁头移动,但可能导致“饥饿”现象。
    • 扫描算法:磁头沿一个方向扫描到最远请求后反向扫描,减少磁头的无效移动。
    • LOOK算法:类似于SCAN,但磁头扫描到最远请求后直接反向扫描,避免到达磁盘末端。
    • 循环扫描算法:磁头从一个方向扫描到最远端后跳回起始端继续扫描,避免回程空转。
    • 循环LOOK算法:类似C-SCAN,但只扫描到最远请求后跳回,避免回程浪费

补充说明:

填空

前驱,生产者,消费者


解答

  • 操作系统的概念,特征,功能

    • 概念:操作系统是管理计算机硬件和软件资源的系统软件,提供计算机运行和用户操作的接口。
    • 特征:并发性、共享性、虚拟性、异步性。
    • 功能:进程管理、内存管理、文件管理、设备管理、用户接口。
  • 进程转换,进程状态,进程通信

    • 进程转换:进程从一个状态到另一个状态的转变,如从就绪到执行、从执行到阻塞等。
    • 进程状态:就绪、执行、阻塞。
    • 进程通信:进程间可以通过信号量、消息队列、共享内存等方式进行通信。
  • 临界资源,临界区

    • 临界资源:指多个进程共享并且只能由一个进程独占使用的资源,如打印机、数据库等。
    • 临界区:进程在访问临界资源时所执行的代码段。
  • 分区算法首次优缺点

    • 首次适应:将进程装入第一个足够大的内存区。
    • 优点:简单,易于实现。
    • 缺点:可能导致内存碎片,分配效率降低。
  • 程序和进程的区别联系

    • 程序:静态的代码和数据集合。
    • 进程:程序在特定数据上的动态执行实例。
    • 联系:进程是程序的执行实例,程序是进程的基础。
  • 内存回收的几种情况

    • 释放内存:进程结束时,操作系统回收其占用的内存。
    • 垃圾回收:自动检测并回收不再使用的内存块。
    • 碎片整理:合并内存碎片,重新分配。
  • 死锁产生原因,预防

    • 产生原因:资源竞争、不可剥夺、循环等待、占有且等待。
    • 预防方法:破坏死锁的四个必要条件中的一个或多个(如禁止循环等待、资源预分配)。
  • 信号,信号量

    • 信号:用于进程间通信的机制,可以通知进程某个事件发生。
    • 信号量:一种同步工具,用于管理对共享资源的访问控制,通常有计数信号量和二值信号量。

计算题

  • 进程调度,优先级,LRU

    • 进程调度:操作系统根据一定的算法选择进程并分配CPU时间。
    • 优先级:进程调度时,操作系统根据优先级决定哪个进程获得CPU资源。
    • LRU:最少使用替换算法(Least Recently Used),用于页面置换中,淘汰最久未使用的页面。
  • 内存访问时间,地址转换

    • 内存访问时间:从发出内存访问请求到数据返回所需的时间。
    • 地址转换:通过页表、段表等将逻辑地址转换为物理地址。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com