Предположим, что я запускаю свое приложение. Во время этого выделения памяти кода для разных объектов. Теперь я выполняю команду kill на моем терминале unix для этого процесса. В этом случае, как происходит весь процесс освобождения памяти? Это полностью обрабатывается операционной системой, освобождая всю память для процесса?
В общем случае при завершении процесса все ресурсы, выделяемые этим процессом, освобождаются операционной системой. (см. 3.3.2 Концепции операционной системы Абрахама Сильбершаца, Петра Б. Галвина, Грега Гана http://www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/0470128720)
Команда kill не "убивает" процесс, а посылает ему сигнал. Если сигнал SIGKILL (kill -9 PID), вы ничего не можете сделать. Процесс убит безоговорочно. Если сигнал SIGTERM (по умолчанию), вы можете обслуживать его или игнорировать. См.: http://en.wikipedia.org/wiki/Unix_signal