A person can add a disc drive or a hard drive via the USB, and give a computer extra hardware doing that.
So what if you have a computer that does not have a motherboard that can accept a higher speed CPU or accept more RAM. Or assume you can’t open it to change or add parts.
Are there devices that have extra RAM or processors that you can hook up to the USB?
If USB is too slow are there other ports where this could be done?
What about cloud computing where you pay a fee and offer up your unneeded RAM and CPU processing power over the internet in exchange for getting to use other people’s when they aren’t using theirs. Is that done commercially yet?
No, external buses like USB are just too slow for this kind of thing. Sometime in the early 1990s MS was floating around a PC concept that was a bit like a component stereo system. The CPU came in its own little box and so did the motherboard and the drives, etc. No one really liked it. If youre qualified to be upgrading components like these then chances are youre qualified to crack open the case and replace cards or motherboards too. Not to mention the added cost of external everything and having 5 wall warts powering everything.
>What about cloud computing where you pay a fee and offer up your unneeded RAM and CPU processing power over the internet in exchange for getting to use other people’s when they aren’t using theirs.
You cant use my RAM because internet speeds in best case scenarios are 1,0000 times slower than the speed your CPU talks to your RAM. Youd just be wasting time.
You can’t give yourself any real RAM, but in Vista (and I assume Win 7?) you can attach a USB flash drive up to 4 GB in size for the “ReadyBoost” feature. It uses the flash drive for more memory cache.
Basically, sometimes there’s too much stuff to keep all in RAM, so it puts that in an allocated spot on the harddrive called the pagefile. Since flash drives are faster than hard drives, ReadyBoost can sometimes give you a noticeable increase in speed if you use a large pagefile.
Just a clarification. USB drives are actually much much slower than hard drives because USB 2.0’s transfer rate is slow. Readyboost works, and I use that term liberally, because the local hard drive is usually busy so its faster to write to a USB drive than a busy hard drive.
As noted above, when you use the web, you’re already shifting some of the processing to some other machines. In principle, you could expand on that to do more of the same thing locally over USB. In reality, there are two problems with that:
USB 2.0 and even fireware is slower than the gigabit ethernet port(s) pretty much all current machines have and you can get much higher speed connections than that on a local network by shifting to stuff like FibreChannel - though it’s not cheap (in the order of $400 per end-point, plus a $2000++ switch if you want to easily connect multiple machines together). Fibre channel is used a lot for connecting to high-speed disc arrays.
Even with FibreChannel type connections, the transfer speed is very slow when compared to the speed that RAM can be read/written by the CPU if it’s all mounted in a single well-designed package like a single computer. Also, if machine A wants to read from machine B, this doesn’t only slow down machine A, it also adds processing overhead on machine B. Basically, to use those kinds of setups efficiently, the software needs to be designed from the ground up with distributed use in mind, and not all software problems can easily be split up like that.
The only way you can “really” distribute generic programs with any efficiency is by running the whole program on the other machine and have the GUI or other I/O redirected over the network - X Windows and VNC are technologies that do this fairly well - though you still need a relatively high-speed, low-latency network for any graphically-intense applications.
You get a lot less of those problems if you just put more processors in a single package; hence the popularity of multi-core and multi-processor machines. Programs still need to be designed to use more than one core, but that’s easier to do than “real” distribution, and if you run multiple programs on only a few cores the hardware and the OS typically take care of all the bookkeeping.
Not exactly what you are asking for, but the SheevaPlug (http://en.wikipedia.org/wiki/SheevaPlug) is an inexpensive little computer that you could buy a few of and offload some computation, but would require custom work. You couldn’t just tell Windows to use it some of the time.