While it's quite unusual to really have **0 byte** free, **there is no such thing as "unused RAM"** on Linux/Unix based systems. RAM that's not used by apps themselves is used to e.g. buffer data from slower media, and caching stuff from the file system. You will see that quite nicely when running the `free` command on a command line (using a terminal emulator app, or via `adb shell`). An example (here from a Linux machine) looks like this:

                 total       used       free     shared    buffers     cached
    Mem:       7639580    7132360     507220          0     500380    1940140
    -/+ buffers/cache:    4691840    2947740
    Swap:      9765884     309424    9456460

(it looks similar on Android -- just this one was faster for me to capture). Note the high numbers for "buffers" and "cached" -- which are the reason why the RAM used by apps plus the amount of free RAM "doesn't add up" to the total RAM available. Nothing to worry about.

**As for Task Killers:** Kill them, they won't do you much good. True they can be useful -- but not in this context: use them to kill hanging/misbehaving apps e.g. hogging your CPU and won't quit otherwise. But it makes absolutely no sense to use them to "free RAM" or "save battery" -- to the contrary: most "killed" apps will simply re-launch themselves immediately, using the same RAM again -- but needing more battery for the relaunch then they'd used had you not killed them. To close apps, exit them via the *back* button (not the *home* button). If the dev designed them well, this should place them on the "exit list" (check for "OOM killer" and "application life cycle" if you want more technical details).

Don't worry about handling the RAM -- Android does a good job here already on its own :)