- Đọc/Ghi ngày, tháng, năm
HỆ ĐIỀU HÀNH NHIỀU BỘ VI XỬ LÝ
6.1. CẤU HÌNH NHIỀU PROCESSOR
6.2 Các loại hệđiều hành hỗ trợ nhiều bộ vi xử lý 6.3 Đồng bộ trong hệ thống đa xử lý
6.4 Điều phối trong hệ thống đa xử lý
6.1. CẤU HÌNH NHIỀU PROCESSOR
Mặc dù tốc độ máy tính ngày càng được cải thiện nhờ vào các cơng nghệ mới, nhưng nhu cầu của con người vẫn chưa được thỏa mãn. Một trong các cách tiếp cận nhằm mục đích tăng tốc độ của máy tính đĩ là sử dụng nhiều bộ xử lý trên một máy. Mỗi bộ xử lý chỉ cần hoạt động ở tốc độ bình thường cũng đã cung cấp cho hệ thống khả năng tính tốn tốt hơn rất nhiều so với hệ thống chỉ cĩ một bộ xử lý. Hệ thống cĩ nhiều bộ xử lý cĩ thể chia làm 3 loại chính như sau:
+ Đa xử lý dùng bộ nhớ chia sẻ. + Đa xử lý dùng bộ nhớ riêng. + Đa xử lý phân tán.
Đối với mơ hình thứ nhất, các CPU truyền thơng với nhau để thực hiện một hoặc một số cơng việc nào đĩ thơng qua việc sử dụng chung một bộ nhớ (bộ nhớ chia sẻ). Trong mơ hình này, các CPU đều cĩ quyền như nhau để truy xuất vào bộ nhớ vật lý. Đối với mơ hình thứ hai, hệ thống gồm nhiều cặp CPU-bộ nhớđược kết nối với nhau thơng qua các đường kết nối tốc độ cao. Trong mơ hình này, bộ nhớ là cục bộđối với mỗi CPU và chỉ cĩ thểđược truy xuất bởi CPU đĩ. Cịn trong mơ hình thứ ba, hệ thống cũng gồm nhiều cặp CPU-bộ nhớ, nhưng chúng kết nối với nhau thơng qua mạng diện rộng, chẳng hạn như Internet, và hình thành nên một hệ thống phân tán. Trong mơ hình này, việc truyền thơng giữa các cặp CPU-bộ nhớ này cũng sử dụng cách chuyển thơng điệp (message passing), giống như trong mơ hình thứ hai. Tuy nhiên, sự khác nhau giữa hai hệ thống này đĩ là độ trễ. Độ trễđể truyền thơng điệp giữa các cặp CPU-bộ nhớ trong mơ hình thứ hai là thấp hơn rất nhiều so với độ trễ trong mơ hình thứ 3.
Một hệ thống đa xử lý dùng bộ nhớ chia sẻ (shared-memory multiprocessor, hoặc đơi khi người ta chỉ gọi multiprocessor) là một hệ thống cĩ hai hoặc nhiều hơn hai CPU cùng chia sẻ một bộ nhớ RAM. Một chương trình chạy trên bất kỳ CPU nào cũng đều cĩ khả năng nhìn thấy cùng một khơng gian địa chỉảo như nhau (nĩi cách khác, chúng được phân trang như trong hệ thống cĩ một bộ xử lý). Tuy nhiên, điều khác biệt trong hệ thống đa xử lý thể hiện ở chỗ, một CPU cĩ thể ghi vào một từ nhớ nào đĩ một giá trị là a nhưng khi đọc ra cĩ thể sẽ mang giá trị khác a (bởi vì một CPU khác đã làm thay đổi giá trị này). Điều này tạo nên đặc tính cơ bản của việc truyền thơng giữa các tiến trình với nhau trong hệ thống cĩ nhiều bộ xử lý – một CPU ghi dữ liệu vào trong bộ nhớ và một CPU khác sẽđọc để lấy dữ liệu đĩ ra. Nĩi chung, hệđiều hành dùng cho hệ thống đa xử lý cũng tương tự như hệ điều hành trong hệ thống đơn xử lý. Nĩ cũng xử lý các lời gọi hệ thống, thực hiện việc quản lý bộ nhớ, cung cấp cơ chế quản lý tập tin cũng như các cơ chế quản lý vào ra. Tuy nhiên, cĩ một số vấn đề mới mà chúng ta cần quan tâm khi nghiên cứu một hệđiều
hành dùng trong hệ thống đa xử lý. Chẳng hạn như: việc quản lý tài nguyên, việc đồng bộ tiến trình, cũng như việc điều phối tiến trình trong nhiều bộ xử lý khác nhau.
Trong giới hạn của giáo trình này, chúng tơi chỉ cung cấp cho bạn đọc chi tiết về cấu hình phần cứng cũng như các vấn đề liên quan về hệđiều hành cho hệ thống đa xử lý dùng bộ nhớ chia sẻ. Phần tương tự cho hai hệ thống cịn lại, bạn đọc cĩ thể tham khảo thêm trong các tài liệu khác về hệđiều hành khác.
Mặc dù các hệ thống cĩ nhiều bộ xử lý đều cho phép mọi CPU cĩ thể truy xuất đến bộ nhớ của hệ thống, nhưng một vài hệ thống cĩ thêm một đặc tính nữa, đĩ là nĩ cho phép mọi từ nhớ cĩ thể được đọc ra với cùng một tốc độ. Những hệ thống này được gọi là hệ thống đa xử lý UMA (Uniform Memory Access Multiprocessor). Ngựơc lại, hệ thống nào khơng cĩ khả năng trên thì được gọi là NUMA (NonUniform Memory Access Multiprocessor). Vì sao cĩ sự khác biệt này chúng ta sẽ tìm hiểu ở phần sau, cịn bây giờ chúng ta sẽ lần lượt tìm hiểu từng loại hệ thống một.