【问题标题】:Hardware knowledge in computer science?计算机科学中的硬件知识?
【发布时间】:2009-05-14 13:41:23
【问题描述】:

作为一名计算机科学专业的学生,​​要完全理解“操作系统”和“计算机体系结构”课程需要多少硬件知识?

【问题讨论】:

  • 澄清一下,听起来您是在问,作为一名计算机科学专业的学生,​​您需要对硬件有多少了解才能完全理解“操作系统”和“计算机体系结构”课程。对吗?
  • @yx:我想他是在问你是否需要了解硬件才能了解操作系统和计算机体系结构等内容。不过,我不确定。这是一个非常神秘的问题。
  • @mike 这更有意义,有那么一秒钟我以为他将操作系统视为硬件

标签: hardware computer-science


【解决方案1】:

在那个层面上,你知道的越多越好,但最基本的需求是计算机架构的布尔逻辑设计。了解如何从基本逻辑单元(和、或、时钟)设计寄存器、加法器、多路复用器、触发器等。您大概可以从对 ASM、内存映射 IO 和中断的基本了解开始了解操作系统。

编辑:我不确定你所说的“硬件”是什么意思,你认为逻辑设计是硬件吗?或者你说的是晶体管?我想了解半导体的基础知识不会有什么坏处,但是架构是在真正的硬件级别之上抽象的。我还要说操作系统是在架构之上抽象的。

【讨论】:

    【解决方案2】:

    在最基本的层面上,您应该了解Von Neumann architecture 以及它如何映射到现实生活中的计算机。在此之上,越多越好。不仅仅是操作系统 - 在垃圾收集和 VM 语言中,堆、堆栈和指令是如何工作和执行的,因此您知道什么会表现不佳以及如何改进它以充分利用架构。

    【讨论】:

      【解决方案3】:

      两个想法:

      首先,一切都是并行的。多线程是一回事,多核是另一回事。缓存、内存架构、资源分配等方面存在大量问题。其中许多问题已为您“处理”,但您对金属了解得越多越好。

      第二,硬件中的数字表示。这与计算机科学本身一样古老,但它仍然让每个人都感到困惑。不知道是谁这么说的,但它是完美的:“将无限的数字映射到有限的比特数涉及近似值。”理解这一点和一般的数值分析将一次又一次地节省你的培根。序列化和字节序等。

      而且,这很有趣!

      【讨论】:

        【解决方案4】:

        “计算机科学与计算机无关,正如天文学与望远镜有关。”

        【讨论】:

        • 是的,但您的类比并不完全正确。计算机架构与计算机有关,就像(插入一些望远镜设计领域)与望远镜有关。
        • 一个适当的引用,只要它没有被错误地解释。对望远镜一无所知的天文学家不太可能在天文学方面出类拔萃。
        • 正是这一点。如果你不知道你的望远镜是如何工作的、它背后的物理原理、它的特点和局限性,那么你就是一个非常糟糕的天文学家。
        • 电台的人呢?理论家呢?轨道和位置的数学模型呢?望远镜与此无关。
        • @S.Lott:尽管望远镜的物理特性并不能控制它们的工作,但望远镜的运行却反映了它们的科学历史以及它们可以对世界进行的各种观察(什么是不能被证伪的理论?)我认为这很好地类比了为什么硬件对于计算机科学家来说很重要。
        【解决方案5】:

        当您尝试针对目标硬件进行优化时,它会有所帮助。以硬盘驱动器为例,它有助于编写利用局部性来最小化寻道时间的软件。如果您只是将硬盘视为“它可以工作”,并将文件和数据粘贴到各处,您将遇到严重的碎片问题并导致性能下降。

        在设计操作系统时会考虑很多这方面的因素,因为您要尝试最大限度地提高性能。因此,简而言之,了解它会有所帮助,而且肯定不会有任何伤害。

        【讨论】:

          【解决方案6】:

          确定 Comp Sci 研究通常所需的硬件知识的基线知识集的一个好方法是访问各种著名大学的课程网站。对我来说,我会查看麻省理工学院、斯坦福大学、伊利诺伊大学厄巴纳/香槟分校 (UIUC)、佐治亚理工学院等的 Comp Sci 课程。然后我会从中得到一个平均的理解。

          此外,您还可以亲自致电您正在就读或申请的大学的指导顾问,以获得对您需求的个性化视图。他们将根据您的愿望为您提供指导。教授更甚。他们出奇地容易接近并且非常愿意就此类事情提供反馈。

          最近,我正在考虑攻读硕士学位。作为 UIUC 的校友,我给那里的几位老教授发了电子邮件,告诉他们我的兴趣。我问了他们几个问题,旨在了解研究生院和他们的观点。他们分享并大多数邀请我打电话和聊天。

          就个人而言,我同意@CookieOfFortune。您对计算机内部工作原理的了解越多,您在编写软件时就越能利用它来发挥自己的优势。也就是说,您并不需要真正高度了解电子学的物理学。当然,这很有趣,但您的重点应该放在电路、逻辑等上。其中大部分内容应该在一个好的操作系统课程中介绍,或者至少为您提供跳板,让您自己了解更多信息。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-07-07
            • 1970-01-01
            • 2013-01-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-22
            • 2010-12-22
            相关资源
            最近更新 更多