当前位置: 首页 > news >正文

常考计算机操作系统面试习题(二)(中)

目录

24. 操作系统的主要功能有哪些?

25. 文件的属性主要有哪些?

26. 对文件的基本操作主要有哪些?

27. 目录的基本操作有哪些?

28. 目录的逻辑结构有哪些种?

29. 简述银行家算法的Available、Max、Allocation、Need和Request的意义。

30. I/O设备在哪些方面存在差异?

31. 进程控制块(PCB)主要包括哪些信息?

32. 描述基本页面置换算法。

33. 进程的调度主要考虑哪些因素?

34. 描述缺页错误的处理过程。

35. 描述Pentium 4KB分页情况下,32位线性地址到物理地址的转换过程。

36. 程序并发执行为什么会失去封闭性和可再现性?

37. 何谓死锁?产生死锁的原因和必要条件是什么?

38. 分页和分段存储管理有何区别?

39. 简要说明I/O软件的四个层次的基本功能。

40. 假定盘块的大小为1K,硬盘的大小为500MB,采用显示链接分配方式时,其FAT共有多少个表项?

41. OS有哪几大特征?其最基本的特征是什么?

42. 为什么要在操作系统中引入线程?

43. 已知某分页系统,主存容量为64KB,页面大小为1KB。对于一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。将十进制的逻辑地址1023、2500、3500、4500转换成物理地址:

44. I/O软件的四个层次及对应功能:

45. 在链接式文件中常用哪种链接方式?为什么?

46. 在基于微内核结构的操作系统中,应用了哪些新技术?

47. 已知某分页系统,页面大小为1KB。对于一个4页大的作业,其0、1、2、3页分别被分配到主存的3、2、5、1块中。将逻辑地址1023、2500、3500、4500转换成物理地址:

48. PCB提供了进程管理和进程调度所需的哪些信息?

49. 什么是WIMP技术?它被应用到何种场合?

50. 什么是微内核OS?

51. 为什么要在OS中引入线程?


24. 操作系统的主要功能有哪些?

参考答案:

  • 存储管理:操作系统负责管理计算机的存储资源,包括主存(RAM)和外部存储设备(如硬盘)。它负责分配内存、回收内存并进行内存保护,确保不同进程的内存不互相干扰。
  • 进程管理:操作系统负责管理计算机中的所有进程,包括进程的创建、调度和终止。它还负责进程间的同步和通信,确保资源的合理分配。
  • 文件系统管理:操作系统管理文件的存储、访问权限、文件的创建、删除以及文件的组织结构。它提供一个逻辑抽象,允许用户和程序通过文件名而非物理位置访问文件。
  • 安全和保护:操作系统提供用户身份验证、访问控制、加密等功能,以确保系统和数据的安全。同时,它还防止恶意软件或未授权的用户对系统造成损害。

25. 文件的属性主要有哪些?

参考答案:

  • 文件名:文件的唯一标识符,以可读的字符串形式存在。
  • 类型:指明文件的格式或类别,不同的文件系统可能支持不同类型的文件。
  • 位置:指文件在存储设备上的物理位置或其在设备上的地址。
  • 大小:文件当前占用的空间大小。
  • 保护:文件的访问权限,包括读、写、执行等权限。
  • 时间、日期、用户标识:文件的创建、修改时间以及访问的记录。用户标识用于文件的访问控制。

讲解:文件属性有助于操作系统管理文件的存储和访问,确保文件的安全性和完整性。文件系统会根据这些属性来优化文件的存取性能和安全性。

26. 对文件的基本操作主要有哪些?

参考答案:

  • 创建文件:在磁盘上分配空间并初始化文件。
  • 写文件:向文件中写入数据。
  • 读文件:从文件中读取数据。
  • 在文件内重定位:修改文件中的内容位置。
  • 删除文件:从磁盘上移除文件,释放存储空间。
  • 截断文件:截断文件的大小,删除超出部分的数据。
  • 打开文件:将文件信息加载到内存中,供程序访问。
  • 关闭文件:将内存中的文件信息保存到磁盘,释放资源。

讲解:这些操作是文件系统的基本操作,操作系统通过这些操作来管理文件的生命周期,包括如何创建、访问、修改和删除文件。

27. 目录的基本操作有哪些?

参考答案:

  • 搜索文件:在目录结构中查找文件。
  • 创建文件:向目录中添加新文件。
  • 删除文件:从目录中移除文件。
  • 列出目录:显示目录中的文件列表。
  • 重命名文件:改变文件的名称。
  • 跟踪文件系统:维护文件系统的完整性和一致性,跟踪文件的修改。

讲解:目录是文件系统的一部分,负责组织和管理文件的存储。通过这些操作,操作系统可以有效地管理文件及其相关信息。

28. 目录的逻辑结构有哪些种?

参考答案:

  • 单级目录:所有文件放在一个目录中,适合小型系统。
  • 两级目录:有一个根目录和若干子目录,适用于较大系统。
  • 树状目录:采用树形结构,支持多层次的子目录。
  • 无环图目录:目录和文件的结构形式可以是图,但没有环路,确保文件的唯一性。
  • 通用图目录:目录和文件结构可以形成图形,包括循环依赖关系。

讲解:目录结构决定了文件系统如何组织文件。不同的目录结构有不同的访问效率和灵活性,通常较大的系统采用树状目录结构。

29. 简述银行家算法的Available、Max、Allocation、Need和Request的意义。

参考答案:

  • Available:表示系统中每种资源的可用数量。Available[j]表示资源 Rj 有多少实例可用。
  • Max:表示每个进程最多可以请求的资源数。Max[i, j]表示进程 Pi 对资源 Rj 的最大请求量。
  • Allocation:表示每个进程已经分配的资源数。Allocation[i, j]表示进程 Pi 当前已占用的资源 Rj 实例数。
  • Need:表示每个进程仍然需要的资源数。Need[i, j] = Max[i, j] - Allocation[i, j],即进程 Pi 还需要多少资源 Rj
  • Request:表示进程当前请求的资源数量。Request[i, j]表示进程 Pi 请求的资源 Rj 的实例数。

讲解:银行家算法是一种资源分配和死锁避免算法,主要通过检查系统状态是否安全,来避免死锁的发生。通过 AvailableMaxAllocationNeedRequest 五个矩阵,系统可以计算是否满足进程的请求,并决定是否分配资源。

30. I/O设备在哪些方面存在差异?

参考答案:

  • 数据传输方式:设备支持字符流传输或块传输。
  • 访问方式:设备支持顺序访问或随机访问。
  • 共享方式:设备可能是专用的或共享的。
  • 设备速度:不同I/O设备的处理速度存在差异。
  • I/O方向:设备可能支持读写、只读或只写操作。

讲解:I/O设备具有多种差异,这些差异影响到设备的使用方式、性能以及系统资源的调度方式。操作系统根据这些差异来优化资源的使用和调度。

31. 进程控制块(PCB)主要包括哪些信息?

参考答案:

  • 进程状态:记录进程的当前状态,如就绪、运行、等待等。
  • 程序计数器:保存进程执行的下一条指令的地址。
  • CPU寄存器:保存进程在运行期间的CPU寄存器状态。
  • CPU调度信息:包括进程的优先级、调度策略等。
  • 内存管理信息:包括进程的页表、段表等内存管理信息。
  • 计账信息:包括进程的运行时间、已使用的CPU时间等。
  • I/O状态信息:记录进程的I/O设备使用情况。

讲解:PCB是操作系统管理进程的重要数据结构,保存了进程运行所需的所有信息,操作系统通过它来调度和控制进程。


32. 描述基本页面置换算法。

参考答案:

  • 查找所需页面在磁盘上的位置:当进程访问的页面不在内存中时,发生缺页错误。操作系统需要在磁盘中找到该页面。
  • 查找空闲页框:如果内存中有空闲的页框,直接将缺页加载到空闲页框中。
  • 无空闲页框时使用页面置换算法选择一个“牺牲”页框:若内存已满,操作系统会选择一个页面作为“牺牲”页面进行置换,腾出空间加载新的页面。
  • 将“牺牲”页框的内容写回磁盘:如果被替换的页面被修改过,操作系统会将其内容写回磁盘,保持数据的一致性。
  • 将所需页加载到新的页框中,并更新页表和帧表:新页面加载完成后,更新相应的页表和帧表,以便后续访问。
  • 重启用户进程:页面加载完成后,继续执行进程。

讲解:页面置换算法是虚拟内存管理的一部分,它解决了内存不足时如何选择一个页面进行替换的问题。常见的页面置换算法有最近最少使用(LRU)算法、先进先出(FIFO)算法等。

33. 进程的调度主要考虑哪些因素?

参考答案:

  • CPU利用率:进程调度应尽量保证CPU高效利用,避免CPU闲置。
  • 吞吐量:指单位时间内操作系统能够完成的进程数。吞吐量越高,操作系统的效率越好。
  • 周转时间:从进程提交到完成所经过的时间。周转时间越短,意味着系统响应更快。
  • 等待时间:进程在就绪队列中等待调度的时间总和。减少等待时间有助于提升系统响应性。
  • 响应时间:从进程发出请求到首次得到响应的时间。响应时间较短时,用户体验更好。

讲解:进程调度的目标是最大化系统的效率和用户体验。通过平衡这些因素,操作系统能够提供更好的性能,避免过度负载某个进程或资源。

34. 描述缺页错误的处理过程。

参考答案:

  1. 查看进程页表,确定是否为无效引用
    • 如果是无效引用(比如访问一个不存在的地址),操作系统会终止进程。
    • 如果仅仅是页面不在内存中,则继续处理。
  2. 获取空闲页框:操作系统查找内存中未被占用的空闲页框。如果没有空闲页框,则需要执行页面置换。
  3. 将所需页加载到页框中:加载缺失的页面到内存中。
  4. 更新页表,将有效位设为“V”:更新页表项,标记该页面为有效。
  5. 重启指令:页面加载完成后,进程重新执行发生缺页错误的指令。

讲解:缺页错误处理是虚拟内存管理的核心内容。操作系统通过这种机制实现了虚拟内存的扩展,即使内存空间不足,程序也能像在足够大的内存中一样运行。

35. 描述Pentium 4KB分页情况下,32位线性地址到物理地址的转换过程。

参考答案:

  1. 逻辑地址结构:在IA-32体系结构中,32位线性地址由三个部分组成:
    • 高10位:页目录索引,用于定位页目录项。
    • 中间10位:页表索引,用于定位页表项。
    • 低12位:页内偏移,用于定位具体数据。
  2. 转换过程
    • 使用页目录索引查找页目录,获取页表的物理地址。
    • 使用页表索引查找页表,获取页框号。
    • 最后将页框号与页内偏移合并,得到物理地址。

讲解:分页机制通过将地址空间划分为固定大小的页,简化了内存管理,增强了内存的利用率。Pentium架构使用分层的页表结构,允许支持更大规模的内存管理。

36. 程序并发执行为什么会失去封闭性和可再现性?

参考答案:

  • 失去封闭性
    • 程序并发执行时,共享资源可能被其他程序修改,导致程序运行环境的不稳定,从而失去封闭性。例如,程序A和程序B都访问同一共享变量,A修改该变量后,B的行为可能会受到影响。
  • 失去可再现性
    • 并发执行时,程序的运行顺序和调度依赖于操作系统调度的顺序,可能不同的执行顺序导致不同的执行结果。即使初始条件相同,程序的执行结果也可能不同。

讲解:并发编程面临的问题之一就是如何保证程序的封闭性和可再现性。操作系统通过锁、信号量等同步机制来避免这些问题,确保并发程序的正确性。

37. 何谓死锁?产生死锁的原因和必要条件是什么?

参考答案:

  • 死锁:是指一组进程中的每个进程都在等待其他进程释放资源,从而进入一种无法恢复的状态。

  • 产生死锁的原因

    • 竞争不可抢占资源:进程持有某资源并请求其他资源,但被阻塞。
    • 竞争可消耗资源:进程间对同一资源的争夺。
    • 进程推进顺序不当:进程请求资源的顺序导致死锁。
  • 死锁的必要条件

    1. 互斥条件:资源只能由一个进程独占。
    2. 请求和保持条件:进程持有资源并同时请求其他资源。
    3. 不可抢占条件:资源不能被强行抢占,必须等待。
    4. 循环等待条件:进程间形成一个循环的等待链。

讲解:死锁是并发系统中常见的问题,操作系统可以通过预防、避免、检测等方式来处理死锁,保证系统的正常运行。

38. 分页和分段存储管理有何区别?

参考答案:

  • 分页

    • 分页是基于物理内存的划分,内存被划分为固定大小的页,每个页面的大小是固定的。
    • 地址空间是一维的,采用页表来管理虚拟地址到物理地址的映射。
  • 分段

    • 分段是基于程序的逻辑结构划分,内存被划分为不同大小的段(如代码段、数据段、堆栈段)。
    • 地址空间是二维的,既包含段号也包含段内地址。

讲解:分页和分段是两种不同的内存管理方式。分页简化了内存管理的实现,但可能导致内存碎片问题;分段则根据程序的逻辑结构进行管理,具有更高的灵活性,但实现复杂度较高。


39. 简要说明I/O软件的四个层次的基本功能。

参考答案:

  • 用户层I/O软件:提供与用户交互的接口,允许用户通过库函数或系统调用进行I/O操作。它为用户提供一个便捷的抽象层,不需要关心底层设备的细节。
  • 设备独立性软件:提供设备无关性,使应用程序无需知道具体硬件设备的细节。它负责对设备进行缓冲、映射等操作,以确保不同类型设备能统一处理。
  • 设备驱动程序:直接与硬件设备进行交互,发送控制命令并处理设备的具体操作。它们控制设备的操作并管理硬件的状态。
  • 中断处理程序:负责处理由硬件设备产生的中断请求。当设备完成I/O操作时,它会产生中断信号,中断处理程序响应该信号,完成后续处理(如更新缓冲区、通知进程等)。

讲解:I/O软件的多层设计使得操作系统可以将硬件操作与应用程序逻辑分离,从而提高了系统的可移植性和设备管理的灵活性。每一层都扮演着不同的角色,使得系统能更高效、稳定地运行。

40. 假定盘块的大小为1K,硬盘的大小为500MB,采用显示链接分配方式时,其FAT共有多少个表项?

参考答案:

  • 硬盘的大小为500MB,1MB = 1024KB,所以硬盘的大小为500 × 1024 = 512000KB。
  • 盘块的大小为1KB,所以硬盘的总盘块数为512000个。
  • 每个盘块有一个表项,因此FAT中共有512000个表项。

讲解:FAT(文件分配表)是用来管理磁盘空间的。每个表项指向磁盘上的一个盘块,操作系统通过FAT管理文件在磁盘上的存储位置。在显示链接分配方式下,每个文件占用的每个盘块都有一个表项,FAT表的大小直接取决于磁盘的总大小和盘块大小。

41. OS有哪几大特征?其最基本的特征是什么?

参考答案:

  • 并发性:操作系统能够支持多个进程或线程并发执行。
  • 共享性:操作系统管理和调度资源,使得多个进程能够共享计算机的硬件资源。
  • 虚拟性:操作系统通过虚拟内存、虚拟设备等机制,使得应用程序能够透明地访问硬件资源,提升了系统的使用效率和安全性。
  • 异步性:操作系统通过中断和事件驱动机制,使得进程的执行不依赖于固定的时间序列,从而实现高效的资源管理。

最基本的特征并发性和共享性是操作系统的最基本特征。通过并发执行和资源共享,操作系统能够在有限的硬件资源下高效地管理多个进程,确保系统的高效运行。

讲解:操作系统通过这些基本特征提供对硬件的高效管理和抽象,允许多个进程共享计算机资源,并且确保每个进程的独立性和安全性。

42. 为什么要在操作系统中引入线程?

参考答案:

  • 引入线程是为了在进程内部实现更细粒度的并发执行。线程是进程的基本执行单位,进程内部可以有多个线程,每个线程可以并发地执行任务。
  • 引入线程可以减少进程之间的时空开销,因为线程共享进程的资源,如内存和文件描述符等,避免了进程间切换的开销。
  • 引入线程能显著提高系统的响应性和吞吐量,尤其在多核处理器环境下,线程能充分利用多核CPU的并行处理能力。

讲解:线程使得操作系统能够更细粒度地管理并发,提高资源利用率。在现代操作系统中,线程是一种轻量级的执行单元,相比进程,线程的创建、销毁和切换更加高效。

43. 已知某分页系统,主存容量为64KB,页面大小为1KB。对于一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。将十进制的逻辑地址1023、2500、3500、4500转换成物理地址:

参考答案:

  • 逻辑地址1023:页号为0,页内偏移为1023。物理地址 = 2×1K + 1023 = 2048 + 1023 = 3071。
  • 逻辑地址2500:页号为2,页内偏移为452。物理地址 = 6×1K + 452 = 6144 + 452 = 6596。
  • 逻辑地址3500:页号为3,页内偏移为428。物理地址 = 7×1K + 428 = 7168 + 428 = 7596。
  • 逻辑地址4500:页号为4,越界,发生越界中断。

讲解:分页系统将虚拟地址分为页面号和页内偏移,通过页表将虚拟页号映射到物理页框。每个虚拟页都有一个对应的物理页框。分页系统有助于简化内存管理和提高内存的利用率。

44. I/O软件的四个层次及对应功能:

参考答案:

  • 向设备寄存器写命令:设备驱动程序负责直接与硬件设备进行交互,发送控制命令到设备寄存器。
  • 检查用户是否有权使用设备:设备独立性软件负责管理设备访问权限,确保用户对设备的操作符合权限要求。
  • 将二进制整数转换成ASCII码格式打印:用户层软件提供接口,将数据从二进制格式转换为用户可以理解的格式,如ASCII字符。
  • 缓冲管理:设备独立性软件通过管理I/O缓冲区,确保数据的顺利传输。

讲解:I/O软件的四个层次在操作系统中各自承担不同的角色。它们使得操作系统能够高效地处理硬件设备的输入输出操作,同时也为应用程序提供了简洁、统一的I/O接口。

45. 在链接式文件中常用哪种链接方式?为什么?

参考答案:

  • 显式链接方式:常用于链接式文件系统中,在显式链接中,文件的每个记录都指向下一个记录的位置。

理由:显式链接方式允许在内存中快速查找记录,显著提高检索速度。与隐式链接方式不同,显式链接适用于随机访问,能有效减少磁盘访问次数,提高文件的访问效率。

讲解:显式链接和隐式链接是两种不同的文件链接方式。在显式链接中,文件记录直接通过指针链接到下一条记录,适合需要频繁访问的场合。隐式链接则适合顺序访问,但效率较低。


46. 在基于微内核结构的操作系统中,应用了哪些新技术?

参考答案:

  • 足够小的内核:微内核操作系统将内核的功能最小化,只保留最基本的功能,如进程调度、内存管理和低级别的硬件抽象。其他功能(如文件管理、网络协议等)则由用户空间的服务来处理。
  • 基于B/S模式:许多微内核系统采用客户端/服务器架构,将操作系统的部分功能外包到用户空间的服务器中,这样可以提高系统的灵活性和扩展性。
  • 机制与策略分离:在微内核中,操作系统的核心负责提供机制(例如进程管理、内存管理等),而具体的策略(例如调度算法、安全策略)则交给用户空间的服务模块来实现。通过这种分离,操作系统可以更加灵活地应对不同需求。
  • 采用面向对象技术:微内核操作系统可能使用面向对象的技术来组织和管理系统资源,提高模块化和可扩展性。

讲解:微内核结构的主要优势是其模块化特性,可以实现高可扩展性和灵活性。相比传统的单体内核,微内核更容易实现操作系统的稳定性和安全性,因为大部分功能都运行在用户空间,不容易对系统核心造成影响。

47. 已知某分页系统,页面大小为1KB。对于一个4页大的作业,其0、1、2、3页分别被分配到主存的3、2、5、1块中。将逻辑地址1023、2500、3500、4500转换成物理地址:

参考答案:

  • 逻辑地址1023:页号为0,页内偏移为1023。物理地址 = 3×1KB + 1023 = 3072 + 1023 = 4095。
  • 逻辑地址2500:页号为2,页内偏移为452。物理地址 = 5×1KB + 452 = 5120 + 452 = 5572。
  • 逻辑地址3500:页号为3,页内偏移为428。物理地址 = 1×1KB + 428 = 1024 + 428 = 1452。
  • 逻辑地址4500:页号为4,超出了分配的页数,发生越界中断。

讲解:在分页系统中,逻辑地址由页号和页内偏移组成。操作系统通过页表将页号映射到物理内存的页框号,然后将页框号与页内偏移结合,得到物理地址。

48. PCB提供了进程管理和进程调度所需的哪些信息?

参考答案:

  • 进程标识符:唯一标识一个进程。
  • 处理机状态信息:包括程序计数器、CPU寄存器等,保存进程的执行状态。
  • 进程状态:记录进程当前的状态,例如就绪、运行、等待等。
  • 进程优先级:指明进程调度的优先级,操作系统根据优先级来决定进程的调度顺序。
  • 等待CPU时间和阻塞原因:记录进程等待CPU的时间以及进程被阻塞的原因。
  • I/O状态信息:记录进程在进行I/O操作时的相关信息。

讲解:PCB(进程控制块)是操作系统用于管理进程的核心数据结构。通过它,操作系统能够跟踪进程的执行状态、调度信息以及资源使用情况,是进程调度和管理的基础。

49. 什么是WIMP技术?它被应用到何种场合?

参考答案:

  • WIMP技术包括:窗口(Windows)、图标(Icons)、菜单(Menus)、鼠标(Pointing device)。
    • 窗口:提供图形化的界面,允许用户在屏幕上同时打开多个应用程序窗口。
    • 图标:图形化表示文件、应用程序等对象,便于用户理解和操作。
    • 菜单:提供操作选项,用户可以通过菜单进行交互。
    • 鼠标:用来指向、选择和操作界面元素的输入设备。

应用场合:WIMP技术广泛应用于图形用户界面(GUI)的操作环境中,尤其是个人计算机和移动设备上的操作系统。它通过图形化的界面提高了用户与计算机系统的交互效率。

讲解:WIMP技术改变了人们与计算机互动的方式,提供了更直观、更友好的用户体验。它使得计算机的使用更加便捷,成为现代操作系统和应用程序的标准交互方式。

50. 什么是微内核OS?

参考答案:

  • 微内核操作系统是将操作系统的核心功能最小化,仅包含最基本的功能,如进程调度、内存管理、低级硬件抽象等。其他功能,如文件管理、网络协议等,通常由用户空间的服务提供。
  • 基于客户/服务器模式:微内核采用客户/服务器模式,操作系统的核心功能作为客户与服务器之间的通信桥梁存在。
  • 机制与策略分离:微内核操作系统将“机制”与“策略”分开,操作系统核心提供基本的机制,而特定策略(如调度策略)则交给用户空间来定义。
  • 采用面向对象技术:微内核系统通常使用面向对象的方法来管理资源和模块化服务。

讲解:微内核操作系统具有高度的模块化和灵活性,能够更容易实现操作系统的扩展和定制。由于其最小化的设计,微内核系统通常更加稳定和安全,因为大多数系统功能运行在用户空间而非内核空间。

51. 为什么要在OS中引入线程?

参考答案:

  • 提高并发性:进程内部的多个线程可以并发执行,提高程序的执行效率,尤其在多核处理器上能够更好地利用硬件资源。
  • 减少进程之间的时空开销:与进程相比,线程是轻量级的。线程共享进程的内存和资源,因此线程之间的切换比进程切换更加高效。
  • 更好的响应性:多线程可以提高应用程序的响应性,允许多个任务同时进行而不互相阻塞。
  • 提高系统吞吐量:线程的引入使得操作系统能够更高效地利用CPU,特别是对于I/O密集型或计算密集型任务。

讲解:线程是进程中的基本执行单位。通过引入线程,操作系统能够将复杂的任务划分成多个小的、独立执行的部分,这不仅减少了进程间切换的开销,还能提升并发性能,尤其是在多核计算机上,线程的并行执行使得系统性能大幅提升。


相关文章:

常考计算机操作系统面试习题(二)(中)

目录 24. 操作系统的主要功能有哪些? 25. 文件的属性主要有哪些? 26. 对文件的基本操作主要有哪些? 27. 目录的基本操作有哪些? 28. 目录的逻辑结构有哪些种? 29. 简述银行家算法的Available、Max、Allocation、…...

手机录视频风噪太大?华为Pura X“AI降风噪“太硬核了

你是否也在用手机录像时,比如大海海浪、阅览群山、空旷的原野的时候,呼啸的风总是能沦为刺耳的噪音,让精心构思的镜头,最后因为呼啸的风声最终成为“灾难现场”。传统的解决方式往往陷入两难:物理防风罩影响收音指向性…...

React 事件处理

1. React 事件处理的基本概念 React 事件处理的特点&#xff1a; 驼峰命名法&#xff1a;事件名采用驼峰命名法&#xff0c;如 onClick、onChange。JSX 语法&#xff1a;事件处理函数通过 JSX 传递给元素&#xff0c;如 <button onClick{handleClick}>。合成事件&#…...

搭建React简单项目

一、项目构建 目录结构&#xff1a; 安装脚手架 npm install -g create-react-app // or yarn add -g create-react-app 一、项目版本 1、react&#xff1a;"^18.3.1"&#xff1b; 2、react-router-dom&#xff1a;"^6.23.1"&#xff1b; 3、项目创…...

ROCK 280A-M 工业级电调:高性能无人机动力心脏,重塑严苛场景飞行边界

—— 工业级动力控制系统解决方案 —— 【产品概述】 针对工业级无人机高负载、复杂工况需求&#xff0c;南昌长空科技的ROCK 280A-M 电调以航空级标准打造动力控制中枢。采用工业级控制算法与智能自适应系统&#xff0c;为多旋翼 / 固定翼无人机提供稳定动力支撑&#xff0c;突…...

带你从入门到精通——自然语言处理(十. BERT)

建议先阅读我之前的博客&#xff0c;掌握一定的自然语言处理前置知识后再阅读本文&#xff0c;链接如下&#xff1a; 带你从入门到精通——自然语言处理&#xff08;一. 文本的基本预处理方法和张量表示&#xff09;-CSDN博客 带你从入门到精通——自然语言处理&#xff08;二…...

八股JAVA并发

多线程 线程的创建方式有哪些? 1.继承Thread类 2.实现Runnable接口 3.Callable接口FutureTask 4.线程池 1.继承Thread类 这是最直接的一种方式&#xff0c;用户自定义类继承java.lang.Thread类&#xff0c;重写其run()方法&#xff0c;run()方法中定义了线程执行的具体任务。…...

#include <hello.h> 与 #include “hello.h“的区别

#include <hello.h> 和 #include "hello.h" 在C/C中用于包含头文件&#xff0c;但它们在搜索头文件时的行为有所不同&#xff0c;这可能导致前者找不到头文件的情况。 ### 区别 1. **搜索路径不同** - #include "hello.h"&#xff1a;编译器首先…...

PyPDF2简单介绍

PyPDF2 是一个开源的纯 Python 库&#xff0c;用于读取、操作和创建 PDF 文件。它最初是 PyPDF 的改进版&#xff0c;功能更丰富。 安装&#xff1a; bash pip install PyPDF2核心功能 1.合并 PDF 文件 python from PyPDF2 import PdfMergermerger PdfMerger() merger.appe…...

记录flutter编译项目遇到的问题

目录 1.更换flutter版本 2.解压到指定地址 3.在Android Studio配置 问题: Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! Resolving dependencies... The current Dart SDK version is 3.3.0. Because coach d…...

小米AX6000上安装tailscale

在之前的文章中&#xff0c;已经介绍了如何解锁ax6000的ssh&#xff0c;以及必坑指南。 今天突发奇想&#xff0c;为了不让我的nas天天开着tailscale&#xff0c;所以我想让我的tailscale运行在路由器&#xff0c;这样完美实现穿透。 首先&#xff0c;通过ssh登录ax6000&#x…...

git使用经验(一)

git使用经验&#xff08;一&#xff09; 我之前已经下载了别人的代码&#xff0c;我想在此基础上进行修改&#xff0c;并移动到自己的私有仓库&#xff0c;方便上传到自己的私有仓库自己进行版本控制 git clone下来别人的代码&#xff0c;删除有关git的隐藏文件 进入到自己的…...

C语言【文件操作】详解中

引言 介绍和文件操作中文件的顺序读写相关的函数 看这篇博文前&#xff0c;希望您先仔细看一下这篇博文&#xff0c;理解一下文件指针和流的概念&#xff1a;C语言【文件操作】详解上-CSDN博客文章浏览阅读606次&#xff0c;点赞26次&#xff0c;收藏4次。先整体认识一下文件是…...

基于SpringBoot的在线学习平台

项目介绍 平台采用B/S结构&#xff0c;后端采用主流的SpringBoot语言进行开发&#xff0c;前端采用主流的Vue.js进行开发。是一个综合的在线学习平台&#xff0c;该平台有管理员、教师、学生三类角色&#xff0c;各项功能根据不同角色分别设定。 整个平台包括前台和后台两个部分…...

鸿蒙生态开发

鸿蒙生态开发概述 鸿蒙生态是华为基于开源鸿蒙&#xff08;OpenHarmony&#xff09;构建的分布式操作系统生态&#xff0c;旨在通过开放共享的模式连接智能终端设备、操作系统和应用服务&#xff0c;覆盖消费电子、工业物联网、智能家居等多个领域。以下从定义与架构、核心技术…...

qt实现一个简单http服务器和客户端

一、功能简介 服务器&#xff1a; 登录功能、下载文件功能 客户端&#xff1a; 登录功能、下载文件功能、上传成绩功能 二、服务器代码 //HttpServer.h #ifndef HTTPSERVER_H #define HTTPSERVER_H#include <QMainWindow> #include <QTcpSocket> #include <QTc…...

深入理解Linux网络随笔(五):深度理解本机网络I/O

深入理解Linux网络随笔&#xff08;五&#xff09;&#xff1a;深度理解本机网络I/O 文章目录 深入理解Linux网络随笔&#xff08;五&#xff09;&#xff1a;深度理解本机网络I/O本机发送过程本机接收过程总结 分析本机网络I/O部分源码需要知道本机I/O是什么&#xff1f;扮演什…...

Debian12生产环境配置笔记

在 Debian 12 上进行生产环境配置的详细步骤&#xff0c;涵盖软件更新、基础软件安装、Docker 及 Redis 部署&#xff0c;以及 Nginx 配置多个虚拟主机等内容。所有命令均以 root 用户身份执行&#xff0c;无需添加 sudo 1. 更新软件 首先&#xff0c;确保系统上的所有软件包…...

工业物联网的范式革命:从“云边“ 到“边边” 协的技术跃迁

基于DIOS操作系统的去中心化重构 一、云边协同模式的局限性&#xff1a;技术瓶颈与成本困局 当前工业物联网主流的云边协同架构&#xff08;Cloud-Edge Collaboration&#xff09;已暴露出显著短板&#xff0c;其核心问题源于对中心云的过度依赖&#xff1a; ​带宽资源挤占与…...

python学习笔记--实现简单的爬虫(二)

任务&#xff1a;爬取B站上最爱欢迎的编程课程 网址&#xff1a;编程-哔哩哔哩_bilibili 打开网页的代码模块&#xff0c;如下图&#xff1a; 标题均位于class_"bili-video-card__info--tit"的h3标签中&#xff0c;下面通过代码来实现&#xff0c;需要说明的是URL中…...

【蓝桥杯速成】| 8.回溯算法

因为在进行背包问题的练习时&#xff0c;发现很多题目需要回溯&#xff0c;但本人作为小白当然是啥也不知道 那么就先来补充一下回溯算法的知识点&#xff0c;再进行练习 理论基础 回溯算法本质上是一种递归函数&#xff0c;是纯暴力搜索方法&#xff0c; 适合组合问题、排列…...

聚水潭商品信息集成MySQL的高效解决方案

聚水潭商品信息集成到MySQL的技术案例分享 在数据驱动的业务环境中&#xff0c;如何高效、准确地将聚水潭系统中的商品信息集成到MySQL数据库&#xff0c;是许多企业面临的重要挑战。本文将详细介绍一个实际运行的方案——“聚水潭-商品信息查询-->BI崛起-商品信息表_copy”…...

【数学建模】多目标规划模型:原理、方法与应用

多目标规划模型&#xff1a;原理、方法与应用 文章目录 多目标规划模型&#xff1a;原理、方法与应用引言1. 多目标规划的基本概念1.1 数学模型1.2 Pareto最优解/有效解1.3 满意解方法 2. 多目标规划的主要求解方法2.1 加权求和法2.2 ε-约束法2.3 理想点法2.4 优先级法&#x…...

基于Spring Boot的党员学习交流平台的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

Flink CDC 与 SeaTunnel CDC 简单对比

Flink CDC 与 SeaTunnel CDC 简单对比 CDC 技术概述 变更数据捕获&#xff08;Change Data Capture&#xff0c;简称 CDC&#xff09;是一种用于捕获数据库中数据变更的技术&#xff0c;能够实时识别、捕获并输出数据库中的插入、更新和删除操作。CDC 技术在现代数据架构中扮…...

ARM 汇编基础

ARM 汇编是嵌入式开发、操作系统底层编程和性能优化的核心技能之一。以下是一份系统的 ARM 汇编指令教学指南&#xff0c;涵盖基础语法、核心指令、编程模式和实用示例。 ​1. ARM 汇编基础 ​ 1.1 寄存器 ARM 架构&#xff08;32位&#xff09;包含 ​16 个通用寄存器​&…...

【嵌入式狂刷100题】- 1基础知识部分

准备新开专栏【嵌入式狂刷100题】&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f927;加油!!!&#xff0c;内容包括 基础知识部分操作系统部分处理器架构部分外设驱动部分通信协议部分存储器管理部分硬件设计部分多媒体部分调试故障排除部分编码开发部…...

【模板】计算几何入门

来源 计算几何基本模板&#xff08;二维&#xff09; 目录 基本设置点 向量 Point&#xff08;Vector&#xff09;点积&#xff08;数量积、内积&#xff09;向量积&#xff0c;叉积两点间距离向量的模单位向量两向量的夹角判断点在直线的哪边逆转角 线 直线表达式Line判断…...

PostgreSQL 数据库中导入大量数据

在 PostgreSQL 数据库中导入大量数据,可根据数据来源和格式选择不同的方法。以下为你详细介绍几种常见的方式: 1. 使用 COPY 命令(适用于本地数据文件) COPY 命令是 PostgreSQL 内置的高效数据导入工具,适合处理本地的数据文件。 步骤 准备数据文件 确保你的数据文件格…...

DeepSeek和Kimi在Neo4j中的表现

以下是2个最近爆火的人工智能工具&#xff0c; DeepSeek:DeepSeek Kimi: Kimi - 会推理解析&#xff0c;能深度思考的AI助手 1、提示词&#xff1a; 你能帮我生成一个知识图谱吗&#xff0c;等一下我会给你一篇文章&#xff0c;帮我从内容中提取关键要素&#xff0c;然后以N…...

xQueueSendToBack的中文释义和裸机调用

如果不在 FreeRTOS 环境下运行&#xff0c;而是裸机环境中实现类似的功能&#xff0c;需要移除 xQueueSendToBack 的依赖&#xff0c;并直接调用 CAN 发送函数。以下是修改后的代码和实现思路&#xff1a; 1. FreeRTOS 中的 xQueueSendToBack 功能 作用&#xff1a;将消息发送…...

2025年- G24-Lc98-217.包含重复(使用hashSet解决)-java版

1.题目描述 2.思路 思路一&#xff1a; 我的想法是直接用集合来判断&#xff0c;如果集合的元素不能添加说明之前已经存在这个元素&#xff0c;也就是发现了重复元素&#xff0c;所以返回false。 补充一&#xff1a; Map、ArrayList的定义和声明 3.代码实现 class Soluti…...

【树莓派驱动验证步骤】

终端操作和输出&#xff1a; 清理项目 adaraspberrypi:~/mt3502 $ make clean make -C /lib/modules/6.6.51rpt-rpi-v8/build M/home/ada/mt3502 clean make[1]: 进入目录“/usr/src/linux-headers-6.6.51rpt-rpi-v8”CLEAN /home/ada/mt3502/Module.symvers make[1]: 离开…...

百度SEO和必应SEO优化方法

如需SEO服务&#xff0c;可以搜索&#xff1a;深圳市信科网络科技有限公司。 一、搜索引擎生态格局&#xff1a;流量入口的重新洗牌 2025 年&#xff0c;中国 PC 端搜索引擎市场正经历戏剧性变革。StatCounter 数据显示&#xff0c;必应凭借 Edge 浏览器的预装优势与 ChatGPT …...

2025年3月AI搜索发展动态与趋势分析:从技术革新到生态重构

025年3月AI搜索发展动态与趋势分析&#xff1a;从技术革新到生态重构 一、行业动态&#xff1a;巨头布局与技术升级 谷歌推出“AI模式”&#xff0c;重新定义搜索体验 谷歌上线全新“AI模式”&#xff0c;集成多模态交互与实时数据能力&#xff0c;用户可通过文本、图片或语音…...

封闭图形个数

0封闭图形个数 - 蓝桥云课 小蓝对蓝桥王国的数字大小规则十分感兴趣。现在&#xff0c;他将给定你n个数a1, a2, ..., an&#xff0c;请你按照蓝桥王国的数字大小规则&#xff0c;将这n数从小到大排序&#xff0c;并输出排序后结果。 输入格式 第一行包含一个整数n&#xff0…...

VSCode 抽风之 两个conda环境同时在被激活

出现了神奇的(toolsZCH)(base) 提示符&#xff0c;如下图所示&#xff1a; 原因大概是&#xff1a;conda 环境的双重激活&#xff1a;可能是 conda 环境没有被正确清理或初始化&#xff0c;导致 base 和 toolsZCH 同时被激活。 解决办法就是 &#xff1a;conda deactivate 两次…...

Django 生产环境静态文件处理

python manage.py collectstatic 是 Django 提供的一个非常重要的管理命令&#xff0c;用于将项目中的静态文件收集到一个指定的目录中。这在部署 Django 项目时尤其重要&#xff0c;因为静态文件需要被 Web 服务器&#xff08;如 Nginx 或 Apache&#xff09;提供服务&#xf…...

语法: result=frexp(value, exp);

FREXP()是C语言里的内部函数&#xff0c;根据需要了解。 语法: resultfrexp(value, &exp); 参数: value是一个浮点数; exp是一个有符号的整型数; 返回值: 返回值result是一个浮点数&#xff0c;其有效范围是 0.5&#xff08;含&#xff09;到 1.0&#xff08;不含&…...

ArcGIS Pro 制作风台路径图:从数据到可视化

一、引言 台风&#xff0c;作为自然界极具破坏力的气象现象之一&#xff0c;其路径的精准预测与直观呈现对于防灾减灾工作至关重要。 在数字化时代&#xff0c;借助专业的地理信息系统&#xff08;GIS&#xff09;软件&#xff0c;如 ArcGIS Pro&#xff0c;我们能够高效地将…...

#pandas #python#数据标注 pd.crosstab()

题目&#xff1a; device_status.txt 存储了工业互联网平台上收集的设备运行状态数据&#xff0c;数 据中有以下内容&#xff1a; device_id&#xff1a;设备编号&#xff0c;字符串类型&#xff0c;长度为 8 status_time&#xff1a;状态时间&#xff0c;日期时间类型&…...

self Attention为何除以根号dk?(全新角度)

全网最独特解析&#xff1a;self Attention为何除根号dk&#xff1f; 一、假设条件&#xff1a;查询向量和键向量服从正态分布 假设查询向量 q i q_i qi​和键向量 k j k_j kj​的每个分量均为独立同分布的随机变量&#xff0c;且服从标准正态分布&#xff0c;即&#xff1a;…...

SpringBoot @Scheduled注解详解

Scheduled 是 Spring Framework 中用于实现定时任务的核心注解&#xff0c;能够方便地配置方法在特定时间或周期执行。以下是详细解析&#xff1a; 1. 启用定时任务‌ 在 Spring Boot 中&#xff0c;需在配置类添加 EnableScheduling 注解以启用定时任务支持&#xff1a; Co…...

在大数据开发中spark是指什么?

hello宝子们...我们是艾斯视觉擅长ui设计和前端数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在数字经济蓬勃发展的今天&#xff0c;数据已成为驱动商业决策、科学研究和城市治理的核心燃料。面对…...

从点灯开始的51单片机生活

陵谷纷纭新事改&#xff0c;筑台土石未应迟。 目录 sfr与sbit&#xff1f;不靠定时器的delay_ms延时函数所谓寄存器 sfr与sbit&#xff1f; 这第一课咱们主要来先理解一下sfr与sbit&#xff0c;以下可能是咱们这些新手朋友常见的点灯代码&#xff1a; #include<regx52.h&g…...

AI大模型落地:昆仑技术的东方解法

DeepSeek的横空出世&#xff0c;一举打破“算力封锁”的神话&#xff0c;标志着中国AI企业在AI大模型技术路径上取得彻底突破。 不过&#xff0c;DeepSeek等AI大模型的突破&#xff0c;固然大幅推动AI产业的整体发展&#xff0c;但算力基础设施能否跟上&#xff0c;也将决定未…...

Spring Boot 与 MyBatis Plus 整合 KWDB 实现 JDBC 数据访问

​ 引言 本文主要介绍如何在 IDEA 中搭建一个使用 Maven 管理的 Spring Boot 应用项目工程&#xff0c;并结合在本地搭建的 KWDB 数据库&#xff08;版本为&#xff1a;2.0.3&#xff09;来演示 Spring Boot 与 MyBatis Plus 的集成&#xff0c;以及对 KWDB 数据库的数据操作…...

VSCode+arm-none-eabi-gcc交叉编译+CMake构建+OpenOCD(基于STM32的标准库/HAL库)

前言&#xff1a;什么是CMake&#xff1f; Answer&#xff1a;简而言之&#xff0c;CMake是Make的maker。 一、CMake的安装 进入CMake官网的下载地址Get the Software&#xff0c;根据系统安装对应的Binary distributions。 或者在CMake——国内镜像获取二进制镜像安装包。 …...

MarsCode AI实战:利用DeepSeek 快速搭建你的口语学习搭子

资料来源&#xff1a;火山引擎-开发者社区 成品抢先看&#xff01; 自从MarsCode AI Chat模型全新升级&#xff0c;接入 Deepseek-R1、Deepseek-V3和豆包大模型1.5 三大模型&#xff0c;越来越多朋友注意到了AI编程能给我们带来的无限可能&#xff0c;也开始跃跃欲试想要尝试从…...

导出的使用

一.导出的具体使用步骤 1.在web开发中&#xff0c;导出是很常见的一个功能&#xff0c;当我进行个人项目练习的时候&#xff0c;导出的时候无法控制列宽以及居中样式&#xff0c;后续发现导出插件无法进行修改&#xff0c;整个插件较为简便易懂的同时&#xff0c;对于EX的控制…...