LINUX.ORG.RU

Подскажите учебный проект (для закрепления работы с kthread)

 , kthreads,


0

2

Всем привет.

Друзья помогите придумать, проект для тренировки работы с потоками ядра. Мне как новичку в голову вообще ничего не приходит, но жутко интересно)

Спасибо!



Последнее исправление: Drakonoff (всего исправлений: 1)

Проблема потребителя и производителя, очень простая задача, но нужны семафоры и мьютексы, есть наверно они в ядре

IvanR ★★★
()
Ответ на: комментарий от metawishmaster

ну нижняя, кочнечно же, батенька!

не то и не другое - это вообще не kthread, нижние половины это корутины выполняющиеся в одном потоке.

Про kthread надо знать только то что они есть.

spbob
()
Ответ на: комментарий от spbob

я в контексте того, что примитивы синхронизации (кроме spinlock) нельзя использовать в верхней половине обработчика рерываний

metawishmaster ★★★★★
()
Ответ на: комментарий от metawishmaster

я в контексте того

я там немного категорично ответил, конечно можно реализовать свою отложенную по времени обработку на kthread - по смыслу это и есть нижние половины, но так не рекомендуется, kthread вообще не рекомендуется

примитивы синхронизации (кроме spinlock) нельзя использовать в верхней половине обработчика рерываний

в случае нижней половины на тасклете (tasklets) там тоже нельзя использовать - они выполняются в контексте softirq, но это так для нытья :)

spbob
()
Последнее исправление: spbob (всего исправлений: 1)

а вообще... если хочется чуток заморочиться, то сделай что-то типа мультипайпа или fifo, но для начала да, задачку producer-consumer

metawishmaster ★★★★★
()
Ответ на: комментарий от spbob

в случае нижней половины на тасклете (tasklets) там тоже нельзя использовать - они выполняются в контексте softirq, но это так для нытья :)

:))
имхо, work-queue наиболее универсальны для этого случая...

metawishmaster ★★★★★
()
Ответ на: комментарий от IvanR

Ага. Понял, с нее и начну)

Эта же тоже задача для kernelspace?

Я ж начал подумывать начать велосипедить printk и другие функции..

спасибо)

Drakonoff
() автор топика
Последнее исправление: Drakonoff (всего исправлений: 1)
Ответ на: комментарий от apt_install_lrzsz

Спасибо) думаю прерывания, будут следующим этапом)

Drakonoff
() автор топика
Ответ на: комментарий от Drakonoff

Эта же тоже задача для kernelspace

Нет, это задача на синхронизацию процессов/потоков, можно хоть на бейсике решать, хоть в кернелспейс, если там есть примитивы для синхронизации, такие как мьютексы и семафоры

IvanR ★★★
()
Ответ на: комментарий от IvanR

Я тут погуглил и понял, что даже tcp сокеты можно организовать на уровне ядра. Возникает вопрос, если много задач можно решить в как в kernel так и userspace. То в чем выгода kernelspace?

Drakonoff
() автор топика
Ответ на: комментарий от Drakonoff

То в чем выгода kernelspace?

нет никакой выгоды

я как-то задавал вопрос на кернелньюбис типа: выгодно ли что-то реализовывать в пространстве ядра? мне сказали, что нет, не помню, чем аргументировали, может просто цифры показали, жаль, потерял ссылку

вот что я нагуглил

https://www.quora.com/What-are-benefits-of-implementations-done-in-User-vs-Kernel-space-or-vice-versa

IvanR ★★★
()
Последнее исправление: IvanR (всего исправлений: 2)
Ответ на: комментарий от Drakonoff

Мало того, большинство различий между AT&T и BSD системами в этом и состоит.

ABW ★★★★★
()
Ответ на: комментарий от IvanR

Хм, интересно…

Получается что userspace удобен для програм, где не требуются суперюзерские привилегии, в тоже время kernelspace, хорошо подходит для дров.

Drakonoff
() автор топика
Ответ на: комментарий от Drakonoff

в тоже время kernelspace, хорошо подходит для дров.

Это, как буд-то, очевидно)))

Потому, наверно, микроядерная архитектура и не приживётся никак

IvanR ★★★
()
Последнее исправление: IvanR (всего исправлений: 1)
Ответ на: комментарий от IvanR

Тип того)) получается зря этот пост замутил) идей для драйверов у меня много. Тот же pcie для fpga девайсов раскурить..

Drakonoff
() автор топика
Последнее исправление: Drakonoff (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ещё есть tempesta, которая туда браузер пихнула и базу данных, чем бы ни тешились

IvanR ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.