E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
linux内存
Linux内存
管理:CMA
http://blog.csdn.net/hongzg1982/article/details/50244495某些驱动需要用到一大块连续的物理内存,但使用kmalloc等很分配很大的连续内存。所以这里有一种三星实现叫CMA的方式,来连续的大内存分配。Whyisitneeded?Issue1:Camera,VideoCodec等MultimediaDevice需要连续的数MB大小的Memory,但
a04081122
·
2020-07-11 01:24
Linux知识
linux内存
管理之初始化zonelists
linux内存
管理代码有些改变,记录下来。
庾志辉
·
2020-07-11 00:23
linux内核
linux内存
管理 之 DMA
1、DMA:直接内存访问用于在主存贮器和设备内存之间的大量数据的交换,无须CPU参与,可以提高系统效率。2、内核中的DMA层structdma_map_ops{____void*(*alloc_coherent)(structdevice*dev,size_tsize,________________dma_addr_t*dma_handle,gfp_tgfp);____void(*free_co
Whisper_J
·
2020-07-11 00:28
linux驱动
深入解读
Linux内存
管理系列(2)——内存节点的添加
日期内核版本CPU架构作者2019.04.06Linux-4.4PowerPCLoneHugo系列文章:https://blog.csdn.net/Vince_/article/details/890559791.DTS和MemblockLinux在Boot阶段采用Memblock内存块节点来管理物理内存,系统启动早期通过对dtb的解析获取到对应的物理内存节点信息,将其加入到Memblock中管理
LoneHugo
·
2020-07-11 00:13
Linux内存管理
深入解读
Linux内存
管理系列(1)——系统启动阶段的操作
日期内核版本CPU架构作者2019.04.06Linux-4.4PowerPCLoneHugo系列文章:https://blog.csdn.net/Vince_/article/details/890559791.基本概念在介绍系统启动阶段的内容之前先来了解一些基本的知识,方便我们理解相应的准备和操作的原理是什么。主要有五点:elfformatloadaddress:内核镜像加载地址entrypo
LoneHugo
·
2020-07-11 00:42
Linux内存管理
深入解读
Linux内存
管理系列(3)——MMU初始化和页表的建立
日期内核版本CPU架构作者2019.04.06Linux-4.4PowerPCLoneHugo系列文章:https://blog.csdn.net/Vince_/article/details/89055979初始化阶段进行MMU_init,启动MMU,并建立页表,通过TLB进行地址转换访问物理内存。reserve_hugetlb_gpages保留巨型页在parse_arg中调用do_gpage_
LoneHugo
·
2020-07-11 00:42
Linux内存管理
深入解读
Linux内存
管理系列(6)——地址空间划分
日期内核版本CPU架构作者2019.04.06Linux-4.4PowerPCLoneHugo系列文章:https://blog.csdn.net/Vince_/article/details/89055979虚拟地址空间划分,包括一致映射,临时映射,永久映射,vmalloc,ioremap区域等内存布局enumfixed_addresses{FIX_HOLE,/*reservethetop128
LoneHugo
·
2020-07-11 00:42
Linux内存管理
linux内存
管理源码分析
/**linux/mm/memory.c**(C)1991LinusTorvalds*//**demand-loadingstarted01.12.91-seemsitishighonthelistof*thingswanted,anditshouldbeeasytoimplement.-Linus*//**Ok,demand-loadingwaseasy,sharedpagesalittlebi
theanarkh
·
2020-07-11 00:38
unix/linux
Linux内存
管理 -- malloc,kmalloc,vmalloc区别
1.
Linux内存
管理高性能处理器一般会提供一个内存管理单元(MMU),该单元辅助操作系统进行内存管理,提供虚拟地址和物理地址的映射、内存访问权限保护和Cache缓存控制等硬件支持。
Rocky_zhm
·
2020-07-10 23:18
linux
编码
伙伴系统之避免碎片--
Linux内存
管理(十六)
[TOC]1碎片化问题1.1今日内容(buddy伙伴系统如何避免碎片)2依据可移动性组织页避免内存碎片2.1依据可移动性组织页2.2迁移类型2.3free_area的改进2.4迁移备用列表fallbacks2.5全局pageblock_order变量2.6gfpflags_to_migratetype转换分配标识到迁移类型2.7pageblock_flags变量与其函数接口2.8/proc/pag
李海伟_lihaiwei
·
2020-07-10 21:23
伙伴系统之伙伴系统概述--
Linux内存
管理(十五)
1伙伴系统2伙伴系统的结构2.1伙伴系统数据结构2.2最大阶MAX_ORDER与FORCE_MAX_ZONEORDER配置选项2.3内存区是如何连接的2.4传统伙伴系统算法3避免碎片3.1内存碎片3.2依据可移动性组织页3.3避免碎片数据结构3.3.1迁移类型3.3.2迁移备用列表fallbacks3.3.3全局pageblock_order变量3.3.4gfpflags_to_migratety
李海伟_lihaiwei
·
2020-07-10 21:22
3. 内存描述之内存区域zone
前景回顾UMA和NUMA两种模型UMA模型NUMA模型(N)UMA模型中
linux内存
的架构NUMAUMALinux如何描述物理内存用pd_data_t描述内存节点node今日内容(内存管理域zone)
李海伟_lihaiwei
·
2020-07-10 21:22
linux内存
管理源码分析 - 概述
linux内存
管理源码分析-概述转载请注明:http://www.cnblogs.com/tolimit/http://www.cnblogs.com/tolimit/p/4551428.html最近在学习内核模块的框架
zdy0_2004
·
2020-07-10 20:46
Linux
Linux的内存管理
内核的内存管理是
Linux内存
管理的核心,所以我们先对内核的内存管理进行简介。
weixin_30604651
·
2020-07-10 19:11
宋宝华:关于
linux内存
管理中DMA ZONE和dma_alloc_coherent若干误解的澄清
1.DMAZONE的大小是16MB?这个答案在32位X86计算机的条件下是成立的,但是在其他的绝大多数情况下都不成立。首先我们要理解DMAZONE产生的历史原因是什么。DMA可以直接在内存和外设之间进行数据搬移,对于内存的存取来讲,它和CPU一样,是一个访问master,可以直接访问内存。DMAZONE产生的本质原因是:不一定所有的DMA都可以访问到所有的内存,这本质上是硬件的设计限制。在32位X
大哥您好
·
2020-07-10 18:19
Linux
《转》
linux内存
管理
内存管理模块是操作系统的心脏;它对应用程序和系统管理非常重要。今后的几篇文章中,我将着眼于实际的内存问题,但也不避讳其中的技术内幕。由于不少概念是通用的,所以文中大部分例子取自32位x86平台的Linux和Windows系统。本系列第一篇文章讲述应用程序的内存布局。在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。这个沙盘就是虚拟地址空间(virtualaddressspace),
sjmp
·
2020-07-10 18:48
linux内核
Linux内存
管理(下)
Linux内存
管理(下)物理内存管理(页管理)Linux内核管理物理内存是通过分页机制实现的,它将整个内存划分成无数4k(在i386体系结构中)大小页,从而分配和回收内存的基本单位便是内存页了。
七七侠
·
2020-07-10 17:33
今晚9点:
Linux内存
管理的meltdown漏洞修复、usr/kernel安全等微课(2018.3.28晚)
这是宋宝华老师《Linux的任督二脉:进程调度和内存管理》的第二脉《内存管理》微课:Linux的任督二脉之内存管理(2018.3.3-3.7五晚)的补充升级课程。讲解最新的meltdown的漏洞修复KPTI补丁、user/kernel交界点安全、内存碎片避免等知识。大纲:1•meltdown的补丁:KPTI(X86和AARCH64)KPTI情况下,页表会变成怎样?•内核与用户交界点的安全性问题为什
Linux阅码场
·
2020-07-10 17:27
报名:
Linux内存
管理的碎片避免、meltdown漏洞修复等微课(2018.3.28晚)
这是宋宝华老师《Linux的任督二脉:进程调度和内存管理》的第二脉《内存管理》微课:Linux的任督二脉之内存管理(2018.3.3-3.7五晚)的补充课程。主要目的:解释内存管理的主干知识以外的其他重要知识点,包括内存碎片避免、meltdown漏洞修复、用户空间和内核空间交互的安全性问题等。直播时间:2018.3.28,晚9点开始,约70分钟。直播形式:2个微信群1个群上课采用图、语音、关键部分
Linux阅码场
·
2020-07-10 17:56
宋宝华Linux培训笔记-
Linux内存
管理
1、
linux内存
映射关系内存映射中最重要的是页表,页表除了找到虚地址对应的物理地址外,在对应这一行中还存有两个标志位,一个是RWX标志位,表明该位置是可读还是可写,另一个是u/k标志位,区分用户空间和内核空间
Felven
·
2020-07-10 17:23
Felven在职场
Linux内存
管理 —— DMA和一致性缓存
1.出现内存不一致的原因CPU写内存的时候有两种方式:1.writethrough:CPU直接写内存,不经过cache。2.writeback:CPU只写到cache中。cache的硬件使用LRU算法将cache里面的内容替换到内存。通常是这种方式。DMA可以完成从内存到外设直接进行数据搬移。但DMA不能访问CPU的cache,CPU在读内存的时候,如果cache命中则只是在cache去读,而不是
落尘纷扰
·
2020-07-10 17:43
Linux内核源码
ARM开发
Linux系统
Linux内存管理
linux内存
管理之malloc、vmalloc、kmalloc的区别
1、kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存2、kmalloc保证分配的内存在物理上是连续的,内存只有在要被DMA访问的时候才需要物理上连续,malloc和vmalloc保证的是在虚拟地址空间上的连续3、kmalloc能分配的大小有限,vmalloc和malloc能分配的大小相对较大4、vmalloc比kmalloc要慢。尽管在某些情况下才需要物理上连续的
fangjian1204
·
2020-07-10 16:18
Linux系统运维
linux内存
管理系统后期的内核对zonelist的简化
structpglist_data{structzonenode_zones[MAX_NR_ZONES];structzonelistnode_zonelists[GFP_ZONETYPES];...}GFP_ZONETYPES是一个宏,在2.6.8的时候它如下定义:#defineGFP_ZONEMASK0x07/*#defineGFP_ZONETYPES(GFP_ZONEMASK+1)*/#de
dog250
·
2020-07-10 16:32
I/O空间、内存空间以及
Linux内存
管理
原文地址:http://blog.csdn.net/darennet/article/details/40521015,在原文基础上进行了一些整理,加入了一些自己的理解。在嵌入式编程中,绝大部分功能都是通过外设实现的,这些外设不仅可以是CPU外部的某种功能模块,也可以是CPU芯片内部集成的某些片内外设。这些芯片内部的外设基本都是通过总线的方式与CPU核心相连,而对它们的控制也通过对这些总线上的外设
ZF_Chen
·
2020-07-10 16:02
嵌入式与Linux
深入解读
Linux内存
管理系列(总览)
日期内核版本CPU架构作者2019.04.06Linux-4.4PowerPCLoneHugo系列文章文章概要深入解读
Linux内存
管理系列(1)——系统启动阶段的操作系统启动阶段需要完成的工作以及内存状态深入解读
LoneHugo
·
2020-07-10 16:43
Linux内存管理
《嵌入式
Linux内存
使用与性能优化》笔记
这本书有两个关切点:系统内存(用户层)和性能优化。这本书和BrendanGregg的《SystemsPerformance》相比,无论是技术层次还是更高的理论都有较大差距。但是这不影响,快速花点时间简单过一遍。然后在对《SystemsPerformance》进行详细的学习。由于Ubuntu测试验证更合适,所以在Ubuntu(16.04)+Kernel(4.10.0)环境下做了下面的实验。全书共9章
weixin_34128534
·
2020-07-10 08:30
Linux内存
管理-内存碎片的终极解决方案
内存碎片问题频繁地请求和释放不同大小的内存,必然导致内存碎片问题的产生,结果就是当再次要求分配连续的内存时,即使整体内存是足够的,也无法满足连续内存的需求。该问题也称之为外碎片(externalfragmentation)。解决方案避免外碎片的方法有两种:利用分页单元把一组非连续的空闲页框映射到连续的线性地址开发一种适当的技术来记录现存的空闲的连续页框块的情况,以尽量避免为满足对小块的请求而分割大
飞鱼light
·
2020-07-10 07:09
linux内存
管理笔记(二十三)----伙伴系统Linux概述
在内核初始化完成后,内存管理的责任由伙伴系统承担。前面一章主要学习了伙伴系统的软件算法实现原理伙伴系统原理,本章正式开始Linux下伙伴系统的学习,本章主要是原理性的梳理一些流程,其主要包括linux对于伙伴系统的设计思路内存碎片的问题和分配器如何处理碎片伙伴系统的分配器API1.设计思路前面章节中学习了伙伴系统原理,我们重新梳理伙伴系统的核心思路:内核将系统的空闲页面分成11个块链表,每个块链表
奇小葩
·
2020-07-10 04:15
内存管理
linux内存
管理笔记(二十一)----启动伙伴系统
众所周知,
Linux内存
管理的核心是伙伴系统(buddysystem)。其实在linux启动的那一刻,内存管理就已经开始了,只不过不是buddy在管理。
奇小葩
·
2020-07-10 04:14
内存管理
linux内存
管理笔记(二十)--------zonelist初始化
在bootmem_init初始化的时候,已经初始化了内存节点的zone成员,该成员是structzone数组,存放该内存节点的zone信息。在linux的内存管理中,分几个阶段进行抽象,用数据结构来管理。先用结点集合管理内存,然后用zone管理结点,再用页的管理zone。此时使用的数据结构分别为pglist_data、zone、page结构体,本章的主要是来分析内核是如何完成zonelist的初始
奇小葩
·
2020-07-10 04:14
内存管理
linux内存
管理笔记(十八)----bootmem内存分配器
前面章节我们介绍了memblock,其作用内核启动初期,常用的内存分配器还未被初始化而不能使用,在此期间memblock是一种用于内存管理区域的方法。然后调用page_init来完成系统分页机制的初始化工作,建立页表,从而内核可以完成虚拟地址到物理地址的映射关系,本章主要是分析bootmem_init的流程。1.bootm初始化arm架构下,在setup_arch中通过paging_init函数初
奇小葩
·
2020-07-10 04:43
内存管理
linux内存
管理笔记(十二)----准备页表
Linux是为通用的操作系统而设计,为了便于移植需要抽象出一些硬件细节,在驱动代码中看到大量的抽象层的思想。内核中只有和硬件相关的代码才会单独实现,这样做便于移植和添加新硬件。内核里所有进程和内核线程都共享1GB的地址空间,而每个应用程序对应的进程都有独立的3GB的地址空间,相互不干扰用户空间:在Linux中,每个用户进程都可以访问4GB的线性地址空间,从0到3GB的虚拟地址空间是用户空间,每个用
奇小葩
·
2020-07-10 04:43
内存管理
linux内存
管理笔记(二十二)----伙伴系统原理
在内核初始化完成后,内存管理将成为一项重要的工作。如何频繁的申请释放内存的情况下,如何避免碎片的产生,这就要求内核采取灵活而恰当的分配策略。通常,内存分配一般有以下两种情况大对象(大的连续空间分配)小对象(小的空间分配)针对不同的需求,Linux采取了不同的方式来解决这两种问题导致的内存碎片问题。本章主要是从原理上分析内核如何通过伙伴系统算法,如何解决了内存碎片问题。1.内存碎片问题在前面的章节中
奇小葩
·
2020-07-10 04:43
内存管理
linux内存
管理笔记(三)----TLB
前一章节,我们学习了分页机制的硬件原理,从虚拟内存地址到物理内存地址的转换,我们通过页表来处理。为了节约页表的内存存储空间,我们会使用多级页表。但是,多级页表虽然节约了我们的存储空间,但是却存在问题:原本我们对于只需要进行一次地址转换,只需要访问一次内存就能找到对应的物理页号了,算出物理地址现在我们需要多次访问内存,才能找到对应的物理页号。最终带来了时间上的开销,变成了一个“以时间换空间”的策略,
奇小葩
·
2020-07-10 04:42
内存管理
linux内存
管理笔记(四)----虚拟内存管理技术
计算机这个行业的历史上有过很多成功的预言,最著名的自然是“摩尔定律”。当然免不了的也有很多“失败”的预测,其中一个最著名的就是,比尔·盖茨在上世纪80年代说的“640Koughttobeenoughforanyone”,也就是“640K内存对每个人来说都够用了”。而在现在,我们身边的机器的内存已经是4G,甚至动辄就是16G/32G的内存,如果你当时听到比尔盖茨的这句话的时候,你是不是觉得这个根本就
奇小葩
·
2020-07-10 04:42
内存管理
linux内存
管理笔记(六)---请求缺页
在上一章流程分析,引出了”请求调页“技术,事实上,对于进程,开始运行的时候,并不需要访问地址空间的全部内容。有一部分地址空间也许永远都不会被进程所使用,基于程序的局部性原理,在程序执行的每一个阶段,真正使用的进程页只有一小部分,对于临时用不到的页,其所在的页框可以由其他的进程使用。本章主要是从原理和代码层次来讨论,内核是怎么完成请求分页机制的实现原理。操作系统执行缺页处理程序后,获取磁盘地址,启动
奇小葩
·
2020-07-10 04:11
内存管理
Linux内存
管理学习笔记--物理内存分配
每次深入了解一个技术问题,随着挖据的深入,都发现其背后总非常深的背景知识,甚至需要深入到很多底层系统,这个过程有时会让自己迷失,会让自己忘了当初的目的。在前篇中介绍系统启动时内存的使用情况,本篇将介绍简要Linux如何接管主机的物理内存、组织内存,最后会较为详细的介绍Linux分配内存的一段代码。前面说了,LinuxMM系统细节非常多,自己在探究的时候,也是尝试尽量抓住主线,这里也只能抽取了一些“
tuyerv
·
2020-07-10 03:58
linux内存
源码分析 - 内存回收(整体流程)
转载于:http://www.cnblogs.com/tolimit/概述当linux系统内存压力就大时,就会对系统的每个压力大的zone进程内存回收,内存回收主要是针对匿名页和文件页进行的。对于匿名页,内存回收过程中会筛选出一些不经常使用的匿名页,将它们写入到swap分区中,然后作为空闲页框释放到伙伴系统。而对于文件页,内存回收过程中也会筛选出一些不经常使用的文件页,如果此文件页中保存的内容与磁
行咫尺梦天涯
·
2020-07-10 02:44
linux内核
内存
Linux内存
管理
1.进程页表项中的内核部分是各进程复制的,并且采取了延迟更新的方式:以vmalloc为例(最常使用),这部分区域对应的线性地址在内核使用vmalloc分配内存时,其实就已经分配了相应的物理内存,并做了相应的映射,建立了相应的页表项,但相关页表项仅写入了“内核页表”,并没有实时更新到“进程页表中”,内核在这里使用了“延迟更新”的策略,将“进程页表”真正更新推迟到第一次访问相关线性地址,发生pagef
sdulibh
·
2020-07-10 01:25
linux编程基础
Linux内存
管理监控
系统设备运行速度对比CPU速度最快,硬盘最慢虚拟内存=物理内存(RAM)+Swap空间(磁盘),虚拟内存分配由系统内核完成,对用户程序透明。虚拟内存paging:虚拟内存的页面大小,将部分物理内存里面的内容换到swap空间中称为paging,在32位机器上为4K。SWAP空间swapingbuffer:当系统读取文件或有文件需要写到磁盘中,会在物理内存中保留一份数据,提供读写效率,处于内存中的这部
许小小晴
·
2020-07-10 01:16
记一次MongoDB性能问题+
Linux内存
管理学习笔记--物理内存分配
记一次MongoDB性能问题最近忙着把一个项目从MySQL迁移到MongoDB,在导入旧数据的过程中,遇到了些许波折,犯了不少错误,但同时也学到了不少知识,遂记录下来。公司为这个项目专门配备了几台高性能务器,清一色的双路四核超线程CPU,外加32G内存,运维人员安装好MongoDB后,就交我手里了,我习惯于在使用新服务器前先看看相关日志,了解一下基本情况,当我浏览MongoDB日志时,发现一些警告
jackYangyang
·
2020-07-09 18:22
mysql
linux内存
管理笔记(十九)----内存组织
上一章我们梳理了Node,Zone,PageFrame的整个流程,本章就来整理其关系和数据结构之间的关系。1.基本概念NUMA(Non-UniformMemoryAccess,非统一内存访问)和UMA(UniformMemoryAccess,统一内存访问):NUMA是从处理器对内存访问速度不同的结构UMA是处理器与所有内存的访问速度相同的结构结点Node:从1个CPU访问速度相同的内存集合每个CP
奇小葩
·
2020-07-09 09:00
内存管理
Java程序线上故障排查
Java程序线上故障排查目录一、
Linux内存
和cpu网络磁盘/proc文件系统二、JVMJava堆和垃圾收集器gc日志分析JVMTI介绍Attach机制java自带工具三、三方工具jprofilearthas
深圳市康帕科技有限公司
·
2020-07-09 05:46
java技术
利用mmap /dev/mem 读写
Linux内存
使用hexedit/dev/mem可以显示所有物理内存中的信息。运用mmap将/dev/memmap出来,然后直接对其读写可以实现用户空间的内核操作。以下是我写的一个sample#include#include#include#include#include#includeintmain(){unsignedchar*map_base;FILE*f;intn,fd;fd=open("/dev/me
zhanglei4214
·
2020-07-09 05:29
linux
kernel
linux
linux高级编程-1.
Linux内存
管理**
1.
Linux内存
管理进程内存空间管理任意一个程序内存空间分为四个基本部分:1>.代码区常量,函数2>.全局区栈区:全局变量,static静态变量3>.堆指针,进程中会被动态分配的内存段4>.局部栈变量上面所展示的不是物理地址
小小小朔儿
·
2020-07-08 20:56
linux操作系统
Linux内存
拾遗
管理内存是操作系统的核心职责之一。Linux系统把内存分页管理,每一页(page)的大小可以用命令getconfPAGESIZE查看,单位是字节(Byte),Linux默认的页大小为4KB。[root@localhost~]#getconfPAGESIZE4096内存的总体情况可以通过cat/proc/meminfo查看[root@localhost~]#cat/proc/meminfoMemTo
weixin_34198881
·
2020-07-08 17:53
关于使用json库造成的内存泄露问题
pMtInfo中包含的数据内容转换成JSON字符串返回”的代码虽然运行结果正确,但是造成了严重的内存泄露,上篇博文链接如下:http://my.oschina.net/BambooLi/blog/514946用
Linux
weixin_34112900
·
2020-07-08 16:22
linux内存
管理之kmalloc
这里只说物理内存管理linux内核的,看了很多讲解的内存的东西,但是自己总结的时候总感觉无从下手,这里就从实际物理内存分配接口开始吧。Kmalloc它分配连续的物理内存空间,它不负责把分配的内存空间清零,它能分配多大的呢?并且它只能分配ZONE_NORMAL的不能分配dma和high里的,也就是只分配低端内存.一般情况下内存被分为三个zone:NORMAL、DMA、HIGH.这个函数是建立在sla
weixin_33860147
·
2020-07-08 15:56
Linux安装Oracle数据库配置大页内存
ID361468.1)ShellScripttoCalculateValuesRecommendedLinuxHugePages/HugeTLBConfiguration(文档ID401749.1)如果装完
linux
u019527
·
2020-07-08 11:45
Oracle
DB
Linux内存
分配小结--malloc、brk、mmap
Linux的虚拟内存管理有几个关键概念:1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址;2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟空间地址)与物理地址进行映射,获得真正的物理地址;3、如果虚拟地址对应物理地址不在物理内存中,则产生缺页中断,真正分配物理地址,同时更新进程的页表如果此时物理内存已耗尽,则根据内存替换算法淘汰部分页面至物理磁盘中。基于以上认识,
JerrySing
·
2020-07-08 08:02
Linux相关
上一页
11
12
13
14
15
16
17
18
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他