Today I learned: OS process (part 2)

nguyen duy
2 min readFeb 23, 2021

Dịch từ cuốn sách: “Modern Operating System” của tác giả Andrew Tanenbaum và Herbert Bos

Photo by Christian Wiediger on Unsplash

Ở bài trước, mình nói về OS process và diễn giải nó thông qua hình ảnh 1 đầu bếp làm bánh theo 1 công thức:

  • Công thức là program
  • Hành động làm bánh là process
  • Đầu bếp là CPU

Tiếp tục với ví dụ làm bánh này, giả sử đầu bếp đang làm bánh thì có chuông gọi cửa. Lúc này đầu bếp sẽ phải:

  • Lưu công việc đang làm dở: đang làm theo công thức đến đoạn nào, bánh đang ở trạng thái nào, đang xúc đến thìa đường thứ mấy, … Cái này tương đương với việc CPU (đầu bếp) tạm thời lưu state của process hiện tại để chuyển sang process mới
  • Chuyển sang làm việc khác: Chạy ra mở cửa. Tức là giờ CPU (đầu bếp) đã chuyển sang chạy 1 process khác
  • Sau khi mở cửa xong, đầu bếp (CPU) quay trở lại làm nốt bánh, tức là CPU lấy lại process vừa được lưu lại lúc trước và tiếp tục chạy

Có thể thấy tại 1 thời điểm, CPU (đầu bếp) chỉ làm được 1 việc. Trong 1 hệ thống máy tính thì trong một khoảng thời gian rất ngắn (ví dụ cỡ 100ms) thì CPU có thể chuyển qua lại giữa hàng ngàn process, khiến cho chúng ta có cảm giác là CPU đó đang chạy nhiều process tại cùng 1 thời điểm, nhưng thực ra không phải. Cái này gọi là pseudoparallelism (giả lập parallelism)

Nói vậy tức là 1 hệ thống máy tính có nhiều CPU thì có thể chạy nhiều process trên các CPU khác nhau tại 1 thời điểm. Đây được gọi là true parallelism (xử lý song song)

--

--