Когда процесс выполняет системный вызов для передачи TCP-пакета по сети, какие из следующих шагов НЕ выполняются всегда? - PullRequest
0 голосов
/ 04 мая 2019

Я учу себя ОС, просматривая конспекты лекций курса в ИИТ Бомбей (https://www.cse.iitb.ac.in/~mythili/os/).). Один из вопросов на листе «Процесс» спрашивает, что из следующего не всегда происходит в ситуации, описанной в название. Ответ - C.

A. Процесс переходит в режим ядра.

B. Программный счетчик ЦП переместится в ядро ​​части адресного пространства.

С. Процесс переключается из контекста, и отдельный процесс ядра начинает выполнение.

D. Код ОС, который имеет дело с обработкой пакетов TCP / IP, вызывается

Хотя я немного растерялся. Я думал, что когда происходит подпрограмма прерывания, процесс переключается из контекста, поэтому другие процессы могут работать, и процессор не работает в течение этого времени. Затем ядро ​​позаботится об отправке пакета. Почему С не будет правильным тогда?

1 Ответ

0 голосов
/ 09 мая 2019

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

В большинстве случаев есть другой процесс, ожидающий процессорного времени, который можно запланировать.Однако это не так в 100% случаев.Речь идет о слове «всегда», и, хотя в данной ситуации всегда присутствуют другие параметры, вариант С - это выбор, который ОС делает во время выполнения.Если ОС решит, что отключение этого процесса может быть субоптимальным, чем выполнение системного вызова и возобновление того же процесса, тогда она может не выполнить переключение контекста.

С переключением контекста и другими процессами связаны затраты.также блокируются в некоторых операциях ввода-вывода, тогда для ОС может быть оптимальным НЕ переключать контекст, или могут быть другие причины не переключать контекст, например, что если запущен только 1 процесс, другого процесса для переключения контекста не существуетк!

...