Hỏi về process và thread

Các bác giải thích giúp em với.
Theo em tìm hiểu thì process có thể hiểu là 1 ứng dụng đang chạy. Trong process có thể có một hoặc nhiều thread.
Vậy những CPU ví dụ i7 8 nhân 16 luồng thì chạy được 16 thread 1 lúc thôi ạ?
Vì em bật task manager lên phải có tới hàng chục nghìn process đang chạy.
Như vậy thì làm sao CPU 16 luồng xử lý được ạ?

sao bạn biết được điều này?
và “chạy” mà bạn nói như trên nghĩa là gì? theo bạn hiểu thì “process đang chạy” ở đây nghĩa là gì?

Em nghĩ những gì hiện trong list processess tức là đang chạy đó anh

Bạn tìm hiểu về concurrency và parallism nhé. Concurrency là chạy mỗi task một ít, sau đó chuyển qua task khác. Còn parallism mới thực sự chạy song song với nhau.

4 Likes

bạn đang nhầm lẫn giữa thread của cpu và thread của os/software

5 Likes

À em hiểu rồi, nghĩa là cpu sẽ xử lý mỗi process 1 ít rồi chuyển qua xử lý cho process khác. Vì cpu rất nhanh nên mình cảm thấy như chạy 1 lúc nhiều process đồng thời.

3 Likes

có vẻ như bạn đã hiểu ra
nhưng kiến thức chưa vững nên phát biểu trên là chưa đúng
cpu chỉ xử lý lệnh mà nó nhận được, và lệnh ở đây là lệnh trong các tập lệnh (trong lệnh thì gồm nhiều phép tính luận lí, mà cơ bản nhất là and/or/not). đó là góc nhìn của cpu
còn góc nhìn của os, các phần mềm không phải lúc nào cũng chạy, sẽ có lúc chờ/lúc chạy, nhiệm vụ của os là sắp xếp lại xem lúc nào cho thread nào chạy (định thời - cái này là một phần quan trọng trong môn os). chạy ở đây nghĩ là chạy các lệnh (của thread đang cần chạy) chứ không phải là chạy thead

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?