b***i 发帖数: 3043 | 1 如果有多中央处理器在同总线上共享内存,他们之间的不同进程
如何保护自己的程序或数据内存?
多谢 |
|
t********k 发帖数: 808 | 2 【 以下文字转载自 Linux 讨论区 】
【 原文由 threestick 所发表 】
linux平台 进程间通讯时共享内存方式,
在内存存取的数据是以结构还是数据流存放的? |
|
B********s 发帖数: 3610 | 3 【 以下文字转载自 Linux 讨论区 】
发信人: BobButtons (钮扣猫), 信区: Linux
标 题: 请问用mmap分配的共享内存如何回收?
发信站: BBS 未名空间站 (Sun Sep 30 18:53:50 2007), 站内
谢谢 |
|
a**********s 发帖数: 238 | 4 我这个Thinkpad R60E 0658CE282是2007年7月在国内买的,目前跑日常程序都显得有点
慢,CPU是Intel(R) Celeron(R) M CPU 430 @ 1.73GH,主板芯片组是Intel i945GM/PM
/GMS 940GML;内存是1GB(2条512 MB DDR2-SDRAM (666 MHz)),硬盘80GB,集合
显卡,共享内存224MB。目前用的是XP系统。
大家觉得如果把内存升到2GB能有明显提速吗?这款机型原配的内存只有512MB,买的时
候就加了一条512MB,现在最多也只能扩展到2GB内存。
感觉很奇怪,这款买来的时候速度很快,我现在重新装了XP系统后也没有安装多少软件
,和买来时在软件使用上几乎一样。为何速度就显著得慢呢?磁盘整理也已经很充分了
,也曾经试过ghost重新打包系统再装入。是不是本本里面有灰尘了?还是硬件真的会
老化?还是硬件产商设计的时候加了什么秘密处理使得2-3年后运行速度自动下降,这
样才能逼着大家买新本本?
希望高手能指点迷津!如果加内存效果不显著的话,就打算换本本。 |
|
t****g 发帖数: 35582 | 5 bios里面分配最大共享内存,然后具体用多少windows决定。 |
|
B********s 发帖数: 3610 | 6 可是我现在用的是独立显卡,为什么还会和显卡共享内存呢? |
|
w***g 发帖数: 5958 | 7 streaming和augmentation没法分开最大的原因是python的多线程支持不好。
我没法从python接收一个imgaug实现的回调函数然后放到16个线程里面跑。
我不知道tf是怎么实现的。估计得用多进程共享内存。
care |
|
r*****n 发帖数: 4844 | 8 前言
你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么
经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业
项目都看不出有什么实际作用,不如从工作中的需求出发)
建议:
不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至
少10年通用。
回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。
一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末
节。
一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。
注:你也许会很奇怪为什么下面的东西很偏Unix/Linux,这是因为我觉得Windows下的
编程可能会在未来很没有前途,原因如下:
现在的用户界面几乎被两个东西主宰了,1)Web,2)移动设备iOS或Android。Windows
的图形界面不吃香了。
越来越多的企业在用成本低性能高的Linux和各种开源技术来构架其系统,Windows的成
本太高了。
微软的东西变得太快了,很不持久,他们完全是在玩弄程序员。详情参见《Windows编
程革命史》
所以... 阅读全帖 |
|
n******r 发帖数: 869 | 9 贡献好文:
http://coolshell.cn/articles/4990.html
月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to
those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉
我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,
于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来
了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进
阶”一节。这是一篇由新手和我这个老家伙根据我们的经历完成的文章。
我的这个朋友把这篇文章取名叫Build Your Programming Technical Skills,我实在
不知道用中文怎么翻译,但我在写的过程中,我觉得这很像一个打网游做任务升级的一
个过程,所以取名叫“技术练级攻略”,题目有点大,呵呵,这个标题纯粹是为了好玩
。这里仅仅是在分享Mailper和我个人的学习经历。(注:省去了我作为一个初学者曾
经学习过的一些技术(今天明显... 阅读全帖 |
|
k***e 发帖数: 1931 | 10 >Q: 那这样的读取到底是怎么实现的?P1说我要读0xabc,怎么就知道它能读到自己想
要的内存?
> A: (这个我不明确科班的答案),就说操作系统应该有一个进程对page的映射,系
统知道在哪个page里面的地址空间里找。
TLB, hard/soft page faults, different types of page tables (e.g. multilevel,
inverse)
//补充一点,CPU/SoC需要有MMU或者MPU支持,做address translation。如果OS支持的
话是可以不需要MMU/MPU的,如uCLinux。
> Q:process和thread的区别
> A: process是不共享内存的,thread共享内存。后来网上查了一下,好像主要是这个
,当然也说thread往往是light work,但是我觉得漏掉这个应该没有关系,三哥很快说
ok了。
内存这词用的不准确吧,比如 https://en.wikipedia.org/wiki/Shared_memory#
Support_on_Unix-like_systems
这年头进程就是... 阅读全帖 |
|
y*k 发帖数: 80 | 11 背景:EE毕业但是做行业软件的,工作好多年了一直用C++。没有专门学过计算机专业
课。刷题刷了好几个月了。
上星期经历了几次店面,Linkedin是我自己觉得面得最好的,以为可以拿onsite了,结
果被据了。
别的店面感觉比Linkedin差很多的都过了,所以特别surprise. 我把问题详细贴出来,
并附上我自己的解答,请大家帮忙分析一下,是哪里出了问题,还是被三哥黑了。面试
一共分三部分。因为最后的题做得比较快,三哥还跟我谈笑风生了几分钟,说你的
coding不错,你来面试的时候需要多准备点系统设计,多线程之类的,搞得我以为我都
拿到onsite在为下一步准备了。
1. 10分钟互相介绍,然后问之前做的最难的项目,我说了一下,三哥问了几个问题,
双方都比较满意(之后的回答过程中,三哥不会说你哪里回答得不大好,但是会一直追
问直到他说ok,当然也不知道这个ok是好还是嘿嘿你丫错了)
2. 基础知识。
Q: virtual memory是如何工作的?优缺点?
A:操作系统一般在内存不够时分配虚拟内存,不够的虚拟空间存硬盘上。优点是内存
不够时还能转,缺点是硬盘读写速度慢
Q:如果有... 阅读全帖 |
|
t*********r 发帖数: 387 | 12 >Q: 那这样的读取到底是怎么实现的?P1说我要读0xabc,怎么就知道它能读到自己想
要的内存?
> A: (这个我不明确科班的答案),就说操作系统应该有一个进程对page的映射,系
统知道在哪个page里面的地址空间里找。
TLB, hard/soft page faults, different types of page tables (e.g. multilevel,
inverse)
> Q:process和thread的区别
> A: process是不共享内存的,thread共享内存。后来网上查了一下,好像主要是这个
,当然也说thread往往是light work,但是我觉得漏掉这个应该没有关系,三哥很快说
ok了。
内存这词用的不准确吧,比如 https://en.wikipedia.org/wiki/Shared_memory#
Support_on_Unix-like_systems
这年头进程就是个容器,启动个地址空间给线程用 |
|
z*******6 发帖数: 133 | 13 想在 windows 下处理共享内存的问题,用了 createFileMapping. 可以在不同程序间
共享数据 (比如 程序A 和B)。 请问有没有可能在 A和 B 都退出后仍然保留共享内
存的数据,这样下一次运行程序A 或B 时就不用在创建共享内存。(处理大数据) |
|
c*m 发帖数: 1114 | 14 显卡共享内存其实可能性很大,我的也许是因为i3-530的显卡共享内存导致内存分数下
降,不过楼主是i7,应该是独立显卡,不太可能有这种情况。 |
|
w***g 发帖数: 5958 | 15 这一点很讨厌. 我觉得没有一个万全的方法. 不过我觉得下面的方法或许成功的可能
性比较大:
0. 所有的程序都是同一个可执行文件.
1. 每个程序都是一开始运行就map共享内存.
2. 第一个程序map共享内存后把地址记下来. 所有后继程序都试图map同样的地址.
最好还是建议你不要用pointer. 如果是C++的话可以自己写个类包装一下pointer, 把共
享内存的其实地址包装进去. |
|
b******n 发帖数: 592 | 16 程序已经写成那样了,是C,pointer是不可避免的。如果C++的话就好弄多了。其实这个
问题怎么都比较麻烦,C好处就是比较直白,起码我使用内存的大小都比较明白。C++虽
然可以解决pointer,但是这种内存要grow也比较麻烦
现在觉得如果要共享内存呢,还是用shared library比较好,统一管理。我是程序已经
写成这样了,而且没有办法thread它,只能用process共享了
把共 |
|
z****e 发帖数: 54598 | 17 如果我拿到这个需求
首先第一步,肯定不会马上提出什么解决方案,开始各种计算
那是书呆子的行为,当年我刚毕业时候,公司安排去拓展
有一个项目就是,给一组一堆任务,然后每一个任务都有不同权重
有些人拿到任务,不经过讨论,马上就着手阅读题目,然后开始按照题目要求做
这么做的问题就在于,有些任务权重低,但是任务本身消耗很大
所以有些人努力了半天,其实最后给组里面做出的是负贡献
鄙人其实也是其中之一,这个也没什么好否认的
但是从那以后,我做任何事情之前,都会 我慢
先别急,看清楚形势,分析后,决定优先顺序之后,再做不迟
上来就吭哧吭哧一顿做的,用当时教练的话说,都是书呆子
做事情要有的放矢,人的精力是有限的
好,那首先有了需求,然后先尽可能多地收集各种资料
其他资料也许你不会想到,但是铁道部现在有什么系统
尤其是现在有什么it系统,你总会想到吧?你不会天真地认为
这个需求就是从无到有写一个无依赖无关联的系统吧?
铁道部好歹也算是发展了几十年了,内部会没有一个正在运作的it系统?
其他不敢说,但是拍脑袋想,也能想到,里面肯定会有database
会有app server,还会有一些web serv... 阅读全帖 |
|
b*****a 发帖数: 297 | 18 如果你的系统内存有4GB或者更多,显卡显存也有1GB或者更多,那么在Windows 7系统
中运行DirectX诊断工具(DXDiag.exe)的时候,显示标签页中的估计内存总数(
Approximate Total Memory)显示值将会偏低。
比如在配置1GB显存的计算机上,当系统内存分别为4GB、6GB、8GB的时候,报告的估计
内存总数会只有3496MB、454MB、 1259MB。——注意这里的所谓估计内存总数包括显卡
专用显存和系统共享显存两部分,在不同的系统配置和设置下会差异很大。
除了这个无伤大雅的显示问题,内存、显存容量都比较大的时候,在部分游戏或者程序
中也可能无法选择最高细节设定,这就比较严重了。
微软在编号KB2026022的知识库文章中解释说,DXDiag.exe诊断工具用来估算系统内存
总量的API接口在设计的时候并没有考虑到如此大的容量,所以出现了偏差。
微软表示正在解决此问题,将在未来发布相应的更新补丁。
http://news.mydrivers.com/1/164/164053.htm |
|
z****e 发帖数: 54598 | 19 共享很多时候是不得不共享
如果是硬盘上的共享的话
这个比较容易解决,用db能做很多事情
还有nosql,但是这么做就比较慢,因为涉及io操作
写入硬盘,读的时候从硬盘上读,要先查一下,这些操作都很慢
有些时候,时效要求比较高
比如游戏的pvp,多个client同时联入的话,你需要在短时间内反馈给client
尤其是real time gaming,fps在30左右的话,每一个frame的间隔只有33ms
在33ms内,能做完一次跨网络的传送就不错了,如果加上硬盘的io的话
肯定完不成,所以这个时候就对共享有了较高的要求
你总不可能每一个client自己玩自己的吧?
肯定在server那边需要有一个共享数据的模型
而这个模型一般都放在内存里面
你可以先从斗地主这种游戏开始实现,然后慢慢转换成real time gaming
比如battleship对射,real time的那种
这个时候你就知道多线程和共享几乎是绕不开的
一般的web搞这些也不是完全不可以,但是太吃资源了 |
|
z****e 发帖数: 54598 | 20 jvm也是c写的,最终什么都是c,但是c和汇编都太底层了
跟人的思维接不上,人毕竟是人,不可能完全用机器的思维方式去思考和书写语言
整个计算机系统就是层层封装的结果
并行计算跟分布式计算是两回事
并行计算很多时候对于单机更有意义,共享内存这些
分布式计算一定涉及网络连接,分布式计算不在乎甚至有意识地破坏某些nodes
以测试整个系统的健壮程度,比如chaos monkey,就是要让某些nodes fail掉
看看系统work不work,并行计算用得比较多的是hpc,而不是分布式系统
分布式系统因为nodes上各种乱七八糟的系统什么良莠不齐
所以找到一个统一的平台非常重要,否则每个node都要求定制软件,工作量太大
jvm是目前能找到的最好平台
其他语言要么效率比不过jvm,要么就是兼容性比不过java
hpc上的mpi这些到还真是用c比较多,物理系什么都很喜欢写pbsscript
然后提交hpc排队,执行后看结果,并行计算和分布式计算有一些共性和重叠
但是毕竟不是一个东西,不同的topics
从效率上说,效率提升不只比单线程的效率
是多线程,多进程的效率提升,能并行处理的部分越多,可以... 阅读全帖 |
|
z****e 发帖数: 54598 | 21 jvm也是c写的,最终什么都是c,但是c和汇编都太底层了
跟人的思维接不上,人毕竟是人,不可能完全用机器的思维方式去思考和书写语言
整个计算机系统就是层层封装的结果
并行计算跟分布式计算是两回事
并行计算很多时候对于单机更有意义,共享内存这些
分布式计算一定涉及网络连接,分布式计算不在乎甚至有意识地破坏某些nodes
以测试整个系统的健壮程度,比如chaos monkey,就是要让某些nodes fail掉
看看系统work不work,并行计算用得比较多的是hpc,而不是分布式系统
分布式系统因为nodes上各种乱七八糟的系统什么良莠不齐
所以找到一个统一的平台非常重要,否则每个node都要求定制软件,工作量太大
jvm是目前能找到的最好平台
其他语言要么效率比不过jvm,要么就是兼容性比不过java
hpc上的mpi这些到还真是用c比较多,物理系什么都很喜欢写pbsscript
然后提交hpc排队,执行后看结果,并行计算和分布式计算有一些共性和重叠
但是毕竟不是一个东西,不同的topics
从效率上说,效率提升不只比单线程的效率
是多线程,多进程的效率提升,能并行处理的部分越多,可以... 阅读全帖 |
|
d*********g 发帖数: 38 | 22 谢谢keiutou的例子。咱们就follow这个例子聊一下共享,因为我还不是很明白共享的
含义。
“你有一个process,你需要处理一款很大的数据,你就把这个数据没成四块,然后
create四个thread,每个线程都去计算各自的数据,然后把数据汇总到进程中。这个过
程数据从进程到线程,再由线程回进程,就是一个共享的结果”
你说的共享,我理解是指在内存中同一份“很大的数据”,四个线程可以直接访问,而
不需要将各自需要处理的区块再复制到各自的私有栈中。
由你的例子引开,四个线程换成了由四台主机处理,那么每台主机都需要从“很大的数
据”中复制需要处理的区块到该主机。这样每台主机处理的是自己复制的数据,因此没
有共享这一操作。
不知道以上的理解对不对。我是ee做网络的,多线程和os比较薄弱,这段针对这一块再
补。 |
|
k*****u 发帖数: 136 | 23 首先,楼主你如果真想转cs 要看操作系统,数据结构与算法,这两个是最最基本的,
如果还能看看计算机体系结构就更好了。楼主的问题如下,
你说的共享,我理解是指在内存中同一份“很大的数据”,四个线程可以直接访问,而
不需要将各自需要处理的区块再复制到各自的私有栈中。
--> 我没有说过copy,可以直接访问,也可以copy过去,现实中为了防止子线程搞乱主
进程的数据,一般是通过一个函数或者方法读取一块特定的数据,当然理论上你可以直
接访问,这就是为什么说线程是共享资源的
说到这里,你应该听过进程之间的独立资源的。
由你的例子引开,四个线程换成了由四台主机处理,那么每台主机都需要从“很大的数
据”中复制需要处理的区块到该主机。这样每台主机处理的是自己复制的数据,因此没
有共享这一操作。
--> 如果变成四个主机(我当时说道的集群只是举例,大规模数据是怎么被分配处理的
)如果变成四个主机,就是四个独立系统了,这时候进程 线程的都是各自系统的,已
经没有什么共享不共享一说。完全就不是一回事。多线程就指在一个系统中。
如果有时间的话,可以到网上听听online的cs课程 |
|
h*****g 发帖数: 1327 | 24 用的是Freenas操作系统,这个系统推荐的是ECC内存,但是如果上ECC内存的话硬件需
要全部重新换,现在只想加点non-ECC的内存再用几年,不知道真正在使用过程中,这
两种内存差别大吗?平时NAS的工作就是CIFS文件共享、Plex服务器、BTSync备份和
Time Machine备份。 |
|
H******7 发帖数: 1728 | 25 对阿。共享内存就算是集成了。而且这个显卡是在主板上,不可以随意拆卸的。独立显
卡是可以更换的。不知道这个理解对不对。
而且文章也说了。共享主存会确实会影响性能。肯定不如独立内存的显卡快。 |
|
l***h 发帖数: 392 | 26 关键还是要把 os 写成 GPU类似的东西吧。光靠cpu,arm和apu都不够给力
不过要是能彻底的基于GPU的平行OS,那CPU的性能就无所谓了。所以下代
windows 8的要求肯定是大显存,或者,GPU和CPU直接共享 内存。
其实直接 把 cpu 和GPU 共享 内存多好。哈哈
|
|
M********t 发帖数: 5032 | 27 AMD Zen内核架构图首曝:32核心64线程
快科技
vivian
6小时47分钟前
AMD Zen全新架构的处理器将在2017年发布,陆续登陆桌面、服务器等市场。不同于当
前推土机架构的双核合一模块,Zen将回归传统独立核心设计,并且有很特殊的组合方
式。此前我们就曾介绍过,Zen处理器的基础模块叫做“Zeppelin”(齐柏林/ZP),今天
我们第一次看到了它的基本架构图:可以清楚地看到,每一个Zeppelin模块都有8个物
理核心(16个线程),每核心512KB二级缓存,同时每四个核心共享8MB三级缓存,那就是
总计4MB二级缓存、16MB三级缓存。
模块内还集成了PCI-E 3.0/SATA 6Gbps/10GbE控制器、服务器控制器中心、DDR4内存控
制器、安全处理器,然后通过一致性互连总线,与其他模块组成更大规模的产品。
不过很显然,这里展示的是Opteron服务器版本,桌面版显然不会有服务器控制器中心(
Server Controller Hub),而且桌面上预计最多也就只有8个核心,那么一致性互联(
Conherent Interconnect)也就没必要了。
在服... 阅读全帖 |
|
V*******g 发帖数: 678 | 28 T60的机器,最近改装了win 7。忽然发现ATI 独立显卡与系统内存的共享显存(shared
system memory)增加到了800M。看了BOIS没有相关选项可以设置。请问这是什么原因?
会影响系统内存正常的使用吗? |
|
w**********k 发帖数: 1135 | 29
日本国也不是我们建立的啊。
我问你们一个问题吧,如果你们能够回答出来,至少我答应建板 :-)
(本站目前的建板规则是,如果任何一个站长不同意,就不建板)
在Linux里面,共享内存的共同写问题是如何保证的?举个例子如下:
int i=0 ;
i是在共享内存里面的,进程a 的程序如下:
if( !i )
i=1 ;
进程b的程序如下:
if( !i )
i=2 ;
有可能会出现这样的情况,当进程a给i赋值时,进程b判断出i==0,
也对它进行赋值。
谁能告诉我这种情况如何避免,thanks a lot. |
|
d***a 发帖数: 13752 | 30 仔细看了一下chipworks.com贴出来的A5X的die photo,发现A5X用了四个
lower power DDR2内存通道。相比之下,iPad 2的A5只用了两个,iPad的A4
只用了一个。PowerVR GPU应该是和CPU共享内存,这大概是为什么内存通道
也变成了四个。
内存系统是和CPU相当的耗能大户,通道数越多,能耗越大。每个low power
DDR2通道是32-bit数据总线,800MT/s的数据率。四个加在一些,相当于一个
台式机上的两个64-bit DDR2-800通道。
另外,这个160mm^2的A5X真大啊。Intel的Sandy Bridge i3是131nm^2
(用的是32nm工艺)。
附图: A5X, A5, A4的die photo
http://www.chipworks.com/en/technical-competitive-analysis/reso |
|
kn 发帖数: 2446 | 31 家有一闲置PC, 想改造作为HTPC,顺便做文件备份用。
于是跑去买了几个大硬盘做数据盘。
配置如下:
AMD 4核cpu,
8G内存
250GB 系统盘,Win7 Ultimate,
WD 3TB红盘x3, 做数据盘。
家里用的路由是老路由器,54M的,当然我也不指望那文件服务器多快。
现在的问题是,装好了之后,局域网内共享文件速度很慢。其他win7的电脑读写文件也
就是在1MB/s的样子。
HTPC上放个高清电影,其他电脑上看都卡的厉害。
请教大牛,有啥办法能让局域网共享文件提速么(能达到5-6MB/s我就满足了)?
装windows server有帮助么?看很多地方讨论WHS2011,相比win7有啥绝对优势么?
谢谢。有包子 |
|
S******n 发帖数: 5022 | 32 加内存。集成显卡显存是共享内存的,加了内存分就上来了。 |
|
h*d 发帖数: 19309 | 33
这个理解有待商榷啊。
那可不一定,新的共享内存的显卡很可能比老的独立显卡快,而且这年头本子也搞DDR3
,3G+内存,内存速度也没差那么多。 |
|
c***o 发帖数: 2297 | 34 感恩节之后的cyber monday, 看到amazon上价钱变成了35刀,再看看其
他地方,仍然是60刀左右,就下了一单。加了税后38刀多,这个要骂一下,
去年还是不要税的。
结果装机后说显示卡不支持,气得我一直揉自己的眼睛。对比了最低要求,果然
我的HP机器的显示卡是主板带的,那么是买新机器还是买个新显卡? 正巧在网
上看到了便宜的符合要求的显卡,就下了一单,昨天到店里去取。
http://www.frys.com/product/6568363?site=sr:SEARCH:MAIN_RSLT_PG
这种PCI的卡我最会摆弄了,以前在UNIX机器上操作过好多次,先释放静电,再插进
插槽里,在复原,连显示器到新卡上,电源一开显示就出来了,我就放了一半的心。
不过因为还没有装厂家的驱动程序,所以字体很大。捣鼓了半天,装好了,重新启动,
和原先的差不多,不过我的计算机本身才2GB内存,原先是和显示共享内存,现在新
卡本身带1GB内存,一下了宽裕了很多。
启动游戏,一切成功,阔别多年之后,又进入了diablo的世界。
角色有野蛮人,和尚,猎魔人,巫人,法师。其实就是对应着diablo I... 阅读全帖 |
|
D***3 发帖数: 12712 | 35 看见我的头像了吗?
同样的主板,内存,CPU 用独立显卡 内存 7.5 用集成显卡 5.9
估计跟集成显卡共享内存有关. |
|
w******1 发帖数: 520 | 36 GOOGLE 出来的:
fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父
进程, 具有良好的并发性,但是二者之间的通讯需要通过专门的通讯机制,如:pipe
,popen&pclose、协同进程、fifo,System V IPC(消息队列、信号量和共享内存)机
制等, 另外通过fork创建子进程系统开销很大,需要将上面描述的每种资源都复制一
个副本。这样看来,fork是一个 开销十分大的系统调用,这些开销并不是所有的情况
下都是必须的,比如某进程fork出一个子进程后,其子进程仅仅是为了调用exec执行另
一个执行文件,那么在fork过程中对于虚存空间的复制将是一个多余的过程(由 于
Linux中是采取了copy-on-write技术,所以这一步骤的所做的工作只是虚存管理部分的
复制以及页表的创建 ,而并没有包括物理也面的拷贝);
vfork系统调用不同于fork,用vfork创建的子进程共享地址空间,也就是说子进程完全
运行在父进程的地址空间上,子进程对虚拟地址空间任何数据的修改同样为父进程所见
。但是用 vfork创建子进程后,父进程会被阻塞直到子进 |
|
Z*****Z 发帖数: 723 | 37 扔块板儿砖:thread之间是共享内存的,所以通信可以用shared memory,semaphore。
process有独立的内存空间,所以上述方法不适用,取而代之的是信号、文件读写、soc
ket
有什么不同? |
|
r**********g 发帖数: 22734 | 38 找个现成的单线程程序改,尽力优化。记得有谁说过学multi-thread五个阶段:第一阶
段发现多线程好用,于是到处都用;第二阶段发现需要lock,到处都synchronize;第
三阶段发现会死锁,会正确用lock;第四阶段进一步减少lock来加快速度;最高境界要
分析到cache,如何分配共享内存以减少隐蔽的false sharing。
要想写得非常好,有很长的路要走,比如多线程读数据,尽可能把数据放在一个内存
block,能够fit进cache line,这样读数据速度快;多线程写数据,则正好相反,最好
每个线程写自己的block,尽量分开不在同一个cache line。即使不是多线程写同一个
address,写同一个block也会造成隐含的false sharing lock,效率低很多。 |
|
|
z*********n 发帖数: 94654 | 40 这两年网站界一直就在来回这么搞的
其实云这东西,搞了半天概念,说到底就是虚拟计算,这个从vmware就开始了
现在就算大家挪回本公司自己host也是这个模式
用vmware来虚拟,但是vmware超级贵,所以大家用神马openstack之类的
最主要原因是server本身越做越强大,一般马公写的code跟不上,传统单机模式浪费硬件
所以就一堆硬件连在一起共享cpu,共享内存,主要其实也是一种资本主义管理模式,
不让每个奴隶随便闲着。你想闲着?多余的计算能力赶紧参与干别的去!
当然另一个趋势也有单台机器都搞不定得,比如大数据,就用hadoop把几千台几万台联
合在起义来干一件大事
总之大家联合起来好干活
这所谓private cloud |
|
c*m 发帖数: 1114 | 41 集成显卡共享内存是一个因素,Intel的i3/i5胶水CPU+GPU是另一个导致内存性能5.9的
罪魁祸首。 |
|
kn 发帖数: 2446 | 42 不过我那个得5.9的i5是750,没有集成显卡
集成显卡共享内存是一个因素,Intel的i3/i5胶水CPU+GPU是另一个导致内存性能5.9的
罪魁祸首。 |
|
s******e 发帖数: 431 | 43 我用N40L, mod bios, upgraded to 8g RAM windows 2008 R2. 内存一般就用到1.8G左
右,但是打算以后运行几个虚拟机,所以升级到8G。crashplan for backup, 备份
server到external harddrive, 备份家里其他机器到server。installed skydrive for
sharing, 我发现可以skydrive可以方便远程访问本地文件。Calibre, for ebook
server. iTune for home server sharing. 其他就是文件共享了。机器非常安静,目
前非常满意。我一般都rdp manage server. 有个web interface更好,但是没有也无所
谓。 |
|
d*a 发帖数: 1863 | 44 实验室需要一台大家共享做CFD
估计需要64G 或者更高的内存
没玩过这么高端的机器 请大侠支个招。。。。 |
|
s******s 发帖数: 13035 | 45 主要问题是air内存太小,还要windows共享内存,太挫了。
air上装个ubuntun倒是很合适 |
|
|
r******s 发帖数: 925 | 47 【 以下文字转载自 robotics 讨论区 】
发信人: robotics (机器人技术), 信区: robotics
标 题: 实时进程间通讯问题
发信站: BBS 未名空间站 (Tue Jun 24 23:45:44 2008), 转信
两个不同的real time进程运行在不同的CPU上面,使用一段共享内存进行同步
内存容量足够大,我想采用的方法,就是划分块
A块属于A进程写,B只读的区域,
B块属于B进程写,A只读的区域。
由于没有使用中断,两边都是在固定的时钟周期内写自己的区域同时读对方的区域
这样编程比较简单,我想了解一下可能出现的后果,
比如,A读了B正在写的区域
那么我可以为每个块设置一个标志位,代表在写,在读,或者ready
有没有哪位大侠给出一个简单但是确保安全的办法? |
|
b******n 发帖数: 592 | 48 最近需要几个process之间共享内存,我选择将内存都map到一个地址。具体process可以
使用的地址有什么限制么?google没看到什么这方面的介绍。应该怎么选取map到的地址
呢? |
|
k*****2 发帖数: 252 | 49 不够严谨。。。要考虑操作系统的内存对象
比如unix里的消息队列,共享内存和有名信号灯
LOL |
|