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

半导体制造工艺讲解

目录

一、半导体制造工艺的概述

二、单晶硅片的制造

1.单晶硅的制造

2.晶棒的切割、研磨

3.晶棒的切片、倒角和打磨

4.晶圆的检测和清洗

三、晶圆制造

1.氧化与涂胶

2.光刻与显影

3.刻蚀与脱胶

4.掺杂与退火

5.薄膜沉积、金属化和晶圆减薄

6.MOSFET在晶圆表面的形成

(1)浅沟槽隔离(STI)工艺

(2)单个mosfet的制造

三、晶圆封装测试

1.晶圆的划片

2.芯片的封装

3.芯片的测试


一、半导体制造工艺的概述

下面我就将讲解半导体制造工艺的相关流程,整个工艺可分为前中后三段,对我国而言,需要攻关的难题主要集中在中段。下面我将介绍半导体制造的相关工艺:

前段工艺主要是单晶硅片的制造,主要分为拉单晶、切片、倒角、研磨、检测、清洗几个步骤;

中段工艺分为晶圆制造,主要分为硅片的氧化、涂胶和烘干、光刻、显影、时刻、离子注入、薄膜沉积、研磨几个步骤;

后段工艺分为晶圆封装测试,主要分为晶圆减薄、划片、贴片、引线键合、封装、测试几个步骤。

二、单晶硅片的制造

1.单晶硅的制造

对于单晶硅的制造,学过材料学的人可能听说过拉单晶的说法。这就指的是单晶硅制造中使用提拉法,是熔体生长法的一种。

提拉法首先需要准备好所需的多晶硅原料和籽晶杆,其中原料需要放入坩埚中熔化。籽晶是具有和所需晶体相同晶向的小晶体,是生长单晶的种子。接着,籽晶杆带着籽晶插入熔体内,熔体可以沿着籽晶结晶。然后,开始以一定速度提拉并逆时针旋转,最终生长出棒状单晶体。

这样生产的单晶体生长速度快、质量好,适合大尺寸高质量晶体的批量生产。

2.晶棒的切割、研磨

机器在检测晶体的型号及纵向电阻率分布后,机器会对生长后的单晶硅棒进行切割,主要切去的是头部和尾部(检测不合格的地方也要切掉)产生圆柱形的单晶硅原料。

由于芯片制造对晶棒的直径及公差范围都有要求,又因为拉单晶做不到直接把直径控制到这个公差范围内,所以需要控制拉出的单晶直径比要求大3~5毫米,再把晶体放到滚磨机上进行外周滚磨,将截断后的晶棒的横截面直径控制在指定的范围。

3.晶棒的切片、倒角和打磨

首先,切片的工作流程是将许多根含有金刚石颗粒的钢线缠在轴上旋转,硅晶体穿过这些线以完成切片。

接着,我们需要对切好的晶片边缘进行倒角处理,可将晶片锐利的边沿修整成圆弧形,防止晶圆边缘破裂及晶格缺陷产生,增加晶圆边缘表面的机械强度,减少颗粒污染。

然后,切好的晶片需要进行化学机械研磨(cmp)设备进行厚度的统一和表面的抛光。打磨过程中,抛光液被不断地滴在抛光垫上,抛光液中的化学成分先与晶圆表面要去除的材料发生轻微化学反应,使其软化,然后抛光头施加压力并和抛光垫发生相对运动,除去反应物以达到整平目的。

4.晶圆的检测和清洗

每一片单晶硅也可称为晶圆,而晶圆的检测就是使用AOI检测设备检查外观缺陷,可检测产品外观有没有裂痕、位移偏差、缺失等。基本原理是采用摄像技术将被检测物体的反射光强以定量化的灰阶值输出,通过与标准图像的灰阶值进行比较,分析判定缺陷并进行分类。

清洗则是将晶圆浸入刻蚀剂中进行表面杂质的去除。

此刻,我们在电视新闻中常见的硅片就制造完成了。

三、晶圆制造

晶圆部分的流程很复杂,在总体上看是在单晶硅上面形成许多微小的mos管并形成让它们相互连通的导线,下面主要介绍该部分需要用到的工艺。

1.氧化与涂胶

在我们前面的流程中,我们不难发现单晶硅片十分金贵,所以需要将它的两个面氧化,形成一层二氧化硅保护层。虽然硅在常温的空气中即可氧化,但速度过慢,所以工程中会使用氧化炉中加热到1200℃并通入水蒸气以快速获得氧化层。

然后,在表面均匀涂上一微米厚的光刻胶。工业上常使用旋转涂胶的方法,将晶圆固定在旋转轴上,机器滴下光刻胶。由于此时摩擦力不足以提供足够的向心力,光刻胶会向外扩散至均匀涂抹在表面,最后还需要烘干。

光刻胶的制造曾是我国半导体行业发展的一大难题,如今,我国在这一领域已经取得了巨大的突破。

2.光刻与显影

光刻技术是指在光照作用下,借助光致抗蚀剂将掩膜版上的图形转移到基片上的技术。我们老百姓常说的光刻机就是该步骤的工具,而要想理解光刻就要先了解光刻胶的性质。

首先,光刻胶通过紫外光、电子束、离子束、X射线等的照射后,溶解度会发生变化。利用这样的性质,光刻机产生紫外光,令其通过掩膜版,此时一部分光就可以聚焦照射到附有一层光刻胶薄膜的基片表面,被照射到区域的光刻胶发生化学反应。

然后,就可以用显影机,加入显影液溶解,并用去离子水冲洗后甩干,去除可溶解区域的光刻胶,将可见的岛或者窗口图形留在硅片表面,显影的常见方法有旋转、喷雾、浸润。若除去的是曝光区的光刻胶,则称其为正性光刻胶;若除去的是未曝光区的光刻胶,则称其为负性光刻胶。

3.刻蚀与脱胶

我们在初中学过氢氟酸可以刻蚀玻璃,同样半导体刻蚀也是通过一定的化学物质将光刻胶暴露在外面的这一部分二氧化硅氧化层去除。

在了解刻蚀的主要工艺前,我们需要了解选择比和方向选择性两个专业术语。

由于刻蚀工艺中,二氧化硅层与光刻胶都会被刻蚀,因此引入选择比的概念。一个高选择比的刻蚀工艺,便是只刻蚀了该刻去的部分,并尽可能少地刻蚀到不应该刻蚀材料的工艺。

方向的选择性是指刻蚀的方向,可分为等向性和非等向性刻蚀两种。等向性刻蚀没有方向选择性, 纵向与横向反应同时发生,而非等向性刻蚀则是借助具有方向性的离子撞击来进行特定方向的刻蚀,形成垂直的轮廓。

刻蚀主要分为湿法刻蚀和干法刻蚀。

湿法刻蚀是指将晶圆浸入刻蚀液一段时间后捞出,其优点是刻蚀速率高,且由于只利用化学反应,选择比高,但也存在许多缺点。一方面,如果把晶圆浸入液体中,液体会浸满整个凹槽,此时光刻胶背面的受保护部分也会被液体腐蚀,换句话说,这样的刻蚀是等方向性的。另一方面,如果光刻胶缺口很小,刻蚀剂由于自身的表面张力无法进入凹槽,无法完成刻蚀。因此,如今在制作半导体核心层时,一般不采用湿刻蚀的方法。

干法刻蚀,是利用气态中产生的等离子体,通过经光刻而开出的掩蔽层窗口,与暴露于等离子体中的硅片行物理和化学反应,刻蚀掉硅片上暴露的表面材料的一种工艺。该工艺技术的突出优点在于,可以获得精确的特征图形。由于干法刻蚀技术在图形精准性上的突出表现,己成为亚微米尺寸下器件刻蚀的最主要工艺方法,已基本取代了湿法腐蚀技术。

在完成刻蚀后,光刻胶的使命就完成了,此时就需要使用晶圆去胶设备去除光刻胶。

半导体去胶工艺也可分为湿法去胶和干法去胶,过程也与刻蚀类似。相对于湿法去胶,等离子干法去胶利用高能等离子体处理光刻胶表面,去胶彻底且速度快,减少了对晶圆材料的腐蚀和损伤,是现有工艺中最好、最有效、最高效的方法。

4.掺杂与退火

这里的掺杂就是将IIIA族或VA族元素掺入晶圆的对应位置,在硅衬底上形成n型与p型半导体区域,常见方法有扩散法和离子注入法。

扩散法就是将晶圆放入高温的扩散炉管中,通入掺杂元素的蒸气,使杂质元素扩散进对应的硅衬底位置上。虽然该方法只需要热处理炉即可,但也存在诸多不足,比如可掺杂的杂质种类少、处理时间长、扩散的不可控性导致掺杂难以控制的问题,所以扩散法只适用于低精度半导体的制造。

目前掺杂最常用的方法是离子注入法,使用的机器称为离子注入机,是芯片制造中的关键装备,目前我国在相关技术上有了巨大的突破。

离子注入的掺杂大概分为以下步骤:

首先,机器内必须满足真空条件,含有杂质元素的气体(磷化氢(PH3)、三氟化硼(BF3)等)会通过离子源通入机器。

接着,这些气体经过电子碰撞激发变为等离子体,其中含有大量的电子和正离子。

之后,由于被撞击形成的正离子各不相同(比如BF3产生的正离子有硼离子、二氟化硼离子、氟化硼离子等),所以这些正离子会经过电场加速进入质谱仪中。质谱仪中的磁场使得离子受洛伦兹力并一定的半径发生偏转,核质比不同的离子其运动轨迹也不相同,只需要在需要的离子轨道处安装一个狭缝,就可以筛选出可以掺杂的离子。

然后,被筛选出来的离子会经过磁透镜聚焦与晶圆发生碰撞,此时离子就可以注入到硅晶格的一定深度内。

半导体注入杂质离子会产生结构性缺陷,破坏晶格完整性,电导率降低。所以需要将半导体材料置于炉中加热一段时间,然后匀速冷却。这样的工艺称为退火,这样就可以使结晶体内部原子重新排列至合适的晶格点位,去除大部分缺陷和杂质,恢复晶格的完整性,提高电学性能。

5.薄膜沉积、金属化和晶圆减薄

薄膜沉积广泛应用于新能源与半导体领域,主要分为物理气相沉积(PVD)和化学气相沉积(CVD),它们都可以产生固态薄膜。

物理气相沉积是指在真空下采用物理方法将材料转化为气态原子、分子或离子,并通过低压气体或等离子体沉积在基体表面形成薄膜的过程。而化学气相沉积是指气态化合物在一定条件下,通过原子、分子间的化学反应将反应形成的固相产物沉积在基片表面形成薄膜的过程。

把各个元件通过薄膜沉积与刻蚀形成金属导线,将各个mos管连接到一起,这样的工艺、连线过程一般称为金属化工艺。根据器件的复杂度和性能要求,电路可能要求单层金属或多层金属系统。可能使用铝合金或金作为导电的金属。

经过上面的这些工艺按一定的顺序处理,再经过CPM机器,对背面进行研磨,减薄晶圆。

最后经过检测,合格后就可以得到了一块块布满芯片的晶圆。

6.MOSFET在晶圆表面的形成

说完了晶圆制造的相关工艺,下面我将介绍作为芯片运行基本单元的mosfet是如何在一块硅晶片上形成的。在讲解之前需要明确,制造mosfet需要处理的只有表层的很浅的一部分,大部分的厚度都只起支撑作用。

(1)浅沟槽隔离(STI)工艺

该工艺以硅片作为基底先,在硅片上刻蚀出浅沟槽,然后填充氧化硅,形成电气隔离层。此时在隔离层两侧分别掺杂施主杂质和受主杂质,以在两侧形成互不干扰的n型衬底和p型衬底。在两侧制造的nMOSFET和pMOSFET就可以隔离开,防止相互干扰。

(2)单个mosfet的制造

具体制造过程可以看以下视频:

晶圆mosfet制造流程

三、晶圆封装测试

此部分晶圆已经制造完成,需要将各个芯片封装到外壳中以达到封装功能和保护内部电路的作用。

1.晶圆的划片

晶圆切割(划片)是将晶圆分割成多个独立的晶粒,每个晶粒通常含有完整的电路功能,是最终用于制造电子产品的核心组件。

在实际操作中,需要用激光对晶圆进行标记和定位,晶圆切割通常采用金刚石刀片等高精度切割工具,以确保每个晶粒保持完整、功能正常。随着芯片设计复杂度和尺寸的缩小,对晶圆切割技术的精度和效率要求也越来越高。

2.芯片的封装

获得了各个芯片则需要对其进行封装 ,主要包括贴片、引线键合封装的具体形式有很多,常见的有两种:裸片贴装和倒片封装。

裸片贴装就是将芯片的背面粘到基板上,然后通过机器利用微小的金或铜引线,利用近似焊接的方式将基板的焊盘与芯片连接起来,最后在外面用树脂等材料制造一个外壳封住芯片,就完成了封装。

由于裸片贴装引线的框架较大,而且传输信号的金属线又比较长,可能引起信号失真,不利于其正常工作,所以工程师们又发明了倒片贴装。

所谓倒片贴装就是将芯片正面直接扣在基板上,中间使用金属小球连接,此时的传输引线大幅缩短,框架也更小更紧密,有利于芯片的工作效率。目前我们所用的手机芯片的封装就是基于该封装方式。

其他芯片封装工艺也有很多,比如说电子设备中会存在各种芯片,它们之间的电信号通过导线交流的传输速度十分受限。所以现代工艺中也常将不同的芯片封装在一起以提高它们之间传输信息的时间。如果将该设备的所有芯片都封装到一起,制成一颗高度集成的芯片,这颗芯片就称为系统级芯片(SOC),这也是在之前华为发布会上经常提到的SOC的含义。

3.芯片的测试

封装完成就要对其进行测试,主要包括电性能测试(检验交流于直流下的输入输出特性)、功耗测试(测量不同条件下的芯片能耗)、温度测试(获取芯片的温度分布图)和测试(芯片在外界干扰下的性能)。经过这些测试后,芯片制造完成。

相关文章:

半导体制造工艺讲解

目录 一、半导体制造工艺的概述 二、单晶硅片的制造 1.单晶硅的制造 2.晶棒的切割、研磨 3.晶棒的切片、倒角和打磨 4.晶圆的检测和清洗 三、晶圆制造 1.氧化与涂胶 2.光刻与显影 3.刻蚀与脱胶 4.掺杂与退火 5.薄膜沉积、金属化和晶圆减薄 6.MOSFET在晶圆表面的形…...

Ollama+DeepSeek R1+AnythingLLM训练自己的AI智能助手

1.下载Ollama安装 1.1.安装Ollama Ollama官网:Ollama 下载Ollama,点击“Download”按钮。 根据电脑操作系统,下载合适的版本即可。 下载完成后点击安装,完成后安装窗口会自动关闭,你的系统托盘图标会出现一个Ollama图标。 1.2.…...

基于java手机销售网站设计和实现(LW+源码+讲解)

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

5-R循环

R 循环 ​ 有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多…...

Qlabel 每五个一换行 并、号分割

学习点 Qlabel 每五个一换行 并、号分割 QString MainWindow::formatHobbies(const std::set<QString>& hobbies) {QString formattedHobbies;int count 0;for (const QString& hobby : hobbies) {if (count > 0 && count % 5 0)formattedHobbies…...

加速PyTorch模型训练:自动混合精度(AMP)

在深度学习领域&#xff0c;模型训练的速度和效率尤为重要。为了提升训练速度并减少显存占用&#xff08;较复杂的模型中&#xff09;&#xff0c;PyTorch自1.6版本起引入了自动混合精度&#xff08;Automatic Mixed Precision, AMP&#xff09;功能。 AMP简单介绍 是一种训练…...

【py】python安装教程(Windows系统,python3.13.2版本为例)

1.下载地址 官网&#xff1a;https://www.python.org/ 官网下载地址&#xff1a;https://www.python.org/downloads/ 2.64版本或者32位选择 【Stable Releases】&#xff1a;稳定发布版本&#xff0c;指的是已经测试过的版本&#xff0c;相对稳定。 【Pre-releases】&#…...

Django REST Framework:如何获取序列化后的ID

Django REST Framework&#xff1a;如何获取序列化后的ID &#x1f604; 嗨&#xff0c;小伙伴们&#xff01;今天我们来聊一聊Django REST Framework&#xff08;简称DRF&#xff09;中一个非常常见的操作&#xff1a;如何获取序列化后的ID。对于那些刚入门的朋友们&#xff…...

QT修仙笔记 事件大圆满 闹钟大成

学习笔记 牛客刷题 闹钟 时钟显示 通过 QTimer 每秒更新一次 QLCDNumber 显示的当前时间&#xff0c;格式为 hh:mm:ss&#xff0c;实现实时时钟显示。 闹钟设置 使用 QDateTimeEdit 让用户设置闹钟时间&#xff0c;可通过日历选择日期&#xff0c;设置范围为当前时间到未来 …...

Leetcode - 149双周赛

目录 一、3438. 找到字符串中合法的相邻数字二、3439. 重新安排会议得到最多空余时间 I三、3440. 重新安排会议得到最多空余时间 II四、3441. 变成好标题的最少代价 一、3438. 找到字符串中合法的相邻数字 题目链接 本题有两个条件&#xff1a; 相邻数字互不相同两个数字的的…...

解决 ComfyUI-Impact-Pack 中缺少 UltralyticsDetectorProvider 节点的问题

解决 ComfyUI-Impact-Pack 中缺少 UltralyticsDetectorProvider 节点的问题 1. 安装ComfyUI-Impact-Pack 首先确保ComfyUI-Impact-Pack 已经下载 地址: https://github.com/ltdrdata/ComfyUI-Impact-Pack 2. 安装ComfyUI-Impact-Subpack 由于新版本的Impact Pack 不再提供这…...

使用Kickstart配置文件封装操作系统实现Linux的自动化安装

使用Kickstart配置文件封装操作系统实现Linux的自动化安装 创建ks.cfg配置文件 可以使用已经安装完成的Linux操作系统中的/root目录下的anaconda.cfg配置文件 注意&#xff0c;配置文件会因为kickstart的版本兼容性的问题导致无法安装报错需要在实际使用过程中删除某些参数 …...

Android笔记【snippet】

一、 6、Card及ConstraintLayout线性布局 //定义单独的机器人单独一行的卡片 Composable fun RobotCard(robot: Robot,navController:NavController){Card(modifier Modifier.fillMaxWidth().wrapContentHeight().padding(5.dp),colors CardDefaults.elevatedCardColors(co…...

zsh: command not found: conda

场景描述 在 Linux 服务器上使用 zsh 时&#xff0c;如果出现 zsh: command not found: conda 错误&#xff0c;说明你的系统未正确配置 conda 命令&#xff0c;或者你尚未安装 Anaconda/Miniconda。 解决方案 确保已安装 Anaconda 或 Miniconda conda 是 Anaconda 或 Minico…...

【知识科普】CPU,GPN,NPU知识普及

CPU,GPU,NPU CPU、GPU、NPU 详解1. CPU&#xff08;中央处理器&#xff09;2. GPU&#xff08;图形处理器&#xff09;3. NPU&#xff08;神经网络处理器&#xff09; **三者的核心区别****协同工作示例****总结** CPU、GPU、NPU 详解 1. CPU&#xff08;中央处理器&#xff0…...

【C++八股】struct和Class的区别

1. 默认访问控制 struct&#xff1a;结构体中的成员默认是 public&#xff0c;即外部代码可以直接访问结构体的成员。class&#xff1a;类中的成员默认是 private&#xff0c;即外部代码不能直接访问类的成员&#xff0c;必须通过公有接口&#xff08;通常是成员函数&#xff…...

鹧鸪云光伏仓储、物料管理软件详细功能

采购中心 &#xff1a;作为核心枢纽&#xff0c;能集中管理多品牌设备&#xff0c;企业可灵活按需采购。采购与退货流程高效便捷&#xff0c;审核通过后物资快速补充、问题货物及时退回&#xff0c;保障资金与物资顺畅周转&#xff0c;避免积压浪费。付款与退款环节 &#xff1…...

bazel 小白理解

Bazel命令是用于构建和测试软件项目的一个强大工具&#xff0c;尤其适用于大规模和多语言的软件项目。对于小白来说&#xff0c;可以这样理解Bazel及其命令&#xff1a; Bazel的基本概念 构建系统&#xff1a;Bazel是一个构建系统&#xff0c;它的主要任务是自动化地编译和链…...

MVC(Model-View-Controller)framework using Python ,Tkinter and SQLite

1.项目结构 sql: CREATE TABLE IF NOT EXISTS School (SchoolId TEXT not null, SchoolName TEXT NOT NULL,SchoolTelNo TEXT NOT NULL) 整体思路 Model&#xff1a;负责与 SQLite 数据库进行交互&#xff0c;包括创建表、插入、删除、更新和查询数据等操作。View&#xff1…...

WPF 设置宽度为 父容器 宽度的一半

方法1&#xff1a;使用 绑定和转换器 实现 创建类文件 HalfWidthConverter public class HalfWidthConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value is double width){return width / 4…...

java项目之在线心理评测与咨询管理系统(源码+文档)

项目简介 在线心理评测与咨询管理系统实现了以下功能&#xff1a; 在线心理评测与咨询管理系统的主要使用者分为&#xff1a; &#xff08;1&#xff09;在个人中心&#xff0c;管理员可以修改自己的用户名和登录密码。 &#xff08;2&#xff09;在系统前台可以查看首页&…...

【STM32系列】利用MATLAB配合ARM-DSP库设计FIR数字滤波器(保姆级教程)

ps.源码放在最后面 设计IIR数字滤波器可以看这里&#xff1a;利用MATLAB配合ARM-DSP库设计IIR数字滤波器&#xff08;保姆级教程&#xff09; 前言 本篇文章将介绍如何利用MATLAB与STM32的ARM-DSP库相结合&#xff0c;简明易懂地实现FIR低通滤波器的设计与应用。文章重点不在…...

Springboot框架扩展功能的使用

Spring Boot 提供了许多扩展点&#xff0c;允许开发者在应用程序的生命周期中插入自定义逻辑。这些扩展点可以帮助你更好地控制应用程序的行为&#xff0c;例如在启动时初始化数据、在关闭时释放资源、或者自定义配置加载逻辑。以下是 Spring Boot 中常见的扩展点&#xff1a; …...

yum报错 Could not resolve host: mirrorlist.centos.org

检查dns 使用ping www.baidu.com &#xff0c;如果ping不通&#xff0c;检查/etc/resolv.conf文件中是否有&#xff1a; nameserver 8.8.8.8 nameserver 8.8.4.4 替换yum源 1.备份原始的 YUM 源配置文件&#xff1a; sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.r…...

docker使用dockerfile打包镜像(docker如何打包)

文章目录 1. 编写 Dockerfile2. 构建 Docker 镜像3. 运行 Docker 容器4. 导出与导入镜像&#xff08;可选&#xff09; 1. 编写 Dockerfile Dockerfile 是一个文本文件&#xff0c;其中包含了一系列指令&#xff0c;这些指令定义了如何构建你的 Docker 镜像。下面以一个简单的…...

去中心化AGI网络架构:下一代人工智能的范式革命

文章目录 引言:当AGI遇到去中心化一、中心化AI架构的四大困境1.1 算力垄断与资源错配1.2 数据孤岛与隐私悖论1.3 模型暴政与单点故障1.4 创新抑制与价值捕获二、去中心化AGI网络的架构设计2.1 分层架构总览2.2 网络层:混合拓扑结构2.3 计算层:动态算力编排2.4 数据层:零知识…...

gitlab无法登录问题

在我第一次安装gitlab的时候发现登录页面是 正常的页面应该是 这种情况的主要原因是不是第一次登录&#xff0c;所以我们要找到原先的密码 解决方式&#xff1a; [rootgitlab ~]# vim /etc/gitlab/initial_root_password# WARNING: This value is valid only in the followin…...

单向链表在实际项目中的应用

前言 在实际项目中&#xff0c;单向链表经常被用来解决排队问题&#xff0c;因为链表允许动态地添加和移除元素&#xff0c;非常适合模拟队列&#xff08;FIFO&#xff0c;先进先出&#xff09;的行为。 这里的链表包含头节点&#xff0c;头结点的数据用来记录链表长度&#x…...

【系统架构设计师】操作系统 ③ ( 存储管理 | 页式存储弊端 - 段式存储引入 | 段式存储 | 段表 | 段表结构 | 逻辑地址 的 合法段地址判断 )

文章目录 一、页式存储弊端 - 段式存储引入1、页式存储弊端 - 内存碎片2、页式存储弊端 - 逻辑结构不匹配3、段式存储引入 二、段式存储 简介1、段式存储2、段表3、段表 结构4、段内地址 / 段内偏移5、段式存储 优缺点6、段式存储 与 页式存储 对比 三、逻辑地址 的 合法段地址…...

PDF另存为图片的一个方法

说明 有时需要把PDF的每一页另存为图片。用Devexpress可以很方便的完成这个功能。 窗体上放置一个PdfViewer。 然后循环每一页 for (int i 1; i < pdfViewer1.PageCount; i) 调用 chg_pdf_to_bmp函数获得图片并保存 chg_pdf_to_bmp中调用了PdfViewer的CreateBitmap函数…...