还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
操作系统原理欢迎大家学习操作系统原理课程本课程将带领大家深入了解计算机操作系统的核心概念、架构设计和实现机制,培养大家分析和解决问题的能力操作系统是计算机系统中最基础、最重要的系统软件,它管理计算机硬件和软件资源,为用户提供友好的交互界面通过本课程的学习,你将掌握操作系统的工作原理,理解计算机系统的运行机制课程将理论与实践相结合,既关注基本原理,也强调实际应用,帮助大家建立系统化的知识框架,为未来的学习和工作打下坚实基础什么是操作系统操作系统定义计算机系统结构层次操作系统是管理计算机硬件与软件资源的系统软件,同时也是计算机系统可分为四个层次硬件层、操作系统层、应用程序控制程序执行的核心程序集合它为用户和应用程序提供接层和用户层操作系统处于中间位置,向下控制硬件,向上为口,隐藏了硬件的复杂性应用提供服务操作系统负责处理输入/输出操作、内存管理、进程调度、文这种层次结构使得计算机系统模块化,降低了复杂性,提高了件系统维护及网络通信等任务,是计算机系统的管家可扩展性和可维护性每一层都通过定义良好的接口与相邻层交互操作系统的发展历程批处理系统1950-1960年代初期操作系统采用批处理模式,作业按序执行,无交互能力引入了多道程序设计,提高了CPU利用率,但用户体验较差分时系统1960-1970年代分时系统允许多用户同时共享计算机资源,通过时间片轮转实现交互式使用UNIX系统的诞生是这一时期的重要里程碑实时系统1970年代以后实时系统强调时间约束,保证在规定时间内响应外部事件广泛应用于工业控制、航天、医疗等领域,如Apollo制导计算机现代操作系统1980年代至今随着个人计算机和移动设备普及,Windows、MacOS、Linux、Android等现代操作系统蓬勃发展,图形界面、网络支持成为标准特性操作系统的主要功能处理器管理负责进程创建、调度与终止,确保CPU资源的高效利用通过各种调度算法,在多进程环境中实现公平分配处理器时间,最大化系统吞吐量内存管理分配与回收内存空间,实现虚拟内存机制,保护进程地址空间通过分页、分段等技术,提高内存利用率,支持大型程序运行文件系统管理提供文件的创建、存储、访问控制机制,管理目录结构屏蔽底层设备差异,为用户提供统
一、简单的文件操作接口设备管理控制外部设备,提供设备驱动接口,管理I/O操作通过缓冲区管理、中断处理等机制,优化设备访问效率,提升系统性能操作系统类型与分类按任务处理方式分类批处理系统成批处理作业,如早期大型机系统分时系统通过时间片轮转服务多用户,如UNIX按用户数量分类实时系统保证在规定时间内响应,如工控单用户系统一次只允许一个用户访问,如系统早期的MS-DOS多用户系统支持多用户并发访问,如按应用领域分类UNIX、Linux桌面操作系统Windows、macOS服务器操作系统Windows Server、Linux嵌入式操作系统FreeRTOS、VxWorks移动操作系统Android、iOS操作系统体系结构客户机-服务器模式分布式架构,功能模块作为服务提供微内核结构核心功能最小化,服务模块化实现单体内核结构所有系统功能集成于一个程序单体内核结构是传统架构,将所有系统服务(进程管理、内存管理、文件系统等)都整合在内核空间,执行效率高但结构复杂,Linux采用此结构微内核结构只在内核态保留最基本功能,如进程调度、基本通信等,其他服务作为用户态进程运行,Minix是典型代表客户机-服务器模式将操作系统功能分解为多个服务器进程,如Windows NT系列采用混合架构,结合单体内核和客户机-服务器模式的优点用户界面与系统调用命令行接口CLI图形用户界面GUI系统调用通过文本命令与操作系统交互,灵活高采用图形元素如窗口、按钮、菜单等,系统调用是应用程序访问操作系统服务效但学习曲线陡峭Linux的Bash、直观易用Windows的Explorer、的接口,是用户程序与操作系统之间的Windows的PowerShell是典型代表macOS的Finder提供了友好的可视化操桥梁典型系统调用包括文件操作命令行接口特别适合系统管理员和开发作环境GUI大大降低了计算机使用的open,read,write、进程控制fork,人员使用,可以通过脚本实现自动化操门槛,使普通用户能够轻松操作计算exec、通信pipe,socket等系统调作机用实现了用户态到内核态的转换,保障了系统安全性操作系统的启动过程开机自检POST计算机上电后,首先执行硬件自检,检测CPU、内存、外设等是否正常工作BIOS/UEFI加载自检通过后,BIOS/UEFI程序开始执行,初始化系统硬件并建立中断向量表引导设备识别BIOS/UEFI按预设顺序搜索可引导设备,读取启动扇区的引导程序引导加载程序执行引导程序如GRUB加载操作系统内核到内存,传递控制权内核初始化操作系统内核开始执行,初始化各子系统,加载设备驱动用户环境启动启动系统服务,加载用户界面,准备接受用户登录和命令进程的概念进程定义进程是程序的一次执行实例,是操作系统资源分配的基本单位一个进程包含程序代码、数据及其执行上下文,是一个动态的实体动态性进程是程序执行的动态过程,其状态、资源占用等随执行推进而变化进程创建后会经历运行、等待、就绪等不同状态独立性进程是独立运行的实体,拥有自己的地址空间和系统资源操作系统提供保护机制,确保进程之间不会相互干扰异步性进程以不可预知的速度向前推进,取决于系统调度和资源可用性这种异步特性使得多进程系统的行为具有一定的不确定性进程的状态与转换创建状态进程正在被创建,操作系统为其分配资源、初始化PCB进程尚未准备好运行,系统正在为其加载程序和数据到内存中就绪状态进程已准备好执行,等待CPU分配所有就绪进程都在就绪队列中排队,等待调度器选择当获得CPU时,进程状态转为运行状态运行状态进程正在CPU上执行在单处理器系统中,任一时刻只有一个进程处于运行状态运行中的进程可能因时间片用完而回到就绪状态,或因等待资源而转为阻塞状态阻塞状态进程等待某事件发生(如I/O操作完成、信号量释放)暂时无法执行事件发生后,进程转为就绪状态,重新参与CPU调度终止状态进程执行结束或被强制终止,系统回收其占用的资源操作系统需要完成各种清理工作,如关闭文件、释放内存等进程控制块PCB进程标识信息进程IDPID、父进程ID、用户ID等唯一标识进程的信息,用于系统管理和进程间通信处理器状态信息程序计数器、寄存器值、状态字等,保存进程上下文,用于进程切换恢复执行环境内存管理信息内存页表、段表、基地址和界限寄存器值,描述进程地址空间及其映射关系资源清单打开文件列表、分配设备、使用的信号量等资源列表,便于系统追踪和管理进程资源进程控制块PCB是操作系统管理进程的核心数据结构,记录进程的所有重要信息PCB通常作为链表节点组织,便于系统进行队列管理PCB的内容在进程调度时用于保存和恢复执行上下文,是实现多道程序并发执行的关键进程的创建与终止进程创建流程进程终止与资源回收进程创建是一个复杂的系统操作,涉及多个步骤进程可通过以下方式终止
1.分配唯一的进程标识符PID•正常完成任务
2.为进程分配内存空间•出现致命错误
3.初始化进程控制块PCB•被其他进程终止(如kill信号)
4.建立必要的数据结构(如页表)•资源限制(内存不足等)
5.将进程插入到就绪队列进程终止后,操作系统需要常见的进程创建API包括UNIX系统的fork和exec、
1.关闭所有打开的文件Windows的CreateProcess等
2.释放内存和其他系统资源
3.更新系统表和队列
4.通知父进程(如需要)进程调度概述调度时机何时进行进程切换?调度策略如何选择下一个运行的进程?评价指标如何衡量调度算法的优劣?进程调度是操作系统核心功能,决定哪个进程获得CPU执行权调度发生的时机包括进程创建完成后、进程正常终止时、进程阻塞等待资源时、中断处理完成时、I/O操作完成时等典型的调度评价指标包括CPU利用率、系统吞吐量、周转时间、等待时间和响应时间多道程序设计通过合理调度,在一个CPU上交替执行多个程序,提高资源利用率调度算法的选择取决于系统类型和设计目标批处理系统追求高吞吐量,分时系统注重快速响应,实时系统则要求确定性和可预测性调度算法分类非抢占式调度抢占式调度实时调度一旦进程获得CPU,操作系统可强制剥夺针对具有严格时间约将一直执行直到完成正在运行进程的CPU束的任务,确保在截或自愿放弃(如I/O请控制权,分配给其他止期限前完成根据求或等待资源)这进程触发条件包任务截止时间的严格种方式实现简单,适括更高优先级进程程度,分为硬实时和合批处理系统,但可就绪、时间片用完、软实时调度能导致高优先级任务系统事件发生等代表算法速率单调等待时间过长代表算法优先级调调度RMS、最早截止代表算法先来先服度、时间片轮转期限优先EDF务FCFS、短作业优RR、多级反馈队列先SJF先来先服务FCFS算法原理按进程到达就绪队列的先后顺序分配处理器,先到者先服务这是最简单的非抢占式调度算法,实现简单,公平性好优点实现简单,易于理解和编程;对所有进程公平,不会产生饥饿现象;适合后台批处理作业缺点平均等待时间可能较长;短进程可能在长进程后面等待;不适合交互系统;存在护航效应问题性能分析假设有进程P1执行时间20ms、P25ms、P310ms按顺序到达,则P1等待0ms,P2等待20ms,P3等待25ms,平均等待时间为15ms如果顺序为P
2、P
3、P1,则平均等待时间仅为
8.33ms短作业优先SJF算法原理理论证明选择执行时间最短的进程优先执行,可SJF算法在所有调度算法中,平均等待以是非抢占式或抢占式(又称最短剩余时间和平均周转时间最小,具有理论最时间优先SRTF)优性潜在问题实现难点可能导致长作业饥饿,在负载较重时,难以准确预测进程的执行时间,通常基短作业不断到达,长作业可能长时间得于历史执行时间进行估计,如使用指数不到执行平均法举例假设有四个进程P1执行时间8ms、P24ms、P39ms、P45ms同时到达使用非抢占式SJF调度,执行顺序为P2→P4→P1→P3,平均等待时间为0+4+9+17/4=
7.5ms而如果使用FCFS,平均等待时间为0+8+12+21/4=
10.25ms,SJF明显优于FCFS时间片轮转RR算法算法原理为每个进程分配一个时间片,当时间片用完时,进程被强制挂起并放回就绪队列队尾,CPU分配给队首进程这是一种典型的抢占式调度算法,特别适合分时系统时间片设置时间片长度是RR算法的关键参数太长会退化为FCFS,响应性降低;太短会导致频繁上下文切换,增加系统开销通常设置为10-100ms,使大多数交互操作能在一个时间片内完成性能分析RR算法的平均周转时间通常比SJF长,但能提供更好的响应时间对于n个进程和时间片q,最坏情况下的响应时间为n-1q,比FCFS有显著改善,尤其对短进程和交互进程应用场景RR算法是分时系统的基础,能公平地为多用户提供快速的交互响应它也常与优先级调度结合,形成多级队列调度算法,适应不同类型进程的需求多级队列及反馈队列多级队列多级反馈队列典型应用场景将就绪队列分为多个独立队列,每个队列在多级队列基础上,允许进程在不同队列多级反馈队列是现代操作系统中最常用的拥有不同的优先级和调度算法进程永久间移动新进程首先进入最高优先级队调度算法,Windows、Unix/Linux系统分配到某一队列,队列间通常采用优先级列,使用较小时间片如果一个时间片内都采用其变体它能根据进程行为动态调抢占策略例如,前台交互进程队列使用未完成,则降级到下一队列,时间片加整优先级,I/O密集型进程通常保持高优RR算法且优先级高,后台批处理进程队倍这样,短进程很快完成,长进程逐渐先级,CPU密集型进程则降至低优先级,列使用FCFS算法且优先级低降至低优先级队列,兼顾了响应时间和吞优化了系统资源利用吐量线程与多线程模型线程定义用户级线程内核级线程线程是CPU调度的基本单位,是进程内完全在用户空间实现,操作系统不感知由操作系统内核支持和管理的线程,调的一条执行路径与进程不同,同一进其存在线程管理由用户级线程库(如度由内核完成每个用户线程映射到一程的多个线程共享地址空间和其他资POSIX Threads)实现,线程调度不涉个内核线程,线程创建、调度和管理都源,只有少量私有资源(如寄存器值、及内核态切换,开销小需要系统调用栈等)优点创建和切换开销小,可移植性优点能充分利用多处理器,一个线程线程切换的开销远小于进程切换,因为好缺点一个线程阻塞会导致整个进阻塞不影响其他线程缺点线程操作不需要切换地址空间,适合需要频繁切程阻塞,无法利用多处理器典型实现需要系统调用,开销较大现代操作系换的并发应用多线程能充分利用多核如早期的Java线程、GNU Portable统如Windows、Linux、macOS都采用处理器的计算能力,提高程序执行效Threads内核级线程率线程并发与同步线程同步机制确保多线程协调工作的方法和工具并发冲突2资源竞争导致的不确定结果临界区访问共享资源的代码片段线程并发是多线程程序的核心特性,允许多个执行流同时进行,提高系统吞吐量和响应性然而,当多个线程访问共享资源时,若不加控制,可能导致数据不一致或程序错误临界区是指访问共享资源的代码段,需要互斥访问以保证正确性例如,多个线程同时修改一个共享变量可能导致更新丢失线程同步的目的就是控制这种并发访问,确保线程间正确协作同步原因主要包括互斥(确保独占访问共享资源)、条件同步(基于特定条件协调线程执行顺序)、屏障同步(确保一组线程同时到达某一执行点)常见同步机制包括互斥锁、信号量、条件变量、读写锁等同步与互斥机制互斥锁Mutex互斥锁是最基本的同步工具,提供对共享资源的独占访问一个线程获得锁后,其他尝试获取同一锁的线程将被阻塞,直到锁被释放这保证了临界区的互斥访问,防止数据竞争信号量Semaphore信号量是一种更通用的同步机制,可以控制对共享资源的并发访问次数二值信号量binary semaphore等同于互斥锁;计数信号量counting semaphore则允许指定数量的线程同时访问资源P操作wait减少信号量值并可能阻塞,V操作signal增加信号量值并可能唤醒等待线程条件变量Condition Variable条件变量允许线程基于某条件阻塞等待,并在条件满足时被通知它通常与互斥锁配合使用,实现线程间的精确协作wait操作释放锁并等待通知,signal/broadcast操作通知等待线程条件已满足读写锁Read-Write Lock读写锁区分读操作和写操作,允许多个读者同时访问,但写者需要独占访问这种机制特别适合读多写少的场景,能显著提高并发性能经典同步问题生产者-消费者生产者缓冲区生成数据,放入缓冲区有限容量的共享区域同步需求消费者协调访问,避免冲突从缓冲区取出数据处理生产者-消费者问题是一个经典的线程同步问题,描述两类线程通过有限缓冲区协作的场景生产者线程生成数据并放入缓冲区,消费者线程从缓冲区取出数据处理关键同步约束是缓冲区满时生产者必须等待,缓冲区空时消费者必须等待,且对缓冲区的访问必须互斥使用信号量解决方案通常包含三个信号量empty(表示空槽位数)、full(表示满槽位数)、mutex(确保互斥访问缓冲区)初始化时empty=n(缓冲区容量),full=0,mutex=1死锁的定义与条件互斥条件请求与保持条件不可抢占条件循环等待条件资源不能被多个进程同时使用,一次进程已获得部分资源,又请求新资源已分配的资源只能由持有进程自愿释存在一个进程链,每个进程持有下一只能被一个进程使用但被阻塞,同时保持已有资源不释放放,不能被强制剥夺个进程请求的资源死锁是指两个或多个进程在执行过程中,因争夺资源而造成的一种互相等待的现象死锁一旦形成,如果不外部干预,将永远持续下去只有以上四个条件同时满足时,死锁才会发生资源分配图是描述死锁的有效工具,它用有向图表示进程和资源之间的关系在图中,进程用圆圈表示,资源用方框表示,方框中的点表示资源实例数从进程到资源的边表示请求,从资源到进程的边表示分配如果图中存在环路且资源只有一个实例,则系统中存在死锁死锁预防与避免死锁预防死锁避免银行家算法实例死锁预防是通过破坏死锁的必要条件来防止死锁发生死锁避免是在资源分配前进行判断,只在安全的情况下银行家算法需要记录以下信息分配资源•Available可用资源向量•破坏互斥条件使资源可共享(有些资源无法实•资源分配图算法适用于单实例资源系统•Max最大需求矩阵现)•银行家算法适用于多实例资源系统•Allocation已分配资源矩阵•破坏请求与保持条件进程必须一次性申请所有资银行家算法核心思想是维持系统始终处于安全状态系•Need还需资源矩阵(Max-Allocation)源统在分配资源前检查此次分配后是否仍处于安全状态,安全性检查通过寻找能够完成的进程(Need≤•破坏不可抢占条件允许资源在必要时被剥夺若是则分配,否则推迟分配安全状态指存在一个进程Available),模拟其完成并释放资源,然后重复此过•破坏循环等待条件对资源类型进行编号,按序申执行序列,使所有进程都能完成程如果所有进程都能完成,则状态安全请资源死锁预防方法简单直接,但通常会降低系统资源利用率和并发度死锁检测与恢复死锁检测算法死锁恢复方法死锁检测是周期性地检查系统中是否存在死锁,不会预防死锁一旦检测到死锁,系统需要采取措施恢复正常运行发生,但能及时发现并处理
1.进程终止终止死锁环路中的一个或多个进程•单实例资源使用等待图(简化的资源分配图),检查图•一次性终止所有死锁进程中是否存在环路•逐个终止进程直到打破死锁环路•多实例资源算法类似银行家算法,但不需要提前知道进
2.资源抢占从某些进程强制剥夺资源分配给其他进程程的最大需求•选择牺牲进程考虑进程优先级、已执行时间、剩余时检测频率是关键设计决策太频繁会增加系统开销,太少则会间等延长死锁存在时间检测频率应根据死锁可能性和系统负载动•资源抢占后可能需要回滚进程状态态调整死锁恢复通常会导致部分计算结果丢失,系统应尽可能减少这种损失,如通过检查点机制允许进程从安全点重新启动存储管理的目标空间利用率进程隔离与保护地址空间扩展内存共享存储管理的主要目标之一存储管理必须提供有效的通过虚拟内存技术,存储支持进程间有控制地共享是提高内存空间利用率,内存保护机制,确保一个管理系统能够为进程提供内存区域,便于进程通信减少内存碎片,使有限的进程不能访问另一个进程比物理内存更大的地址空和资源节约例如,多个物理内存资源能够支持更的地址空间,防止程序错间,使程序不必受限于实进程可以共享同一份只读多进程同时运行内存空误或恶意攻击导致系统不际物理内存容量这极大代码(如系统库),减少间利用率直接影响系统的稳定这通常通过硬件支地简化了程序设计,提高内存占用,提高系统效多道程序度,进而影响整持的内存管理单元MMU了开发效率率体系统性能实现连续分配管理固定分区分配将物理内存划分为若干个固定大小的分区,每个分区只装入一个作业根据分区大小是否相等,又分为等分区和不等分区该方法实现简单,但存在内部碎片问题,内存利用率较低可变分区分配不预先划分内存,而是在进程装入时,根据进程的实际需要分配连续的内存空间随着进程的创建和终止,内存中会形成已分配区和空闲区交替的局面该方法内存利用率较高,但存在外部碎片问题可变分区分配策略首次适应First-Fit分配第一个足够大的空闲分区,实现简单,效率高最佳适应Best-Fit分配最小的足够大空闲分区,减少大块分区的浪费,但会产生更多小碎片最坏适应Worst-Fit分配最大的空闲分区,理论上会保留较大的剩余空间,但实际效果往往不理想碎片整理紧凑Compaction技术通过移动已分配的内存块,将所有空闲空间合并成一个大的连续区域这需要动态重定位的硬件支持,且操作开销较大,通常只在必要时执行分页管理基本原理分页机制基本概念页表结构与地址转换页表优化技术分页是一种非连续内存分配机制,将物页表是实现逻辑地址到物理地址转换的随着地址空间增大,页表可能变得非常理内存和逻辑地址空间划分为固定大小核心数据结构,记录了逻辑页面与物理庞大为解决这一问题,发展了多种优的块物理内存被划分为页帧页帧的对应关系每个进程都有自己的化技术Frame,进程的地址空间被划分为页表,由操作系统维护•多级页表将页表分层,减少实际页Page,通常大小为2的幂(如逻辑地址由页号和页内偏移两部分组页表占用空间4KB)成地址转换过程CPU生成逻辑地址•快表TLB高速缓存最近访问的页进程执行时,将需要的页面装入任意可→分离出页号和页内偏移→根据页号查表项,加速地址转换用的页帧中,物理地址不必连续这大询页表获取页帧号→页帧号与页内偏移•倒置页表以页帧为索引建立页大提高了内存利用率,消除了外部碎片组合形成物理地址表,减少页表大小问题,但可能产生内部碎片(最后一页地址转换通常由内存管理单元MMU硬未填满)件自动完成,提高访问效率分段管理原理程序的逻辑结构程序自然划分为代码段、数据段、堆栈段等分段机制按逻辑单位分配内存,段大小可变段表结构记录段基址和段限长,实现地址映射和保护分段是一种根据程序的逻辑结构划分地址空间的内存管理方式不同于分页的固定大小划分,分段以程序的逻辑单位(如函数、数据结构)为基础,每个段的大小可以不同,可以增长或收缩段是程序的逻辑实体,如主程序段、子程序段、数据段、栈段等分段系统中,逻辑地址由段号和段内偏移两部分组成段表记录了每个段的基址(段在内存中的起始位置)和段限长(段的大小),用于地址转换和边界检查分段的主要优点包括支持程序的逻辑划分,便于模块化编程和共享;提供了段级保护机制,可为不同段设置不同访问权限(只读、可执行等);便于代码和数据的共享但分段也面临着与连续分配类似的外部碎片问题分段与分页结合分段提供逻辑视图按程序结构划分地址空间,支持保护和共享分页提供物理管理以固定大小页面为单位分配物理内存,消除外部碎片段页式结合先将程序分段,再将段分页,实现二级地址映射地址转换过程逻辑地址→段表查询→页表查询→物理地址段页式存储管理结合了分段和分页的优点,是一种二级映射的地址转换机制在这种方案中,用户程序先按逻辑结构划分为段,然后每个段再被划分为固定大小的页面逻辑地址由段号、段内页号和页内偏移三部分组成地址转换需要两级映射首先通过段号查询段表,获取该段对应的页表位置;然后通过段内页号查询该段的页表,获取实际页帧号;最后将页帧号与页内偏移组合形成物理地址虚拟存储器虚拟内存基本概念局部性原理虚拟内存是一种内存管理技术,使进程可时间局部性如果一个信息项正被访问,以使用比实际物理内存更大的地址空间那么在近期它很可能再次被访问(如循环它创造了一个抽象的虚拟地址空间,使中的指令和数据)程序认为拥有连续的可用内存,而实际上空间局部性如果一个信息项正被访问,部分数据可能存储在磁盘上那么与它临近的信息项很可能也将被访问核心思想是程序运行时只需将部分内容装(如数组顺序访问)入内存,其余部分暂留在外存,需要时再这两种局部性使得虚拟内存系统能够预测调入内存这基于程序访问的局部性原程序行为,提前将可能需要的数据装入内理程序在某一时间段内只访问其地址空存,提高性能间的一小部分请求分页机制请求分页是虚拟内存的一种实现方式,特点是页面在需要时才被装入内存•页表项增加存在位、修改位等控制信息•缺页中断访问不在内存中的页面时触发•页面置换当内存已满需调入新页面时,选择某页面换出请求分页系统使物理内存成为虚拟地址空间的缓存,大大提高了内存利用率页面置换算法先进先出算法FIFO最近最少使用算法LRU最优置换算法OPT最简单的页面置换算法,选择在内存中驻基于程序局部性原理,选择最长时间未被选择将来最长时间内不会被访问的页面进留时间最长的页面进行置换实现简单,引用的页面进行置换LRU算法性能优于行置换OPT算法是理论上最优的置换算只需维护一个队列,新页面入队,需要置FIFO,更接近理论最优算法,但实现复法,缺页率最低,但需要预知未来的访问换时将队首页面换出但FIFO可能会置杂,需要记录每个页面的最后访问时间或序列,实际系统中无法实现它主要用作换出经常使用的页面,导致性能下降,甚维护访问顺序常见实现包括计数器法和其他算法的性能评估基准在教学实例至出现Belady异常(增加物理帧数反而栈法,也有近似实现如Clock算法(第二中,通常通过提前指定完整的访问序列来增加缺页次数)次机会法)模拟OPT算法的行为抖动与页面分配抖动现象原因分析系统花费大量时间在页面调度而非执行有用工作进程工作集大于分配的物理页帧数页面分配策略解决方法局部分配与全局分配政策工作集模型和分页策略调整抖动是虚拟内存系统中的一种严重性能下降现象当系统中同时运行的进程太多、或进程分配的物理页帧太少时,进程频繁出现缺页中断,系统花费大量时间在磁盘I/O上,而真正的计算时间比例很小,导致CPU利用率急剧下降工作集模型是解决抖动的一种方法,它定义了进程在某时间窗口内访问的页面集合,用于评估进程的内存需求系统应确保每个进程获得足够页帧以容纳其工作集,否则应该挂起一些进程而非让所有进程都抖动页面分配策略分为局部分配和全局分配局部分配为每个进程固定分配一定数量的页帧,置换仅在进程自己的页帧内进行全局分配则允许从任何进程中选择页面置换,更加灵活但可能导致某些进程页面被过度置换实际系统通常采用这两种策略的结合文件系统基础文件概念文件类型与属性文件操作文件是存储在辅助存储设备上的相关信息的文件类型包括普通文件(文本文件、二进基本文件操作包括命名集合,是操作系统进行I/O管理的基本制文件)、目录文件、特殊文件(设备文•创建Create分配空间,建立目录项单位文件提供了一个抽象机制,使用户能件、管道文件等)不同操作系统对文件类•删除Delete释放空间,清除目录项够以统一的方式存储和访问数据,而不必关型的支持有所差异心底层存储设备的物理特性•打开Open将文件从辅存调入内存文件属性(又称文件元数据)包括•关闭Close释放文件描述符等资源从用户角度看,文件通常是字节流或记录的•名称用户可读的文件标识符•读取Read读取文件内容集合;从系统角度看,文件是映射到物理存•类型文件的格式和用途储设备上的逻辑数据单元文件系统提供文•写入Write修改文件内容件的组织、检索、更新和保护等功能•位置指向文件物理位置的指针•截断Truncate删除文件部分内容•大小文件当前大小和最大允许大小•定位Seek设置文件指针位置•保护访问控制信息•时间戳创建时间、最后修改时间、最后访问时间等目录结构单级目录所有文件位于同一层次,文件名必须唯一,不支持文件分组这是最简单的目录结构,如早期的MS-DOS这种结构适用于个人计算机和小型系统,但在文件数量增加时管理困难两级目录为每个用户创建单独目录,允许不同用户拥有同名文件通常包含主目录和多个用户子目录这种结构解决了文件名冲突问题,但仍不支持复杂组织树形目录多级目录结构,形成层次化树形组织目录可包含文件和子目录,支持有效的文件分类和管理现代操作系统普遍采用此结构,提供灵活的文件组织方式有向无环图基于树形结构扩展,允许文件和目录被多个目录共享提供更灵活的共享机制,但增加了系统复杂性和文件删除难度Unix的链接机制使用这种结构路径命名是指定文件位置的方式,分为绝对路径(从根目录开始)和相对路径(从当前目录开始)例如,Linux中/home/user/docs是绝对路径,而../docs是相对路径文件共享允许多个用户或程序访问同一文件,可通过硬链接(多个目录项指向同一文件)或符号链接(特殊文件指向另一文件)实现共享机制提高了存储效率,但需要引入引用计数等机制处理文件删除问题文件分配方式连续分配链式分配索引分配文件在磁盘上占据连续的块优点支持顺序和直文件以块链表形式存储,每块包含下一块的指针为每个文件创建索引块,记录该文件所有块的位接访问,读取性能好,实现简单缺点存在外部优点消除外部碎片,文件易于扩展缺点只支置优点支持直接访问,消除外部碎片,易于扩碎片,文件大小难以扩展适用于只读介质(如持顺序访问,可靠性较低(一个指针损坏会影响后展缺点小文件存储开销大,大文件需要多级索CD-ROM)和大小固定的文件续访问)FAT文件系统采用表链式分配,将指针引UNIX的inode系统采用这种方式,使用直接索集中存储,改善了随机访问性能引、间接索引、双重间接索引等机制处理不同大小的文件磁盘管理缓冲管理与磁盘缓存缓冲区作用磁盘缓存写策略缓冲区是内存中用于临时存放I/O数据磁盘缓存(Buffer Cache)是操作系统写回Write-back数据先写入缓存,的区域,是解决设备与处理器速度不匹在内存中为磁盘I/O建立的高速缓冲在适当时机再写回磁盘优点是性能配问题的关键机制主要作用包括区,利用程序的局部性原理提高文件访高,多次修改同一块只需一次物理写;问速度它的工作原理是缺点是系统崩溃可能导致数据丢失•降低I/O频率,减少系统调用开销•读缓存将磁盘块读入缓存,后续写直达Write-through数据同时写入•支持数据批量传输,提高吞吐量访问同一块时直接从缓存获取缓存和磁盘优点是安全性高,确保数•允许异步I/O操作,提高CPU利用率据持久化;缺点是性能较低,无法合并•写缓存将写操作暂存在缓存中,•协调不同设备间速度差异多次写操作延迟写回磁盘常见缓冲策略包括单缓冲区、双缓冲区•预读根据空间局部性,预先读入实际系统通常采用混合策略,如定期刷和循环缓冲区等可能需要的相邻块新periodic flush、设置脏页阈值等,平衡性能和可靠性需求磁盘缓存可大幅减少实际的磁盘I/O次数,提高系统性能数据备份与恢复备份类型备份策略全量备份完整复制所有文件和目录,恢复简单备份周期根据数据重要性和变化频率决定(如但占用空间大、时间长日备、周备、月备)增量备份仅备份自上次备份后变更的文件,节备份介质磁带、光盘、硬盘、网络存储、云存省空间和时间,但恢复过程较复杂储等差异备份备份自上次全量备份后变更的文件,备份位置本地备份、异地备份、云端备份(考恢复比增量备份简单虑灾难恢复需求)选择性备份仅备份特定类型或指定目录的文件自动化设定定时任务,确保备份按计划执行加密保护敏感数据不被未授权访问容错机制文件系统日志Journaling记录文件系统操作,便于系统崩溃后恢复一致状态软件RAID通过冗余存储提高数据可靠性•RAID0(条带化)提高性能但不提供冗余•RAID1(镜像)完全数据冗余,提供高可靠性•RAID5使用奇偶校验分布存储,平衡性能和冗余快照Snapshot创建文件系统的时间点映像,便于回滚或备份设备管理概述应用程序标准化文件操作接口逻辑I/O层设备无关操作、缓冲管理设备驱动程序特定设备控制、中断处理中断处理程序4硬件中断响应与分发物理设备磁盘、打印机、网卡等硬件I/O系统是连接计算机与外部世界的桥梁,负责管理和控制各种输入输出设备上图展示了I/O系统的分层结构,每一层通过定义良好的接口与相邻层交互,实现功能抽象和封装设备无关性是现代操作系统设备管理的重要特性,它允许应用程序以统一方式访问不同类型的设备这种抽象通常通过文件系统接口实现,应用程序通过相同的系统调用(如open、read、write、close)操作不同设备,而无需了解底层设备的具体细节设备管理器主要负责设备识别与初始化、设备命名与保护、设备分配与回收、设备驱动加载与管理、I/O调度与性能优化设备管理的复杂性源于设备种类繁多、接口各异,需要兼顾通用性和特定设备的高效控制I/O控制方式缓冲技术与I/O效率单缓冲机制双缓冲机制循环缓冲与异步I/O设置一个系统缓冲区,作为用户程序和I/O设备之间的中间区设置两个系统缓冲区交替使用当一个缓冲区与设备交换数据循环缓冲使用多个缓冲区组成环形队列,提供更大的缓冲能域当进行输入操作时,数据先从设备传输到缓冲区,处理完时,另一个缓冲区与程序交换数据这种乒乓式操作使CPU力,适合生产者-消费者速度差异较大或不稳定的场景成后再从缓冲区传送到用户区域;输出操作则相反和I/O设备能够更大程度地并行工作异步I/O允许程序发起I/O请求后立即返回,不必等待操作完成单缓冲可以解决速度不匹配问题,但CPU与I/O设备仍然不能完例如,输入时,设备向缓冲区A填充数据的同时,程序可以处理系统使用回调函数、信号或专门的通知机制告知程序I/O完成全并行工作,存在相互等待时间缓冲区B中的数据当两个操作都完成后,两个缓冲区的角色交这种机制充分解耦CPU与I/O操作,显著提高系统响应性,特别换适合网络应用、数据库和多媒体系统驱动程序与设备独立性驱动程序结构驱动程序层次设备独立性设备驱动程序是连接操作系现代操作系统通常采用分层设备独立性是指应用程序可统内核与硬件设备的软件模的驱动程序架构底层驱动以用相同方式访问功能相似块,负责识别、配置和控制程序直接与硬件交互,处理的不同设备这一特性通过特定设备典型的驱动程序设备特有的细节;中间层提设备无关接口、逻辑设备名包含初始化、读写、控制和供通用功能如缓冲、队列管和I/O重定向等机制实现中断处理等功能驱动程序理;上层驱动程序实现特定设备独立性简化了应用程序需要了解设备的硬件细节,类型设备的通用操作这种开发,提高了软件可移植同时遵循操作系统规定的接分层架构支持驱动程序代码性,同时允许在不修改应用口规范复用和简化开发程序的情况下更换底层设备标准化接口标准化设备接口是实现设备独立性的关键这包括硬件接口标准(如USB、PCI)和软件接口标准(如Windows的WDM、Linux的设备文件系统)标准化接口大大简化了驱动开发,促进了硬件兼容性,使用户能够轻松添加新设备,实现即插即用操作系统安全与保护安全威胁系统面临的潜在风险与攻击类型防护机制系统级防护策略与技术安全策略3确保系统安全的整体方法操作系统安全涉及保护系统资源免受未授权访问、修改或破坏主要安全威胁可分为外部威胁(如网络攻击、恶意软件)和内部威胁(如用户错误、特权滥用)常见攻击类型包括缓冲区溢出、拒绝服务、特权提升、会话劫持等操作系统的保护机制通常包括硬件保护(如内存保护、特权级别)、软件保护(如访问控制、身份认证)和管理措施(如安全策略、审计日志)现代操作系统多采用基于能力或访问控制列表的保护模型,强制实施最小权限原则安全策略定义了系统如何处理安全威胁,包括用户身份管理、资源访问控制、网络安全措施、日志与审计等方面有效的安全策略应平衡安全需求与系统可用性,并随威胁演变而更新访问控制与权限管理身份认证机制访问控制列表ACL基于角色的访问控制RBAC身份认证是确认用户身份的过程,是访ACL是一种细粒度的访问控制机制,为RBAC将权限与角色关联,再将角色分问控制的第一步主要认证方式包括每个资源维护一个授权用户及其权限的配给用户,形成用户-角色-权限的三列表Windows和许多文件系统采用这层结构这种模型特别适合企业环境,•知识因素用户知道的信息,如密种方式控制文件访问权限用户权限随其职位变化而调整码、PIN码、安全问题ACL的优点是灵活性高,可以为每个用RBAC优点包括简化权限管理、支持•所有因素用户拥有的物品,如智户指定不同权限;缺点是管理复杂,当职责分离、方便审计;缺点是可能不适能卡、安全令牌、手机用户和资源数量增长时可能变得难以维合需要高度个性化权限的场景现代操•特征因素用户的生物特征,如指护ACL通常与用户组结合使用,简化作系统多采用RBAC与其他模型的混合纹、人脸、虹膜权限管理方案,平衡灵活性和管理复杂度多因素认证结合两种或更多认证方式,大幅提高安全性认证过程产生的凭证(如令牌、cookie)用于后续操作的权限检查病毒与恶意软件病毒特性与类型计算机病毒是能自我复制并传播的恶意程序根据感染方式和行为,可分为文件型病毒(感染可执行文件)、引导型病毒(感染启动扇区)、宏病毒(嵌入文档宏)、脚本病毒(通过脚本语言传播)等现代病毒通常具有多态性(每次复制都改变自身代码)和隐藏性(使用各种技术逃避检测)蠕虫与木马蠕虫是能自主通过网络传播的恶意程序,无需用户交互即可感染新系统与病毒不同,蠕虫是独立程序而非寄生代码著名案例包括Morris蠕虫、ILOVEYOU、WannaCry等木马伪装成有用程序,但实际执行恶意行为典型木马类型包括远程访问木马RAT、键盘记录器、后门程序等木马本身不具备自我复制能力,主要通过社会工程学手段传播系统级攻击手段缓冲区溢出攻击通过向程序输入超出预期长度的数据,覆盖相邻内存区域,执行攻击者的代码权限提升利用系统漏洞获取比正常授予更高的权限,通常目标是获取管理员或root权限驱动程序劫持替换或修改系统驱动程序,在内核模式下执行恶意代码,绕过系统安全机制内核漏洞利用针对操作系统内核的安全漏洞发起攻击,可能导致系统完全被控制防御策略多层防御结合防病毒软件、防火墙、入侵检测系统等多重保护最小权限原则程序和用户只拥有完成任务所需的最小权限及时更新保持系统和应用程序补丁的最新状态行为监测基于异常行为检测潜在威胁,而不仅依赖已知特征用户教育提高用户安全意识,减少社会工程学攻击成功率操作系统更新与修复漏洞发现通过安全研究、漏洞赏金计划或已发生的攻击识别缺陷补丁开发分析漏洞根因,开发修复代码并进行测试验证发布计划根据严重性确定发布时间,准备修复文档分发部署通过更新机制推送补丁,监控安装进度效果评估追踪补丁部署率,评估安全改进效果操作系统更新是维护系统安全性和稳定性的关键措施更新通常分为几种类型安全补丁(修复安全漏洞)、功能更新(添加新功能)、稳定性更新(修复bug)和性能更新(优化系统性能)大型更新可能同时包含多种类型的改进现代操作系统通常采用自动更新机制,定期检查并安装可用更新企业环境中,通常使用补丁管理系统统一控制更新部署,确保系统一致性和兼容性测试新一代操作系统趋势容器与微服务支持云原生操作系统物联网专用系统现代操作系统越来越多地原生支专为云环境设计的操作系统正成为资源受限的物联网设备设计的持容器技术,如Linux内核的容器为新趋势,它们具有快速启动、轻量级操作系统蓬勃发展,如特性和Windows的容器服务容最小化占用、自动扩展和强大的RIOT OS、Zephyr、Amazon器提供了轻量级的隔离环境,支网络能力等特点代表性系统如FreeRTOS等这些系统专注于持微服务架构应用部署操作系CoreOS、AWS Bottlerocket低功耗、实时性能和安全连接,统正在优化容器运行时性能、安等这些系统通常采用不可变基支持各种无线通信协议和远程管全隔离和资源管理,简化础设施理念,通过整体更新而非理功能,适应物联网设备的特殊DevOps流程包管理进行升级需求人工智能集成操作系统正在深度集成AI功能,包括硬件加速支持、AI开发框架、隐私保护的本地AI处理等AI辅助的系统管理功能如预测性维护、智能资源分配、基于行为的安全防护等,成为操作系统发展的新方向典型操作系统实例分析Windows AndroidiOS macOSLinux其他课程总结与展望本课程全面介绍了操作系统的基本概念、架构设计和实现机制我们从操作系统的定义和历史发展开始,深入研究了进程管理、内存管理、文件系统和设备管理等核心模块,同时探讨了系统安全与保护的重要议题通过本课程的学习,希望大家已经掌握了操作系统的工作原理,理解了计算机系统的运行机制,培养了系统级思维和问题分析能力这些知识和能力不仅对理解现有系统有所帮助,也为深入学习分布式系统、云计算等高级主题奠定了基础未来操作系统发展将聚焦几个主要方向云原生和容器技术进一步成熟,实现更高效的资源管理;人工智能深度集成,提供智能化的系统服务;新型硬件架构适配,如量子计算、神经形态计算等;安全与隐私保护机制不断增强,应对日益复杂的网络威胁希望同学们保持学习热情,持续关注这个充满活力的领域。
个人认证
优秀文档
获得点赞 0