通过挂载与卸载,操作系统能灵活管理多设备、多文件系统的访问,既保证了“全局目录树的统一”,又支持不同存储设备的动态接入与移除。简单来说,挂载就是把独立的文
文件系统要实现“长期存储数据、高效管理文件”的目标,需要在和中划分出功能明确的区域,这些区域按固定逻辑组织,共同构成文件系统的全局结构。外存结构是数据长期存放的“物理基础”,内存结构则是为了减少外存I/O开销、提升访问效率的“临时缓存层”,二者协同工作保障文件系统稳定运行。
为了让用户进程能以统一的方式操作不同类型的文件系统(如Linux的Ext4、Windows的NTFS、U盘的FAT32)
而用二级索引(如图4.10《二级索引分配》),主索引只需存“指向次级索引块的条目”:假设每个次级索引块存256个条目,主索引只需
虚拟内存的本质是操作系统为每个进程构建的“独立逻辑地址空间”,其核心思想是“以时间换空间”——通过牺牲少量外存访
通常,文件系统在格式化时会专门划分一块“inode区”,所有文件的inode都集中存储在这个区域中,操作系统通过“inode编号”就
—它的核心思路是“先按程序的逻辑意义分段,再将每个段划分为固定大小的页”,通过“段表+页表”的两级映射机制,既保留段式的
是不符合“局部性原理”(最早进入的页面可能仍被频繁访问,如例子中页面0多次被访问却因进入早被置换),还会出现“Belady异常”——增加物理块数量时,缺页次数反而增加。它能理论上达到最低缺页率,但因需“预知未来的页面访问序列”,实际系统无法实现,主要用于算法性能的理论对比。久未访问的页面,未来被访问的概率低。——把页面进入
文件的逻辑结构指的是,它决定了用户如何理解和操作文件中的数据。根据数据的组织形式,文件逻辑结构可分为“无结构的流式文件”和“有结构的记录式文件”两类。
为了协调CPU与I/O设备之间的速度差异(比如CPU每秒能处理数亿条指令,而打印机每秒仅能打印几十行内容),操作系统会在内存中
二级页表虽然增加了一次页表查找,但由于页目录表和二级页表都可通过快表缓存(快表可同时缓存页目录项和二级页表项),实际效率损失很小,却解决了大页表需要连续内存的问题,因此成为32位操作系统中页表管理的标准方式(如Windows、Linux的32位版本)。页的核心特征是“大小固定且连续”——进程的逻辑地址空间中,页与页之间是连续的
例如,物理内存中有“已分配分区A(0x10000000,1GB)→空闲分区1(0x20000000,0.5GB)→已分配分区B(0x28000000,进程,分区内剩余的1GB就是内碎片。
根据进程逻辑地址空间的段数量,确定段号的位数,剩余位数即为段内偏移的位数。若段已在内存中,物理地址的计算公式为“物
具有“原子性释放锁 + 阻塞等待 + 重新获取锁”的特性,能高效解决“生产者-消费者”等需条件判断的同步问题。考研中需重点掌握“条件变和“条件满足时的唤醒通知”。:通知操作应在“修改条件并确保条件已成立”后执行,且需保证互斥锁的正确释放(通常在通知后释放锁,或释放锁后再通知,需根据场景保证原子性)。
死锁(Deadlock)是指多个进程在运行过程中因争夺有限资源而形成的一种相互等待的僵局。具体来说,当一组进程中的每个进程都在等待某个资源,而该资源恰好被组内另一个进程占用时,这组进程就会陷入无限期的等待状态,没有外力干预将永远无法继续执行。员工A(进程A)先使用了打印机,然后需要使用复印机;员工B(进程B)先使用了复印机
这里的“代价”通常综合考虑多个因素:进程的优先级(优先终止低优先级进程,避免高优先级任务丢失)、进程已运行的时间(优先
信号量是一个特殊的变量结构value:整型变量,描述“资源的可用数量”或“信号的状态”;L:等待队列,当进程因资源不足无法继续时,会被放入该队列等待
这个过程看似简单,但存在几个必须严格遵守的约束:首先,缓冲区的大小是固定的,当缓冲区已经放满数据时,生产者不能再放入新数据,否则会导致数据溢出(覆盖已
→Pₙ→P₁,其中P₁等待P₂的资源Rₐ,P₂等待P₃的资源Rᵦ,…,Pₙ等待P₁的资源Rᵧ。又因P₁等待的Rₐ由P₂持有,故P₂持有的资源编号 ≥ Rₐ(否则P
例如,在32位页式管理中,若页大小为4KB(即2¹²字节),则逻辑地址会被拆分为“20位页号”和“12位页内偏移”:20位页号
库名作用torchPyTorch 深度学习框架及其视觉模型库,提供 ResNet、AlexNet 等预训练模型PillowPIL图像加载与基本处理matplotliglob文件路径操作与批量读取。
上下文管理器是一种 Python 对象,用于在进入和退出某个“上下文”时自动执行一些准备和清理操作。最常见的使用方式是配合with语句
从计算机加电到进入图形桌面,中间跨越了固件、引导加载程序与内核初始化等多个阶段。引导的本质是:固件负责最初的硬件自检与设备初始化
读锁之间虽不互斥,但获取读锁的操作(如计数器递增)仍需原子性,存在缓存一致性开销(如多核CPU的MESI协议同步)。锁仅
例如,Linux内核的futex(快速用户空间互斥体)机制就结合了两者的优势:用户态通过原子指令尝试获取锁,若失败则进入内核
在单处理机上采用多道程序技术,或在多核处理机上并行运行多个执行实体时,多个进程
调度算法的角色,就像“选手上场的规则”。它决定了在同时有多个就绪实体的情况下,谁先使用 CPU、谁等一等、谁可以被打断、
当系统中“想运行”的实体多于 CPU 的数量时,调度就不可避免地要在“效率”与“公平”之间做取舍。直观地说,一类目标希望把硬件
在多道程序环境中,系统里“可运行”的实体往往多于 CPU 的数量。为了让这些实体公平、有序、有效地使用处理机,操作系统必须决定“谁先上、谁后上、谁暂缓”,以及“在内存不够时谁被换出去、何时再换回来”。这些决策统称为;负责作出并落实决策的组件称为。把握调
进程(或线程)在生命期内,会随着系统资源的竞争、外部事件的到达以及调度策略的作用而不断改
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号