Когда именно context_switch() переключает управление на новый процесс?

В awk это выглядит примерно так. Очень просто.

[zee@dev-instance temp]$ cat file1.txt 
Mar 23 08:20:23 New file got created in sec: 235
Mar 23 08:21:45 New file got created in sec: 127
Mar 23 08:22:34 New file got created in sec: 875
Mar 23 08:25:46 New file got created in sec: 322
Mar 23 08:26:12 New file got created in sec: 639
[zee@dev-instance temp]$ awk -F" " '{ print $1" "$2" "$3" : "$10 }'<file1.txt 
Mar 23 08:20:23 : 235
Mar 23 08:21:45 : 127
Mar 23 08:22:34 : 875
Mar 23 08:25:46 : 322
Mar 23 08:26:12 : 639
[zee@dev-instance temp]$ 
1
29.11.2016, 20:58
1 ответ

Обратите внимание на комментарий в строке 2885 :

/* Here we just switch the register state and the stack. */

context_switch () не загружает новый указатель команд (счетчик программ) напрямую, он переключает стек - и стек содержит соответствующий адрес возврата. Когда функция возвращается, она возвращается к новой задаче.

При разветвлении виртуальный адрес возврата такой же, как в обоих процессах (родительском и дочернем); разница - это возвращаемое значение.

1
27.01.2020, 23:46

Теги

Похожие вопросы