Я буду використовувати багато тексту з книги Концепції операційних систем ABRAHAM SILBERSCHATZ, PETER BAER GALVIN та GREG GAGNE разом із власним розумінням речей.
Процес
Будь-яка програма знаходиться в комп'ютері у вигляді тексту (або коду).
Ми підкреслюємо, що програма сама по собі не є процесом. Програма - це пасивна сутність, наприклад файл, що містить перелік інструкцій, що зберігаються на диску (часто їх називають виконуваним файлом).
Коли ми запускаємо програму, ми створюємо екземпляр виконання. Цей екземпляр виконання називається процесом. EDIT: (Відповідно до моєї інтерпретації, аналогічно класу та екземпляру класу; примірник класу є процесом.)
Приклад процесів - це Google Chrome. Коли ми запускаємо Google Chrome, породжуються три процеси:
• Процес браузера відповідає за керування інтерфейсом користувача, а також дисковим і мережевим введенням / виведенням. При запуску Chrome створюється новий процес браузера. Створюється лише один процес браузера.
• Renderer процеси містять логіку для рендеринга веб - сторінок. Таким чином, вони містять логіку обробки HTML, Javascript, зображень тощо. Як правило, для кожного веб-сайту, відкритого на новій вкладці, створюється новий процес візуалізації, і тому одночасно можуть бути активними кілька процесів рендерінгу.
• Процес підключення створюється для кожного типу плагінів (наприклад, Flash або QuickTime), які використовуються. Процеси підключення містять код для плагіна, а також додатковий код, який дозволяє плагіну спілкуватися з пов'язаними процесами рендерінгу та процесом браузера.
Нитка
Щоб відповісти на це, я думаю, ви повинні спочатку знати, що таке процесор. Процесор - це обладнання, яке фактично виконує обчислення. EDIT: (Обчислення, такі як додавання двох чисел, сортування масиву, в основному виконання написаного коду)
Тепер переходимо до визначення потоку.
Потік - це основна одиниця використання процесора ; він містить ідентифікатор потоку, лічильник програми, набір реєстру та стек.
EDIT: Визначення теми з веб-сайту Intel:
Нитка або нитка виконання - це програмний термін для основної впорядкованої послідовності інструкцій, яка може бути передана або оброблена одним ядром процесора.
Отже, якщо процес Renderer з програми Chrome сортує масив чисел, сортування відбуватиметься за потоком / потоком виконання. (Граматика щодо ниток здається мені заплутаною)
Моє тлумачення речей
Процес - це екземпляр виконання. Нитки - це фактичні працівники, які виконують обчислення через доступ до процесора. Коли для процесу працює кілька потоків, процес забезпечує загальну пам'ять.
EDIT:
Інша інформація, яку я вважаю корисною, щоб надати більше контексту
У всіх сучасних комп’ютерах є кілька потоків. Кількість потоків у комп’ютері залежить від кількості ядер у комп’ютері.
Паралельні обчислення :
З Вікіпедії:
Одночасні обчислення - це форма обчислень, в якій кілька обчислень виконуються протягом періодів, що перекриваються - одночасно - замість послідовно (один завершується до наступного запуску). Це властивість системи - це може бути окрема програма, комп'ютер або мережа - і для кожного обчислення ("процес") існує окрема точка виконання або "нитка управління".
Отже, я міг би написати програму, яка обчислює суму 4 чисел:
(1 + 3) + (4 + 5)
У програмі для обчислення цієї суми (яка буде одним процесом, запущеним на потоці виконання) я можу розписати інший процес, який може працювати на іншому потоці для обчислення (4 + 5) і повертати результат у вихідний процес, тоді як вихідний процес обчислює суму (1 + 3).