
操作系统
文章平均质量分 87
编程旧事
Code Daily!
展开
-
一致性哈希算法
本文介绍了一致性哈希算法的背景、实现方式、优势和存在的问题。一致性哈希通过服务器IP或地理位置的Hash运算和对2^32取模确定服务器在Hash环上的位置,新数据到达时也进行同样的操作,并顺时针找到最近的服务器节点存储。在服务器扩容时,只需迁移新增服务器和相邻服务器间的数据点,减少了数据迁移量。然而,一致性哈希可能面临数据偏斜问题,导致负载不均和单点故障风险。解决方案是使用多个虚拟节点(vnodes)代替实际服务节点,均匀分布流量和负载。算法的优点是在服务器扩缩容时避免了大规模数据迁移,提高了系统的稳定性和原创 2024-05-28 17:54:02 · 1048 阅读 · 0 评论 -
Reactor模式&Proactor模式
本文介绍了Reactor和Proactor两种网络编程模式。Reactor模式由Reactor和处理资源池组成,负责监听和分发事件,适用于IO密集型应用。它有单Reactor单Worker到多Reactor多Worker的不同组合方案,但多Reactor单Worker方案因复杂且无性能优势而少用。Reactor模式存在潜在的性能瓶颈,适用于短耗时业务场景,但不适合计算密集型任务。Proactor模式通过异步操作处理器完成IO操作,无需CPU参与,感知到的是已完成的I/O事件,属于非阻塞式异步I/O,效率更高原创 2024-05-27 21:44:33 · 1159 阅读 · 0 评论 -
零拷贝(Zero-Copy)
本文探讨了零拷贝技术(Zero-Copy)的背景、实现方式、应用和注意事项。零拷贝技术旨在减少数据在用户空间和内核空间之间的拷贝以及上下文转换,提高文件传输效率。文章首先描述了传统文件传输过程中的多次数据拷贝和上下文转换问题。接着,介绍了几种零拷贝的实现方式,包括mmap+write、sendfile以及sendfile+SG-DMA,每种方式都减少了数据拷贝次数和系统调用次数。文章还提到了零拷贝技术在Kafka和NGINX中的应用,并指出了其使用的限制条件,如数据不能进行二次加工,依赖于PageCache原创 2024-05-25 20:42:26 · 960 阅读 · 0 评论 -
【操作系统·考研】磁盘和固态磁盘
磁盘是一种用于存储和读取数据的设备,它由涂有磁性物质的盘片和磁头组成。磁头通过固定的方式读取和写入数据,而磁盘则以高速旋转。数据存储在磁道和扇区中,磁道是同心圆上的一部分,而扇区是磁道的一部分,存储容量相同。磁盘驱动器包括磁头臂、主轴和电子设备,它们协同工作以实现数据的输入和输出。磁盘可以分为固定头和活动头磁盘,以及固定盘和活动盘磁盘。为了使用磁盘,需要进行低级格式化,将扇区结构格式化为特定的数据结构。此外,磁盘还可以进行分区和逻辑格式化,以便将文件系统的数据结构存储到磁盘上。总体而言,磁盘是一种重要的存储原创 2024-02-04 16:44:05 · 1645 阅读 · 0 评论 -
【操作系统·考研】设备独立性软件
本文介绍了磁盘高速缓存和缓冲区技术。磁盘高速缓存利用内存中的存储空间来暂存磁盘中的数据,提高了磁盘的I/O速度。缓冲区技术的引入解决了CPU与I/O设备速度不匹配的问题,减少了对CPU的中断频率,并提供了并行性。硬件缓冲器和位于内存区域的缓冲区是实现缓冲区的两种方法。在位于内存区域的缓冲区中,介绍了单缓冲、双缓冲、循环缓冲和缓冲池这几种实现方式。每种方式都有不同的特点和处理用时。缓冲区技术的合理应用可以提高系统的效率和性能。原创 2024-02-03 19:39:11 · 1523 阅读 · 0 评论 -
【操作系统·考研】I/O管理概述
本文介绍了I/O管理中的关键概念。首先,介绍了I/O设备的两种类型:块设备和字符设备,并提供了相应的示例。接着,讨论了I/O接口(设备控制器)的功能和结构,包括设备控制器与CPU的接口以及设备控制器与设备的接口。然后,解释了I/O端口的概念和分类,并描述了与CPU通信的两种方式。最后,介绍了两种常见的I/O控制方式:程序直接控制方式和中断驱动方式。程序直接控制方式简单易实现,但会导致CPU资源浪费,而中断驱动方式允许I/O设备主动打断CPU并请求服务,提高了CPU利用率。原创 2024-02-02 17:19:26 · 1397 阅读 · 0 评论 -
【操作系统·考研】文件系统
文件系统(File System)是计算机系统中用于存储、定位和提取数据的重要组件。它由逻辑文件系统、文件组织模块、基本文件系统和I/O控制等组成。逻辑文件系统管理文件系统的元数据信息,包括目录结构和文件属性。文件组织模块负责组织文件和转换逻辑地址到物理地址。基本文件系统处理磁盘的读写操作,并管理缓存和缓冲区。I/O控制包括设备驱动程序和中断处理程序,用于在内存和磁盘系统之间传输信息。文件系统存储在磁盘上,每个分区都有独立的文件系统。磁盘中的文件系统结构包括主引导记录、引导块、超级块、空闲空间管理、i节点.原创 2024-02-01 17:32:28 · 2233 阅读 · 0 评论 -
【操作系统·考研】目录
文件目录是与文件管理系统和文件集合相关联的重要概念。它包含了有关文件的属性、位置和所有权等信息。目录的结构可以分为单级目录结构、两级目录结构、树形目录结构和无环图目录结构。单级目录结构按名存取文件,但查找速度慢且不适用于多用户系统;两级目录结构提高了检索速度,但缺乏灵活性;树形目录结构清晰且具备更有效的文件管理和保护能力,但搜索文件时需要多次磁盘访问;无环图目录结构方便文件共享,但增加了系统管理的复杂性。目录的操作包括搜索、创建文件、删除文件、创建目录、删除目录、移动目录、显示目录和修改目录。原创 2024-01-31 17:06:01 · 1388 阅读 · 0 评论 -
【操作系统·考研】文件系统基础
文章介绍了计算机文件系统的基本概念和组成部分,包括数据项、记录以及文件的定义与分类,并详细阐述了文件的各种属性,如名称、类型、大小等。文件控制块(FCB)和索引节点(i节点)是操作系统用来管理和维护文件元数据的关键结构。文件操作涵盖了创建、读写、删除、重定位等多个方面,并强调了文件保护的重要性,通过访问控制列表、口令或密码等方式实现。此外,文章还探讨了文件的逻辑结构,如无结构文件、顺序文件、索引文件、索引顺序文件及散列文件等,并分析了文件的物理结构,对比了连续分配、链接分配、索引分配以及混合索引分配这四种存原创 2024-01-30 22:48:49 · 1069 阅读 · 0 评论 -
【操作系统·考研】虚拟内存管理
虚拟内存是一种存储管理技术,它利用局部性原理,允许作业分页或分段装入内存,并通过请求分页、页面置换算法动态地将外存中的内容调入内存。虚拟内存具有多次性和对换性特征,它扩展了逻辑内存容量,使得进程的运行空间独立于实际物理内存大小。在实现上,通过页表机制记录虚拟地址与物理地址的映射关系,并设置了缺页中断机构处理页面未调入内存的情况。页面置换算法如最佳置换算法、先进先出算法、最近最少使用算法和时钟算法等,用于决定替换哪些页面以腾出空间给新页面。此外,还介绍了工作集模型来减少内存抖动问题......原创 2024-01-29 21:40:20 · 1305 阅读 · 0 评论 -
【操作系统·考研】内存管理概念
内存管理是操作系统的核心功能之一,主要包括内存空间分配与回收、地址转换、内存空间扩充、内存共享以及存储保护等内容。内存分配方式从单一连续分配发展到固定分区分配和动态分区分配,并进一步引入了分页和分段等非连续分配技术以提高内存利用率并解决外部碎片问题。在分页存储管理中,通过逻辑地址结构、页表和地址变换机构实现虚拟地址到物理地址的转换;而分段存储管理则根据程序的逻辑结构划分,并支持段的共享和保护。为优化地址变换速度,引入了快表(TLB)......原创 2024-01-28 22:31:10 · 1560 阅读 · 0 评论 -
【操作系统·考研】死锁
死锁是指多进程因竞争资源而造成互相等待无法继续执行的状态。产生死锁的原因在于系统资源的竞争和进程推进顺序不合理,其必要条件包括互斥条件(资源不能同时被多个进程使用)、不剥夺条件(进程已获得的资源在未完成使用前不能被剥夺)、请求并保持条件(进程已经持有至少一个资源但还请求其他资源)以及循环等待条件(存在进程间的资源环路等待)。处理死锁有四种策略:死锁预防、死锁避免、死锁检测和死锁解除。预防方法通过破坏死锁四个条件之一来阻止死锁发生,如预先静态分配资源或实施资源有序分配等......原创 2024-01-27 18:30:11 · 892 阅读 · 0 评论 -
【操作系统·考研】同步与互斥
本文介绍了操作系统中的进程同步与互斥机制,阐述了临界资源、同步/直接制约关系和互斥/间接制约关系的概念。针对临界区问题,提出了软件实现方法如单标志法、双标志法及其变种以及Peterson算法,并分析了它们的优缺点。硬件实现方法包括中断屏蔽技术和TestAndSet、Swap等硬件指令,指出这些方法不能完全满足让权等待原则。此外,还讨论了互斥锁(Mutex Lock)和信号量机制在解决互斥和同步问题中的应用,其中信号量分为整型信号量和记录型信号量,并举例说明如何利用信号量实现进程间的同步与互斥。原创 2024-01-26 22:39:54 · 1072 阅读 · 0 评论 -
【操作系统·考研】处理机调度
调度是操作系统管理多道程序的核心机制,通过高级调度(作业调度)、中级调度(内存调度)和低级调度(进程调度)三级调度实现对处理机资源的合理分配。调度算法包括先来先服务(FCFS)、短作业优先(SJF)、优先级调度、高响应比优先、时间片轮转以及多级队列和多级反馈队列等,每种算法在平均等待时间、周转时间、响应时间等方面有不同的优化目标。调度过程中涉及上下文切换,是系统开销的重要部分,调度方式分为非抢占式和抢占式。此外,调度还针对线程设计了用户级线程调度和内核级线程调度。调度的目标在于提高CPU利用率、系统吞吐量和原创 2024-01-25 22:42:22 · 1261 阅读 · 0 评论 -
【操作系统·考研】进程与线程
进程是现代操作系统中实现并发执行和资源共享的基本单位,它由程序段、相关数据段以及进程控制块(PCB)组成,动态地经历创建、运行、就绪、阻塞和终止等状态。PCB作为进程存在的唯一标志,记录了进程的状态信息、资源分配情况及处理机上下文。进程间通过进程控制进行创建、阻塞、唤醒和终止操作,并通过共享存储、消息传递或管道等方式进行通信。线程是进程中更轻量级的实体,拥有独立的执行流但共享进程资源,也是处理机调度的基本单位,其状态转换与进程相似。在多线程模型中,有用户级线程(ULT)、内核级线程(KLT)以及组合方式..原创 2024-01-24 21:58:15 · 2458 阅读 · 0 评论 -
【操作系统·考研】虚拟机
虚拟机是通过虚拟化技术创建的逻辑计算机,为用户提供了抽象的、统一的、模拟的计算环境。它能够隐藏底层物理特性,使不同操作系统能够在同一台计算机上运行。虚拟机可以分为两类:第一类是裸金属架构,虚拟机管理程序在内核态运行,支持多台虚拟机的运行,并模拟真实硬件来执行特权指令;第二类是寄居架构,虚拟机管理程序运行在宿主操作系统之上,宿主操作系统作为底层提供支持,而客户操作系统运行在虚拟机管理程序之上。虚拟机的出现使得在一台计算机上同时运行多个操作系统成为可能,它在服务器虚拟化和云计算中发挥着重要作用。原创 2024-01-23 19:50:48 · 725 阅读 · 0 评论 -
【操作系统·考研】操作系统引导
操作系统引导是计算机启动过程中的关键步骤。该过程涉及到激活CPU、硬件检查、加载带有操作系统的硬盘、加载主引导记录(MBR)、扫描硬盘分区表、加载硬盘活动分区、加载分区引导记录(PBR)以及最终加载操作系统。在引导过程中,计算机通过特定的程序来识别硬盘分区并启动相应的操作系统。通过加载引导程序和引导记录,操作系统能够成功加载并运行。这个过程中的每个步骤都起着重要的作用,确保了计算机能够顺利启动并正确加载操作系统。了解操作系统引导的过程对于理解计算机启动原理和故障排除非常重要。原创 2024-01-23 19:49:42 · 634 阅读 · 0 评论 -
【操作系统·考研】操作系统结构
操作系统结构可以采用不同的方法进行设计。本文介绍了四种常见的操作系统结构:分层法、模块化、宏内核/单内核/大内核和微内核。分层法将操作系统划分为多个层次,便于调试和维护,但效率较低。模块化将操作系统划分为独立的模块,提高了可理解性和可维护性,但接口规定和决策顺序可能存在困难。宏内核将主要功能模块集成在一个整体中,提供高性能的系统服务。微内核将基本功能保留在内核中,将其他功能转移到用户态执行,提高了扩展性和可靠性,但性能方面存在挑战。外核是一种在内核态中运行的程序,为虚拟机分配资源并确保资源使用的正确性。原创 2024-01-23 19:48:36 · 1219 阅读 · 0 评论 -
【操作系统·考研】操作系统发展历程
操作系统发展历程.md是一篇介绍操作系统发展历史的文章。文章首先介绍了手工操作阶段,即无操作系统阶段,描述了用户独占全机、资源利用率低的缺点。接着介绍了批处理阶段,包括单道批处理系统和多道批处理系统。单道批处理系统具有自动性和顺序性的特点,但资源利用率低。多道批处理系统允许多个程序同时进入内存并交替运行,具有资源利用率高和系统吞吐量高的优点。然后介绍了分时操作系统,它将处理器时间划分为时间片,实现多用户共享和人机交互。分时操作系统具有同时性、交互性和独立性的特点,但无法处理外部事件。原创 2024-01-22 20:08:08 · 489 阅读 · 0 评论 -
【操作系统·考研】计算机系统概述
计算机系统概述.md 是一篇关于操作系统的概念、特点和功能的文章。操作系统是控制和管理计算机系统的硬件和软件资源的程序集合,它在计算机系统的层次结构中起到管理硬件、提供接口和资源共享的作用。文章介绍了操作系统的四个特点:并发、共享、虚拟和异步。并发指多个事件在同一时间间隔内发生,共享指多个进程共同使用系统资源,虚拟指将物理实体转化为逻辑对应物,异步指进程以不可预知的速度向前推进。此外,文章还探讨了操作系统作为计算机系统资源的管理者的功能,包括处理机管理、存储器管理、文件管理和设备管理。原创 2024-01-22 20:06:38 · 892 阅读 · 0 评论