Как распределяется память при обработке команды kill для процесса?

0

Предположим, что я запускаю свое приложение. Во время этого выделения памяти кода для разных объектов. Теперь я выполняю команду kill на моем терминале unix для этого процесса. В этом случае, как происходит весь процесс освобождения памяти? Это полностью обрабатывается операционной системой, освобождая всю память для процесса?

  • 3
    Процесс имеет свое собственное адресное пространство в виртуальной памяти . Когда процесс завершается, это адресное пространство (и физическая память, которую он потребляет, и некоторые другие ресурсы) уничтожается (для повторного использования) ядром.
  • 1
    Память не обязательно является единственным ресурсом, которым вы должны заниматься.
Показать ещё 1 комментарий
Теги:
operating-system

1 ответ

3

В общем случае при завершении процесса все ресурсы, выделяемые этим процессом, освобождаются операционной системой. (см. 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню