为分布式系统硕士学位做准备

发布于 2024-09-17 21:23:21 字数 279 浏览 4 评论 0原文

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

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

任何建议都将受到欢迎。包括对课程本身的评论:)

I am planning to take a Masters degree from my university in Networks and Distributed Systems. Though I am not sure whether I will be accepted or not, I had like to prepare for it before hand. The only thing I know about distributed systems as of now is all that I read in Tanenbaum's Modern Operating Systems book (which I totally loved by the way), which was very less. Of course I plan on getting his book on Distributed Systems next, but I thought I had ask here once.

Is there any specific book, programming language (most important) or any specific concept of computer science that I can prepare beforehand? I have 3 months time.

Any suggestions would be welcomed. Including comments on the course itself :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜光 2024-09-24 21:23:21

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

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

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

这并不是太复杂,但如果你从未做过类似的事情,我真的会在开始你的主人之前这样做。

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

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

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

Create a simple Client - Server application. It can be in Java or the language you fancy the most. If you are new to Client - Server stuff, start with the language you are the most familiar with. Then, if the university you plan to attend use another programming language, try to re-create the same program in a environment that mimic what they use.

I've seen people that weren't so bad at programming, but never programmed a simple client/server application. Or others that weren't familiar with Linux nor Java. The first few months are very hard for these people. There is enough stuff to learn already in the class, learning a new OS and/or language at the same time is usually not cool.

A typical client/server app you could do is the "math provider service". Basically, your server listens on a port and the client sends requests. To keep it simple, you can send plain text request (eg: "add;12;34"), the server can reply something like "answer:46".

It's nothing too complex, but if you never did anything like that, I would really really do that before starting your master.

Get to know "how" to do stuff. It is very important. You can expect the master to be quite a bit theoretical, they probably won't teach you how to open a socket, bind it to a port, what are the kind of exceptions you can expect (yeah, I'm programing in Java) and so on. You will most likely be expected to implement locking algorithm, load balancing stuff and so on. But in order to do those, you need to understand how to do the basic stuff!

If you are a beginner, I recommend Distributed Systems: Concept and Design by George Colouris (the name may be wrong a bit, that's on the top of my head). It covers pretty much everything, the basics, Lamport, TCP/UCP/IP. For instance, the java examples of client / server in that book are, imo, much better than anything you'll find on the net. There're not totally different (a server is a server...) but I think they are much easier to understand.

Once you are familiar with this, you may want to try something more powerful. In my experience, you'll spend a lot of your time configuring stuff (why it isn't working? Ho! It's the claspath! Ho! That file is not world-executable! Ho! These classes should be in WEB-INF/classes, not WEB-APPS). So you can try to setup a little Tomcat/Glassfish server at home. Try to run SOAP or JMS on it and code a client that uses those services. Then, you'll be miles ahead your colleagues :)

梦与时光遇 2024-09-24 21:23:21

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

The book "Distributed Computing - Principles, Algorithms and Systems" by cambridge university press is also a great book for masters in distributed computing as it covers all the key DC concepts

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文