【问题标题】:Preparing for a Masters degree in Distributed Systems准备攻读分布式系统硕士学位
【发布时间】:2011-04-08 20:59:51
【问题描述】:

我打算在Networks and Distributed Systems.我的大学攻读硕士学位虽然我不确定我是否会被录取,但我想提前做好准备。到目前为止,我对分布式系统的唯一了解是我在 Tanenbaum 的 Modern Operating Systems 书中读到的所有内容(顺便说一句,我完全喜欢),这非常少。当然,我接下来打算买他关于分布式系统的书,但我想我曾经在这里问过一次。

我可以事先准备任何特定的书籍、编程语言(最重要的)或任何特定的计算机科学概念吗?我有 3 个月的时间。

欢迎提出任何建议。包括课程本身的 cmets :)

【问题讨论】:

  • 讲座内容因大学而异,即使是同名讲座。我建议寻求当地的建议:课程大纲是否描述了假设的先验知识?你知道有谁参加了那个讲座并能给你指点吗?或者,如果一切都失败了,请尝试询问讲师。
  • @merion:我可以做到,但我正在寻找一些实用的见解。大学不能代替现实生活中的实践经验:)

标签: distributed-computing


【解决方案1】:

创建一个简单的客户端 - 服务器应用程序。它可以是 Java 或您最喜欢的语言。如果您不熟悉客户端 - 服务器内容,请从您最熟悉的语言开始。然后,如果您计划就读的大学使用另一种编程语言,请尝试在模仿他们使用的环境中重新创建相同的程序。

我见过一些人在编程方面还算不错,但从未编写过简单的客户端/服务器应用程序。或者其他不熟悉 Linux 或 Java 的人。对这些人来说,最初的几个月非常艰难。课堂上已经有足够的东西要学,同时学习新的操作系统和/或语言通常并不酷。

您可以执行的典型客户端/服务器应用程序是“数学提供者服务”。基本上,您的服务器侦听端口并且客户端发送请求。为简单起见,您可以发送纯文本请求(例如:“add;12;34”),服务器可以回复类似“answer:46”的内容。

没什么太复杂的,但如果你从来没有做过那样的事情,我真的会在开始你的主人之前做到这一点。

了解“如何”做事。这是非常重要的。您可以期望大师有相当多的理论知识,他们可能不会教您如何打开套接字,将其绑定到端口,您可以期待什么样的异常(是的,我正在用 Java 编程)等等。您很可能需要实现锁定算法、负载平衡等。但是为了做到这些,你需要了解如何做一些基本的事情!

如果您是初学者,我推荐 George Colouris 的《分布式系统:概念与设计》(这个名字可能有点不对,这是我的想法)。它几乎涵盖了所有内容,包括基础知识、Lamport、TCP/UCP/IP。例如,那本书中客户端/服务器的 java 示例,imo,比你在网上找到的任何东西都要好得多。没有完全不同(服务器就是服务器......),但我认为它们更容易理解。

一旦您熟悉了这一点,您可能想尝试一些更强大的东西。以我的经验,你会花很多时间配置东西(为什么它不起作用?嗬!这是 claspath!嗬!那个文件不是世界可执行的!嗬!这些类应该在 WEB-INF/类,而不是 WEB-APPS)。所以你可以尝试在家里设置一个小的 Tomcat/Glassfish 服务器。尝试在其上运行 SOAP 或 JMS 并编写使用这些服务的客户端。然后,您将领先于您的同事 :)

【讨论】:

    【解决方案2】:

    剑桥大学出版社的《分布式计算 - 原理、算法和系统》一书也是分布式计算大师的好书,因为它涵盖了所有关键的 DC 概念

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 2011-11-05
      • 1970-01-01
      • 2023-01-05
      • 2014-01-02
      相关资源
      最近更新 更多