还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
操作系统核心组件欢迎大家参加《操作系统核心组件》课程操作系统是计算机科学中最重要的基础之一,它是连接硬件与应用程序的桥梁,是计算机系统软件的灵魂本课程将深入探讨操作系统的内部构造、工作原理与核心功能,帮助大家理解这个复杂而精妙的软件系统我们将从基本概念入手,逐步剖析各个核心组件的设计与实现,包括进程管理、内存管理、文件系统和设备管理等关键技术通过本课程,你将获得对现代操作系统全面而深入的认识,为今后的系统开发、优化和故障排除奠定坚实基础什么是操作系统?操作系统的定义操作系统的角色操作系统是一种系统软件,它管理计算机硬件与软件资源,为用操作系统扮演着多重角色它是资源管理者,合理分配和调度计户程序提供通用服务它是计算机最基本的软件层,也是最复杂算机系统中的处理器时间、内存空间、存储容量和外设访问等资的软件系统之一源;它是用户与硬件之间的桥梁,通过提供友好的用户界面和应用程序接口,屏蔽了硬件的复杂性作为计算机系统的管理者,操作系统控制并协调各种硬件设备的工作,同时为应用程序提供运行环境和服务接口,使应用程序能此外,操作系统还提供了安全保障,确保用户数据和系统资源不够高效安全地运行受未授权访问和恶意程序的侵害操作系统的基本目标有效性方便性扩展性和安全性操作系统必须高效地管理计算机资源,使操作系统应提供友好的用户界面和开发环操作系统需要具备良好的可扩展性,支持硬件性能得到充分发挥这包括提高处理境,降低用户和程序员的使用门槛从命新硬件和软件的加入同时,保障系统和器利用率、减少内存浪费、优化操作等令行界面到图形用户界面,操作系统的交数据安全是现代操作系统的核心目标之一I/O互方式不断演进现代操作系统采用复杂的调度算法和资源良好的程序设计接口()和系统调用机通过模块化设计、权限控制、资源隔离和API分配策略,平衡系统负载,最大化整体性制,简化了应用程序的开发过程,使程序加密技术,操作系统为用户提供了安全可能高效的内存管理和磁盘调度算法确保员无需关心底层硬件细节,专注于应用逻靠的计算环境,防止未授权访问和恶意程资源得到最优利用辑的实现序的危害操作系统结构与层次应用层用户应用程序和系统工具外围服务层系统服务与功能扩展核心层内核与基础功能硬件抽象层设备驱动与硬件接口操作系统采用层次化结构设计,从下至上依次为硬件抽象层、核心层、外围服务层和应用层这种分层架构使得系统各部分职责明确,便于开发和维护在系统架构中,微内核与宏内核是两种主要设计理念微内核将最基本功能放在内核态,其余服务运行在用户态,提高了系统稳定性和模块独立性;宏内核则将所有系统服务整合在内核空间,提供更高的执行效率但系统结构较为复杂主流操作系统实例系统Windows采用混合内核架构,核心组件包括内核、硬件抽象层、设备驱动程序和系统服务的优势在于广泛的硬件兼容性和丰富的应用生态系统,其图Windows NTHALWindows形用户界面设计直观友好,适合普通用户使用系统Linux采用单内核设计,但支持可加载内核模块,兼具宏内核的性能和微内核的灵活性其开源特性使其成为服务器、嵌入式系统和超级计算机的主流选择的模块化Linux Linux设计和高度可定制性,使其能够适应从微型设备到大型服务器的各种应用场景系统macOS基于内核,采用混合内核架构,结合了微内核和内核的特性其设计注重用户体验和系统美观,与硬件深度集成,提供卓越的性能和稳定性macOS DarwinMach BSDApple的图形界面和应用程序框架为开发者提供了强大的开发工具macOS AquaCocoa核心管理职能概览进程管理内存管理负责进程创建、调度、同步与通信管理物理与虚拟内存空间进程控制块管理地址转换与保护••调度算法实现内存分配与回收•CPU•线程支持与多任务处理虚拟内存与页面置换••设备管理文件管理控制各类外部设备的工作负责文件存储与访问控制设备驱动程序接口文件系统实现••调度与缓冲目录结构维护•I/O•中断处理机制存储空间分配••操作系统生命周期引导阶段检测硬件并加载引导程序引导程序负责初始化关键硬件,并加载操BIOS/UEFI作系统内核到内存系统在此阶段完成硬件自检和基本初始化工作内核初始化内核加载到内存后,开始执行初始化代码此阶段会设置内存管理单元、初始化中断控制器,并建立基本的内核数据结构系统创建第一个进程(通常为或init)systemd系统服务启动进程启动各种系统服务,包括设备驱动、网络服务、图形界面等用户登录管init理器准备就绪,系统进入可用状态此时完成从内核态到用户态的过渡4关机过程关机命令触发停止用户进程、同步文件系统、卸载文件系统等操作系统服务按照依赖关系逆序关闭,确保数据安全最后,系统切断电源或重新启动进程管理简介进程与程序的区别进程生命周期程序是静态的指令集合,存储在磁盘上的可执行文件;而进程是进程从创建到终止经历多个状态创建状态(进程正在被创建)、程序的一次执行实例,是动态的执行过程进程包含程序代码就绪状态(进程等待被执行)、运行状态(进程指令正在被执(文本)、当前活动(程序计数器、寄存器)、堆栈、数据段行)、阻塞状态(进程等待某事件)和终止状态(进程执行完(全局变量)和堆(动态分配的内存)毕)一个程序可以对应多个进程(如多次运行同一程序),一个进程状态之间的转换由操作系统控制调度器选择就绪进程进入运行也可以执行多个程序(通过系统调用)进程是操作系统进状态;运行进程可能因请求或等待资源而进入阻塞状态;当exec I/O行资源分配和调度的基本单位完成或资源可用时,阻塞进程转为就绪状态I/O进程控制块PCB进程标识信息进程、父进程、用户ID ID ID处理器状态信息程序计数器、寄存器值、栈指针进程控制信息调度状态、优先级、事件标志资源管理信息内存指针、打开文件表、分配设备进程控制块(,)是操作系统中表示进程的数据结构,包含进程运行所需的全部信息每个进程在创建时都会分配一个,操作系统Process ControlBlock PCB PCB通过来跟踪和管理系统中的所有进程PCB是进程存在的唯一标志,也是操作系统进行进程调度和管理的基础当进程切换发生时,操作系统会保存当前进程的上下文到其中,然后加载另一个进程的PCB PCB信息,实现进程间的切换通常保存在受保护的内存区域,只能由操作系统访问PCBPCB进程调度算法先来先服务()时间片轮转()FCFS RR按照进程到达就绪队列的顺序为每个进程分配一个时间片,分配处理器这是最简单的非轮流执行当时间片用完,进抢占式调度算法,容易实现但程被挂起并放回就绪队列末尾可能导致短进程在长进程后面这是一种经典的抢占式算法,等待较长时间,平均等待时间适合分时系统,能确保每个进较长适用于批处理系统,不程都能定期获得处理器时间,适合交互式系统提高响应性优先级调度根据进程优先级决定执行顺序,高优先级进程先执行优先级可以是静态分配的,也可以动态调整为防止低优先级进程永远无法执行(饥饿现象),通常采用老化机制,随着等待时间增加逐渐提高进程优先级线程概念与多线程线程的定义多线程的优势线程是调度的基本单位,是进程内的一个执行流同一进多线程编程提供了高效的资源共享模型线程间通信简单高效,CPU程中的多个线程共享进程的地址空间和资源,但每个线程有自己无需使用复杂的机制;创建线程比创建进程开销小;线程切IPC的程序计数器、寄存器集合和栈空间换比进程切换快;多线程能充分利用多处理器系统的并行处理能力线程的引入将程序的并发执行与资源分配分离开来,使得并发粒度更细,系统开销更小线程创建和切换的代价远低于进程,因现代应用广泛采用多线程设计,如服务器使用多线程处理Web此能更有效地支持并发执行并发请求,应用使用独立线程处理后台任务,保持界面响应UI多线程设计使系统更具响应性和效率线程实现机制用户级线程内核级线程临界区与同步完全在用户空间实现,操作系统不知由操作系统内核直接支持和管理内多线程程序中,线程可能并发访问共道线程的存在线程库负责线程的创核维护线程上下文信息,执行线程调享资源,造成数据不一致临界区是建、调度、同步和销毁优点是线程度优点是一个进程内的多个线程可指访问共享资源的代码段,需要互斥操作无需内核介入,切换快速;缺点以并行执行在多个处理器上,一个线执行操作系统提供了互斥量、信号是一个线程阻塞会导致整个进程阻塞,程阻塞不会影响其他线程;缺点是线量、条件变量等同步机制,确保线程无法利用多处理器代表实现有早期程操作需要系统调用,开销较大现按正确顺序访问共享资源,避免竞态的代操作系统大多采用此方式条件POSIX Threads进程通信与同步信号量一种整型变量,用于进程或线程间同步信号量可以是二进制的(互斥信号量,值为或)或计数型的(可以取多个正整数值)操作(减操作)申请资源,01P操作(加操作)释放资源信号量广泛用于互斥访问和条件同步V管道与消息队列管道是最古老的机制,提供单向数据流匿名管道用于相关进程间通信,IPC命名管道可用于无亲缘关系进程消息队列提供了一种结构化的数据交换方式,消息具有类型属性,接收进程可以按类型接收消息,比管道更灵活共享内存最高效的方式,允许多个进程访问同一块物理内存区域进程可以直接读IPC写共享内存,无需数据复制,但需要额外的同步机制(如信号量)协调访问常与信号量配合使用,适合大量数据交换的场景死锁及其处理互斥条件占有并等待资源不能被多个进程同时使用进程持有资源又申请新资源循环等待不可抢占进程之间形成环形资源等待链已分配资源只能由持有进程释放死锁是指两个或多个进程无限期地等待一个永远不会发生的条件,导致它们都无法继续执行死锁处理策略包括死锁预防(破坏死锁必要条件之一)、死锁避免(如银行家算法,动态检查资源分配状态)、死锁检测与恢复(允许死锁发生,但定期检测并采取措施恢复)在实际系统中,完全避免死锁可能代价过高,常采用折中方案对关键资源实施严格控制,对其他资源采用超时机制或定期检测正确的程序设计和资源申请顺序也能有效减少死锁风险作业与任务管理作业提交用户将作业提交到系统作业排队作业进入调度队列等待处理资源分配系统为作业分配必要资源作业执行作业转化为进程开始执行作业完成执行结束并释放资源作业是用户提交给系统的工作单位,包含程序、数据和控制信息作业管理是多道批处理系统的核心功能,负责作业的接收、调度、执行和管理作业控制块()记录作业的相关信JCB息,类似于进程的PCB现代多任务操作系统能同时运行多个应用程序,通过时间片轮转等技术实现任务并发执行任务调度器根据系统负载和任务优先级动态分配处理器时间,确保系统资源高效利用,同时保持良好的交互性能和响应速度处理机管理与切换保存当前进程状态将寄存器值、程序计数器等保存到PCB选择下一个进程调度算法从就绪队列中选择进程加载新进程状态从恢复寄存器值和执行环境PCB切换地址空间更新和,切换页表MMU TLB恢复执行跳转到新进程的指令位置继续执行上下文切换是操作系统从一个进程切换到另一个进程的过程,这个过程中需要保存旧进程的状态并恢复新进程的状态上下文切换是多任务操作系统的核心机制,但也是一项开销较大的操作,因为它涉及缓存失效、刷新等影响性能的因素TLB影响处理机调度的因素包括进程优先级、使用历史、内存需求、状态等现代调度器采用复杂的算法权衡这些因素,在吞吐量、响应时间、公平性和实时性之间取得平衡,适应CPU I/O不同的应用场景和系统负载内存管理基本原理内存空间划分地址映射方式操作系统将物理内存空间分为系统区和用户区系统区存放操作程序中使用的是逻辑地址(虚拟地址),需要转换为物理地址才系统内核代码和数据结构,通常位于低地址空间(传统架构)能访问实际内存地址转换由内存管理单元()硬件完成,x86MMU或高地址空间(某些现代架构),受到保护机制保障,用户程序支持重定位、保护和共享功能无法直接访问常见的地址映射方式包括静态重定位(装载时确定物理地址)、用户区分配给应用程序使用,每个进程拥有自己的地址空间,彼动态重定位(执行时进行地址转换)、分页映射(页表记录页面此隔离为有效利用内存,操作系统采用各种内存分配策略,如到物理块的映射)和分段映射(段表记录段基址和长度)连续分配、分页、分段等机制连续分配与分区分配单一连续分配固定分区分配最简单的内存分配方式,将整个用户空将内存划分为固定大小的分区,每个分间分配给一个进程这种方式主要用于区装入一个进程分区大小可以相等也单道程序系统,如早期的操作系统和一可以不等这种方式实现简单,但灵活些嵌入式系统优点是实现简单,缺点性差,容易产生内部碎片(分区中未被是内存利用率低,无法支持多道程序利用的空间)适用于任务规模固定的系统动态分区分配按照进程需要动态地分配内存,回收时合并相邻空闲区常用的分配算法有首次适应()、最佳适应()和最差适应()这种方式提高First-Fit Best-Fit Worst-Fit了内存利用率,但可能产生外部碎片(多个不连续的小空闲区无法利用)内存碎片是连续分配方式的主要问题内部碎片是指分配给进程但未被使用的内存空间;外部碎片是指空闲内存总和足够,但不连续,无法满足大进程需求解决外部碎片的方法包括内存紧凑()和非连续分配技术(如分页)compaction分页存储管理逻辑地址划分将进程的逻辑地址空间等分为固定大小的页面(),通常为或更大逻辑Page4KB地址被分为页号和页内偏移两部分,页号用于查询页表,页内偏移表示在页内的位置物理内存划分将物理内存划分为与页面大小相同的物理块()操作系统维护空闲物理Frame块列表,用于分配给进程的页面物理块是内存分配的基本单位,支持非连续分配页表机制每个进程有一个页表,记录逻辑页面到物理块的映射关系在内存访问时,系统根据逻辑地址的页号查询页表,获取对应的物理块号,再结合页内偏移计算出物理地址页表由操作系统维护,存储在内存中的受保护区域分页机制的主要优点是消除了外部碎片,支持非连续内存分配,简化了内存管理但页表可能占用大量内存,为解决这个问题,现代系统采用多级页表、反向页表和快表()TLB等技术优化地址转换过程分段机制分段基本原理分段与分页对比分段是一种按照程序的逻辑结构划分地址空间的方法,将程序划分段基于程序的逻辑结构,段大小不固定;而分页是物理划分,分为多个段(如代码段、数据段、堆栈段等)每个段在逻辑上页大小固定分段更符合程序员的思维方式,便于模块化和共享;是一个连续的地址空间,有自己的名称和长度,可以独立地分配分页则对程序员透明,更利于系统实现连续空间分配和管理分段机制中,逻辑地址由段号和段内偏移组成段表记录每个段分段可能产生外部碎片问题;分页则主要面临内部碎片问题现的基址和长度,用于地址转换和越界检查分段支持按照程序的代系统常采用段页式存储管理,结合两者优点先将程序按逻辑逻辑模块进行保护和共享,如只读代码段可以在多个进程间共享结构分段,再将每段划分为固定大小的页,结合段表和页表进行地址转换虚拟内存技术扩展地址空间突破物理内存限制内存保护进程隔离与安全访问按需分页运行时动态调入程序页面页面置换选择策略换出不活跃页面虚拟内存是一种内存管理技术,它为进程提供一个假象,使其认为拥有连续的可用内存空间,而实际上物理内存可能不足或不连续虚拟内存允许程序使用大于实际物理内存的地址空间,将不常用的部分存储在磁盘上,需要时再调入内存请求分页是虚拟内存的主要实现方式,程序运行时只需将当前使用的页面调入内存,其余页面保存在磁盘上当访问未在内存中的页面时,产生缺页中断,操作系统将所需页面从磁盘调入内存如果内存已满,则需要使用页面置换算法选择牺牲页面换出到磁盘常见页面置换算法先进先出()最近最少使用()最优算法()FIFO LRUOPT置换最早调入内存的页面置换最长时间不会被访问实现简单,只需维护一个置换最长时间未被引用的的页面这是理论上最好页面队列,但性能一般,页面基于程序局部的算法,但需要预知未来LRU可能出现异常性原理,性能较好,但实的访问序列,实际系统中Belady(增加物理帧数反而增加现开销大,需要记录每个无法实现常用作其OPT缺页率)没有考虑页面的使用时间常用的他算法的性能评估基准FIFO页面的使用频率,可能淘近似实现有时钟算法现实中的算法如和时LRU汰频繁使用的页面()和老化算法钟算法都试图近似的Clock OPT(),通过简化的效果Aging方式记录页面访问历史页面置换算法的选择对虚拟内存系统的性能有重大影响良好的算法应该降低缺页率,减少操作,同时保持较低的算法开销现代操作系统通常采用改进的时钟I/O算法或其变种,在性能和实现复杂度之间取得平衡内存回收与碎片整理内存泄漏检测识别未释放的内存块垃圾回收自动释放不再使用的内存碎片整理重组内存空间减少碎片内存紧凑移动内存块创建连续空间内存回收是操作系统重要的资源管理功能,负责回收进程终止后释放的内存空间,以及识别和处理内存泄漏现代系统采用多种方法管理动态内存,如引用计数、标记清除、复制收集等垃圾回收算法,自动回-收不再使用的内存对象长时间运行的系统面临内存碎片问题,特别是在动态分配频繁的环境中内存紧凑()是解Compaction决外部碎片的一种技术,通过重新定位内存块,将分散的小空闲区合并成大的连续空间内存紧凑操作开销较大,通常在系统负载较低时执行,或采用增量式方法分阶段完成,减少对系统性能的影响文件系统的作用数据组织与存储目录结构管理文件系统负责将数据以文件和目文件系统提供了分层的目录结构,录的形式组织并存储在持久化存帮助用户组织和管理文件目录储设备上它定义了数据块的分结构可以是单级的、两级的或树配方式、文件的物理组织结构,形的,现代文件系统多采用树形以及索引和查找机制,确保数据目录结构,支持目录的创建、删能够被高效存储和检索文件系除、重命名等操作目录项记录统通过特定的数据结构记录存储了文件的名称和属性信息,或者空间的使用情况,管理空闲空间指向详细文件信息的指针的分配和回收文件抽象与保护文件系统提供了文件这一抽象概念,隐藏了底层存储设备的复杂性它维护文件的元数据(如创建时间、大小、权限等),并实现访问控制机制,保护文件不被未授权访问通过文件描述符或文件句柄,应用程序可以进行统一的文件操作,无需关心底层存储细节典型文件系统结构用户应用程序通过系统调用访问文件逻辑文件系统提供文件操作API文件组织模块3管理文件块与目录结构基本文件系统4发送通用块指令控制层I/O5设备驱动与中断处理现代文件系统采用分层设计,每层负责特定功能,共同实现高效可靠的文件管理逻辑文件系统是最上层,提供文件操作,维护打开文件表和文件描述符;文件组织模块负责文件的逻辑结构,API管理空闲空间和目录结构;基本文件系统处理物理块的读写操作控制层包含设备驱动程序,负责将一般块请求转换为特定设备操作设备驱动程序处理设备特有的细节,如寄存器操作、中断处理等这种分层架构提高了系统的可移植性和可维护性,使上I/O层模块不必关心底层设备的差异常见文件系统类型文件系统主要特点适用平台最大文件大小结构简单,兼容性好多平台FAT32Windows,4GB支持权限控制,日志NTFS Windows16EB功能性能优良,支持大文ext4Linux16TB件针对优化,支持旧版HFS+Mac macOS8EB大文件针对优化,支持新版APFS SSDmacOS8EB快照不同文件系统采用不同的文件分配方式,影响存储效率和访问性能使用文件分配表记录每个簇的使FAT用情况,结构简单但不支持大文件;和使用更复杂的索引结构,支持高效随机访问和大文件存NTFS ext4储现代文件系统普遍加入了日志功能,记录文件系统操作,提高崩溃恢复能力的主文件表()NTFS MFT和的表采用了不同技术实现类似功能,管理文件元数据并提供快速查找能力选择合适的文件ext4inode系统应考虑使用场景、性能需求和跨平台兼容性文件操作接口打开文件创建文件查找文件,创建文件描述符分配,更新目录inode读写操作数据传输与缓冲管理3关闭文件释放描述符,更新元数据定位操作改变文件指针位置操作系统提供了一组统一的文件操作接口,抽象底层存储细节,使应用程序能够以一致的方式访问不同类型的文件系统在系统中,常见的文件操作系统调用UNIX/Linux包括、、、、等;系统提供了类似功能的、、、、等open readwrite lseekclose WindowsCreateFile ReadFileWriteFile SetFilePointerCloseHandleAPI文件操作接口的实现涉及多个层次应用程序通过系统调用请求文件服务;操作系统验证请求合法性,执行必要的权限检查;文件系统定位文件数据,执行实际的读写操作;最后通过子系统与存储设备交互现代系统还提供了缓冲区缓存()机制,减少物理操作,提高文件访问性能I/O Buffer Cache I/O文件系统一致性与安全元数据管理日志文件系统文件系统元数据包括超级块、日志文件系统在执行修改操作前,表、目录项等关键结构,它先将计划进行的变更记录到日志inode们维护了文件系统的整体状态和区域如果操作过程中系统崩溃,每个文件的属性信息元数据的重启后可以通过检查日志恢复到完整性对文件系统至关重要,任一致状态这种机制大大缩短了何损坏都可能导致整个文件系统系统崩溃后的恢复时间,提高了不可用或数据丢失现代文件系文件系统的可靠性、NTFS统通常将元数据复制到多个位置,、等现代文件系统都采ext4XFS以防单点故障用了日志技术回滚与快照高级文件系统提供了回滚和快照功能,允许用户恢复到之前的文件系统状态快照技术创建文件系统某一时刻的只读映像,而不需要复制所有数据写时复制()是实现快照的常用技术,只有当原始数据被修改时才Copy-on-Write会创建副本,大大节省了存储空间目录实现目录数据结构目录组织方式目录是特殊类型的文件,包含文件名和对应索引节点()早期的文件系统使用单级目录结构,所有文件位于同一目录下,inode的映射关系最简单的目录实现是线性列表,每个条目包含文件容易造成命名冲突两级目录结构为每个用户提供独立目录,改名和文件属性或指向属性的指针这种结构适用于包含少量文件善了文件组织,但灵活性仍然有限的目录,但在文件数量增加时查找效率降低现代文件系统普遍采用树形目录结构,允许用户创建任意深度的为提高检索性能,现代文件系统采用更复杂的数据结构哈希表目录层次,灵活组织文件在系统中,目录树有单UNIX/Linux将文件名映射到目录条目,提供快速查找能力;树或树支持一根目录();系统则为每个驱动器分配根目录(如B B+/Windows高效的范围查询和动态调整,适用于包含大量文件的目录例如,)此外,有向无环图()目录结构通过链接机制允许C:\DAG使用树实现主文件表,使用哈希树索引目录条目文件或目录出现在多个位置,进一步增强了文件组织的灵活性NTFS B+ext4硬链接与软链接硬链接硬链接是文件系统中对同一文件内容的多个引用,它们共享同一个和数据块创建硬链接inode不会复制文件数据,只是在目录中添加一个新条目,指向现有文件的所有硬链接地位平inode等,删除任何一个链接不会影响其他链接的访问硬链接的限制不能跨文件系统创建;不能链接到目录(防止形成循环);必须待所有硬链接都被删除后,文件的和数据块才会被释放硬链接在系统中使用命令创建inode UNIX/Linux ln软链接软链接(也称符号链接)是一种特殊的文件,其内容是指向另一个文件或目录的路径软链接有自己的和数据块,只存储目标文件的路径信息访问软链接时,系统会自动解析路径并重inode定向到目标文件软链接的特点可以跨文件系统;可以链接到目录;当目标文件被删除时,软链接仍然存在但变为悬空链接软链接在系统中使用命令创建,在系统中类似功能UNIX/Linux ln-s Windows通过快捷方式实现链接机制增强了文件系统的灵活性,允许文件在不同位置被访问而无需复制数据硬链接通过共享实现高效存储,适合需要在多个位置访问相同内容的场景;软链接通过路径重定向提供更灵活inode的引用方式,适合跨文件系统或链接到目录的情况设备管理基本原理设备分类I/O计算机系统中的设备种类繁多,按数据传输特性可分为块设备和字符设备I/O块设备(如硬盘、)以数据块为单位进行随机访问;字符设备(如键盘、SSD打印机)以字符为单位进行顺序访问不同设备有各自的控制方式、数据传输速率和接口标准设备管理职责操作系统的设备管理子系统负责设备驱动程序的加载和管理、设备分配和回收、设备独立性实现、数据缓冲与调度以及错误处理等功能它为应用程序提供统一的设备访问接口,隐藏底层硬件细节,简化应用开发设备无关性设备无关性是操作系统的重要特性,它允许应用程序使用统一的接口访问不同类型的设备操作系统通过子系统将通用请求映射到特定设备的操作,I/O I/O应用程序无需关心底层设备的差异这种抽象大大简化了应用程序设计,提高了软件的可移植性驱动程序结构应用程序层调用系统访问设备API设备无关层提供统一接口和抽象驱动程序层3实现设备特定操作硬件接口层4直接与设备硬件交互驱动程序是操作系统与硬件设备通信的桥梁,负责翻译操作系统的通用请求为特定设备的控制命令驱动程序通常包含初始化例程(负责设备发现和准备)、中I/O断服务例程(处理设备中断)、命令处理例程(执行操作)和错误处理例程(处理异常情况)I/O在现代操作系统中,驱动程序采用模块化设计,可以动态加载和卸载使用文件作为设备驱动,通过文件描述驱动信息;使用可加载内核模Windows.sys INFLinux块(文件),通过命令加载驱动驱动程序错误是系统不稳定的主要来源,因此许多系统提供了驱动验证工具,确保驱动程序的质量和兼容.ko insmod/modprobe性调度与管理I/O缓冲技术中断处理技术DMA缓冲是一种重要的技术,用于协调速度不匹中断是设备通知事件发生的机制当操直接内存访问()技术允许设备控制器直I/O CPU I/O DMA配的设备和处理单元系统缓冲区作为临时存储作完成或需要服务时,设备控制器生成中断信号接与内存交换数据,无需干预每个字节的传CPU区,允许进程在操作完成前继续执行,提高暂停当前执行,保存上下文,然后调用对应输只需设置控制器(指定源地址、I/O CPUCPU DMA系统吞吐量单缓冲、双缓冲和循环缓冲是常见的中断服务例程()处理事件中断处理完目标地址和传输长度),然后继续执行其他任务,ISR的缓冲策略,适用于不同的场景成后,恢复之前的执行传输完成后接收中断通知I/O CPU缓冲技术还能减少实际操作次数读缓冲可现代系统采用多级中断处理模式顶半部(大大减轻了的处理负担,提高了I/O TopDMA CPU I/O预先读取可能需要的数据;写缓冲可累积多个写)快速响应中断,执行最小必要工作;底半系统性能,特别是对于高速设备和大量数据传输Half请求后一次性写入设备现代系统的页缓存部()推迟到后续执行,完成剩余现代系统广泛使用处理磁盘、网络和显示Bottom HalfDMA()和缓冲区缓存()处理这种设计减少了中断屏蔽时间,提高了系适配器等设备的数据传输Page CacheBufferCache提供了高效的文件数据缓存机制统响应性典型设备管理策略请求队列管理磁盘调度算法I/O子系统维护请求队列,管理对设备的访问请求对于多进程磁盘调度算法针对旋转存储设备的物理特性优化访问顺序,减少I/O共享设备的情况,操作系统需要决定请求处理顺序,平衡公平性寻道时间和旋转延迟简单但性能一般;选择最短寻FCFS SSTF和效率常见的队列管理策略包括先来先服务()、最短道距离的请求,但可能导致饥饿;和(循环扫FCFS SCANC-SCAN寻道时间优先()、(电梯算法)等描)沿一个方向处理请求,到达尽头后改变方向,避免了饥饿问SSTF SCAN题请求合并是提高效率的重要技术相邻或重叠的读写请求可I/O以合并成单个操作,减少设备寻道时间和系统开销操作系统还现代操作系统通常使用的变种或更复杂的算法,如SCAN Linux可能根据系统负载和设备特性动态调整队列深度和处理策略的(完全公平队列)和调度器对于设备,CFQ DeadlineSSD传统的磁盘调度算法效果有限,系统会采用专为闪存特性优化的调度策略,如(无操作)调度器NOOP操作系统中的安全组件用户鉴权系统验证用户身份,确保只有授权用户能够访问系统身份验证可基于用户知道的信息(密码)、用户拥有的物品(智能卡)或用户固有特征(生物识别)多因素认证结合多种验证方式,显著提高安全性权限控制机制限制用户对资源的访问权限,确保用户只能执行被授权的操作系统使UNIX/Linux用用户、组和读写执行权限位;系统使用安全标识符()和访问IDID//Windows SID控制列表()实现更细粒度的权限控制ACL多级安全模型将系统和数据分类为不同安全级别,控制信息流动模型防止高级别Bell-LaPadula信息泄露到低级别(机密性保护);模型防止低完整性数据污染高完整性数据Biba(完整性保护)军事和政府系统常采用这类模型安全内核架构系统核心组件实现基本安全功能,如内存保护、进程隔离和特权级别管理现代处理器支持多种保护环(),操作系统内核运行在最高特权级(),应Ring0-3Ring0用程序运行在较低特权级(通常是)Ring3访问控制机制访问控制列表()基于角色的访问控制()强制访问控制()ACL RBACMAC为每个受保护对象(如文件、目录)将权限分配给角色而非直接分配给用由系统强制执行的安全策略控制资源ACL RBACMAC维护一个列表,指定哪些用户或组可以以何户,用户通过被分配到角色间接获得权限访问,用户无法更改这些策略系统为主体种方式访问该对象提供细粒度的权这种方式简化了权限管理当用户的职责变(用户、进程)和客体(文件、设备)分配ACL限控制,可以为不同用户指定不同的访问权化时,只需调整其角色分配,而无需修改每安全标签,基于这些标签和系统安全策略决限、和某些文件个资源的访问规则广泛应用于企业定访问权限和是Windows macOSLinux RBACSELinux AppArmor系统支持,允许管理员定义复杂的访系统和数据库管理中系统中实现的知名安全模块ACL LinuxMAC问规则文件与进程权限隔离是操作系统安全的基础每个进程在操作系统内部都有一个安全上下文,包含用户标识、组成员资格等信息当进程尝试访问资源时,操作系统根据进程的安全上下文和资源的访问控制策略决定是否允许访问审计与日志系统事件捕获系统安全事件检测与记录阶段操作系统内核和安全组件监控关键活动,如登录尝试、权限变更、资源访问等事件产生时,系统会收集相关信息,包括时间戳、用户标识、操作类型、成功失败状/态等,并生成审计记录日志存储将审计记录保存到安全日志文件或数据库存储机制需要保证日志完整性和防篡改能力,通常采用访问控制和加密技术保护日志数据系统还需要管理日志轮转和归档,防止日志文件过大或存储空间耗尽分析与报告对收集的日志数据进行处理和分析,识别异常模式和潜在安全威胁现代系统常使用安全信息和事件管理()工具,集中收集、关联和分析来自多个来源的日志数据,提供实时警SIEM报和安全报告系统的主要日志文件位于目录,包括系统日志()、认证日志()和审计Linux/var/log syslogauth.log日志()等服务负责收集和路由各种系统和应用程序日志守护进程提供更详audit.log syslogauditd细的内核级审计功能,记录系统调用和安全相关事件系统使用事件日志服务记录系统活动,主要日志包括应用程序日志、系统日志和安全日志事Windows件查看器提供了查看和分析这些日志的图形界面安全审计策略允许管理员配置需要记录的事Windows件类型,如账户登录、对象访问、策略更改等加密机制与数据保护对称加密非对称加密对称加密使用相同的密钥进行加密和解密非对称加密使用一对密钥公钥用于加密,具有高效率的特点,适合大量数据加密常私钥用于解密公钥可以公开分发,私钥保见算法包括(高级加密标准)、密保存这解决了密钥分发问题,但计算开AES DES(数据加密标准)和(三重)销较大常见算法有、(椭圆曲线3DES DESRSA ECC主要挑战是密钥分发问题如何安全地将密加密)等非对称加密常用于数字签名和安钥传递给通信双方全密钥交换哈希函数哈希函数将任意长度的输入数据映射为固定长度的输出值(哈希值)良好的哈希函数具有单向性(无法从哈希值反推原始数据)和抗碰撞性(不同输入产生相同哈希值的概率极低)常用于数据完整性验证、密码存储和数字签名操作系统中的密钥管理包括密钥生成、存储、分发、更新和销毁等环节安全的密钥管理需要专用的硬件支持,如可信平台模块()或硬件安全模块(),提供安全的密钥存储和密码学操作TPM HSM数据保护技术在操作系统中的应用广泛文件系统加密保护静态数据;安全通信协议()SSL/TLS保护传输中的数据;内存加密保护正在处理的数据全盘加密技术(如、)在底BitLocker FileVault层保护整个存储设备,防止未授权的物理访问虚拟化技术入门虚拟机概念容器技术虚拟机是软件实现的计算机系统,它在物理计算机上模拟完整的容器是一种轻量级的虚拟化技术,与传统虚拟机不同,容器共享硬件环境,允许运行独立的操作系统实例虚拟机提供了资源隔主机操作系统内核,只虚拟化操作系统用户空间容器包含应用离和硬件抽象,每个虚拟机都认为自己拥有专用的处理器、内存程序及其依赖,提供了一个隔离的执行环境,但开销远小于完整和设备,实际上这些资源由虚拟化层统一管理和分配的虚拟机I/O容器技术的主要实现包括、和等容Docker LXCKubernetes虚拟机技术带来多种优势提高硬件利用率,多个虚拟机共享物器的优势在于启动速度快、资源占用少、部署简便,特别适合微理资源;提供隔离环境,增强安全性;支持快照和迁移功能,简服务架构和云原生应用与虚拟机相比,容器提供的隔离性较弱,化备份和恢复;便于开发和测试,可以模拟各种环境配置但性能更接近于原生应用与现代内核Hypervisor虚拟机应用运行各种操作系统和应用客户操作系统虚拟机内部的操作系统Hypervisor3虚拟化管理软件物理硬件4实际的计算机设备(虚拟机监视器)是实现虚拟化的关键软件,负责创建和管理虚拟机,协调它们对底层硬件资源的访问(裸金属型)直接运行在Hypervisor Type1Hypervisor硬件上,没有底层操作系统,提供最高的性能和安全性,适用于服务器虚拟化;代表产品有、和等VMware ESXiMicrosoft Hyper-V KVM(托管型)运行在常规操作系统之上,更易于安装和使用,但性能略低,适合桌面虚拟化;代表产品有、Type2Hypervisor VMwareWorkstation Oracle和等现代处理器提供硬件虚拟化扩展(如、),显著提高虚拟化性能,支持直接执行客户机指令,减少VirtualBox ParallelsDesktop IntelVT-x AMD-V干预Hypervisor云计算操作系统实例OpenStack Kubernetes是开源的云计算平台,提供基础设施即服务()功能它由多个组件构成,包是容器编排平台,自动化容器部署、扩展和管理核心组件包括服务器、调度OpenStack IaaSKubernetes API括(计算服务)、(对象存储)、(块存储)、(网络服务)等器、控制器管理器和(分布式键值存储)引入了、、Nova SwiftCinder Neutronetcd KubernetesPod Service允许企业构建私有云和公共云,提供可扩展、灵活的计算资源管理等抽象概念,简化了微服务应用的部署和运维它支持自动扩缩容、滚动更新和OpenStack Deployment服务发现等关键功能云计算环境中的资源调度具有特殊性,需要考虑多租户、可伸缩性和容错性调度器需要平衡资源利用率、性能需求和服务质量保证,同时处理异构硬件和动态变化的工作负载云原生操作系统正在兴起,它们专为云环境设计,优化了资源管理、网络通信和服务部署这类系统通常采用微内核架构,支持实时迁移和快速恢复,为云应用提供更高效的运行环境随着边缘计算的发展,云操作系统也在扩展支持边缘节点的管理和协调并发与并行操作并发处理并发是指多个任务在重叠的时间段内启动、运行和完成的能力在单处理器系统中,并发通过时间片轮转实现,多个任务交替执行,给用户并行执行的错觉并发适用于密集型应用,在一个任务等待时可以执行其他任务,提高系统吞I/O I/O吐量和资源利用率并行处理并行是指多个任务在同一时刻同时执行的能力,需要多核处理器或多处理器系统支持并行适用于计算密集型应用,通过将任务分解为可以同时执行的子任务,显著提高处理速度并行计算模型包括数据并行(同一操作应用于多个数据元素)和任务并行(不同任务同时执行)多处理器支持现代操作系统提供对多处理器和多核架构的支持,包括处理器亲和性设置(将进程绑定到特定)、负载均衡(在处理器之间分配工作负载)和(非统CPU NUMA一内存访问)架构优化系统调度器会考虑处理器缓存和内存访问模式,减少跨处理器通信和内存访问延迟经典操作系统架构图内核结构模块化设计Linux Windows内核采用单内核设计,但支持模块化扩展核心组件包括采用分层的微内核宏内核混合架构底层是硬件抽象Linux Windows/进程调度器、内存管理器、虚拟文件系统()、网络协议栈层(),提供硬件平台独立性;核心是内核和执VFS HALWindows和设备驱动程序内核的特点是灵活性和可定制性,允许行体(),实现基本系统服务;上层是子系统和服务Linux Executive用户根据需求编译内核并加载卸载内核模块进程,提供应用程序接口和高级功能/系统调用接口提供了用户空间程序访问内核服务的统一方的关键组件包括对象管理器(管理内核对象)、安全Linux Windows式进程间通信()机制包括管道、消息队列、共享内存和引用监视器(强制安全策略)、进程线程管理器、管理器IPC/I/O套接字等虚拟文件系统抽象了不同文件系统的实现细节,提供和缓存管理器等驱动模型()和驱Windows WDMWindows统一的文件操作接口动框架()提供了设备驱动开发的标准接口和框架WDF开源操作系统案例开源桌面系统FreeBSD稳定可靠的服务器系统面向最终用户的开源选择完整的操作系统,非仅内核、等主流发行版••Ubuntu Fedora许可证,允许商业封闭使用、等桌面环境•BSD•GNOME KDE内核开源社区Linux优秀的网络和存储性能丰富的应用生态系统••开源世界的核心引擎开源系统的生命力源泉完全开源,遵循许可全球性的开发者合作•GPL•模块化设计,支持多种硬件平台透明的开发流程••全球开发者社区共同维护快速的创新和安全响应••开源操作系统通过社区协作开发,代码公开透明,允许任何人查看、修改和分发内核是最成功的开源项目之一,从年的个人项目发展为支撑全球互Linux1991Linus Torvalds联网基础设施的核心软件源自,以高度稳定和安全著称,广泛应用于网络服务器和嵌入式系统FreeBSD BerkeleySoftware Distribution嵌入式实时操作系统实时响应特性资源受限环境实时操作系统()最关键的嵌入式系统通常具有有限的处理能RTOS特性是确定性响应时间,保证在规力、内存和存储空间设计RTOS定的时间限制内完成任务硬实时精简高效,内核占用资源少,启动系统必须严格满足时间约束,任何时间短模块化设计允许只加载必延迟都可能导致系统失效;软实时要组件,减少内存占用与通用操系统允许偶尔的时间延迟,但性能作系统相比,通常没有图形RTOS会随之下降采用特殊的调界面和复杂的文件系统,专注于核RTOS度算法和中断处理机制,最小化响心功能和可靠性应延迟架构应用ARM处理器因其低功耗和高性能特性,成为嵌入式和移动设备的主流架构针ARM对平台的包括、、等这些系统优化了ARM RTOSFreeRTOS RTXVxWorks特有功能,如引擎、安全扩展和省电模式现ARM NEONSIMD TrustZone代和系列处理器专为实时应用设计,提供硬件级支ARM Cortex-M Cortex-R持操作系统性能优化性能分析使用系统监视工具识别瓶颈有、和等工具跟踪系统调Linux perfstrace ftrace用和内核活动;提供和(事件跟踪)Windows PerformanceMonitor ETW分析利用率、内存使用、活动和上下文切换频率等指标,确定优化方向CPUI/O调度优化调整进程调度参数,平衡响应时间和吞吐量优化技术包括处理器亲和性设置(将进程绑定到特定)、优先级调整和优先级控制针对特定工作负载CPUI/O内存管理优化3选择合适的调度算法,如的(完全公平调度器)、和Linux CFSDEADLINE RT(实时)调度器调整内存分配和回收策略,减少页面交换技术包括大页面支持(减少缺TLB失)、感知内存分配(减少远程内存访问)和内存压缩(作为磁盘交换的NUMA替代)控制系统缓存大小,平衡文件缓存和应用程序内存需求4子系统优化I/O选择合适的调度器和文件系统,优化磁盘访问模式技术包括预读调整、异I/O步、直接和合并对于设备,禁用不必要的功能如寻道优化,启I/O I/O I/O SSD用支持延长设备寿命网络优化包括参数调整和零拷贝技术TRIM I/O TCP新兴技术趋势安全增强与可信计算与操作系统智能化非易失性内存支持AI操作系统安全正向纵深防御发展,采用多层次保护人工智能正深刻改变操作系统设计自适应资源管非易失性内存技术(如)模糊了存Intel Optane机制硬件安全扩展如和理使用机器学习预测应用需求,动态调整、内储和内存的界限,需要操作系统提供新的抽象和管Intel SGXARM CPU提供隔离执行环境,保护敏感计算和数存和资源分配智能调度算法考虑应用特性、理机制持久内存文件系统专为设计,提供TrustZone I/O NVM据可信启动和远程证明技术确保系统完整性,防用户行为模式和系统状态,优化任务执行顺序接口和事务支持byte-addressable止恶意软件在底层植入直接访问持久内存()允许应用程序绕过传DAX微隔离技术将系统分割为小型安全域,限制攻击面加速硬件(如神经网络处理器)需要专门的驱动统堆栈,直接读写持久内存新的编程模型和AI I/O和横向移动形式化验证方法应用于操作系统核心和运行时支持异常检测系统使用识别异常行为库支持开发者利用特性,如内存映射文件和AI NVM组件,数学证明其安全性零信任架构要求持续验模式,提前发现性能问题和安全威胁未来操作系持久性指针这一技术彻底改变了传统的存储层次证每次访问请求,无论来源内部还是外部统将更加主动和自适应,能够学习和优化自身行为结构,影响系统设计的核心假设典型故障与排错系统崩溃分析蓝屏()和内核崩溃是严重系统故障的表现这些崩溃通常由驱动程序错误、硬件故障或内核漏洞引起诊断过程包括分析错误代码、查看内存转储Windows BSODLinux文件和检查系统日志提供和内存诊断工具;使用和工具分析核心转储Windows WinDbgLinux crashkdump内核日志分析系统日志是排查问题的重要资源的命令和目录下的文件记录内核消息和系统事件;的事件查看器整理各类系统和应用程序日志分析日志Linux dmesg/var/log Windows时应关注错误和警告消息、时间顺序和相关事件的关联性日志分析工具如和可自动扫描和突出显示异常情况logwatch splunk性能问题诊断系统卡顿和响应慢可能由多种因素引起,如资源耗尽、锁争用或瓶颈性能监控工具(的、、;的资源监视器、性能计数器)帮助识别I/O Linuxtop iostatvmstat Windows高使用率、内存泄漏、过度分页和磁盘饱和等问题跟踪工具如和可深入分析应用程序行为和系统调用模式CPU strace/dtrace ETW总结与展望历史演进从批处理到多任务交互式系统核心组件进程、内存、文件与设备管理当前趋势虚拟化、容器与云原生架构未来方向集成与新型计算模式AI操作系统作为计算机系统的核心,其发展历程反映了计算技术的整体进步从早期的单任务批处理系统,到现代的多用户分时系统,再到未来的智能自适应系统,操作系统不断演化以满足计算需求的变化每一代操作系统都在前代基础上增加新功能,同时保持核心管理职能的稳定性未来操作系统发展趋势包括更深入的人工智能集成,使系统能够预测用户需求并优化资源分配;更强大的安全机制,应对日益复杂的网络威胁;更高效的能源管理,适应移动和边缘计算需求;更灵活的模块化设计,支持多样化的硬件平台和应用场景理解操作系统核心组件的工作原理,将帮助我们更好地设计、开发和使用下一代计算系统与拓展阅读QA推荐阅读经典教材《操作系统概念》(等著)提供全面基础知识;《现代操作系统》(著)深入分析设计原理;Silberschatz Tanenbaum《内核设计与实现》(著)剖析内核实现细节;《深入理解计算机系统》(等著)从硬件到软件全面讲解计算机Linux RobertLove LinuxBryant系统在线学习资源包括的操作系统工程课程、的操作系统原理、基金会的课程以及各大开源项目的文档和社区实践是掌握操作MIT StanfordLinux系统知识的关键,建议参与开源项目、阅读源代码、编写系统程序和进行内核模块开发通过动手实践,加深对理论概念的理解,培养系统级编程和问题解决能力欢迎各位同学针对课程内容提出问题,我们将在接下来的讨论环节深入探讨操作系统的各个方面。
个人认证
优秀文档
获得点赞 0