LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Что касается очередей - я согласен, что можно сделать по mutex'у - отдельный на запись и отдельный на чтение (кольцевой буфер позволяет одновременно читать и писать). Это, кстати, обычно к локам приводить не будет, потому что обычно только кто-то один пишет в очередь и только кто-то один читает. При создании-удалении процессов вообще можно прерывания запрещать, потому что это достаточно редкая операция для МК.

Но вот планировщик (самая часто вызываемая часть ОС) lock-free, ИМХО, сделать можно. Я уже почти написал, но туплю как реализовать lock-free удаление из однонаправленного связанного списка (это по сути suspend задачи). У меня на некоторых тестах всё виснет. Но lock-free алгоритм для однонаправленного списка точно в природе существует.

Исправление KivApple, :

Что касается очередей - я согласен, что можно сделать по mutex'у - отдельный на запись и отдельный на чтение (кольцевой буфер позволяет одновременно читать и писать). Это, кстати, обычно к локам приводить не будет, потому что обычно только кто-то один пишет в очередь и только кто-то один читает. При создании-удалении процессов вообще можно прерывания запрещать, потому что это достаточно редкая операция для МК.

Но вот планировщик (самая часто вызываемая часть ОС) lock-free, ИМХО, сделать можно. Я уже почти написал, но туплю как реализовать lock-free удаление из однонаправленного связанного списка. У меня на некоторых тестах всё виснет. Но lock-free алгоритм для однонаправленного списка точно в природе существует.

Исходная версия KivApple, :

Что касается очередей - я согласен, что можно сделать по mutex'у - отдельный на запись и отдельный на чтение (кольцевой буфер позволяет одновременно читать и писать). При создании-удалении процессов вообще можно прерывания запрещать, потому что это достаточно редкая операция для МК.

Но вот планировщик (самая часто вызываемая часть ОС) lock-free, ИМХО, сделать можно. Я уже почти написал, но туплю как реализовать lock-free удаление из однонаправленного связанного списка. У меня на некоторых тестах всё виснет. Но lock-free алгоритм для однонаправленного списка точно в природе существует.