Я собираюсь написать многопоточную систему обмена сообщениями с общей памятью для сверхполной доставки сообщений между процессами. Сообщения будут исходить из рабочих потоков веб-сервера. Я хотел бы использовать расположение кэш-памяти ЦП, которое основано на одном и том же ресурсе ЦП. Таким образом, когда я просыпаюсь в рабочем потоке на принимающей стороне этой системы IPC, я просыпаюсь в том же процессоре.
Мне нужно для Linux (предпочтительно POSIX в общем) и окон API-вызовов и битовой маски, которые мне нужно сделать, чтобы извлечь информацию, которая позволит мне классифицировать исполняющий идентификатор потока - из контекста указанного потока - используя следующая структура:
struct thread_core_id
{
uint16_t cpu_Id;
uint16_t core_Id;
};
Функции для обеих платформ будут высоко оценены. Я надеюсь, что это можно сделать без системных вызовов, т. Е. Переключений контекста.
- редактировать -
Сейчас я сосредоточен на x86, но другие архитектуры также были бы полезны.