- Đọc/Ghi ngày, tháng, năm
HỆ ĐIỀU HÀNH NHIỀU BỘ VI XỬ LÝ
6.2.1. Mỗi CPU cĩ riêng một hệ điều hành
Hình 6.5. Phân chia bộ nhớ cho các CPU trong hệ thống đa xử lý, nhưng cùng chia sẻ chung tập lệnh của hệđiều hành. Dữ liệu cũng được lưu trữ riêng cho từng CPU.
Cách đơn giản nhất để tổ chức một hệđiều hành hỗ trợ nhiều bộ xử lý là phân chia cốđịnh bộ nhớ thành nhiều phần tương ứng với số lượng CPU mà hệ thống hỗ trợ. Mỗi CPU được cấp một bộ nhớ riêng và sở hữu một bản sao riêng của hệđiều hành. Kết quả là, n CPU sau đĩ sẽ họat động như là n máy tính độc lập. Một mơ hình tối ưu như được trình bày trong hình 6-6, ởđĩ, hệ thống
cho phép các CPU chia sẻcode của hệđiều hành trong khi dữ liệu thì được lưu trữ riêng tại các vùng nhớđã dành riêng cho chúng.
Sơ đồ này vẫn tốt hơn trường hợp hệ thống cĩ nhiều máy tính tách biệt bởi vì nĩ cho phép các CPU cĩ thể chia sẻ một tập các tài nguyên đĩa và các thiết bị nhập/xuất khác, đồng thời nĩ cũng cho phép bộ nhớđược chia sẻ một cách linh họat hơn. Thí dụ, nếu một ngày đẹp trời nào đĩ, một chương trình cĩ kích thước lớn bất thường cần được thực thi, thì một trong các CPU vẫn cĩ thể được cung cấp một phần bộ nhớđủ lớn để thực thi chương trình đĩ. Ngịai ra, các tiến trình cịn cĩ thể truyền thơng với nhau một cách hiệu quả, chẳng hạn như một producer cĩ thể ghi dữ liệu vào bộ nhớđồng thời một consumer lấy dữ liệu đĩ ra từ nơi mà producer ghi vào. Tuy nhiên, thiết kế này vẫn cho thấy một số nhược điểm sau:
Thứ nhất, khi một tiến trình tạo một lời gọi hệ thống, thì lời gọi hệ thống này sẽđược thực thi trên chính CPU của tiến trình đĩ sử dụng các cấu trúc dữ liệu trong các bảng của cùng hệđiều hành dành CPU đĩ.
Thứ hai, vì mỗi hệđiều hành đều cĩ một tập các tiến trình được điều phối bởi chính nĩ. Cho nên, sẽ khơng cĩ việc chia sẻ tiến trình ởđây. Nếu một user làm việc với CPU 1 thì tất cả các tiến trình của user này chỉ chạy trên CPU 1. Kết quả là, CPU1 quá tải trong khi các CPU khác thì rảnh rỗi. Thứ ba, khơng cĩ việc chia sẻ trang nhớ ởđây. Chẳng hạn như, trong khi CPU 1 cĩ nhiều trang nhớ dư thừa, thì CPU 2 vẫn phải thực hiện phân trang liên tục. Khơng cĩ cách nào để CPU 2 cĩ thể mượn một vài trang nhớ từ CPU 1 bởi vì bộ nhớđã được chia cốđịnh.
Thứ tư và cũng là nhược điểm lớn nhất. Nếu mỗi hệđiều hành của từng CPU lưu giữ một vùng nhớ cache của các khối đĩa mới sử dụng gần đây, thì mỗi hệ điều hành sẽ thao tác trên khối dữ liệu này một cách độc lập với các hệđiều hành khác. Vì vậy, cĩ thể sẽ xảy ra trường hợp là các khối đĩa này trở thành một phần riêng và chỉ bị thay đổi bởi một CPU tương ứng tại một thời điểm. Điều này dẫn đến những kết quả mâu thuẫn nhau. Chỉ cĩ một cách duy nhất để loại bỏ vấn đề này là loại bỏ các vùng nhớcache. Điều này khơng cĩ gì khĩ, nhưng vấn đề là nĩ sẽ làm giảm đáng kể hiệu suất làm việc của hệ thống.
Vì những lý do đĩ mà mơ hình này khơng cịn được sử dụng nữa. Một mơ hình thứ hai được đề cập trong phần tiếp theo là hệ điều hành hỗ trợ nhiều bộ xử lý hoạt động theo cơ chế Chủ-Tớ (Master-Slave).