Невероятно крутое видео о "Process vs Thread"

Невероятно крутое видео о "Process vs Thread"

Dmitry Tarasov

https://www.youtube.com/watch?v=4rLW7zg21gI


Summary


Программа - это исполняемый файл, который храниться на диске и содержит в себе код или набор инструкций.

Когда код программы загружается в память и выполняется процессором, он становится процессом. 

Активный процесс также включает ресурсы, необходимые программе для работы.

Операционная система выделяет такие ресурсы как: регистр процессора, счетчик команд, указатель стека, страницы памяти, выделенные процессу для его кучи и стека.

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


Поток - это единица выполнения внутри процесса. Внутри процесса есть по крайне мере один поток, он называется main thread.

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

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

Стоит отметить, что если один поток неисправен, то рушится весь процесс. 


Как операционная система запускает поток или процесс ?

Это работает благодаря переключению контекста. Выполняет эту роль scheduler. 

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

Операционная система хранит состояние текущего запущенного процесса, поэтому процесс может быть восстановлен и продолжить свою работу. 

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


Переключение контекста очень доргая операция, поэтому существуют механизмы которые пытаются минимизировать эту стоимость. Такие механизмы как fibers and coroutines.



Worth Mentioning - заслуживает внимания

corrupt - искажать 

malfunctions - неисправности

misbehaves - плохо себя ведет

due to the bug - из-за ошибки

malicious attack - злонамеренная атака 

uncommon - нередко

accurate - точный 

belong - принадлежать

interrupt - прерывание 

fewer - меньше

complexity - сложность


Report Page