В 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]$
Обратите внимание на комментарий в строке 2885 :
/* Here we just switch the register state and the stack. */
context_switch ()
не загружает новый указатель команд (счетчик программ) напрямую, он переключает стек - и стек содержит соответствующий адрес возврата. Когда функция возвращается, она возвращается к новой задаче.
При разветвлении виртуальный адрес возврата такой же, как в обоих процессах (родительском и дочернем); разница - это возвращаемое значение.