Hãy xem xét những gì xảy ra với bộ nhớ cache khi một quá trình đã chạy trên một bộ xử lý cụ thể. Các dữ liệu gần đây nhất được truy cập bởi các quá trình cư trú trong bộ nhớ cache cho bộ vi xử lý. Vì vậy, kế tiếp bộ nhớ truy cập bởi quá trình thường hài lòng trong bộ nhớ cache. Bây giờ hãy xem xét những gì sẽ xảy ra nếu trong quá trình di chuyển đến một bộ xử lý. Nội dung của bộ nhớ cache phải được giao cho bộ xử lý đầu tiên, và bộ nhớ cache cho bộ vi xử lý thứ hai phải được repopulated. Vì chi phí cao khác và repopulating lưu trữ hệ thống SMP nhất cố gắng tránh di chuyển của các quá trình từ một trong những bộ vi xử lý khác và thay vì cố gắng giữ cho một tiến trình đang chạy trên bộ xử lý tương tự. Điều này được biết đến như là bộ vi xử lý mối quan hệ — có nghĩa là, một quá trình có một ái lực cho các bộ xử lý trên mà nó hiện đang chạy. Bộ vi xử lý mối quan hệ mất nhiều hình thức. Khi một hệ điều hành có một chính sách cố gắng để giữ cho một tiến trình đang chạy trên bộ xử lý tương tự-nhưng không đảm bảo rằng nó sẽ làm như vậy-chúng tôi có một tình trạng gọi là ái lực mềm. Ở đây, Hệ điều hành sẽ cố gắng giữ cho một quá trình trên một bộ xử lý duy nhất, nhưng nó có thể cho một quá trình di chuyển giữa các bộ vi xử lý. Ngược lại, một số hệ thống cung cấp hệ thống các cuộc gọi hỗ trợ mối quan hệ khó khăn, do đó cho phép một quá trình để xác định một tập hợp con của bộ vi xử lý mà có thể chạy. Nhiều hệ thống cung cấp các mối quan hệ cả mềm và cứng. Ví dụ, Linux soft ái lực thực hiện, nhưng nó cũng cung cấp các cuộc gọi hệ thống setaffinity() sched, mà hỗ trợ các mối quan hệ khó khăn. Kiến trúc bộ nhớ chính của một hệ thống có thể ảnh hưởng đến bộ xử lý các vấn đề mối quan hệ. Hình 6.9 mô tả một kiến trúc có tính năng truy cập bộ nhớ phục (NUMA), trong đó một CPU có một truy cập nhanh hơn để một số phần của bộ nhớ chính hơn đến các bộ phận khác. Thông thường, điều này xảy ra trong các hệ thống có chứa kết hợp CPUand memory boards. The CPUs on a board can access the memory on thatboard faster than they can access memory on other boards in the system.If the operating system’s CPU scheduler and memory-placement algorithmswork together, then a process that is assigned affinity to a particular CPUcan be allocated memory on the board where that CPU resides. This examplealso shows that operating systems are frequently not as cleanly defined andimplemented as described in operating-system textbooks. Rather, the “solidlines” between sections of an operating system are frequently only “dottedlines,” with algorithms creating connections in ways aimed at optimizingperformance and reliability.
đang được dịch, vui lòng đợi..
