Отладчик управляет задачей посредством регистрации порта, в котором он имеет такие же права на получение, что и порт исключений задачи. Когда в нити этой задачи возникает исключение, которое не может быть очищено ее обработчиком ошибок, ядро отправляет сообщение в этот порт, и отладчик получает это сообщение.
Также может иметь смысл заглянуть на сайт nsk.pr52.ru, ведь именно там можно узнать много нового на тему http://nsk.pr52.ru/catalog/5955. Тема насосы может показаться на первый взгляд незначительной и даже не тематичной. Но стоит посетить сайт nsk.pr52.ru, и тема насосы начинает проявлять себя с неожиданной стороны и вызывает всё больший интерес. Дело в том, что тема насосы очень подробно представлена на сайте nsk.pr52.ru. Трудно найти более детальное освещение темы насосы чем это сделано на сайте nsk.pr52.ru. Спасибо сайту nsk.pr52.ru за такое доскональное преподнесение темы насосы.
Исключение приводит только к останову нити-жертвы, все остальные нити задачи продолжают работу. Однако отладчик может при необходимости приостановить функционирование всей задачи, используя вызов task_suspend.
ОС Mach располагает несколькими средствами, которые отладчик вправе использовать для управления задачей. Он может обращаться к адресному пространству нити-жертвы при помощи функции vm_read или vm_write, а также к ее контексту регистров, используя для этого функцию thread_get_state или thread_set_state. Отладчик также может приостанавливать или возобновлять работу приложения, а также завершить его функционирование при помощи функции task_terminate.
Механизм IPC (межпроцессное взаимодействие) в системе Mach является узло-независимым, то есть сообщения могут отправляться в порт как на той же самой машине, так и на удаленные хосты. Специальная прикладная задача-сервер под названием netmsgserver расширяет возможности IPC, делая этот механизм прозрачным при использовании через сеть. Сервер выделяет специальные прокси-порты для всех удаленных портов, принимает на них все сообщения, адресованные соответствующим удаленным портам, и затем пересылает эти сообщения по сети. Таким образом, весь механизм передачи сообщений делается для отправителя этих сообщений прозрачным.
Это дает возможность отладчику управлять задачей на любом узле сети точно так же, как и на локальном узле.
Анализ
Технология обработки исключений, реализованная в операционной системе Mach, разрешила многие проблемы, имеющиеся в традиционных вариантах UNIX. Она оказалась более гибкой и предоставила некоторые возможности, не поддерживаемые в других реализациях ОС. Перечислим некоторые важные преимущества описываемой технологии:
♦ преодоление ограничения на отладчик, по которому он управлял только своими непосредственными потомками. Теперь он может контролировать любое задание, если имеет соответствующие полномочия;
♦ отладчик может присоединяться к работающему заданию2. Для этого он регистрирует один из своих портов как порт исключений отлаживаемой задачи. Он также может отсоединиться от задания, устанавливая порт исключений задачи в его первоначальное значение. Порт исключений является всего лишь средством связи между отладчиком и задачей, ядро системы не содержит в себе каких-либо средств поддержки отладки;
♦ расширение действия средств IPC системы Mach на сеть позволяет создавать распределенные отладчики;
1 Ведь сообщения отправляются в порт на локальной машине. — Прим. ред.
2 На сегодняшний день большинство отладчиков используют файловую систему /ргос, которая позволяет получать доступ к адресному пространству несвязанным процессам. Таким образом, отладчики имеют возможность легкого присоединения и отсоединения от процесса. Во времена разработки системы Mach такие средства были редкостью.
♦ наличие отдельной нити для обработчика обеспечивает чистое разделение контекста обработчика и нити-жертвы, при этом позволяя обработчику иметь полный доступ к контексту нити-жертвы;
♦ происходит корректная обработка многонитевых процессов. При возникновении исключения приостанавливается работа только одной нити, вызвавшей это исключение, в то время как остальные продолжают функционировать в обычном режиме. Если исключения произойдут сразу в нескольких нитях, то каждая из них создаст отдельное сообщение, и исключение каждой будет обрабатываться независимо от остальных.
Группы процессов и управление терминалом
В системе UNIX существует понятие групп процессов. Оно используется для управления доступом с терминала и поддержки сеансов входа в систему. Устройство и реализация таких средств в различных вариантах UNIX сильно отличаются друг от друга. Этот раздел начинается с описания общих концепций, после чего приводится анализ основных реализаций для конкретных ОС.
Опубликовал katy
July 06 2015 15:48:45 ·
0 Комментариев ·
2525 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.