Results (
Vietnamese) 2:
[Copy]Copied!
Hãy xem xét các vấn đề của thiết kế một hệ thống điều hành cho một máy tính mainframe lớn. Theo các thông số kỹ thuật, công việc nào nộp cho các máy tính được phân loại là ưu tiên cao, ưu tiên vừa, hay ưu tiên thấp. Nhiệm vụ của hệ điều hành là để quyết định công việc để nạp vào bộ nhớ tiếp theo, trong đó các công việc trong bộ nhớ được các lát thời gian tới và bao lâu mà lát thời gian nên được, và đó của những công việc đòi hỏi truy cập đĩa có ưu tiên cao nhất. Trong việc thực hiện kế hoạch này, hệ điều hành phải xem xét các ưu tiên của từng công việc; cao hơn là ưu tiên, sớm hơn công việc cần giao các nguồn tài nguyên của máy tính. Một cách để đạt được điều này là để duy trì hàng đợi công việc riêng biệt cho từng cấp độ công việc ưu tiên. Các hàng đợi công việc phải được khởi tạo, và các cơ sở phải tồn tại để bổ sung thêm một công việc để một hàng đợi công việc khi công việc đòi hỏi bộ nhớ, thời gian CPU, hoặc truy cập ổ đĩa cũng là để loại bỏ một công việc từ một hàng đợi khi hệ điều hành quyết định phân bổ yêu cầu tài nguyên công việc đó.
Để đơn giản hóa vấn đề, xem xét các vấn đề hạn chế của công việc hàng loạt xếp hàng để truy cập bộ nhớ. Có ba hàng đợi cho công việc hàng loạt đến, một cho mỗi cấp độ ưu tiên. Khi được gửi bởi một người dùng, một công việc được thêm vào hàng đợi thích hợp; và khi hệ điều hành quyết định rằng một công việc đã sẵn sàng để chạy, nó được lấy ra từ hàng đợi và bộ nhớ được phân bổ cho nó. Điều này phần của sản phẩm có thể được xây dựng trong một số cách khác nhau. Một thiết kế tốt, thể hiện trong hình 7.15, mô tả các mô-đun cho các thao tác một trong ba hàng đợi công việc. Các hoạt động được xác định trong các module m1, m2, m3 và là phương pháp toàn cầu (hàm thành viên tĩnh trong C ++, static methods hay class trong Java).
Hãy xem xét Hình 7.15. Phương pháp initializeJobQueue trong module m1 là chịu trách nhiệm cho việc khởi tạo hàng đợi công việc, và các phương pháp addJobToQueue và removeJobFromQueue trong module m2 và m3, tương ứng, chịu trách nhiệm về việc bổ sung và xóa các công việc. Module m123 chứa lời gọi của cả ba phương pháp để thao tác với các hàng đợi công việc. Để tập trung vào đóng gói dữ liệu, các vấn đề như underflow (cố gắng để loại bỏ một công việc từ một hàng đợi rỗng) và tràn (cố gắng để thêm một công việc để một hàng đợi đầy đủ) đã bị đàn áp ở đây, cũng như trong phần còn lại của chương này.
Being translated, please wait..