注册
登录
会员
搜索
标签
统计
帮助
商务吧
»
在线学院
»
硬件DIY
» DIY高手经验 死机与内存的关系
搜索
‹‹ 上一主题
|
下一主题 ››
19
1
2
››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
DIY高手经验 死机与内存的关系
mony
mony
管理员
个人空间
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2008-3-22 16:57
只看该作者
DIY高手经验 死机与内存的关系
从
电脑
出现至今就一直被死机伴随着,几乎没有谁的
电脑
从不遭遇死机。在使用过程中,偶尔一次死机应该算是正常现象,如果经常死机,
电脑
就存在一定的问题了。那么,
电脑
为什么会死机呢?有哪些因素会造成
电脑
死机呢?要搞清楚这些问题,首先要弄清楚,到底什么是死机?为什么会发生死机?
造成死机的原因是多种多样的,有软件问题,有
硬件
问题,不过,死机的本质都是一样的。
早在N年前,我主持某大学计算机专业本科生毕业答辩的时候,就向某学生提出过这样两个问题:
1.电脑死机的时候,
CPU
在干什么(或者说,
CPU
处于什么状态?)”
2.在计算机中,无论指令代码还是数据代码,都是用二进制来表示的,请问,CPU是如何判定某二进制代码是指令代码还是数据代码? //本文引用自
www.45it.com
电脑软硬件应用网
其实,上面两个问题的实质是一样的,主要涉及到CPU是如何取得指令和如何执行指令的,把这两个问题搞清楚了,死机的问题也就容易理解了。
首先来看看,冯.诺依曼结构的电脑是如何取得指令、又是如何执行指令的:
冯.诺依曼(1903~1957),匈牙利裔数学家,1945年戈德斯坦、勃克斯等人,联名发表了一篇长达101页纸的报告,即计算机史上著名的“101页报告”,提出了现代计算机结构的理论模型--存储程序计算机模型(Stored Program Computer),这就是今天计算机最基本的原理模型。
这种结构类型计算机工作的时候,首先必须把完成工作步骤和相关的数据用二进制代码表示出来(编写程序),然后再把它们保存在计算机的
内存
中,CPU依次从
内存
中读相关的指令代码和数据进行运算,直到完成整个运算过程并输出结果。
要完成这样的运算过程,人们在
设计
运算器(CPU)的时候,首先就要考虑的是,在一段内存中,CPU怎样区分指令代码和数据代码。熟悉计算机的人都清楚,指令用来确定“做什么”和“怎样做”,数据是“做”的时候需要原始数。
比如:要计算机做1+2=?中,“+”表示要做什么和怎样做,1和2则是做的时候需要的原始数。现在假设某CPU中,“+”用二进制“00000001”来表示,“1、2”分别用“00000001、00000010”来表示。那么,这段程序存入内存中就是这样的:
XXXX1:00000001
XXXX2:00000001
XXXX3:00000010 前面的XXXX1 XXXX2 XXXX3表示内存的地址
从上面可以看出,“+”指令和被加数是完全相同的,当然,这是我故意这样假设的,但是,在实际情况中,这种情况是大量存在的。在正常情况下,CPU只能把XXXX1内存中的00000001作为指令,XXXX2内存中的00000001作为被加数才能得到正确的结果。那么CPU如何才能做到不把第二个00000001也当成“+”呢?
1.人们把内存的某个地址规定为起始地址(又称为复位地址),也就是说,当计算机开机或者被强行复位(也就是机箱上那个重启动按钮按下的的时候),CPU立即跳转到这个地址中,并且把它里面的代码作为指令来执行,同时根据这个指令的长度和格式判断下一条指令在什么地方。
对于X86系列CPU(也就是现在人们常用的什么奔XX、赛XX系列),它的复位地址是FFFF0,如果表示成逻辑地址则是:FFFF:0000。对DEBUG比较熟悉的朋友或者会在一些高级语言中嵌入汇编语言的朋友可以这样做一个试验:
用DEBUG执行一条指令(这是一条无条件跳转指令):jmp FFFF:0000,或者在高级语言中嵌入这条汇编指令,执行后,你就会发现,计算机重新启动了。其实,用程序控制计算机重启的最本质的操作就是这样的。
2.给各种指令规定了相应的长度和格式。比如:某数+某数这条指令就规定:这条指令的长度是3个字节,其中第一个字节表示“+”,后面两个字节表示被加数和加数。于是,当CPU到达这个指令后,就自动把第一个代码作为指令,后面两个代码作为数据,依次类推,第4个代码就必然是指令.....
现在假设,CPU在执行指令的时候因某种原因,误把本来是数据的代码当成了指令,结果除了是计算结果出错外死机也就是必然的了。
还是以前面那个加法程序为例:当CPU把第三个代码(也就是00000010)当成了指令,而恰好这个代码是一跳转指令,CPU的执行结果将是:XXXX3--跳转--执行--跳转--执行........进入周而复始的乱条,不过注意,虽然是在乱跳,CPU却始终是在不停的正常地执行指令,所谓的“乱”是对用户而言,对CPU来说却是正常的。
还有一种情况就是,如果恰好跳转到了FFFF:0000这个地址,计算机便重新启动了。呵呵,,这下搞清楚了为什么计算机有时会“莫名其妙地重启”了把。
有朋友可能会问,内存中怎么可能有如此多的跳转指令呢?是怎么形成的呢?
计算机中的最小存储单位是字节(8个二进制位),指令功能、长度和格式也是在一个字节中规定的。因此,平均来说,每256个代码中就有可能出现一条跳转指令(8位二进制数最多表示256)。
还有一种情况:现在计算机的内存已经达到数G的存储容量,绝大多数都不可能用到这个极限,也就是说,有相当长一段区域是空白,即使内存只有数百M的计算机中也不可能把内存用完,同样存在相当数量的空白区域。特别需要注意的是,空白区域不等于里面就没有代码。因为,在数字逻辑电路中,不可能存在“没有”这种情况,即使是表示没有(叫做“空”--NULL)也是要用一个代码来表示的(NULL用00000000)来表示,所以,空白区域内的代码是“11111111”或者干脆就是一些随机代码。X86系列的CPU“11111111”是一条单字节的指令nop--空操作指令,当CPU跳转到这些空白区域时,虽然不会发生再次跳转的现象,CPU也会逐条执行这些代码,执行到最后一个内存后,CPU将会回到内存的0号起始地方然后又从头开始执行程序。
有朋友问了,如果
硬盘
出错会不会死机呢?这个问题要这样看。CPU从
硬盘
中调入数据的时候会对
硬盘
数据做比较严格的校验(一般是CRC--循环冗余校验),如果校验成功,则不会死机,如果校验失败,CPU会给予用户提示“校验失败或者
文件
损坏”--当然也不会死机;只有在
硬盘
上的
文件
已经损坏,
硬盘
把数据传给CPU的时候“自己没有发现”造成的数据混乱。所以,
硬盘
数据损坏后,只能造成数据丢失,无法执行程序,也可能无法启动计算机。不过,有一种情况例外,那就是
硬盘
上的某区域做成的虚拟内存,如果这个区域损坏是有可能死机。
内存的启动监测问题,计算机在开机的时候会对内存进行检测,这种检测的方法不外乎有如下一些:
1.最简单的检测方法:把内存从头到尾读一遍,能够读出数据便认为内存正确。
2.稍微复杂一些的检测方法:把内存从头到尾读、写一遍,能够读写数据便认为内存正确。
3.再复杂一些的检测方法:把内存从头到尾读、写数遍能够读写数据便认为内存正确。
4.简单的校验检测方法:把内存从头到尾读、写数遍,读出的数据和写入的数据进行比较,能够读写、并且读的数据和写的数据相同,则认为内存正确
5.比较复杂的校验检测方法:对内存读写的数据同时进行奇偶校验和CRC校验,这种方法多用于高档服务器,同时,能够做奇偶校验的内存(ECC内存)价格比普通内存贵10倍以上(不知道为什么)。
UID
4
帖子
2135
精华
8
积分
15470
阅读权限
200
在线时间
878 小时
注册时间
2007-3-23
最后登录
2009-1-7
查看详细资料
TOP
强强
强强
超级版主
个人空间
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2008-3-22 17:13
只看该作者
学习,顶
┊⿲☆ ︵︵︵︵Оoヤ愛上伱こ``從来~~~```````~~`
☆⿲┊(Love)You) ヽoo 不繒後悔o〆^o^ ~~~~~
☆ ╲╱╲╱〃 愛伱就是```~~~~
‘.如果愛,请深愛.、
過了奈何橋,喝了孟嘙湯.咿嘫┊記啲伱
UID
481
帖子
1709
精华
2
积分
13823
阅读权限
150
在线时间
329 小时
注册时间
2007-8-22
最后登录
2008-8-7
查看详细资料
TOP
mara67359
初级会员
个人空间
发短消息
加为好友
当前离线
3
#
大
中
小
发表于 2008-11-26 10:25
只看该作者
欧美巫妖王之怒前奏,冰龙降临各大主城
在昨日,在欧美服巫妖王之怒即将发售之时,暴雪为了让玩家提前感受到巫妖王的气息,举行了天灾军团大举入侵联盟部落主城的活动,无数的冰龙和憎恶从天而降,场面十分壮观。
欧美玩家面对这次突然袭击很快团结起来进行顽强抵抗,包括主城所在的NPC都全力出击。
我的个性签名:
---------------------------------------------------------------------------------------------------------------------------
MapleStory Mesos
Maple Story Mesos
MS Mesos
WARHAMMER ONLINE GOLD
Cheap WARHAMMER ONLINE GOLD
UID
906
帖子
20
精华
0
积分
120
阅读权限
20
在线时间
0 小时
注册时间
2008-11-10
最后登录
2008-11-26
查看个人网站
查看详细资料
TOP
golfclubs
初级会员
个人空间
发短消息
加为好友
当前离线
4
#
大
中
小
发表于 2008-12-2 00:03
只看该作者
高尔夫规则
·比赛
1、高尔夫的比赛是:依照规则球从发球区被打出以后直至球被入洞为止。常见的有比洞赛、比杆赛。
2、球员不得商议、排除任何规则的应用或免除已被判决的处罚,否则将取消比赛资格。
3、比赛运到时:A、取消比赛资格;B、在发球后,五分钟内赶到发球地点,并做好准备,对其未及时发球的处罚可以以:比洞赛,第一洞负;比杆赛,第一洞加罚二杆。代替取消资格的处罚。
·成绩的计算
高尔夫(
clone golf clubs
)运动被称为绅士运动,当技术水准不同的球友汇聚在一起比赛时,为了使比赛更公平、更具竞争,水平高的球友要让水平较差的球友,如何计算每一位球员让分点的多少,即出现了差点。下面向您介绍最常用的差点计算方法:
1、平均法:
差点=五次比赛的平均成绩-标准杆
2、新新贝利亚计算法
A、从18洞中任选12洞的杆数总和
×
1.5=总数
B、从此总杆数减去标准杆后
×
0.8=差点
即(12洞杆数总和
×
1.5—标准杆)
×0.8=差点
C、净杆=总杆-差点
·高尔夫(
taylormade tour burner driver
)英语
球童caddy 球道fairway 发球区/球座tee
果岭green 球杆club 木杆wood 铁杆iron
推杆putter 界外球OB(out of bounds)
障碍hazard 沙坑bunker 标准杆par
低于标准杆一杆/两杆/三杆:
birdie/eagle/albatross
高于标准杆一杆/两杆/三杆:
bogey/double bogey/triple bogey
左曲球draw/hook 右曲球slice/fade
总杆gross 净杆net 差点handicap
休息亭half-way house 旗杆pin
GOLF
UID
1186
帖子
10
精华
0
积分
60
阅读权限
20
在线时间
0 小时
注册时间
2008-12-1
最后登录
2008-12-2
查看个人网站
查看详细资料
TOP
dsf848036
初级会员
个人空间
发短消息
加为好友
当前离线
5
#
大
中
小
发表于 2008-12-6 00:55
只看该作者
你写的确实不错~~~~`~~顶
你是我的活着的理由, 你知道不
你是我生命的支柱 , 你知道不
我发错了,你知道不 你写的确实不错~~~~~~顶
北京工商注册
工商注册
代办北京工商注册
代理北京工商注册
办理北京工商注册
UID
1307
帖子
13
精华
0
积分
78
阅读权限
20
在线时间
0 小时
注册时间
2008-12-5
最后登录
2008-12-6
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
19
1
2
››
江西IT渠道品牌对应代理商
办公设备对应代理商
品牌机/笔记本对应代理商
耗材对应该代理商
网络产品对应代理商
数码产品对应代理商
DIY硬件产品对应代理商
商务吧IT营
选购专题
褒贬IT
行情动态
IT业界
招聘求职
站务服务
咨询问答
购机经验交流
维权投诉
团购砍价
IT产品评测
互动商务吧
手机专区
活动专区
高校联盟
江西师大
江西财大
江西农大
南昌大学
南昌理工
蓝天学院
东华理工
大宇学院
南昌教育学院
江西城市学院
航空学院
申请开通高校
二手交易
在线学院
硬件DIY
品牌PC
办公OFFICE
操作系统
软件网络安全
数码音影
江西地市资讯
九江
九江IT业界资讯
九江IT促销资讯
九江IT公司名录
赣州
赣州IT业界资讯
赣州IT促销资讯
赣州IT公司名录
新余
新余IT业界资讯
新余IT促销资讯
新余IT公司名录
上饶
上饶IT业界资讯
上饶IT促销资讯
上饶IT公司名录
景德镇
景德镇IT业界资讯
景德镇IT促销资讯
景德镇IT公司名录
抚州
萍乡
宜春
吉安
鹰潭
休闲娱乐
疯狂贴图
游戏人生
梭泡灌水
音影社区
≡版务会所≡
友情链接申请
控制面板首页
编辑个人资料
积分记录
公众用户组
个人空间管理
升级个人空间
基本概况
流量统计
客户软件
发帖量记录
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计