Distributed computing 准备攻读分布式系统硕士学位

Distributed computing 准备攻读分布式系统硕士学位,distributed-computing,Distributed Computing,我计划在我的大学里攻读网络和分布式系统方面的硕士学位。虽然我不确定我是否会被录取,但我想提前做好准备。到目前为止,我对分布式系统的唯一了解是我在Tanenbaum的《现代操作系统》(Modern Operating systems)一书中读到的所有内容(顺便说一句,我非常喜欢这本书),这本书的内容非常少。当然,我计划下一步拿到他关于分布式系统的书,但我想我已经在这里问过一次了 有没有什么特别的书,编程语言(最重要的)或任何特别的计算机科学概念,我可以事先准备?我有三个月的时间 欢迎提出任何建议。

我计划在我的大学里攻读网络和分布式系统方面的硕士学位。虽然我不确定我是否会被录取,但我想提前做好准备。到目前为止,我对分布式系统的唯一了解是我在Tanenbaum的《现代操作系统》(Modern Operating systems)一书中读到的所有内容(顺便说一句,我非常喜欢这本书),这本书的内容非常少。当然,我计划下一步拿到他关于分布式系统的书,但我想我已经在这里问过一次了

有没有什么特别的书,编程语言(最重要的)或任何特别的计算机科学概念,我可以事先准备?我有三个月的时间


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

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

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

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

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

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

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


一旦你熟悉了这一点,你可能想尝试更强大的东西。根据我的经验,您将花费大量时间配置东西(为什么它不工作?呵呵!是CLAPATH!呵呵!该文件不是世界可执行文件!呵呵!这些类应该在WEB-INF/类中,而不是WEB-APPS中)。因此,您可以尝试在家中设置一个小型Tomcat/Glassfish服务器。尝试在其上运行SOAP或JMS,并为使用这些服务的客户机编写代码。然后,您将比您的同事领先几英里:)

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

各大学的讲座内容往往各不相同,即使是同样命名的讲座。我建议寻求当地的建议:课程大纲是否描述了假定的先验知识?你知道有谁听过那个讲座,能给你指点吗?或者如果其他方法都失败了,试着问讲师。@merion:我能做到,但我在寻找一些实际的见解。大学不是现实生活实践经验的替代品:)