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

Aug 11, 2011 14:21


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

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

Leave a comment

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

maxim February 28 2013, 16:35:38 UTC
Я не даю тобі закидів, ти молодець, що цікавишся цими речами.
Я просто наштовхую тебе на думки, як повинно бути спроектована система, шоб в юзерленді без їлдів дістати ідеальну послідовність. Сучасні системи далекі від ідельного планування. В лінуксі постійного його переписують, не можуть відшукати ідеальні пропорції і справа не тільки в скудулері а в багатопоточних можливостях всіх підсистем. Найбільш збалансованою системою виявилася BeOS з усіх, що я бачив. Тобі варто більш детально на неї подивитися, там ти знайдеш багато натхнення у своїй творчості.

Reply


Leave a comment

Up