Эта функция представляет собой аналог функций freeque и freeary. Ее программная реализация в основном аналогична этим функциям, но несколько ее средств заслуживают отдельного упоминания.
Если программа killseg вызывается с индексом незанятого элемента shm_segs, она выводит предупреждающее сообщение и немедленно выполняет возврат. Ни в одном из ее аналогов нет подобного кода.
Если член shm_pages данного входа имеет значение NULL, то где-то есть логическая ошибка. Это значит, что был не полностью построен объект struct shmid_kernel, или он был уничтожен, но не удален из массива, или возникло какое-то подобное «невероятное» состояние.
Освобождение страниц, распределенных для данной таблицы страниц.
Если в таблице страниц нет отображения для этой страницы, то для освобождения этого входа ничего не нужно делать.
Если страница присутствует в физической памяти, она возвращается в пул доступных страниц и число резидентных страниц уменьшается.
В ином случае, она находится в области подкачки, и освобождается и удаляется оттуда.
Освобождение самой таблицы страниц.