Fab 中TD什么意思? 还有,PIEPEEEPDE都是什么意思?

Fab 中TD什么意思? 还有,PIEPEEEPDE都是什么意思?,第1张

FAB:芯片制造公司的代工厂

TD:Technology Develop研发工程师

PIE:Process Integration Engineer制程整合工程师

PE:Process Engineer工艺工程师

EE:Equipment Engineer设备工程师

PDE:Production Engineer产品工程师

你要是写过单片机或者嵌入式之类的程序开发,你就不会对这个无法理解了,

我是这么理解的,首先对于CPU来说它‘看’到的永远是真实的地址,你想CPU就是一个硬件,它懂什么虚拟。所以说虚拟地址是对于应用程序来说的,比如说VI,它被执行的时候的确是要分配内存,但是,是谁分配?是linux!也就是说比如vi是你写的程序,你写mov ds,ax的时候分给你的0x30是linux的个程序给你的,它对应的实际的地址并不一定就是内存的0x30,也有可能是0x40,或者其他的,但是你并不用去想它对应哪个,你只要用就行了。进行的一系列变换也是linux *** 作系统在做这件事情。linux变换后得到一个真实的地址给CPU然后cpu去执行,也就是说在应用程序和CPU之间有一个 *** 作系统在做怪。

为什么要搞得这么麻烦,那是为了多个程序能够不干扰。在以前单任务的时代,是没有虚拟内存这一说法的。后来多任务的CPU出来了,就必须要有虚拟内存了,

这么说吧,比如你的电脑有0x00到 0x10这10个内存地址,你一开机就有一个A程序运行了,比如说360之类的杀毒程序,它是会用到内存的,但是你又不知道它用了哪些内存,它可能现在用0x00等一下又去用0x10。如果只有它一个程序在运行那是完全没有问题的,但如果你又写了一个B程序,你也要用内存,但是你又不能同时和A程序用同一个内存(用同一个会出错),你就要知道A程序什么时间会用什么内存,如果你不知道,你写的程序就会和其他程序冲突,如果有几十个程序一起运行的话冲实就会更严重。所以就要有一个‘人’来管理内存。这个人就是linux *** 作系统,这样一来每一个程序在用内存时候都要向linux申请,由它来分配内存给你。比如A分配为0x00到0x05,B分配为0x06到0x10,这样就各用各的了,但是这样还不够完美,因为每次分配的内存地址是不确定的,有时候可能B分到了0x00 到0x05 ,这样一来B程序还是很难写,你要考虑的东西还是很多,所以就要 ‘虚拟’一下,就是说不管你分配到的是0x00 也好还是分到0x06也好,你写程序时‘看’到的都是0x00到0x05,这样一来你就不用去管内存份配的问提,可以专心写你的程序了,也不用去担心和其他程序有冲突,因为linux *** 作系统帮你解决了。

问题没太看懂。

你是指每个进程为何有独立的地址空间吗?

*** 作系统开启分页后,每个进程有自己独立的页目录与页表,cpu *** 作内存会自动将当前线性地址转换为物理地址(MMU负责),然后再放在地址总线上。所以每个进程即使访问相同的线性地址会最终对应到不同的物理地址,因为他们的pde与pte不同。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/dianzi/7087633.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存