Когда операционная система получает контроль над процессором, когда пользовательский процесс выполняется - PullRequest
0 голосов
/ 31 октября 2018

В настоящее время я изучаю операционные системы, и у меня есть кое-что, что я не совсем понимаю. В системе с разделением времени с вытеснением процессы всегда меняются местами. Однако, если пользовательский процесс выполняется на одном из процессоров, не может быть другого процесса, который также выполняется на том же процессоре. Если все процессоры заняты пользовательскими процессами, процессы операционной системы не могут запускаться одновременно, так что же является причиной прерывания по таймауту (таймер процессора?)?

Более того, меня смущает понятие ядра и пользовательских потоков. Я читал, что потоки ядра - это те, которые запланированы для выполнения на процессоре. Более того, пользовательские потоки отображаются в потоки ядра посредством некоторого упорядочения (один ко многим, многие к одному, многие ко многим). Я считаю, что это как-то связано с вышеуказанным вопросом, но я не могу понять это по имеющейся у меня документации.

Спасибо. Ура! * * 1005

1 Ответ

0 голосов
/ 31 октября 2018

«Операционная система» работает в контексте процесса (хотя некоторые ретроградные ОС используют другую терминологию). «Операционная система» берет на себя управление в случае возникновения исключения или прерывания.

Если все процессоры заняты пользовательскими процессами, процессы операционной системы не могут запускаться одновременно, поэтому, что является причиной прерывания по таймауту (таймер процессора?)?

Операционная система устанавливает таймер ЦП, который запускает прерывание. Обработчик прерываний таймера сбрасывает таймер до его выхода.

Более того, меня смущает понятие ядра и пользовательских потоков. Я читал, что потоки ядра - это те, которые запланированы для выполнения на процессоре.

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

Поток ядра - это поток.

"пользовательские потоки" - способ бедного человека имитировать потоки в системах, которые их не поддерживают. Они являются библиотечными функциями и даже не являются частью операционной системы. Таким образом, они даже не входят в курс по операционным системам, кроме как для исторической информации.

...