Я изучаю операционные системы (Silberscatz, Galvin et al).Мой опыт программирования ограничен случайным кодированием задач упражнений, приведенных в тексте программирования или тексте алгоритма.Другими словами, у меня нет должного опыта программирования приложений или системного программирования.Я думаю, что мой нижеприведенный вопрос является результатом недостатка опыта вышеизложенного и, следовательно, отсутствия контекста.
Я специально изучаю механизмы МПК.Читая об общей памяти (SM), я не мог представить сценарий реальной жизни, где процессы взаимодействуют с использованием SM.Загружена проверка процессов, подключенных к одному и тому же сегменту SM на моем компьютере с Linux (Ubuntu) (с использованием 'ipcs' в небольшом скрипте оболочки) здесь
Кажется, что большая часть общего доступа приложениямибыть с Х Дэймон.Из того, что я знаю, X является процессом, ответственным за предоставление мне моего GUI.Я сделал вывод, что эти приложения (в основном апплеты, которые остаются на моей панели задач) обмениваются данными с X о том, что необходимо изменить в их внешнем виде и отображаемых значениях.Является ли это разумным выводом ??
Если так, мой вопрос: в чем разница между моими приложениями, взаимодействующими с «X» через сегменты разделяемой памяти, и моими приложениями, вызывающими определенные API, предоставленные «X», и связанными с«Х» о необходимости обновить свои выступления ?? Разница Я имею в виду, почему не используется более поздний подход?
Разве не так взаимодействуют пользовательские процессы и ядро?Приложение вызывает системный вызов, когда хочет, скажем, прочитать файл, сообщая имя файла и другую связанную информацию через аргументы системного вызова?
Также не могли бы вы предоставить мне примеры обычно используемых приложений, которыеиспользовать разделяемую память и передачу сообщений для общения?
РЕДАКТИРОВАТЬ Я уточнил вопрос.Я отформатировал отредактированную часть, чтобы она была выделена жирным шрифтом