![Котейка и младшие братья][1]В [предыдущей своей статье][2] я затронула тему многопоточности. В ней речь шла о базовых понятиях: о типах многозадачности, планировщике, стратегиях планирования, машине состояний потока и прочем. На этот раз я хочу подойти к вопросу планирования с другой стороны. А именно, теперь я постараюсь рассказать про планирование не потоков, а их “младших братьев”. Так как статья получилась довольно объемной, в последний момент я решила разбить ее на несколько частей:
1. **Многозадачность в ядре Linux: прерывания и tasklet’ы**
2. Многозадачность в ядре Linux: workqueue
3. Protothread и кооперативная многозадачность
В третьей части я также попробую сравнить все эти, на первый взгляд, разные сущности и извлечь какие-нибудь полезные идеи. А через некоторое время я расскажу про то, как нам удалось применить эти идеи на практике в [проекте Embox][3], и про то, как мы запускали на маленькой платке нашу ОС с почти полноценной многозадачностью. Рассказывать я постараюсь подробно, описывая основное API и иногда углубляясь в особенности реализации, особо заостряя внимание на задаче планирования. [Читать дальше →][4]
[1]:
http://habrastorage.org/files/c6c/410/b72/c6c410b72716448c84e60c48126dce02.jpg
[2]:
http://habrahabr.ru/post/219431/
[3]:
https://code.google.com/p/embox/
[4]:
http://habrahabr.ru/post/244071/#habracut