Нулі і одиниці

Aug 11, 2011 14:21


Сиджу і переживаю чергову фрустрацію: починаючи із суботи, я вирішив, що настав час зламати свій страх перед багатопотоковістю і перемиканням контекстів і що нарешті я їх зроблю. Пізно ввечері в суботу я почав курити мануал від Інтела і прояснення таки сталось: виявилось, що для перемикання тредів в ядрі особливо чорної магії не потрібно, достатньо ( Read more... )

програмістське, cosec, процес, ОСебудівництво

Leave a comment

Comments 5

maxim February 28 2013, 15:14:26 UTC
В моей Haiku я такое пробовал, выдает четкое хохохохохохох

http://kernel-joe.dreamwidth.org/4946.html

Reply

dmytrish February 28 2013, 15:54:51 UTC
На залізі ця штука також видавала чітке чергування, це планування процесів хостової системи так впливає на роботу QEMU, очевидно.

От моє недоядро на Intel Core Duo:

... )

Reply

maxim February 28 2013, 15:56:37 UTC
біліотека stdlib повинна бути спроектована так, аби було завжди 01010101

Reply

dmytrish February 28 2013, 16:31:34 UTC
Не зрозумів.

На картинці два потоки, запущені поверх самописного ядра, без жодної stdlib, із найпримітивнішим на світі round-robin планувальником на два потоки.

Якщо це підколка лінуксячої stdlib, під якою так працює QEMU, то планувальник який є, такий є, нічого не твікалось (а я міг би підняти пріоритет та повісити віртуалку на виділене ядро процесора). Крім того, з часів лінуксового 2.4 уже дуже багато води утекло і багато планувальників помінялось, з’явились групи процесів, регулювання affinity та інші приємні штуки.

01010101 може бути, тільки якщо після кожного виведення стоїть yield.

Reply


Leave a comment

Up