The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Семафоры и shared memory."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Семафоры и shared memory."
Сообщение от binr emailИскать по авторуВ закладки on 02-Фев-04, 16:22  (MSK)
Здравствуй ALL!

В QNX 4.25 при создании именованой Shared Memory в одном процессе, и открытии в другом процессе возращают указатели на один и тот же адрес памяти.
Этой памятью можно пользоваться для межпроцессного обмена данными и созданием семафоров(!).

В Линухе я заметил, что процессы возвращают указатели на разные участки памяти(!), но обмен данными между процессами идёт.
А вот с семафорами атас - не работают.

Насколько я понимаю процессы в Линуховом ядре работают с физически РАЗНЫМИ shared memory, но ядро скрыто от них занимается копированием данных из одной памяти в другую.

Я прав или ошибаюсь?

Если прав, то от чего это зависит? (старая версия ядра и т.д.)

Можно ли процессы заставить пользоваться физически одной и той же shared nmemory ?

Можно ли заставить процессы нормально работать с семафорами через shared memory?

Работают ли именованая память и семафоры в ядре 2.6 как положено?

Вопросы возникают в связи с портированием кода из QNX 4.25 в Линух.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Семафоры и shared memory."
Сообщение от kpanic Искать по авторуВ закладки on 03-Фев-04, 15:00  (MSK)
>Насколько я понимаю процессы в Линуховом ядре работают с физически РАЗНЫМИ shared
>memory, но ядро скрыто от них занимается копированием данных из одной
>памяти в другую.
>
>Я прав или ошибаюсь?

Ошибаешься. Просто одна и та же физическая shared memory отображается в разные места виртуального адресного пространства в каждом процессе.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Семафоры и shared memory."
Сообщение от binr emailИскать по авторуВ закладки on 03-Фев-04, 15:17  (MSK)
Ошибаешься. Просто одна и та же физическая shared memory отображается в разные места виртуального адресного пространства в каждом процессе.

Спасибо большое, отличная информация.

Значит в именованной shared memory можно создавать семафоры и синхронизировать ПРОЦЕССЫ (т.е. не нити) ?
Если нет, то почему?

С чего надо начинать углублённое изучение этой темы?
Дайте ссылку для старта, пожалуста.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Семафоры и shared memory."
Сообщение от solov Искать по авторуВ закладки on 03-Фев-04, 16:56  (MSK)
X/Open - стандарт не требует обезательного использования одиннакого пространства памяти при совместном использовании.
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру