Chapter 5. Threads
Back in the good old days of the Net, circa the early 1990s, we didn’t have the Web and HTTP and graphical browsers. Instead, we had Usenet news and FTP and command-line interfaces, and we liked it that way! But as good as the good old days were, there were some problems. For instance, when we were downloading kilobytes of free software from a popular FTP site over our 2400bps modems using Kermit, we would often encounter error messages like this one:
%ftp eunl.java.sun.comConnected to eunl.javasoft.com. 220 softwarenl FTP server (wu-2.4.2-academ[BETA-16]+opie-2.32(1) 981105) ready. Name (eunl.java.sun.com:elharo):anonymous530- 530- Server is busy. Please try again later or try one of our other 530- ftp servers at ftp.java.sun.com. Thank you. 530- 530 User anonymous access denied. Login failed. ftp>
In fact, in the days when the Internet had only a few million users
instead of a few hundred million, we were far more likely to come
across an overloaded and congested site than we are today. The
problem was that both the FTP servers bundled with most Unixes and
the third-party FTP servers, such as wu-ftpd, forked a new process for each connection. One hundred simultaneous users meant 100 additional processes to handle. Since processes are fairly heavyweight items, too many of them could rapidly bring a server to its knees. The problem wasn’t that the machines weren’t powerful enough or the network fast enough; it was that the FTP servers were (and many still ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access