首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏量子化学

    基态-激发电子密度差等值面绘制

    基态-激发电子密度差可以比较直观地展示体系激发后电子的流向,分析体系的电子激发属性。关于电子密度,可以参看《从密度矩阵产生自然轨道-理论篇》一文。 nstates=20) density b3lyp/def2tzvp guess=read geom=allcheck out=wfn HCHO-TD.wfn 此处加了density关键词,表示将激发的电子密度写入 同时使用了out=wfn,可以生成激发的波函数信息,用于后续Multiwfn分析。若只用GaussView分析,则不需要此关键词。 一、用GaussView绘制等值面 1. 再次点击New Cube,Type中依然选择Total Density,而Density Matrix中选择CI,即生成激发电子密度的cube文件。 4. 创建基态-激发电子密度差的cube文件。 可修改一下顺序,使第一个为激发电子密度,第二个为基态电子密度。不改也无妨,结果相差负号而已。 5.

    3.1K40发布于 2021-05-11
  • 来自专栏模拟计算

    第一性原理密度计算的意义和用途-测试GO

    第一性原理密度分析的意义和用途在探索材料微观世界时,密度(Density of States, DOS)犹如一把精密的电子扫描器,揭示电子在材料中能量分布的关键密码。 一、密度分析的意义DOS 描述了材料中电子在能量上的密集程度,即单位能量区间内可被电子占据的量子数量。 二、密度分析能获取的关键数据总体态密度(Total DOS, TDOS):含义: 材料中所有电子在能量上的总分布。核心信息:费米能级位置: 标志绝对零度下电子占据的最高能级。 杂质或缺陷分析分析掺杂或缺陷附近的局域电子在带隙中的分布,理解其对材料电学或光学性质的影响。 第一性原理密度分析通过计算并解读总密度(TDOS)、投影密度(PDOS)、局域密度(LDOS)等关键数据,我们能精准定位材料的费米能级、精确计算带隙、深入解析复杂化学成键、揭示磁性微观机制、识别潜在的反应活性位点

    60710编辑于 2025-07-24
  • 来自专栏有价值炮灰

    Android 用户启动流程分析

    init init 是用户的第一个进程,由 Linux 内核启动,进程号为1。 second_stage 第二阶段的 init 进程,就是我们在 Android 用户中见到的真正程序。 除了属性服务,init 中另外一个重要的功能就是对 initrc 的处理,毕竟作为用户的第一个进程,其肩负了启动其他进程和服务的使命。 参考链接 Android 操作系统架构 Android HAL 与 HIDL 开发笔记 Android进程间通信与逆向分析 从STM32L4看ARM裸板的启动过程

    1.4K40编辑于 2023-02-12
  • 来自专栏全栈程序员必看

    内核与用户_linux内核和用户通信

    当一个任务进入内核运行时,就会使用其TSS段中给出的特权级0的堆栈指针tss.ss0、tss.esp0,即内核栈。原用户栈指针会被保存在内核栈中。而当从内核返回用户时,就会恢复使用用户的堆栈。 5.8.2 任务的堆栈 每个任务都有两个堆栈,分别用于用户和内核程序的执行,并且分别称为用户堆栈和内核堆栈。 在定位了新堆栈(内核堆栈)之后,CPU就会首先把原用户堆栈指针ss和esp压入内核堆栈,随后把标志寄存器eflags的内容和返回位置cs、eip压入内核堆栈。 此时内核代码就会使用该任务的内核堆栈进行操作。同样,当进入内核程序时,由于特权级别发生了改变(从用户转到内核),用户堆栈的堆栈段和堆栈指针以及eflags会被保存在任务的内核堆栈中。 图5-26 内核和用户堆栈的切换 如果一个任务正在内核中运行,那么若CPU响应中断就不再需要进行堆栈切换操作,因为此时该任务运行的内核代码已经在使用内核堆栈,并且不涉及优先级别的变化,所以CPU

    2.3K20编辑于 2022-10-01
  • 来自专栏量子化学

    分析激发的跃迁类型

    ππ*和nπ*。 根据激发前后电子密度分布的变化情况又可分为局域激发(local excitation, LE)和电荷转移(charge transfer, CT)激发,顾名思义,前者电子密度在局部范围内变化,后者电子密度的分布区域发生了显著的变化 ,对每个激发,会给出最大的几个轨道跃迁系数,利用这些系数可以得到相应的轨道跃迁对该激发的贡献。 之后做TD(nstates=50)激发计算。以下我们分析S1和S2两个。 很多时候仅用一对轨道的跃迁无法很好地描述激发,此时可以使用自然跃迁轨道来进行分析,我们后面进行介绍。

    8.1K31发布于 2021-01-28
  • 来自专栏Java实战博客

    用户、内核

    随着学习的不断深入,用户、内核知识的缺失,也就暴露出来。不过好在,知道反省自己。于是今天将操作系统用户、内核台研究透! 我们线程是程序运行的最小单位。 用户、内核台都是CPU的状态,且有自己的专用内存空间 CPU从用户切换内核需要传递许多变量、参数给到内核。内核会存储用户的信息,当内核在切换用户的时候,才能使得用户正常工作。 CPU就划分出两个权限等级:用户、内核 用户 访问内存受限。不允许访问外置设备,无占用CPU的能力,也就是说用户的线程会被别的程序占用。 内核 访问内存所有数据。 用户、内核的切换 我们的用户程序都是运行在用户的。有些时候我们可能需要访问外置设备的内存数据,我们就需要从用户切换到内核了。 注意,既然用户受限,我干脆直接使用内核不就完了么? 事实是,用户应用程序的内核只能由用户切换过来。 如何让触发用户到内核的切换?

    1.2K30编辑于 2022-11-14
  • 来自专栏全栈程序员必看

    linux 内核与用户_linux内核和用户通信

    >用户 内核中,可以完成对用户文件系统任意文件的访问。 因此,可以在内核将要输出的信息写入文件,写入后用户程序直接读取文件就可以完成从内核空间向用户空间的数据传递。 4/内核<->用户 proc文件系统,是当前内核或内核模块,和用户交互的主要方式,它通过将虚拟的文件系统挂载在/proc下,利用虚拟文件读写在用户和内核间传递信息。 向内核中注册/proc下文件的调用是create_proc_entry 5/内核<->用户 netlink是一种特殊的socket,用于用户与内核的双向通讯。 在用户中,netlink的使用与标准的socket API相同,在内核,则需要使用专门的API。

    2.7K30编辑于 2022-10-02
  • 内容复习----visium分析hotspot与空间密度

    作者,Evil Genius今天我们来画一画空间密度图吧。不同条件的基因/细胞密度分布图一目了然可以看出疾病带来的影响。

    32420编辑于 2025-04-08
  • 来自专栏程序员

    内核和用户

    内核(也称管,核心态): 内核具有对硬件的完全访问权,可以执行机器能够执行的任何指令。 用户: 只能执行机器的部分指令,使用全部指令集的一个子集。 能影响机器的控制指令或者是I/O操作指令,在用户都是不被允许的。当然也不能更改PSW中模式位为内核。 用户程序为了获取操作系统服务,必须使用系统调用。系统调用陷入内核并调用操作系统。 TRAP指令把用户切换成内核,并启用操作系统。 程序计数器(PC): 它保存下一条将要执行的指令在内存中的地址。在指令被取出之后,程序计数器就需要更新。 程序状态字(PSW): 它包含了CPU优先级,模式(内核或者用户),条件码位,以及各种其他控制位。通常在PSW中有1个二进制位用来控制CPU处于内核还是用户

    1.8K20发布于 2020-08-20
  • 来自专栏EpiHub

    R语言偏分布的回归分析

    分布的回归分析 回归是我们经常遇到的模型,但是回归会根据Y因变量的类型,分成分类问题(Y是分类变量,如生存或死亡)与回归问题(Y是连续性变量,如身高体重)。 image.png 当然,我们遇到偏分布时候,一般有两种处理方式。 通过将偏数据进行log变换,转成正态分布进行回归。 直接使用 family=Gamma 指定Gamma分布。

    1.7K10编辑于 2022-11-03
  • 来自专栏科学计算

    信号的频谱 频谱密度 功率谱密度 能量谱密度

    搞清楚上面两个概念之后,我们再来看信号的频率特性分类,有四种:功率信号的频谱、能量信号的频谱密度、功率信号的功率谱(密度)和能量信号的能量谱密度 功率信号的频谱:   周期性功率信号的频谱函数为: ? 因此傅里叶变换的结果就是能量信号的频谱密度,但为了统一说法,我们一般也叫频谱。 (我们平时所说的做个fft看频谱,其实是指的频谱密度)   那为什么叫频谱密度呢? 这里多说一点,量纲是个好东西,很多公式不理解的时候,把量纲分析一下,能起到很大作用。    看到这里,可能有点明白了。 称为能量信号的能量谱密度,它表示在频率f处宽度为df的频带内的信号能量,或者可以看做是单位频带内的信号能量。 功率信号的功率谱(密度):   这里为什么要把密度加括号呢? 设 表示信号的功率谱密度,则有 ? 因此,信号的功率谱密度为: ?

    4.5K30发布于 2020-06-29
  • 来自专栏山河已无恙

    如何使用 BPF 分析 Linux 内存泄漏,Linux 性能调优之 BPF 分析内核、用户内存泄漏

    写在前面 博文内容为 通过 BCC 工具集 memleak 进行内存泄漏分析的简单认知 包括 memleak 脚本简单认知,内核(内核模块)、用户(Java,Python,C)内存跟踪泄漏分析 Demo ,下面的 Demo使用的最新版本的工具,实际上如果有特殊需求,可以定制化开发,感兴趣小伙伴可以尝试,欢迎留言讨论 内核内存泄漏分析 这里我们通过一个内核模块来模拟内存泄漏的问题,memory_leak 用户内存泄漏分析 java 内存泄漏分析 堆外内存 使用的 JDK 版本 [developer@developer ~]$ java --show-version openjdk 17.0.13 2024 , tracemalloc 是 Python 标准库中的内存追踪调试工具,用于监控和分析 Python 程序的内存分配行为 C 内存泄漏分析 前面我们简单分析了这个 BCC 脚本,可以看到实际上他直接对内核库的一些用户和内核的内存分配函数进行埋点跟踪 关于 BCC 工具 memleak 进行内存泄漏分析和小伙伴分析到这里,上面都是一些 Demo,只是为了展示工具如何使用,实际的分析要结合调用栈复杂的多。

    55000编辑于 2025-06-09
  • 来自专栏全栈程序员必看

    用户和内核切换开销_进程切换在用户还是内核

    切换方式 从用户到内核切换可以通过三种方式,或者说会导致从用户切换到内核的操作: 系统调用,这个上面已经讲解过了,在我公众号之前的文章也有讲解过。 代价何在 当发生用户到内核的切换时,会发生如下过程(本质上是从“用户程序”切换到“内核程序”) 设置处理器至内核。 保存当前寄存器(栈指针、程序计数器、通用寄存器)。 而之后从内核返回用户时,又会进行类似的工作。 3. 如何避免频繁切换 用户和内核之间的切换有一定的开销,如果频繁发生切换势必会带来很大的开销,所以要想尽一切办法来减少切换。 3.1 减少线程切换 因为线程的切换会导致用户和内核之间的切换,所以减少线程切换也会减少用户和内核之间的切换。那么如何减少线程切换呢? 无锁并发编程。 首先要同意这个说法,即I/O会导致系统调用,从而导致内核和用户之间的切换。因为对I/O设备的操作是发生在内核。那如何减少因为I/O导致的系统调用呢?答案是:使用户进程缓冲区。

    3.6K10编辑于 2022-10-02
  • 来自专栏全栈程序员必看

    什么是用户和内核_进程的用户和内核

    现在我们就可以再来说下用户和内核的概念了,用户和内核粗略的说就是进程工作在内核空间下就叫用户,进程工作在内核空间下就叫内核。 当正在执行用户程序而突然中断时,此时用户程序也可以象征性地处于进程的内核。因为中断处理程序将使用当前进程的内核。 然后我们细细的说一下用户和内核的区别和联系,说道这里,就不得不提一下CPU的三种运行级别了,工作在内核下的进程拥有最高级别Ring0,工作在用户下的进程拥有最低级别Ring3,在Ring3状态下是不能访问 也就是说,进程在用户下是没法访问到内核空间中的数据的,那么我们就看出这样做的好处了,通过内核和用户就产生了一个保护机制,用户无法随意的进入所有进程共享的内核空间。 那么进程是如何完成用户到内核的切换的呢?具体的步骤大致如下: (1)从当前进程的描述符中提取其内核栈的ss0及esp0信息。

    1.4K20编辑于 2022-09-29
  • 来自专栏全栈程序员必看

    线程的用户和内核_缺页发生在用户还是内核

    (1)用户和内核的概念? —>内核: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. —>由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 :用户 和 内核 (3)用户与内核的切换? 3)用户和内核 现在我们从特权级的调度来理解用户和内核就比较好理解了,当程序运行在3级 特权级上时,就可以称之为运行在用户,因为这是最低特权级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户 用户和内核的转换 1)用户切换到内核的3种方式 a. 关于中断处理机制的细节和步骤这里也不做过多分析,涉及到由用户切换到内核 的步骤主要包括: [1] 从当前进程的描述符中提取其内核栈的ss0及esp0信息。

    1.7K20编辑于 2022-10-02
  • 来自专栏技术博客文章

    用户和内核原理详解

    用户的内存映射机制,我们解析的差不多了,我们来总结一下,用户的内存映射机制包含以下几个部分。 用户内存映射函数mmap,包括用它来做匿名映射和文件映射。 用户的页表结构,存储位置在mm_struct中。 在用户访问没有映射的内存会引发缺页异常,分配物理页表、补齐页表。 对于内存的分配需求,可能来自内核,也可能来自用户。 内核中vmalloc分配的部分会被换出,因而当访问的时候,发现不在,就会调用do_page_fault。 对于用户 ,或者 直接调用mmap系统调用分配,或者调用malloc 。 正常情况下,用户的内存都是可以换出的,因而一旦发现内存中不存在,就会调用do_page_fault。

    1.2K00编辑于 2021-12-17
  • 来自专栏灰子学技术

    1.内核与用户

    本篇文章是第1篇文章,也是后续知识的基础,笔者觉得只有真正弄清楚了内核和用户,才能更好的理解后续的知识。 一、内核与用户的介绍 ? 2.内核执行操作:进入3GB-4GB中的内核地址空间去执行这些代码完成操作。 3.切回用户:内核执行完之后,切换用户。 备注:这样操作的好处在于用户的程序就不能随意操作1内核地址空间,具有一定的安全保护作用。 二、操作系统区分内核和用户的原因 1. 设计用户和内核,并且用户成运行程序需要调用内核的原因? 2.内核和用户有什么不同? 三、内核与用户的交互 运行于用户的进程可以执行的操作和访问的资源都会受到极大的限制,而运行在内核的进程则可以执行任何操作并且在资源的使用上没有限制,下面是用户转换成内核的几种方式: 1.

    2K20发布于 2020-10-19
  • 来自专栏全栈程序员必看

    操作系统分为用户和内核_内核 用户

    这节课给你带来了一道非常经典的面试题目:用户线程和内核线程有什么区别? 这是一个组合型的问题,由很多小问题组装而成,比如: 用户和内核是什么? 用户级线程和内核级线程是一个怎样的对应关系? 进程可以分成用户进程和内核进程两类。用户进程通常是应用程序的副本,内核进程就是内核本身的进程。如果用户进程需要申请资源,比如内存,可以通过系统调用向内核申请。 如果进程想要创造更多的线程,就需要思考一件事情,这个线程创建在用户还是内核。 你可能会问,难道不是用户的进程创建用户的线程,内核的进程创建内核的线程吗? 其实不是,进程可以通过 API 创建用户的线程,也可以通过系统调用创建内核的线程,接下来我们说说用户的线程和内核的线程。 用户线程和内核线程的区别? 老规矩,请你先在脑海里构思下给面试官的表述,并把你的思考写在留言区,然后再来看我接下来的分析。 【解析】 用户线程工作在用户空间,内核线程工作在内核空间。

    2.7K21编辑于 2022-09-30
  • 来自专栏黑光技术

    【译】如何使用 eBPF 检测分析用户程序

    这篇文章较好的介绍使用 eBPF 对几种语言开发的应用程序进行可观测分析。介绍的也比较详细,对这块有兴趣的同学可以深入学习。 可用于检测分析应用程序的 eBPF 技术 跟踪用户空间进程有多种方法: 静态声明的 USDT 动态声明的 USDT 使用 uprobes 进行动态跟踪 静态声明的 USDT USDT (Userland 在简单的理论介绍之后,我们来看一些具体的例子,看看如何用跟踪分析不同的语言的应用程序。 让我们分析一下实际的 uprobe 程序。 在必需的 include 语句之后,有宏的定义,该宏通过偏移量处理的方式负责从堆栈中获取参数。

    1.8K20编辑于 2022-11-29
  • 来自专栏全栈程序员必看

    线程用户和内核

    (1)用户和内核的概念? —>内核: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. —>由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 :用户 和 内核 (3)用户与内核的切换? 3)用户和内核 现在我们从特权级的调度来理解用户和内核就比较好理解了,当程序运行在3级 特权级上时,就可以称之为运行在用户,因为这是最低特权级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户 用户和内核的转换 1)用户切换到内核的3种方式 a. 关于中断处理机制的细节和步骤这里也不做过多分析,涉及到由用户切换到内核 的步骤主要包括: [1] 从当前进程的描述符中提取其内核栈的ss0及esp0信息。

    1.4K30编辑于 2022-11-17
领券