看到标题你可能会问了,说好的java课程,你跟我扯计算机基础?别着急,学编程不可一蹴而就。我们必须对计算机系统有一个起码的认识必须知道程序是如何运行的,又在哪里运行。这其中的数据流向又是怎样的,只有清楚这些知识我们才能在开发的过程中对代码和数据有一个起码的掌控能力。 你可能又会问了,为什么一开始要讲主板?因为我们程序的输入输出都依赖主板和常驻在主板上的器件,如CPU、内存条。我们先来看实际的主板。 几个重要概念: DMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。 百度百科 简单来说DMA是主板上一个独立的芯片,可以被用来控制数据从硬盘加载到内存,或者从内存回写到硬盘的。试想如果没有这个芯片。我们每次读写数据都要先把数据发送到CPU,让CPU输出到其他目标内。这个过程占用了CPU资源会导致我们在复制和传输文件的过程中系统假死,正是因为有了这个芯片,我们可以在传输文件的同时,还可以做其他工作而系统负载并不会升高。 现在我们以更专业一点的角度来谈谈QQ的运行过程。 概念:由各类内存设备(注意不包括硬盘等外设)组成的一段整体的、虚拟出来的地址空间,这么说可能有点抽象,我们来看图。CPU是如何看待这些设备的。老王:CPU你怎么看?CPU:我看个屁,这不就一整个嘛。 今天的课就到这里,我们应该对计算机系统有了一个初步的了解,这将会对我们后面的学习打好基础。有任何疑问可以私信我,接下来我们将会学习如何安装集成开发环境(IDE,Integrated Development Environment ),即将推出~ 本文章同时发布在微信公众号:Java学步园,欢迎关注点个赞再走~
前言
主板长啥样?
这是一块华擎H310主板,可以看出它有一个CPU插槽(橙色),两个内存插槽(红色),三个PCIE插槽,其中紫色可以插上显卡,两个白色框可以用来插上声卡或网卡等设备。所有的内存设备都会直接或间接与CPU关联,因为计算机系统内只有CPU可用来做逻辑运算。当然,现代显卡也已经支持浮点计算了。对主板有了概念,下面我们来看程序是如何被加载和运行的。QQ是如何运行的?
以QQ为例。简单来说分为以下几个步骤。
主板硬件逻辑
按照我们上面的思路,可以得到以上这张简化过的主板逻辑图,首先我们回想一下QQ的运行是什么样的。可以看到其中多了一样东西——DMA。再谈QQ的运行过程
内存地址空间
我们可以看出,CPU始终通过总线控制这些内存设备的输入输出。把这些设备当做一个整体的内存空间的好处在于CPU不需要在意某段内存空间是什么,直接写入或读取就完事了,以上图为例:
0x00000000~0x99999999为内存(这里指的内存条)空间
0xA0000000~0xE9999999为显存空间
0xF0000000~0xFFFFFFFF为网卡空间
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算