还剩39页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
操作系统教学课件欢迎来到操作系统教学课程本课件将全面介绍操作系统的基本概念、核心原理和实际应用,带您深入了解计算机科学中这一关键组成部分通过50页的全景式讲解,我们将探索操作系统的理论基础与实践技术,帮助您建立系统性的操作系统知识体系课程介绍与学习目标研究对象课程内容操作系统是管理计算机硬件与软件资本课程将涵盖进程管理、内存管理、源的核心系统软件,是计算机系统的文件系统、设备管理等关键领域,同大管家我们将研究其如何协调资时介绍现代操作系统的设计理念和实源、提供服务并支持应用程序运行现技术我们将探讨从单机操作系统到分布式系统的演进能力培养通过理论学习与实践相结合,培养学生分析问题和解决问题的能力,掌握操作系统原理与设计方法,为系统开发、性能优化和故障排除奠定基础操作系统的起源与发展1第一代(1945-1955)无操作系统时代,程序员直接与硬件交互,使用机器语言编程,人工装载程序和数据计算机主要用于科学计算,操作繁琐且效率低下2第二代(1955-1965)批处理系统出现,引入了作业控制语言和监控程序,自动化了作业流程IBM的OS/360是这一时期的代表性系统,提高了资源利用率3第三代(1965-1980)分时系统兴起,UNIX系统诞生,引入了多用户并发访问的概念用户可以通过终端实时交互,大大提升了用户体验和响应速度4现代操作系统(1980至今)图形用户界面普及,个人计算机兴起,网络操作系统和分布式系统发展Linux、Windows、macOS、Android等系统各领风骚,云计算和虚拟化技术改变了计算模式操作系统定义与作用资源管理者用户接口操作系统是计算机硬件资源的管理者,负责CPU时间分配、内操作系统提供了用户与计算机交互的界面,包括命令行接口存空间管理、I/O设备控制和文件存储管理它通过有效调度确(CLI)和图形用户接口(GUI)它隐藏了硬件的复杂性,使保系统资源高效利用,避免冲突和浪费用户能够方便地使用计算机完成各种任务操作系统通过实现各种算法和策略,在多个应用程序和用户之间通过操作系统提供的系统调用和API,应用程序开发者可以构建公平分配资源,保证系统稳定运行和响应性能各种功能强大的应用,而无需关心底层硬件细节操作系统分类批处理操作系统分时操作系统将用户作业成批提交给系统处理,无需用户干预作业按照先来先服务或允许多个用户同时使用一台计算机,系统通过时间片轮转方式为每个用户优先级等策略排队执行,系统资源利用率高但交互性差早期大型机系统分配CPU时间用户感觉像独占系统一样,响应时间短,交互性好如IBM OS/360是典型代表UNIX是经典的分时系统实时操作系统网络与分布式操作系统对时间要求严格,保证在规定的时间内完成特定任务广泛应用于工业控支持网络环境下多台计算机协作,提供资源共享和通信服务分布式系统制、航空航天、医疗设备等领域如VxWorks、QNX等嵌入式实时操作进一步实现了透明性和容错性,如微软的Windows Server和各种云操系统作系统操作系统结构与组成应用程序用户直接交互的软件系统调用接口提供服务访问入口内核组件进程、内存、文件、设备管理硬件抽象层直接与硬件交互的底层接口操作系统的核心是内核,它包含四个主要组件进程管理器负责创建、调度和终止进程;内存管理器控制内存分配和虚拟内存;文件系统管理器处理文件的存储和访问;设备管理器控制外部设备的通信操作系统运行环境中央处理器(CPU)内存系统外部设备操作系统的执行核心,负责指令执行和运算为操作系统和应用程序提供临时存储空间主包括输入设备(键盘、鼠标)、输出设备(显现代CPU通常是多核架构,支持并行处理,操存(RAM)直接与CPU交互,速度快但容量有示器、打印机)和存储设备(硬盘、光驱)等作系统需要有效调度多核资源指令集架构限;辅存(硬盘、SSD)容量大但速度慢,操操作系统通过设备驱动程序与这些硬件交互,(如x
86、ARM)决定了操作系统的兼容性作系统通过虚拟内存技术弥补两者差距提供统一的接口给应用程序经典与当代操作系统实例Windows系列是全球最流行的桌面操作系统,由微软开发,特点是用户友好的图形界面和广泛的软件兼容性Linux是开源操作系统内核,衍生出Ubuntu、Fedora等发行版,以稳定性和安全性著称,广泛应用于服务器和嵌入式设备UNIX是最有影响力的操作系统之一,macOS就是基于UNIX开发的,为苹果设备提供了优雅的界面和强大的功能在移动领域,Android和iOS主导着智能手机市场,分别由Google和苹果开发,它们针对移动设备特点优化了电源管理和触控交互多道程序设计原理资源共享与调度多道程序设计思想多道程序环境下,多个程序共享系统资源,需要操单道程序的局限多道程序设计允许内存中同时存放多个程序,当一作系统进行合理调度操作系统通过进程概念和调在早期计算机系统中,内存中只能存放一个程序,个程序因等待I/O而阻塞时,CPU可以转去执行另度算法,管理程序执行顺序,协调资源分配,保证当程序执行I/O操作时,CPU必须等待I/O完成,一个就绪程序,提高CPU利用率这种设计实现了系统高效运行这为分时系统和现代并发计算奠定造成处理器资源浪费,系统吞吐量低单道程序无CPU与I/O设备的并行工作,使得系统资源得到更了基础法充分利用计算机资源,特别是在I/O密集型应用充分的利用中问题更为突出进程与线程基础进程概念线程概念进程是程序的一次执行过程,是系统进行资源分配和调度的基本线程是进程内的执行单元,是CPU调度的最小单位同一进程单位每个进程拥有独立的地址空间、数据栈和系统资源,进程内的多个线程共享进程的地址空间和资源,但拥有独立的执行栈间相互隔离,提高了系统安全性和稳定性和程序计数器,可以并发执行进程的特点是独立性强,切换开销大,但隔离保护好,适合需要线程的特点是创建和切换开销小,共享数据方便,但隔离性差,高度安全和独立性的场景进程创建需要分配完整的系统资源,一个线程的错误可能影响整个进程线程适合需要频繁通信和共包括内存空间和文件描述符等享数据的并发任务进程状态与转换就绪态运行态进程具备运行条件,等待分配处理器进程占用CPU正在执行阻塞态进程等待某事件发生,暂时不能运行终止态创建态进程执行结束,释放资源进程正在被创建,分配资源进程状态转换由特定事件触发当进程被创建并分配资源后,进入就绪态;调度器选中就绪进程后,进入运行态;运行进程因时间片用完被抢占,返回就绪态;运行进程发起I/O请求或等待资源,进入阻塞态;阻塞事件完成后,进程重新进入就绪态;进程执行完毕或被强制终止,进入终止态进程控制块()PCB进程标识信息进程ID(PID)、父进程ID、用户ID、进程组ID处理器状态信息程序计数器、状态寄存器、通用寄存器值进程调度信息进程状态、优先级、调度队列指针、事件指针内存管理信息基地址、界限寄存器值、页表或段表指针资源记账信息CPU时间、实际使用时间、时间限制I/O状态信息打开文件列表、I/O设备分配表进程控制块(PCB)是操作系统中表示进程的数据结构,包含了进程的所有相关信息PCB是进程存在的唯一标志,操作系统通过PCB来管理和控制进程当进程被创建时,系统会为其分配PCB并初始化;当进程切换时,系统将保存当前进程的上下文到其PCB中;当进程终止时,其PCB资源被回收进程调度概述高级调度(作业调度)决定哪些作业允许进入系统,控制系统中的多道程序度(并发进程数量)这一级调度频率较低,通常在新作业提交或现有作业完成时发生中级调度(交换调度)决定哪些进程完全调入内存以便执行,哪些进程调出到外存以缓解内存压力引入了挂起状态,实现了内存与外存之间的进程交换低级调度(进程调度)决定就绪队列中的哪个进程将获得CPU,是最频繁的调度,每次进程切换都会发生直接影响系统响应速度和资源利用率进程调度的主要目标是提高系统吞吐量、缩短周转时间、提高CPU利用率并确保响应时间可接受调度策略可分为抢占式和非抢占式非抢占调度允许进程运行直到完成或自愿放弃CPU;抢占调度则允许操作系统在特定条件下强制剥夺进程的CPU使用权调度算法比较先来先服务(FCFS)短作业优先(SJF)优先级调度按进程到达就绪队列的顺序分配处选择执行时间最短的进程优先执行根据进程优先级决定执行顺序优理器优点是公平简单,实现容易;理论上最小化平均等待时间,但实先级可静态分配或动态调整,考虑缺点是平均等待时间可能较长,对际中难以准确预估进程执行时间因素包括进程类型、资源需求和系短作业不利,存在护航效应(短可能导致长作业饥饿问题,较少在统目标需要解决优先级反转和饥进程等待长进程)问题通用系统中单独使用饿问题,通常结合老化机制使用时间片轮转(RR)为每个进程分配一个时间片,用完后被置于队列尾部时间片长度是关键参数太短增加上下文切换开销,太长则退化为FCFS适合分时系统,提供了良好的响应时间线程模型与实现用户级线程内核级线程由用户空间的线程库管理,操作系统内核不感知线程存在,只识由操作系统内核直接支持和管理的线程优点是一个线程阻塞不别进程优点是创建和切换开销小,用户可完全控制线程策略,会影响其他线程运行,可以充分利用多处理器并行能力;缺点是无需内核支持;缺点是一个线程阻塞会导致整个进程阻塞,无法线程操作需要系统调用,创建和切换开销相对较大利用多处理器并行代表实现现代Linux的NPTL、Windows线程和macOS的代表实现早期的POSIX Threads库、GNU PortableMach线程大多数现代操作系统都采用这种模型,以支持真正Threads和Java早期的绿色线程这种模型适合需要大量轻量的并行计算级线程的应用,如某些模拟系统进程间通信()方式IPC消息队列管道存储消息的链表,进程可向队列写入或读取消息提供了异步通信能力,消息具有类型和优先级,使半双工通信通道,数据单向流动常用于父子进程用灵活通信,如shell命令的管道连接匿名管道仅用于相关进程,命名管道可用于任意进程信号量计数器,用于多进程对共享资源的访问控制可实现互斥和同步,是经典的进程协作机制套接字共享内存支持跨网络的通信端点可实现本地进程通信或网多个进程映射同一块物理内存区域传输速度最快络进程通信,提供了最通用的IPC机制的IPC方式,适合大量数据交换,但需要同步机制保证访问安全除了上述机制,现代操作系统还提供了更多专用IPC方式如Windows的RPC(远程过程调用)和COM对象;Unix/Linux的信号机制用于异步事件通知;Android的Binder专为高效IPC设计;共享文件也是一种简单的IPC方式,适合非实时要求的场景经典同步机制临界区互斥锁访问共享资源的程序片段,必须互斥执行一种简单的同步工具,提供加锁/解锁两种原临界区问题的解决方案需满足互斥访问、有子操作任何时刻只有一个线程可以持有锁,限等待和空闲让进三个条件操作系统提供其他尝试获取锁的线程将被阻塞在POSIX多种原语保护临界区,如Windows的标准中通过pthread_mutex实现,是最常EnterCriticalSection/LeaveCriticalSe用的同步机制之一ction条件变量允许线程因等待某条件成立而挂起,当条件满足时被唤醒通常与互斥锁配合使用,实现线程间的通信和协作适合生产者-消费者等典型场景,可避免忙等待,提高效率同步机制的硬件实现包括原子指令,如TestAndSet(测试并设置)和CompareAndSwap(比较并交换),现代处理器都提供这些指令来支持高效同步软件实现方面,Peterson算法和面包店算法是著名的互斥算法,但在现代系统中较少直接使用同步问题案例分析生产者-消费者问题多个进程共享固定大小的缓冲区,生产者向缓冲区添加数据,消费者从中取出数据需要同步机制确保缓冲区满时生产者等待,缓冲区空时消费者等待,生产者消费者不能同时访问同一位置读者-写者问题多个进程共享数据,读者只读取数据,写者需要修改数据同步要求多个读者可以同时读取,任何写者必须独占访问,读者与写者不能同时访问需要考虑读者优先还是写者优先的策略哲学家就餐问题五位哲学家围坐一圆桌,每人左右各有一只筷子,必须同时拿起两只筷子才能就餐问题在于如何分配筷子避免死锁(所有哲学家都拿起左筷子等待右筷子)和饥饿(某些哲学家一直无法就餐)解决这些经典问题的方法通常涉及信号量、互斥锁和条件变量的组合使用例如,生产者-消费者问题可以使用两个信号量(空槽数和满槽数)加一个互斥锁实现;读者-写者问题可以用读写锁或计数器加互斥锁解决;哲学家就餐问题可以通过资源分级、限制同时拿筷子的哲学家数量等策略避免死锁死锁基本概念死锁定义死锁必要条件死锁是指两个或多个进程互相等待对方释放资源,导致所有相关死锁发生必须同时满足四个条件进程永远阻塞,无法继续执行的状态这种情况类似于两辆车在
1.互斥条件资源不能被多个进程同时使用狭窄道路相向而行,都不能前进也不能后退的僵局
2.占有并等待条件进程持有资源的同时等待获取其他资源死锁一旦发生,如果没有外部干预(如操作系统的检测和恢复机
3.不可抢占条件已分配给进程的资源不能强制被剥夺制),系统将无法自行解除死锁状态,受影响的进程将永远无法
4.循环等待条件存在一组进程,形成环形资源等待关系完成任务死锁预防与避免死锁预防死锁避免通过破坏死锁的必要条件来防止死锁发允许进程动态请求资源,但操作系统在生可以采用的策略包括一次性分配分配前进行判断,只有当分配后系统仍所有资源(破坏占有并等待);资源分处于安全状态时才允许分配安全状态级分配(破坏循环等待);允许资源抢是指存在一个进程执行序列,使所有进占(破坏不可抢占)这些方法实现简程都能完成死锁避免需要预先知道进单但可能导致资源利用率低和系统吞吐程资源需求信息,这在实际系统中往往量下降难以获得银行家算法一种著名的死锁避免算法,由Dijkstra提出系统维护三个数据结构可用资源向量、最大需求矩阵和分配矩阵每当进程请求资源时,系统模拟分配后是否仍处于安全状态,如果安全则分配,否则进程必须等待算法名称来源于银行发放贷款时确保所有客户都能还款的类比死锁检测与解除死锁检测系统定期或在资源请求被拒时运行死锁检测算法,查找是否存在死锁检测算法通常基于资源分配图或资源分配矩阵,寻找进程和资源之间的循环等待关系有向图方法中,如果简化后的资源分配图中存在环,则说明系统中存在死锁死锁解除一旦检测到死锁,系统必须采取措施解除死锁状态常用的死锁解除方法包括进程终止(终止所有死锁进程或一次终止一个直到打破死锁);资源抢占(从某些进程暂时夺取资源分配给其他进程,打破循环等待)解除策略选择选择哪些进程终止或资源抢占需要考虑多种因素进程优先级、已执行时间、完成所需资源、终止成本等系统通常会尝试最小化总体成本,优先保护重要进程和数据完整性一些系统实现了回滚机制,允许被终止进程从检查点重新启动在资源分配矩阵方法中,系统维护当前分配矩阵、请求矩阵和可用资源向量检测算法通过标记可完成的进程,如果所有进程都能标记为可完成,则系统无死锁;否则未标记的进程处于死锁状态此方法适用于多实例资源的死锁检测内存管理概述寄存器1速度最快,容量最小高速缓存CPU和主存之间的缓冲主存(RAM)程序执行的工作区域辅助存储(磁盘/SSD)虚拟内存的扩展区域内存管理是操作系统的核心功能之一,负责管理计算机的主存资源它跟踪内存使用情况,分配内存给需要的进程,在进程结束时回收内存,并且在物理内存不足时实现内存扩展内存管理的主要目标是提高内存利用率、支持程序地址空间隔离和保护,以及实现虚拟内存功能连续分配与分区固定分区内存被划分为固定大小的分区,每个分区装入一个程序分区大小可以相等也可以不等优点是实现简单,缺点是内部碎片严重(程序大小小于分区大小时,分区内剩余空间被浪费)早期批处理系统常用此方法可变分区根据进程实际需要动态分配内存,形成大小不等的分区优点是减少了内部碎片,提高内存利用率;缺点是会产生外部碎片(多个小空闲区不连续,无法满足大进程需求),需要内存紧缩或碎片整理伙伴系统一种特殊的可变分区算法,将内存划分为2的幂次大小的块当需要分配内存时,找到满足需求的最小2的幂块;释放时,检查是否可与相邻的伙伴合并成更大的块Linux内核采用此算法管理物理页面可变分区中的分配策略包括首次适应(从头查找第一个足够大的空闲区)、最佳适应(查找最小的足够大空闲区)和最坏适应(查找最大的空闲区)每种策略都有其优缺点首次适应速度快但可能在开头产生许多小碎片;最佳适应理论上减少了碎片但查找开销大;最坏适应试图保留大空闲区但实际上可能导致没有足够大的空间分配分页与分段机制分页机制分段机制将物理内存分成固定大小的帧(页框),程序的逻辑地址空间分按程序的逻辑结构划分地址空间,如代码段、数据段、堆栈段成相同大小的页页和帧大小相同(通常为4KB),通过页表等每个段大小可变,对应程序的一个逻辑实体通过段表将段建立逻辑页到物理帧的映射关系号和段内偏移转换为物理地址分页的主要优点是消除了外部碎片,支持非连续物理内存分配,分段的主要优点是符合程序员的思维方式,便于模块化程序设计便于实现共享和保护缺点是可能产生内部碎片(最后一页未填和共享保护(可以段为单位设置访问权限)缺点是会产生外部满),页表开销较大现代处理器通过TLB(转换后备缓冲区)碎片,分配管理相对复杂加速地址转换过程分页段式结合了两者优点程序先按逻辑结构分段,每段再按固定大小分页Intel x86架构采用这种机制,通过段选择器和段内页偏移进行地址转换地址转换过程涉及段表和页表的两级查询,虽然增加了复杂性,但提供了更灵活的内存管理方式虚拟存储管理页面置换算法FIFO先进先出策略,淘汰最早调入内存的页面实现简单,但性能不佳,可能出现Belady异常(增加物理帧数反而增加缺页率)适合简单系统或作为基准比较页面置换算法LRU最近最少使用策略,淘汰最长时间未被访问的页面理论上接近最优,但实现复杂,需要记录每页的访问历史实际系统常用近似实现,如时钟算法(Clock)或老化算法(Aging)页面置换算法LFU最不经常使用策略,淘汰访问次数最少的页面考虑了页面访问频率,但未考虑时间局部性,且需维护访问计数对频率变化的工作负载适应性差,实际应用较少抖动现象系统频繁进行页面调入和调出,CPU大部分时间用于页面交换而非执行有效指令原因是工作集(程序执行所需的活跃页面集合)大于分配的物理内存解决方法包括增加物理内存或采用工作集模型、PFF算法控制多道程度虚拟内存技术允许程序使用比物理内存更大的地址空间,将程序中暂时不用的部分保存在辅存中,需要时再调入内存它基于程序局部性原理(时间局部性和空间局部性),通过按需调页(Demand Paging)机制实现当程序访问不在内存中的页面时,产生缺页中断,操作系统负责将所需页面调入内存现代内存管理技术内存映射文件(Memory-Mapped Files)是一种将文件内容直接映射到进程地址空间的技术它允许应用程序像访问内存一样访问文件,无需显式的读写操作,大大简化了文件操作并提高了性能内存映射常用于加载动态库、实现大文件处理和进程间通信交换区(Swap Space)是磁盘上专门用于虚拟内存扩展的区域当物理内存不足时,系统将不活跃的内存页面交换到交换区,需要时再调回内存Linux中可通过swap分区或swap文件实现,Windows使用页面文件(pagefile.sys)现代SSD的高速随机访问特性使得交换性能大幅提升存储管理综合案例Linux虚拟内存实现Windows内存分配机制Linux采用统一的虚拟内存框架管理所有内存,Windows使用分层内存管理架构底层管理包括用户空间和内核空间每个进程有独立的物理页面,中层提供页面缓存和映射服务,顶页表,内核空间在所有进程中映射相同层向应用程序提供虚拟内存接口特点是支持Linux使用伙伴系统管理物理页框,用slab地址空间布局随机化(ASLR)增强安全性,分配器管理小对象支持页缓存加速文件访问,实现写时复制(Copy-on-Write)提高效率,并通过kswapd守护进程实现后台页面回收并通过SuperFetch预加载提升性能两系统内存管理对比Linux和Windows在内存管理上有许多相似之处,如都支持按需分页、写时复制和页面缓存等技术主要区别在于实现细节Linux更注重可扩展性和高负载下的性能;Windows更注重易用性和向后兼容性Linux内存参数更灵活可调,Windows内存管理更加自动化两个系统在具体实现上还有一些差异Linux的缺页处理更轻量,支持巨页(HugePages)优化大内存应用;Windows提供更丰富的内存分配API,如虚拟内存保留和提交分离Linux内存超额分配(Overcommit)允许分配比物理内存更多的虚拟内存,提高利用率但风险更高;Windows则更保守,通过调整页面文件大小自动适应需求文件系统基础文件系统结构主流文件系统文件系统是操作系统中管理持久数据的子系统,提供了数据存储、组织不同操作系统使用不同的文件系统和访问的机制一个典型的文件系统包含以下组件•FAT(File AllocationTable)结构简单,兼容性好,但不支持•引导块包含系统启动信息大文件和高级权限,主要用于可移动设备•超级块记录文件系统整体信息•NTFS(NT File System)Windows默认文件系统,支持权限控制、加密、压缩和日志功能•索引节点区存储文件元数据•数据块区存储实际文件内容•ext4(Fourth ExtendedFileSystem)Linux主流文件系统,性能优良,支持大文件和日志•APFS(Apple FileSystem)macOS和iOS使用的现代文件系统,优化SSD存储文件是对相关数据的逻辑抽象,具有名称、类型、大小、位置和保护属性等特征文件组织方式包括无结构字节流(Unix/Linux)、简单记录序列和复杂索引结构(数据库)目录则是文件系统的组织结构,维护文件名到文件属性的映射,支持文件分组和层次化管理文件管理操作文件创建文件删除文件读写当用户或程序创建新文件时,操作系统删除文件时,系统移除目录项,释放文文件操作通过文件描述符分配存储空间,创建相应的目录项和索件占用的数据块和索引节点现代操作(Unix/Linux)或文件句柄引节点,记录文件元数据(如创建时系统通常实现回收站机制,将被删除的(Windows)进行读操作从文件指间、所有者和权限)如果启用了日志文件移到特殊目录而非立即销毁,允许定位置获取数据到内存;写操作将内存功能,这些变更会先记录在日志中,保用户恢复误删文件某些安全敏感场景数据保存到文件系统提供顺序访问和证操作的原子性可能需要安全删除(数据擦除)功能随机访问两种模式,并通过缓冲机制优化I/O性能,减少实际物理读写次数权限管理文件权限控制用户对文件的访问方式Unix/Linux使用用户-组-其他三级权限模型和读-写-执行权限位;Windows使用访问控制列表(ACL)提供更精细的权限控制文件系统还支持特殊权限如SUID/SGID、粘滞位和隐藏属性等文件操作通常遵循打开-使用-关闭模式打开文件时,系统检查权限,定位文件数据,创建内存中的文件控制块,返回文件描述符;使用阶段,程序通过描述符进行读写操作;关闭文件时,系统更新文件元数据,释放相关资源这种模式提高了效率,减少了重复操作文件访问控制与安全基础权限模型Unix风格系统使用用户ID、组ID和权限位(rwx)控制文件访问Windows使用安全标识符(SID)和访问控制列表(ACL)实现更灵活的权限控制两种模型各有优势Unix模型简洁明了,Windows模型更细粒度访问控制列表(ACL)现代Unix/Linux也支持扩展ACL,允许为特定用户或组设置权限ACL提供了比传统权限位更精细的控制,可以指定多个用户和组的不同权限,适合复杂的多用户环境ACL通过getfacl/setfacl命令或相应的API管理文件加密与完整性为保护敏感数据,文件系统可能提供透明加密功能Windows的EFS和BitLocker、Linux的eCryptfs和LUKS提供了文件或卷级加密数字签名和校验和机制确保文件完整性,防止未授权修改这些机制为数据提供了即使在物理访问下的保护除了直接的访问控制机制外,现代操作系统还实现了多层次的安全审计功能审计系统记录关键文件操作,如谁在何时访问或修改了敏感文件这些日志对于安全事件调查和合规性验证至关重要Windows的安全审计和Linux的auditd提供了全面的审计能力目录结构与实现目录结构类型目录实现方式文件系统目录结构经历了多阶段演化目录的物理实现通常采用以下方法之一•单级目录所有文件位于同一目录下,结构简单但不适合多用户环•线性列表简单的文件名和索引节点对应表,适合小目录境•哈希表通过哈希函数加速文件查找,适合大目录•两级目录增加用户级目录,分离不同用户的文件•B树/B+树支持高效的插入、删除和查找操作,现代文件系统常•树形目录支持任意深度的层次结构,是现代操作系统的标准模式用•有向无环图(DAG)允许文件和目录共享,通过链接实现目录项通常包含文件名、类型、大小、访问权限、时间戳和指向文件数据的指针等信息链接是文件系统中的重要概念,允许同一文件在多个位置被访问硬链接直接指向文件的索引节点,多个硬链接指向同一文件数据,只有删除最后一个链接时文件才会被真正删除例如,在Linux中创建硬链接使用ln sourcetarget命令软链接(符号链接)则是包含另一个文件路径的特殊文件,类似Windows的快捷方式,使用ln-s sourcetarget创建管理与驱动I/O32I/O软件层次主要缓冲方式操作系统I/O子系统通常分为用户层、内核层和硬单缓冲和双缓冲是常见的I/O优化技术件层7设备驱动程序数量现代操作系统内核代码中的主要组成部分I/O管理是操作系统的重要功能,负责控制和协调输入输出设备缓冲区是I/O管理的核心机制,通过在内存中临时存储数据,解决设备与处理器速度不匹配问题单缓冲区在一个区域交替进行I/O操作和处理;双缓冲区使用两个区域,一个用于当前I/O操作,另一个用于处理器处理,提高了并行度;循环缓冲区(环形缓冲区)适用于生产者-消费者模型,允许连续数据流处理设备管理与分配块设备以数据块为单位存取的设备,如硬盘、固态驱动器和USB闪存特点是支持随机访问,可寻址到特定位置读写数据操作系统通过块设备接口抽象不同存储介质,提供统一的访问方式块设备通常有缓存机制,支持预读和延迟写优化字符设备以字符为单位顺序访问的设备,如键盘、鼠标和串口不支持随机访问,数据按流式传输字符设备通常用于输入输出设备和某些通信设备操作系统提供缓冲机制处理字符流,实现行编辑和特殊字符处理等功能网络设备用于数据通信的特殊设备类型,如网卡和调制解调器网络设备结合了块设备和字符设备的特点,既有缓冲区管理又有流处理现代操作系统通常提供套接字(Socket)接口抽象网络通信,简化应用开发磁盘调度算法是块设备管理的核心部分,目标是最小化寻道时间并最大化吞吐量先来先服务(FCFS)按请求到达顺序处理,公平但性能差;最短寻道时间优先(SSTF)选择当前磁头位置最近的请求,提高性能但可能导致饥饿;电梯算法(SCAN)和循环电梯算法(C-SCAN)按一定方向移动磁头处理请求,兼顾性能和公平性操作系统保护机制用户应用程序最低权限,保护环3系统服务中等权限,保护环1-2内核核心功能最高权限,保护环0操作系统的保护机制是系统安全和稳定性的基础处理器的用户态和内核态(又称为非特权模式和特权模式)是基本的保护机制在用户态下,程序不能执行特权指令、访问I/O设备或直接访问内核内存;在内核态下,这些限制被解除当用户程序需要执行特权操作时,必须通过系统调用切换到内核态特权指令包括I/O操作、内存管理单元控制、中断处理和处理器模式切换等这些指令在用户态下尝试执行会触发保护异常Intel x86架构提供了四个保护环(Ring0-3),但大多数操作系统只使用Ring0(内核态)和Ring3(用户态)ARM架构采用类似的EL0-EL3多级特权模式操作系统安全威胁恶意软件类型常见攻击方式病毒附加在其他程序上,在程序执行时激活缓冲区溢出写入超过分配空间的数据,破坏并复制自身蠕虫独立运行,能自动传播到程序执行流程权限提升利用漏洞获取更高其他系统木马伪装成有用软件,实际执行系统权限拒绝服务消耗系统资源使服务不恶意功能勒索软件加密用户数据,要求支可用跨站脚本注入恶意代码到网页SQL付赎金解锁后门提供未授权访问系统的隐注入操纵数据库查询语句社会工程学欺蔽入口骗用户执行危险操作防护措施系统级保护安全启动、代码签名验证、应用沙箱、地址空间随机化访问控制最小权限原则、强密码策略、多因素认证安全更新及时修补已知漏洞监控与检测入侵检测系统、行为分析、日志审计现代操作系统实现了多层次的安全防护Windows Defender和Linux的AppArmor/SELinux提供内置安全功能Windows的用户账户控制(UAC)和Linux的sudo机制限制特权操作安全启动确保系统只加载经过签名验证的组件,防止引导阶段攻击数据执行保护(DEP)和控制流完整性(CFI)技术防止代码注入和控制流劫持操作系统中断与异常硬件中断软件中断由外部设备发起的中断信号,如键盘输入、由程序主动触发的中断,通常用于系统调磁盘完成读写、网卡接收数据包等硬件中用程序通过特殊指令(如x86的INT指断是异步的,可以在指令执行的任何时刻发令)请求操作系统服务软件中断是同步生处理器收到中断信号后,会保存当前执的,在指令执行过程中发生这是用户程序行状态,转而执行中断处理程序,处理完成与操作系统内核交互的标准机制,如请求文后返回原程序继续执行件操作、内存分配或进程创建等异常程序执行过程中发生的错误或特殊情况,如除零错误、页面错误、无效指令等异常是同步的,直接由当前指令执行引起操作系统通过异常处理机制可以捕获这些情况,或者终止错误程序,或者进行恢复操作(如缺页异常触发页面调入)中断处理流程包括中断发生、保存上下文、确定中断类型、调用相应处理程序、恢复上下文和返回原程序几个步骤现代处理器支持中断优先级和中断嵌套,允许高优先级中断打断低优先级中断处理中断向量表(IVT)或中断描述符表(IDT)维护了中断类型与处理程序的映射关系多核与并行调度负载均衡亲和性考虑推式负载均衡过载处理器主动将任务推给空闲处理器亲和性尽量在同一CPU上执行进程,处理器拉式负载均衡空闲处理器从忙碌处理避免缓存失效NUMA亲和性优先在进程内器拉取任务周期性负载均衡定期检查并调整存所在节点的处理器上调度任务,减少远程内存系统负载分布访问开销任务分配策略缓存优化静态分配在程序启动时决定任务分布动态分配运行时根据系统负载调整亲和性调度将相关任务分配到同一处理器,提高缓存命中率3多处理器系统可分为对称多处理器(SMP)和非对称多处理器(ASMP)SMP中所有处理器地位相同,共享内存和I/O,运行同一操作系统副本;ASMP中处理器有主从之分,通常用于特殊任务处理现代个人计算机和服务器多采用SMP架构,而手机等移动设备常用异构多核(如ARM big.LITTLE)架构,结合高性能和低功耗核心Linux的完全公平调度器(CFS)支持复杂的多核调度,通过虚拟运行时间平衡处理器负载Windows采用处理器组和动态公平共享调度,针对大型NUMA系统优化多核调度面临的挑战包括平衡并行度与局部性、处理核心异构性、避免缓存抖动和管理功耗随着核心数量增加,调度算法需要更好地应对可扩展性和资源竞争问题虚拟化与容器虚拟机技术容器技术虚拟机是完整操作系统的软件实现,通过虚拟化层(Hypervisor)运容器是轻量级的虚拟化技术,共享宿主操作系统内核,但使用命名空间行在物理硬件之上根据Hypervisor类型可分为和控制组(cgroups)实现隔离主要容器实现包括•Type-1直接运行在硬件上的裸金属Hypervisor,如VMware•Docker最流行的容器平台,提供构建、分发和运行容器的完整ESXi、Microsoft Hyper-V和KVM工具链•Type-2运行在宿主操作系统上的Hypervisor,如VMware•Kubernetes容器编排系统,管理分布式容器应用Workstation和Oracle VirtualBox•LXC/LXD Linux容器技术,提供类似虚拟机的用户体验虚拟机提供完整隔离,适合运行不同操作系统或需要强安全隔离的环境,容器启动迅速、资源消耗低,适合微服务架构和DevOps环境,但隔离但启动速度慢且资源占用大性不如虚拟机强虚拟化技术的核心机制包括CPU虚拟化(如Intel VT-x和AMD-V指令集扩展)、内存虚拟化(如影子页表和嵌套页表)和I/O虚拟化(如设备透传和I/O内存管理单元)这些硬件辅助技术大大提高了虚拟化性能,减少了虚拟化开销移动与嵌入式操作系统Android系统iOS系统实时操作系统基于Linux内核的开源移动操作系统,由Google主导开苹果公司专为iPhone和iPad开发的封闭源代码移动操作为嵌入式设备设计的专用系统,如FreeRTOS、发采用分层架构,包括Linux内核、硬件抽象层、原生系统基于Darwin内核(类Unix系统),采用Cocoa VxWorks和QNX关注确定性响应时间而非吞吐量,适库和运行时、应用框架和应用层特点是开放性强,使用Touch框架特点是与硬件深度整合,使用Swift和用于工业控制、医疗设备、航空电子设备等对时间敏感的Java与Kotlin开发应用,通过Dalvik/ART虚拟机执Objective-C开发应用,应用商店严格审核,安全性高应用特点是占用资源少、可靠性高、支持硬实时或软实行电源管理优化显著,支持Doze模式和应用待机内存管理采用自动引用计数(ARC),注重用户体验和流时任务调度、通常不提供图形界面畅性移动操作系统与传统桌面系统的主要区别在于电源管理更加激进,优化电池使用时间;触摸界面优先设计;应用沙箱模型加强安全性;权限系统更细粒度;强调连接性和位置服务嵌入式操作系统则更加精简,通常去除了文件系统、用户界面等非必要组件,专注于可靠性和实时性网络操作系统与分布式OS网络操作系统提供网络服务和资源共享的操作系统,如Windows Server和Linux服务器发行版主要特点是支持文件共享、打印服务、用户认证、域管理和网络协议栈每台计算机保持相对独立,用户需要明确访问远程资源分布式操作系统将多台计算机组织成单一系统的操作系统,如Amoeba和Plan9特点是透明性(用户感知单一系统)、高可靠性(容错机制)和资源共享系统自动管理多机通信、负载均衡和任务迁移,为用户呈现统一视图云操作系统管理云计算资源的系统软件,如OpenStack和CloudStack负责虚拟机/容器生命周期管理、存储虚拟化、网络虚拟化和服务编排提供API和Web界面,实现资源按需分配和弹性伸缩远程文件系统是分布式环境的关键组件,允许透明访问网络上的文件NFS(网络文件系统)是Unix/Linux环境的标准,支持无状态操作和故障恢复;SMB/CIFS(服务器消息块/通用互联网文件系统)是Windows网络共享的基础;AFS(Andrew文件系统)和Ceph提供了更强大的缓存和一致性机制,适用于大规模分布式环境云计算操作系统新趋势微内核与模块化设计云原生操作系统正朝着高度模块化的方向发展,采用微内核设计理念,仅保留必要核心功能,其他功能以模块形式按需加载这种设计提高了系统安全性和可靠性,减少了攻击面,便于更新和定制代表系统包括Google的Fuchsia OS和微软的Singularity研究项目不可变基础设施传统操作系统允许在运行时修改系统文件和配置,而新型云操作系统如CoreOS和Bottlerocket采用不可变设计,系统映像作为整体更新,运行期间不允许修改这简化了版本控制、回滚和安全强化,适合容器化和自动化部署环境Unikernel与专用操作系统针对特定应用优化的单一地址空间操作系统,将应用程序与最小化的操作系统库捆绑编译为单一可执行映像启动时间极短(毫秒级),内存占用小,安全性高MirageOS和IncludeOS等项目在微服务和边缘计算场景展现出巨大潜力AI驱动的系统优化机器学习算法正被应用于操作系统核心功能,如自适应资源调度、智能电源管理和预测性维护通过分析历史数据和使用模式,系统可以自动调整参数以优化性能和能效Google的自适应内核和微软的AI优化Windows更新代表了这一趋势云计算和边缘计算的融合正在重塑操作系统设计新一代操作系统需要同时支持云端大规模部署和边缘设备低延迟需求,提供一致的开发和管理体验混合计算模型要求系统具备位置透明性,能够根据网络条件、数据位置和计算需求自动决定任务执行位置。
个人认证
优秀文档
获得点赞 0