помогите пожалуйста разобраться с понятиями процесса и потока в самом общем виде. я понимаю их так:
1. процессы существуют на уровне операционной системы. она при создании очередного потока выделяет ему ресурс, в первую очередь в виде кусочка оперативной памяти.
2. если в системе существуют несколько процессов, то они не могут взаимодействовать.
3. например если в одном процессе запущен браузер, а во втором процессе запущена игра, то игра никак не может узнать какие вкладки браузера открыты в данный момент.
4. при этом если процесс браузера породит дочерний поток(например в виде отдельного окна для диспетчера задач браузера), то они могут взаимодействовать потому что связаны отношением «родитель-наследник».
5. потоки создаются средствами языка программирования и существуют в пределах процесса.
6. при этом они могут взаимодействовать в пределах своего процесса.
7. например иметь доступ к переменной: менять её, удалять и т.д.
8. а также получать друг от друга сигналы типа mutex, semafor и т.д.
9. при этом потоки, которые живут в разных процессах не могут взаимодействовать.
10. если завершается процесс, то завершаются все его потоки тоже.
11. процессы выполняются по очереди. ОС выделяет каждому определённое время. в это время он выполняется, а остальные процессы не активны. далее по очереди каждый процесс становится активным, а остальные неактивными
12. ОС сама решает по какому принципу усыплять и оживлять процессы. в зависимости от типа ОС этот принцип бывает разный
если я что-то неправильно понимаю, то пожалуйста укажите на это и, если можно, посоветуйте что почитать чтобы вополнить пробел.