还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
当代操作系统教程欢迎来到《当代操作系统教程》本课程将全面介绍操作系统的基本概念、设计原理和实现技术,深入探讨从传统到现代各类操作系统的发展历程与核心机制我们将从操作系统的基础知识出发,逐步深入到进程管理、内存管理、文件系统和设备管理等核心模块,同时关注虚拟化、安全机制和分布式系统等当代热点话题绪论什么是操作系统系统软件控制和管理计算机硬件与软件资源资源管理器分配处理器时间、内存空间等资源中间层连接用户与硬件的桥梁操作系统是计算机系统中最基础的系统软件,它是连接用户与计算机硬件的桥梁从功能角度看,操作系统负责管理计算机的硬件资源,提供统一的接口供应用程序调用,并为用户提供良好的交互环境操作系统历史沿革第一代(1945-1955)手工操作,无操作系统第二代(1955-1965)简单批处理系统第三代(1965-1980)多道程序与分时系统,UNIX诞生第四代(1980至今)个人电脑,图形界面,网络操作系统操作系统的发展历程是计算机科学发展的重要组成部分从最初的无操作系统阶段,到简单的批处理系统,再到支持多用户、多任务的分时系统,操作系统在不断进化操作系统的主流类型批处理系统分时系统实时系统作业成批提交,自动连续处多用户共享计算机资源,时保证在严格时间约束内完成理,适用于大型计算任务,间片轮转调度,提供交互式任务,广泛应用于工业控提高系统资源利用率体验,如UNIX、Linux制、航空航天等领域嵌入式系统资源受限环境下的专用系统,如智能家电、可穿戴设备和物联网设备随着计算机应用场景的多样化,各类专用操作系统应运而生移动操作系统如安卓和iOS已成为当今使用最广泛的系统类型之一,它们针对触摸屏界面和低功耗运行进行了优化操作系统的主要目标方便性提供友好的用户界面和应用程序接口,降低计算机使用的复杂性,使普通用户无需了解底层硬件细节即可高效使用计算机效率性最大化硬件资源利用率,提高系统吞吐量,减少响应时间和等待时间,通过先进的调度算法和资源分配策略实现系统性能优化可扩展性适应硬件升级和功能扩展需求,支持新设备和技术,确保系统能够随着计算需求的增长而平滑扩展安全性保护系统和用户数据免受恶意攻击,通过权限控制、隔离机制和加密技术确保系统的完整性和可靠性操作系统的设计目标是多方面的,需要在各种需求之间取得平衡提高效率的同时不能牺牲方便性,增强安全机制的同时也要考虑性能影响计算机系统结构回顾硬件层CPU、内存、I/O设备等物理组件操作系统层系统内核、设备驱动、资源管理应用程序层用户可见的应用软件和工具计算机系统呈现出明显的层次结构,自底向上依次为硬件层、操作系统层和应用程序层硬件层由各种物理设备组成,提供基本的计算和存储能力操作系统层作为中间层,隐藏了硬件的复杂性,为上层应用提供简洁统一的接口用户与操作系统的接口命令行界面(CLI)图形用户界面(GUI)系统调用接口通过文本命令与系统交互通过可视化元素操作系统应用程序访问操作系统服务的编程接口•精确控制系统功能•直观易用,学习成本低•提供进程、内存、文件操作API•适合专业用户和脚本编程•适合普通用户日常使用•保护系统安全和稳定性•资源占用少,远程管理方便•支持多任务可视化管理•实现用户态到内核态的转换•代表Unix Shell、Windows•代表Windows、macOS、CMD GNOME•代表POSIX API、Win32API用户与操作系统的交互方式直接影响使用体验尽管图形界面在普通用户中更为流行,但命令行界面在系统管理、软件开发等专业领域仍然不可或缺,因为它提供了更精确和自动化的控制能力操作系统的内核结构微内核结构只保留最基本功能在内核,其他服务在用户空间运行单内核结构•系统更稳定,服务相互隔离所有系统服务运行在内核空间•便于扩展和维护•执行效率高,服务间通信开销小•性能较低,服务间通信开销大•结构紧凑,代码高度优化模块化内核•系统稳定性稍差,一个服务崩溃可能影核心功能固定,其他功能以模块形式动态加载响整个系统•结合单内核与微内核优点•灵活性好,按需加载模块•维护相对简单内核是操作系统的核心部分,负责管理系统资源、提供基础服务不同的内核结构反映了设计理念的差异,各有优缺点Linux采用了模块化的单内核设计,平衡了性能和灵活性;而早期的Windows NT和macOS的XNU内核则吸收了微内核的设计思想操作系统的引导过程上电自检检查硬件完整性BIOS/UEFI初始化初始化基本硬件引导设备识别寻找可启动设备引导加载器加载操作系统内核内核初始化完成系统启动计算机的启动是一个复杂的过程首先,上电后进行硬件自检(POST),检测CPU、内存等核心硬件的状态然后,BIOS或UEFI固件初始化基本硬件,并根据预设的启动顺序寻找可引导设备进程基础概念程序(Program)存储在磁盘上的可执行文件,是静态的指令和数据集合,不占用运行时资源,可以被多个进程同时执行进程(Process)程序的一次执行实例,是动态的实体,拥有独立的地址空间和资源,是操作系统资源分配和调度的基本单位任务(Task)更广义的概念,可以指代进程、线程或作业,在不同操作系统中含义可能有所不同作业(Job)批处理系统中的工作单元,通常包含多个程序及其数据,以及执行这些程序的命令进程是现代操作系统中资源分配的基本单位,每个进程都拥有独立的地址空间和系统资源理解进程与程序的区别非常重要程序是静态的指令集合,而进程是程序的动态执行实例进程的生命周期与状态变化就绪态(Ready)新建态(New)进程已准备好运行,等待CPU分配进程刚被创建,尚未加入就绪队列运行态(Running)进程正在CPU上执行终止态(Terminated)阻塞态(Blocked)进程执行完毕或出错终止进程等待某事件发生,暂时不能运行进程在其生命周期中会经历多种状态转换新建态的进程经过系统初始化后进入就绪态,等待CPU调度;获得CPU资源后转为运行态;当需要等待I/O或其他资源时,进程进入阻塞态;I/O完成或事件发生后重新回到就绪态;最终任务完成或异常终止时进入终止态进程控制块()详解PCB组成部分具体内容作用进程标识进程ID、用户ID、组ID唯一标识进程及其所属用户处理器状态程序计数器、寄存器值保存CPU上下文,用于进程切换进程控制信息调度状态、优先级、调度参数辅助操作系统进行进程调度内存管理信息基址寄存器、页表指针管理进程的地址空间资源记账信息CPU时间、内存使用量用于资源限制和计费I/O状态信息打开文件列表、I/O请求跟踪进程的I/O操作进程控制块(PCB)是操作系统管理进程的核心数据结构,包含了进程的所有相关信息PCB在进程创建时被分配,在进程结束时被回收,贯穿进程的整个生命周期操作系统通过PCB掌握每个进程的状态和资源使用情况,实现对进程的有效管理上下文切换的过程恢复新进程状态选择新进程从选中进程的PCB中加载上下文信息到保存当前进程状态调度算法从就绪队列中选择下一个要执CPU寄存器,包括重设程序计数器指向触发上下文切换将CPU寄存器、程序计数器等执行状态行的进程,考虑优先级、等待时间等因该进程的执行点时间片用尽、高优先级进程就绪、系统信息保存到当前进程的PCB中,确保进素调用阻塞、中断发生等情况都可能导致程下次能从断点继续执行上下文切换上下文切换是操作系统中的重要机制,它使得单个CPU能够在多个进程之间切换,创造出并发执行的假象然而,上下文切换也带来了一定的性能开销,包括直接开销(保存和恢复寄存器值)和间接开销(缓存失效、TLB刷新等)线程与多线程模型线程定义进程内的执行单元,共享进程的地址空间和资源,但有独立的执行流和栈空间,是CPU调度的基本单位用户线程完全在用户空间实现,由线程库管理,内核不感知其存在,创建开销小但阻塞会影响整个进程内核线程由操作系统内核支持和管理,调度由内核完成,阻塞不影响其他线程,但创建和切换开销较大轻量级进程介于用户线程和内核线程之间,是内核支持的用户线程,如Linux中的POSIX线程线程作为比进程更轻量级的调度单位,极大地提高了程序的并发能力和响应速度与创建新进程相比,创建线程的开销更小,线程间通信也更加简单高效,因为它们共享同一地址空间线程管理与实现方式POSIX线程(Pthreads)Windows线程多核调度Windows系统的原生线程支持针对多核处理器的线程调度UNIX系统的标准线程库•通过Win32API创建和管理•亲和性调度将线程绑定到特定CPU•提供创建、终止、同步等基本操作核心•提供丰富的同步原语和线程池•支持互斥锁、条件变量、读写锁等同步•负载均衡动态分配线程到不同核心•支持纤程(Fiber)作为用户级线程机制•缓存感知调度考虑缓存局部性优化性•与.NET框架集成,简化线程编程•实现一对一线程模型,与内核线程直接能对应•能耗感知调度平衡性能与功耗需求•广泛应用于Linux、Unix系统的多线程编程线程管理是现代操作系统的核心功能之一无论是通过POSIX标准的Pthreads,还是Windows特有的线程API,操作系统都提供了创建、终止、挂起、恢复和同步线程的基本机制这些API使得应用程序开发者能够充分利用多线程技术提高程序性能并发与并行的区别并发(Concurrency)并行(Parallelism)在单个处理器上通过时间片切换实现多任务交替执行在多个处理器或核心上同时执行多个任务•任务在逻辑上同时进行,物理上交替执行•任务在物理上真正同时执行•适用于I/O密集型任务,充分利用CPU等待时间•适用于计算密集型任务,提高处理速度•实现方式包括多进程、多线程和协程•依赖于多核/多处理器硬件支持•主要目标是提高系统响应性和资源利用率•主要目标是提高计算吞吐量和处理速度并发和并行是两个常被混淆的概念,理解它们的区别对于设计高效的多任务系统至关重要并发强调的是处理多个任务的能力,即使这些任务可能不是严格同时执行的;而并行则要求多个任务在同一时刻物理上同时执行,必须依赖多核或多处理器硬件进程同步的必要性42%73%系统崩溃率并发缺陷未同步的多线程程序导致数据不一致多核应用中由于同步不当造成的问题
2.5x性能提升正确同步机制相比无保护并发的平均性能改善临界区是指访问共享资源的程序片段,在多任务环境中,如果多个进程或线程同时进入临界区,可能导致竞态条件(Race Condition)竞态条件会造成数据不一致、程序行为不确定等严重问题,因此必须通过同步机制加以控制经典同步问题一生产者与消费者生产者生产数据并放入缓冲区缓冲区共享的有限资源消费者从缓冲区取出数据处理生产者-消费者问题是并发编程中的经典问题,描述了多个进程共享固定大小缓冲区的情况生产者进程生成数据并放入缓冲区,消费者进程从缓冲区取出数据并处理关键是要确保生产者在缓冲区满时等待,消费者在缓冲区空时等待,同时保证对缓冲区的互斥访问经典同步问题二哲学家进餐哲学家3思考或进餐哲学家2哲学家4思考或进餐思考或进餐哲学家1哲学家5思考或进餐哲学家进餐问题是一个著名的同步问题,五位哲学家围坐在圆桌旁,每人面前有一盘面条,每两人之间有一支筷子哲学家要么思考,要么进餐,但进餐时需要同时拿起左右两支筷子这个问题的挑战在于如何避免死锁(所有哲学家同时拿起左手边的筷子,然后永远等待右手边的筷子)和资源饥饿解决方案包括资源分级(给筷子编号,总是先拿小号后拿大号)、引入服务生(限制同时拿筷子的哲学家数量)、改变获取规则(要么同时拿两支,要么都不拿)等这个问题生动地说明了并发系统中死锁的形成条件和预防策略,是理解资源竞争和同步机制的重要教学工具同步实现工具互斥锁与信号量同步工具基本特性使用场景操作互斥锁(Mutex)二元状态(锁定/解锁),同一时刻只允许保护临界区,确保互斥访问lock获取锁,unlock释放锁一个线程持有信号量(Semaphore)计数器,可以允许多个线程同时访问资源控制对有限资源的访问,实现同步P/wait减少计数,V/signal增加计数二元信号量值只能为0或1的特殊信号量类似互斥锁,用于简单同步与普通信号量相同,但值域受限计数信号量值可以是任意非负整数控制资源池,如连接池、线程池与普通信号量相同,初始值设为资源数量信号量是由荷兰计算机科学家Dijkstra提出的同步工具,它本质上是一个带有计数器的数据结构,用于控制对共享资源的访问P操作(也称wait或acquire)减少信号量的值,如果值变为负数则阻塞调用进程;V操作(也称signal或release)增加信号量的值,可能唤醒等待的进程条件变量与自旋锁应用条件变量自旋锁用于线程间的通知和等待等待获取锁时持续轮询而非休眠•允许线程等待特定条件成立•避免线程上下文切换开销•通常与互斥锁配合使用•适用于锁持有时间短的场景•wait操作释放互斥锁并进入等待状态•在多处理器系统中更有效•signal/broadcast唤醒等待线程•可能导致CPU资源浪费•适用于生产者-消费者等场景•常用于内核态同步条件变量是一种高级同步机制,允许线程等待某个条件成立后再继续执行与互斥锁不同,条件变量本身并不保护共享数据,而是与互斥锁配合使用当线程发现条件不满足时,它会原子性地释放互斥锁并进入等待状态;当其他线程改变了条件并发出信号后,等待的线程被唤醒,重新获取互斥锁并检查条件死锁的四个必要条件互斥条件资源不能被多个进程同时使用,每次只允许一个进程使用,或者以排他方式使用这是资源本身的特性,如打印机一次只能执行一个打印任务占有且等待进程已获得部分资源,但由于请求其他资源被阻塞时,不释放已占有的资源例如,进程持有资源A,同时请求被其他进程占用的资源B非抢占条件已被进程占有的资源不能被强制剥夺,只能由进程自己释放这意味着即使系统检测到可能的死锁风险,也无法强制回收资源循环等待存在一个进程资源的循环等待链,形成环路例如,进程1等待进程2占用的资源,进程2等待进程3占用的资源,而进程3又在等待进程1占用的资源死锁是并发系统中的一种严重问题,指两个或多个进程互相等待对方释放资源,导致所有相关进程都无法继续执行的状态理解死锁的四个必要条件对于设计无死锁系统至关重要,因为只要破坏其中任一条件,就能确保系统不会发生死锁死锁预防与避免死锁预防死锁避免通过破坏死锁条件来防止死锁动态检查资源分配状态,避免不安全状态•破坏互斥条件使资源可共享(如只读文件)•银行家算法基于安全状态判定,谨慎分配资源•破坏占有且等待要求进程一次性申请所有资源•资源分配图算法检测资源请求是否会形成环•破坏非抢占条件允许资源被强制剥夺•超时策略设定资源等待的最长时间•破坏循环等待对资源进行全局编号,按顺序申请•动态资源分配策略根据运行情况调整分配死锁预防和避免是两种不同的策略死锁预防是静态的方法,通过限制资源的请求方式来破坏死锁的必要条件,确保系统永远不会进入死锁状态然而,这种方法通常会降低资源利用率和系统并发度,因为它对所有情况都采取了保守的措施死锁检测与恢复死锁检测定期扫描系统资源分配状态构建资源分配图分析进程与资源之间的依赖关系识别环路确定是否存在进程等待链构成的环死锁恢复采取措施解除死锁状态当系统选择不预防或避免死锁时,就需要实现死锁检测和恢复机制死锁检测通常通过构建和分析资源分配图来实现,寻找进程-资源请求形成的环路检测的频率需要权衡系统开销和检测延迟,可以是定期检查,也可以在资源请求被阻塞时触发调度的目标与分类CPU吞吐量CPU利用率单位时间内完成进程数量保持处理器忙碌周转时间从提交到完成的总时间响应时间等待时间从请求到首次响应的时间进程在就绪队列中的等待时间CPU调度是操作系统核心功能之一,它决定了哪个就绪进程获得处理器时间,以及分配多长时间不同类型的系统有不同的调度目标批处理系统追求高吞吐量和CPU利用率;交互式系统注重响应时间和等待时间的公平性;实时系统则要求满足任务的截止时间约束主要调度算法调度算法工作原理优点缺点先来先服务(FCFS)按进程到达顺序执行简单公平,易于实现平均等待时间长,短进程可能长时间等待最短作业优先(SJF)选择执行时间最短的进最小平均等待时间难以准确估计执行时程间,可能导致长进程饥饿优先级调度按进程优先级选择可灵活调整系统行为可能导致低优先级进程饥饿时间片轮转(RR)按时间片循环执行就绪响应时间短,适合交互上下文切换开销大,时进程系统间片设置影响性能多级反馈队列多个优先级队列,进程兼顾短作业和交互性,实现复杂,参数配置难可在队列间移动自适应调整度大先来先服务(FCFS)是最简单的调度算法,按进程到达顺序执行,但容易导致短进程在长进程后面等待,造成平均等待时间增加最短作业优先(SJF)理论上可以获得最小的平均等待时间,但在实际系统中难以准确估计执行时间实时调度算法最早截止时间优先(EDF)优先执行截止时间最早的任务,提供动态优先级,理论上如果系统没有过载,EDF能够实现100%的CPU利用率速率单调调度(RM)基于任务周期分配固定优先级,周期短的任务获得更高优先级,简单高效,但CPU利用上限约为69%最短松弛时间优先根据任务的松弛时间(截止时间减去剩余执行时间)排序,选择松弛时间最小的任务执行,适用于混合任务环境服务器方法为非实时任务保留一定比例的CPU时间,确保系统的交互性和实时性同时得到保障,如轮询服务器、散发服务器等实时系统对调度有特殊要求,必须保证任务在截止时间前完成实时任务通常分为硬实时(错过截止时间将导致严重后果)和软实时(偶尔错过截止时间可接受)两类实时调度算法的设计目标是在系统资源约束下最大化满足任务时间要求多级队列与多级反馈队列多级队列调度多级反馈队列调度根据进程类型将进程永久分配到不同队列允许进程根据行为在队列间迁移•前台队列交互式进程,采用时间片轮转•新进程进入最高优先级队列•后台队列批处理进程,采用先来先服务•用完时间片后降级到下一队列•队列间采用固定优先级或时间片分配•低优先级队列时间片通常更长•各队列可以使用不同的调度算法•定期提升所有进程优先级防止饥饿•进程不能在队列间移动•I/O密集型进程自然获得更高优先级多级队列调度将进程分类,不同类型的进程进入不同的队列,每个队列可以有自己的调度算法这种方法简化了调度过程,但缺乏灵活性,因为进程一旦分配到某个队列就不再改变例如,系统进程可能放入高优先级队列,用户进程放入低优先级队列,确保系统服务不被用户应用拖慢系统进程与用户进程调度案例火星探路者问题NASA的火星探路者任务中,由于优先级倒置导致系统频繁重启优先级倒置现象低优先级进程持有高优先级进程需要的资源,而中优先级进程抢占低优先级进程优先级继承低优先级进程临时继承请求资源的高优先级进程的优先级问题解决启用优先级继承机制后,系统恢复正常运行优先级倒置是实时系统中的一个严重问题,当低优先级进程持有高优先级进程需要的资源时,如果中优先级进程抢占了低优先级进程,就会导致高优先级进程间接地被中优先级进程阻塞这种情况违背了优先级调度的原则,可能导致高优先级任务错过截止时间存储器管理基本机制单一连续分配整个内存只分配给一个进程固定分区分配内存划分为固定大小的区域动态分区分配按需分配内存片段交换技术进程在内存与辅存间换入换出存储器管理负责跟踪内存使用情况,分配和回收内存,并在物理内存不足时将部分内容移至辅助存储设备最早的计算机采用单一连续分配方式,整个内存只能由一个进程使用,利用率低随后出现的固定分区分配将内存划分为预定大小的区域,但容易导致内部碎片(分区中未使用的空间)分页管理逻辑地址页表物理地址程序使用的虚拟地址存储页号与页框号的映射关系实际的内存位置分页是现代操作系统中最常用的内存管理技术,它将物理内存分割成大小相等的帧(页框),将进程的虚拟地址空间分割成相同大小的页每个进程都有自己的页表,记录虚拟页号到物理页框号的映射关系当程序访问内存时,CPU生成虚拟地址,内存管理单元(MMU)通过查询页表将其转换为物理地址分段机制与段表分段机制特点段表结构基于逻辑单元划分内存记录段的基址和长度•段是逻辑上独立的地址空间•段号逻辑地址的段标识•大小可变,根据逻辑单元确定•基址段在物理内存中的起始地址•程序员可见,易于理解•段长段的长度,用于边界检查•支持共享和保护•保护位设置段的访问权限•存在外部碎片问题•存在位指示段是否在内存中分段是另一种内存管理方式,与分页不同,分段是基于程序的逻辑结构而非固定大小块来划分内存空间程序被划分为代码段、数据段、堆栈段等逻辑单元,每个段在内存中占据连续空间逻辑地址由段号和段内偏移组成,CPU通过段表将其转换为物理地址虚拟内存概念地址空间扩展使程序可使用的地址空间远大于物理内存,为每个进程提供一个完整的虚拟地址空间按需调页只将程序当前所需的部分装入内存,而不是整个程序,提高内存利用率内存共享允许多个进程共享物理内存页,如程序代码和共享库,节省物理内存内存保护通过页表项的保护位控制页面的访问权限,防止非授权访问虚拟内存是现代操作系统的核心技术,它创建了一个抽象层,使得应用程序看到的内存地址(虚拟地址)与实际的物理内存地址解耦通过这种机制,系统可以为应用程序提供比实际物理内存更大的地址空间,程序员无需担心内存容量限制和内存布局问题页面替换算法页错误率实现复杂度当物理内存已满而需要装入新页面时,页面替换算法决定选择哪个页面淘汰到磁盘FIFO(先进先出)算法选择最早进入内存的页面,实现简单但性能较差,甚至可能出现Belady异常(增加内存反而增加缺页率)LRU(最近最少使用)算法淘汰最长时间未被访问的页面,利用了程序的局部性原理,性能较好,但需要记录每个页面的访问时间,实现复杂抖动与局部性原理抖动现象局部性原理系统过度分页导致性能急剧下降程序访问模式的统计特性•物理内存不足支持工作集•时间局部性最近访问的数据可能很快再次访问•CPU大部分时间用于页面调度•空间局部性访问某地址附近的数据可能性较高•有效计算时间减少•顺序局部性程序倾向于顺序执行指令•系统响应迟缓,吞吐量下降•是缓存、虚拟内存设计的理论基础•可能导致系统崩溃抖动是虚拟内存系统中的一种严重性能问题,当进程的工作集(程序执行过程中频繁访问的页面集合)大于可用物理内存时,系统会频繁进行页面调进调出操作,CPU大部分时间用于处理页错误而非执行用户程序,导致系统性能急剧下降内存分配算法首次适应(First-Fit)最佳适应(Best-Fit)分配第一个足够大的空闲块分配最小的足够大的空闲块下次适应(Next-Fit)最坏适应(Worst-Fit)从上次分配位置开始搜索分配最大的空闲块在连续内存分配和动态内存管理中,当进程请求内存时,操作系统需要决定分配哪个空闲块首次适应算法从头开始搜索空闲块列表,分配第一个足够大的块,操作简单且速度较快,但容易导致内存前端碎片化最佳适应算法选择最小的足够大的空闲块,减少内部碎片,但会产生许多难以利用的小碎片,且需要完整扫描列表文件系统基础结构文件目录存储设备具有名称的相关信息集合,是文件管理和组织文件的特殊文件,存储提供持久化存储的物理介质,如硬系统的基本单位,由文件名、数据文件名与文件元数据的对应关系,盘、固态硬盘、光盘等,是文件系内容和各种属性(创建时间、访问提供层次化的文件组织结构统的物理基础权限等)组成路径唯一标识文件位置的字符串,可以是绝对路径(从根目录开始)或相对路径(从当前目录开始)文件系统是操作系统中用于管理和存储文件的机制,它建立了从人类可理解的文件名到实际物理数据块的映射关系文件系统的核心任务包括组织和管理文件结构、分配和回收存储空间、控制文件访问权限以及提供文件操作接口文件接口与操作操作功能描述系统调用示例创建新建一个文件并分配空间create,openO_CREAT打开准备访问文件,返回文件描open述符读取从文件中读取数据read,fread写入向文件写入数据write,fwrite定位移动文件指针到指定位置seek,lseek关闭释放文件相关资源close,fclose删除移除文件,释放存储空间unlink,remove操作系统提供了一组文件操作接口,供应用程序创建、访问和管理文件这些接口通常以系统调用的形式实现,由操作系统内核处理,确保文件操作的安全性和一致性典型的文件操作包括打开文件(获取文件描述符)、读写数据、移动文件指针、关闭文件(释放资源)等文件分配方式连续分配链式分配索引分配文件占用连续的存储空间以链表方式组织数据块使用索引块记录文件数据块位置•访问速度快,支持顺序和随机访问•消除外部碎片,充分利用存储空间•支持直接访问,随机存取效率高•实现简单,只需记录起始位置和长度•文件容易扩展,只需增加新块•消除外部碎片,易于文件扩展•文件大小不易动态扩展•只支持顺序访问,随机访问慢•索引块占用额外空间•容易产生外部碎片•可靠性较差,一旦链接断裂整个文件•大文件可能需要多级索引可能损坏•适用于只读介质如CD-ROM•大多数现代文件系统采用•FAT文件系统采用改进的链式分配文件分配方式决定了文件系统如何在存储设备上管理文件数据块连续分配将文件存储在连续的物理块中,实现简单且访问高效,但不适合频繁修改大小的文件环境链式分配通过在每个数据块中存储下一个块的指针来组织文件,灵活性好但随机访问性能差目录组织与管理单级目录所有文件都在同一目录下,结构简单但不适合多用户环境两级目录分为主目录和用户目录,支持多用户但层次有限树形目录层次化结构,类似实际文件系统,灵活性高图形目录允许目录间共享,如符号链接,但需处理循环问题目录系统管理文件的组织结构,为用户提供逻辑视图单级目录是最简单的形式,所有文件都存在于同一层次,这在早期单用户系统中使用,但文件增多后管理困难两级目录引入了用户隔离,每个用户拥有自己的目录,解决了名称冲突问题,但仍无法有效组织复杂数据文件访问控制与安全用户权限模型基于用户身份和组别分配文件访问权限,控制读、写、执行等操作的许可范围访问控制列表(ACL)为每个文件指定详细的访问控制规则,比传统权限模型更精细和灵活强制访问控制(MAC)基于系统安全策略而非用户意愿控制访问,适用于高安全性要求的环境文件加密对文件内容进行加密存储,即使物理介质被窃取也能保护数据安全文件系统的安全机制保护文件免受未授权访问和修改Unix/Linux系统采用经典的用户-组-其他三级权限模型,每个文件都有读、写、执行三种基本权限,通过数字模式(如755)或符号模式(如rwxr-xr-x)表示这种模型简单有效,但对复杂权限管理支持有限系统与设备管理I/OI/O硬件接口控制器、端口、寄存器、中断机制等组成设备与处理器之间的通信通道,处理数据传输和状态通知设备驱动程序操作系统中负责控制特定硬件的软件模块,屏蔽硬件细节,提供统一接口,是系统与设备通信的桥梁I/O子系统操作系统中管理I/O操作的层次化结构,包括设备独立层、设备驱动层和中断处理层,提供高效可靠的I/O服务DMA机制直接内存访问技术,允许设备在CPU干预最小的情况下直接与内存交换数据,大幅提高I/O效率I/O系统是操作系统与外部设备交互的接口,负责管理各类输入输出设备,协调数据传输,处理设备中断典型的I/O操作有三种方式程序控制I/O(CPU轮询设备状态)、中断驱动I/O(设备就绪时发送中断)和DMA(设备直接访问内存)这三种方式代表了CPU参与度的递减和I/O效率的递增块设备与字符设备管理块设备字符设备以数据块为单位访问以字符流方式访问•支持随机访问•通常只支持顺序访问•通常可寻址•不可寻址•数据传输单位固定•数据传输单位可变•自带硬件缓冲•无硬件缓冲或缓冲有限•例如硬盘、U盘、SSD•例如键盘、鼠标、串口操作系统将设备分为块设备和字符设备两大类进行管理块设备以固定大小的数据块为单位进行读写,支持随机访问,典型如磁盘、光盘等存储设备操作系统通常为块设备提供缓冲区管理,实现请求排序、预读取等优化块设备驱动程序负责将逻辑块号转换为物理位置,并处理数据传输缓冲、缓存与高速缓存CPU寄存器1处理器内部的高速存储单元,访问速度最快高速缓存(Cache)位于CPU和主内存之间的小容量高速存储器主内存(RAM)系统的工作存储区域,容量大但速度慢于Cache磁盘缓冲区(Buffer)内存中的临时存储区,用于协调速度差异外部存储设备5提供持久化存储,容量最大但速度最慢在计算机系统中,缓冲(Buffer)、缓存(Cache)和高速缓存(CPU Cache)虽然概念相似,但用途不同缓冲主要解决设备间速度不匹配问题,如磁盘缓冲区暂存数据,减少频繁I/O操作;缓存则重点关注数据复用,存储频繁访问的数据副本,如文件系统缓存保留最近使用的文件数据;高速缓存位于CPU和主内存之间,利用局部性原理加速内存访问操作系统安全机制用户认证访问控制验证用户身份限制资源使用权限•密码认证•自主访问控制•生物识别2•强制访问控制•多因素认证•基于角色的访问控制防护机制加密保护抵御恶意软件和攻击信息安全和隐私保护•地址空间隔离•文件加密•内存保护•通信加密•沙箱技术•安全启动操作系统的安全机制是防止未授权访问和恶意攻击的重要屏障用户认证是安全的第一道防线,通过密码、生物特征或多因素认证验证用户身份一旦用户身份确认,访问控制机制决定用户可以访问哪些资源以及如何访问,包括文件权限、进程权限和网络访问控制等虚拟化与容器技术虚拟机技术容器技术编排平台完整模拟硬件环境操作系统级虚拟化管理大规模容器集群•硬件级虚拟化,每个VM有独立OS•共享主机内核,仅隔离应用运行环境•自动化部署和扩展•资源隔离度高,安全性好•轻量级,启动快,密度高•服务发现和负载均衡•启动慢,资源占用大•隔离度相对较低•自愈和滚动更新•代表VMware、VirtualBox、KVM•代表Docker、LXC、containerd•代表Kubernetes、Docker Swarm•应用云服务器、测试环境、遗留系•应用微服务架构、CI/CD、开发环境•应用云原生应用、分布式系统统支持虚拟化技术是现代计算基础设施的核心,它允许在单一物理硬件上运行多个隔离的计算环境传统虚拟机通过Hypervisor模拟完整的硬件环境,每个虚拟机运行独立的操作系统,隔离性好但资源开销大容器技术则是更轻量级的虚拟化方式,通过共享主机内核,仅隔离应用的运行环境,实现快速启动和高密度部署分布式操作系统初探分布式系统特点由多个独立计算节点组成,通过网络通信协作,表现为单一系统,具有高可用性、可扩展性和容错能力网络文件系统允许多台计算机共享文件和存储资源,如NFS、SMB/CIFS、分布式文件系统GFS和HDFS等分布式同步解决多节点间的时钟同步、互斥访问和一致性问题,包括向量时钟、分布式锁和共识算法负载均衡在多个计算节点之间合理分配工作负载,最大化资源利用率,提高系统吞吐量和响应速度分布式操作系统是在多台计算机上运行的软件系统,它将网络连接的独立计算机集合表现为单一的集成计算环境与传统集中式操作系统相比,分布式系统面临更多挑战,如网络通信延迟、部分故障处理、时钟同步和数据一致性等移动与嵌入式操作系统特性Android iOSRTOS内核基础Linux内核Darwin/XNU专用微内核资源管理灵活,后台限制严格控制确定性分配响应时间毫秒级毫秒级微秒级应用生态开放,多样封闭,审核严格定制专用应用安全模型沙箱+权限沙箱+严格审核功能安全认证典型应用智能手机,平板iPhone,iPad医疗设备,航空控制移动操作系统针对便携设备设计,注重电源管理、触摸界面和无线连接Android基于Linux内核,采用开放策略,允许深度定制;iOS则基于Darwin,采用封闭生态系统,强调用户体验和安全性两者都采用应用沙箱模型,限制应用对系统资源的访问,保障系统安全和稳定操作系统的未来趋势云原生操作系统为分布式云环境设计的新型操作系统,资源调度和管理跨越物理边界,支持微服务和无服务架构AI驱动的智能优化利用机器学习技术预测资源需求,自动调整系统参数,提高性能和能效新型安全架构零信任安全模型,形式化验证,硬件辅助安全机制,应对日益复杂的安全威胁边缘计算支持优化的轻量级操作系统,实现云-边-端协同,满足低延迟和本地处理需求操作系统技术正经历深刻变革,未来发展呈现多元化趋势云原生操作系统将打破传统边界,管理分布在全球的计算资源,通过API和服务网格构建弹性计算环境人工智能技术将深度融入操作系统核心,不仅优化资源分配和能耗管理,还将提供自适应安全防护和智能用户交互总结与思考550+核心模块发展历程进程管理、内存管理、文件系统、设备管理、安全机从单一批处理到分布式云原生,五十余年的技术演进制3设计原则抽象、资源管理、保护与隔离,贯穿操作系统设计始终回顾本课程,我们系统地学习了操作系统的基本概念、核心组件和实现技术从进程与线程管理,到内存分配与虚拟内存,再到文件系统、设备管理和系统安全,我们深入理解了现代操作系统的复杂性和精巧设计操作系统作为计算机科学的基础学科,其核心概念和设计思想对计算机技术的各个领域都有深远影响。
个人认证
优秀文档
获得点赞 0