Serge wrote:Это просто фигура речи, не придирайся.
Эта фигура речи выводит за скобки программиста и переворачивает всё с ног на голову.
Да никоим образом. И так понятно, что программа - не субъект. Когда мы говорим "программа делает", или "программе нужно", понятно, что речь идет о логике, заложенной программистом. Придираться здесь так же нелепо, как и ко фразе "поезд сбил человека", мол не поезд, а машинист, это же он управлял.
У программы вообще нет потребностей, они есть у программиста.
Игра слов, не более. См. выше. Программе, выполняющей задачу, обслуживающей потребности программиста, не нужно спать, ей нужно выполнять задачу, разделяя время с другими программами. "Спать" - это не задача программы, это
вынужденное состояние простоя, побочка в чистом виде.
Еще было бы неплохо понимать, что программа и ядро могут быть написаны разными людьми, у которых разные устремления, выраженные через их ПО.
Здесь не предположение, здесь прямо написано
не получает процессорного времени
Отлично. Смотри сам: программа
не получает. Не получает, потому что является зависимым объектом, не она решает, сколько квантов времени она будет занимать процессор.
Ты что писал?
Но это процесс сам в такое состояние переходит.
Как процесс может сам перейти в такое состояние, если его принудительно усыпили и лишили процессорного времени
внутри системного вызова, т.е. в ядре, кодом, созданным другим программистом для других целей? Если процесс вызывает функцию вида Sleep(10), он иницирует сон, в Ф10 же сон побочное действие. В Ф10 для процесса нет разницы - усыпили его или нет, для него это все равно миг: нырнул в сискол - вернулся.
Твой аргумент сводится к тому, что процесс усыпляет себя сам, потому что он сам
просит себя усыпить,
если надо. Я же говорю, что если он просит, то он не выполняет действия самостоятельно, его выполняет код ядра (написанный другим программистом в общем случае). Да, в том же потоке выполнения, но это деталь реализации. Здесь просто терминологическая разница: ты и pathoswithin считаете, что "тело" сискола - это процесс, потому что выполняется потоком исполнения процесса, я же считаю это ядром, потому что это отдельный участок кода, написанный другим разработчиком для других целей, который может что-либо сделать принудительно на нулевом кольце, в отличие от кода третьего кольца, которое и выполнялось потоком исполнения до входа в сискол.
Мы действительно по-разному понимаем термин "принудительно", забей. Это мелочь.
Ты лучше про MUL и IMUL поясни.