Giáo trình Hệ điều hành (Operating system): Phần 2
Số trang: 101
Loại file: pdf
Dung lượng: 3.74 MB
Lượt xem: 26
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Nối tiếp phần 1 cuốn "Giáo trình Hệ điều hành (Operating system)" mời các bạn cùng tìm hiểu phần 2 để biết được về việc quản lý bộ nhớ; quản lý Processor; hệ điều hành nhiều bộ vi xử lý. Mời các bạn cùng tìm hiểu và tham khảo nội dung thông tin tài liệu.
Nội dung trích xuất từ tài liệu:
Giáo trình Hệ điều hành (Operating system): Phần 2 CHƯƠNG 4 QUẢN LÝ BỘ NHỚ Chương “QUẢN LÝ BỘ NHỚ sẽ giới thiệu và giải thích các vấn đề sau: 4.1 Các vấn đề phát sinh khi quản lý bộ nhớ. 4.2 Các mô hình cấp phát bộ nhớ. 4.3 Bộ nhớ ảo N 4.1 CÁC VẤN ĐỀ PHÁT SINH KHI QUẢN LÝ BỘ NHỚ .V + Chuyển đổi địa chỉ tương đối trong chương trình thành địa chỉ thực trong bộ nhớ chính. + Quản lý bộ nhớ đã cấp phát và chưa cấp phát. U + Các kỹ thuật cấp phát bộ nhớ sao cho: - Ngăn chặn các tiến trình xâm phạm đến vùng nhớ đã được cấp phát cho tiến trình khác. ED - Cho phép nhiều tiến trình có thể dùng chung một phần bộ nhớ của nhau. - Mở rộng bộ nhớ để có thể lưu trữ được nhiều tiến trình đồng thời. 4.1.1 Chuyển đổi địa chỉ tương đối sang tuyệt đối T. Các địa chỉ trong chương trình thực thi (dạng exe) là địa chỉ tương đối, và cần được chuyển đổi các địa chỉ này thành các địa chỉ tuyệt đối trong bộ nhớ chính. Việc chuyển đổi có thể xảy ra vào TI một trong những thời điểm sau: + Thời điểm biên dịch (compile time): .P Nếu tại thời điểm biên dịch, có thể biết vị trí mà tiến trình sẽ được nạp vào trong bộ nhớ, trình biên dịch có thể phát sinh ngay mã với các địa chỉ tuyệt đối. Tuy nhiên, nếu về sau có sự thay đổi vị trí của chương trình, cần phải biên dịch lại chương trình. Ví dụ các chương trình .com chạy N trên hệ điều hành MS-DOS có mã tuyệt đối ngay khi biên dịch. PE + Thời điểm nạp (load time): Nếu tại thời điểm biên dịch, chưa thể biết vị trí mà tiến trình sẽ được nạp vào trong bộ nhớ, trình biên dịch chỉ phát sinh mã tương đối. Khi nạp chương trình vào bộ nhớ, hệ điều hành sẽ chuyển các địa chỉ tương đối thành địa chỉ tuyệt đối do đã biết vị trí bắt đầu lưu trữ tiến trình. Khi có sự O thay đổi vị trí lưu trữ, cần nạp lại chương trình để thực hiện lại việc chuyển đổi địa chỉ, không cần biên dịch lại chương trình. + Thời điểm xử lý (execution time): Nếu có nhu cầu di chuyển tiến trình từ vùng nhớ này sang vùng nhớ khác trong quá trình tiến trình xử lý, thì việc chuyển đổi địa chỉ sẽ được thực hiện vào lúc tiến trình thực thi. Chức năng chuyển đổi địa chỉ do phần cứng cung cấp gọi là MMU (memory management unit). Các hệ điều hành thường dùng việc chuyển đổi theo cách này. 101 4.1.2 Không gian địa chỉ ảo và không gian địa chỉ vật lý + Địa chỉ ảo (địa chỉ logic): là địa chỉ do bộ xử lý (CPU) tạo ra. + Địa chỉ vật lý (địa chỉ physic): là địa chỉ thực trong bộ nhớ chính, địa chỉ vật lý còn gọi là địa chỉ tuyệt đối/địa chỉ thực. + Không gian địa chỉ ảo của tiến trình: là tập hợp tất cả các địa chỉ ảo của một tiến trình. + Không gian điạ chỉ vật lý của tiến trình: là tập hợp tất cả các địa chỉ vật lý tương ứng với các địa chỉ ảo. Khi chương trình nạp vào bộ nhớ các địa chỉ tương đối trong chương trình được CPU chuyển thành địa chỉ ảo, khi thực thi, địa chỉ ảo được hệ điều hành kết hợp với phần cứng MMU chuyển N thành địa chỉ vật lý .Tóm lại chỉ có khái niệm địa chỉ ảo nếu việc chuyển đổi địa chỉ xảy ra vào thời điểm xử lý, khi đó tiến trình chỉ thao tác trên các địa chỉ ảo, địa chỉ vật lý chỉ được xác định .V khi thực hiện truy xuất bộ nhớ vật lý. U ED T. TI Hình 4.1: CPU gởi địa chỉ ảo tới MMU, MMU chuyển địa chỉ ảo thành địa chỉ vật lý .P 4.1.3 Quản lý bộ nhớ đã cấp phát và chưa cấp phát N Hệ điều hành cần lưu trữ thông tin về phần bộ nhớ đã cấp phát và phần bộ nhớ chưa cấp phát. Nếu đã cấp phát thì cấp cho tiến trình nào. Khi cần cấp phát bộ nhớ cho một tiến trình thì làm sao tìm PE được phần bộ nhớ trống thích hợp nhanh chóng và khi bộ nhớ bị phân mảnh thì cần dồn bộ nhớ lại để tận dụng bộ nhớ và để tiến trình thực thi nhanh hơn. 4.1.3.1 Các phương pháp quản lý việc cấp phát bộ nhớ: O a/ Sử dụng dãy bit : bít thứ i bằng 1 là khối thứ i đã cấp phát, bằng 0 là chưa cấp phát. b/ Sử dụng danh sách liên kết: mỗi nút của danh sách liên kết lưu thông tin một vùng nhớ chứa tiến trình (P) hay vùng nhớ trống giữa hai tiến trình (H). 102 N Hình 4.2: quản lý việc cấp phát bộ nhớ bằng dãy bit hoặc danh sách liên kết .V Trước khi tiến trình X kết thúc, có 4 trường hợp có thể xảy ra và khi tiến trình X kết thúc, hệ điều hành cần gom những nút trống gần nhau. U ED T. Hình 4.3: các trường hợp có thể xảy ra trước khi tiến trình X kết thúc TI 4.1.3.2 Các thuật toán chọn một đoạn trống: + First-fit: chọn đoạn trống đầu tiên đủ lớn. .P + Best-fit: chọn đoạn trống nhỏ nhất nhưng đủ lớn để thỏa mãn nhu cầu. + Worst-fit : chọn đoạn trống lớn nhất. N 4.2 CÁC MÔ HÌNH CẤP PHÁT BỘ NHỚ PE Có hai mô hình dùng để cấp phát bộ nhớ cho một tiến trình là: + Cấp phát liên tục: tiến trình được nạp vào một vùng nhớ liên tục. + Cấp phát không liên tục: tiến trình đư ...
Nội dung trích xuất từ tài liệu:
Giáo trình Hệ điều hành (Operating system): Phần 2 CHƯƠNG 4 QUẢN LÝ BỘ NHỚ Chương “QUẢN LÝ BỘ NHỚ sẽ giới thiệu và giải thích các vấn đề sau: 4.1 Các vấn đề phát sinh khi quản lý bộ nhớ. 4.2 Các mô hình cấp phát bộ nhớ. 4.3 Bộ nhớ ảo N 4.1 CÁC VẤN ĐỀ PHÁT SINH KHI QUẢN LÝ BỘ NHỚ .V + Chuyển đổi địa chỉ tương đối trong chương trình thành địa chỉ thực trong bộ nhớ chính. + Quản lý bộ nhớ đã cấp phát và chưa cấp phát. U + Các kỹ thuật cấp phát bộ nhớ sao cho: - Ngăn chặn các tiến trình xâm phạm đến vùng nhớ đã được cấp phát cho tiến trình khác. ED - Cho phép nhiều tiến trình có thể dùng chung một phần bộ nhớ của nhau. - Mở rộng bộ nhớ để có thể lưu trữ được nhiều tiến trình đồng thời. 4.1.1 Chuyển đổi địa chỉ tương đối sang tuyệt đối T. Các địa chỉ trong chương trình thực thi (dạng exe) là địa chỉ tương đối, và cần được chuyển đổi các địa chỉ này thành các địa chỉ tuyệt đối trong bộ nhớ chính. Việc chuyển đổi có thể xảy ra vào TI một trong những thời điểm sau: + Thời điểm biên dịch (compile time): .P Nếu tại thời điểm biên dịch, có thể biết vị trí mà tiến trình sẽ được nạp vào trong bộ nhớ, trình biên dịch có thể phát sinh ngay mã với các địa chỉ tuyệt đối. Tuy nhiên, nếu về sau có sự thay đổi vị trí của chương trình, cần phải biên dịch lại chương trình. Ví dụ các chương trình .com chạy N trên hệ điều hành MS-DOS có mã tuyệt đối ngay khi biên dịch. PE + Thời điểm nạp (load time): Nếu tại thời điểm biên dịch, chưa thể biết vị trí mà tiến trình sẽ được nạp vào trong bộ nhớ, trình biên dịch chỉ phát sinh mã tương đối. Khi nạp chương trình vào bộ nhớ, hệ điều hành sẽ chuyển các địa chỉ tương đối thành địa chỉ tuyệt đối do đã biết vị trí bắt đầu lưu trữ tiến trình. Khi có sự O thay đổi vị trí lưu trữ, cần nạp lại chương trình để thực hiện lại việc chuyển đổi địa chỉ, không cần biên dịch lại chương trình. + Thời điểm xử lý (execution time): Nếu có nhu cầu di chuyển tiến trình từ vùng nhớ này sang vùng nhớ khác trong quá trình tiến trình xử lý, thì việc chuyển đổi địa chỉ sẽ được thực hiện vào lúc tiến trình thực thi. Chức năng chuyển đổi địa chỉ do phần cứng cung cấp gọi là MMU (memory management unit). Các hệ điều hành thường dùng việc chuyển đổi theo cách này. 101 4.1.2 Không gian địa chỉ ảo và không gian địa chỉ vật lý + Địa chỉ ảo (địa chỉ logic): là địa chỉ do bộ xử lý (CPU) tạo ra. + Địa chỉ vật lý (địa chỉ physic): là địa chỉ thực trong bộ nhớ chính, địa chỉ vật lý còn gọi là địa chỉ tuyệt đối/địa chỉ thực. + Không gian địa chỉ ảo của tiến trình: là tập hợp tất cả các địa chỉ ảo của một tiến trình. + Không gian điạ chỉ vật lý của tiến trình: là tập hợp tất cả các địa chỉ vật lý tương ứng với các địa chỉ ảo. Khi chương trình nạp vào bộ nhớ các địa chỉ tương đối trong chương trình được CPU chuyển thành địa chỉ ảo, khi thực thi, địa chỉ ảo được hệ điều hành kết hợp với phần cứng MMU chuyển N thành địa chỉ vật lý .Tóm lại chỉ có khái niệm địa chỉ ảo nếu việc chuyển đổi địa chỉ xảy ra vào thời điểm xử lý, khi đó tiến trình chỉ thao tác trên các địa chỉ ảo, địa chỉ vật lý chỉ được xác định .V khi thực hiện truy xuất bộ nhớ vật lý. U ED T. TI Hình 4.1: CPU gởi địa chỉ ảo tới MMU, MMU chuyển địa chỉ ảo thành địa chỉ vật lý .P 4.1.3 Quản lý bộ nhớ đã cấp phát và chưa cấp phát N Hệ điều hành cần lưu trữ thông tin về phần bộ nhớ đã cấp phát và phần bộ nhớ chưa cấp phát. Nếu đã cấp phát thì cấp cho tiến trình nào. Khi cần cấp phát bộ nhớ cho một tiến trình thì làm sao tìm PE được phần bộ nhớ trống thích hợp nhanh chóng và khi bộ nhớ bị phân mảnh thì cần dồn bộ nhớ lại để tận dụng bộ nhớ và để tiến trình thực thi nhanh hơn. 4.1.3.1 Các phương pháp quản lý việc cấp phát bộ nhớ: O a/ Sử dụng dãy bit : bít thứ i bằng 1 là khối thứ i đã cấp phát, bằng 0 là chưa cấp phát. b/ Sử dụng danh sách liên kết: mỗi nút của danh sách liên kết lưu thông tin một vùng nhớ chứa tiến trình (P) hay vùng nhớ trống giữa hai tiến trình (H). 102 N Hình 4.2: quản lý việc cấp phát bộ nhớ bằng dãy bit hoặc danh sách liên kết .V Trước khi tiến trình X kết thúc, có 4 trường hợp có thể xảy ra và khi tiến trình X kết thúc, hệ điều hành cần gom những nút trống gần nhau. U ED T. Hình 4.3: các trường hợp có thể xảy ra trước khi tiến trình X kết thúc TI 4.1.3.2 Các thuật toán chọn một đoạn trống: + First-fit: chọn đoạn trống đầu tiên đủ lớn. .P + Best-fit: chọn đoạn trống nhỏ nhất nhưng đủ lớn để thỏa mãn nhu cầu. + Worst-fit : chọn đoạn trống lớn nhất. N 4.2 CÁC MÔ HÌNH CẤP PHÁT BỘ NHỚ PE Có hai mô hình dùng để cấp phát bộ nhớ cho một tiến trình là: + Cấp phát liên tục: tiến trình được nạp vào một vùng nhớ liên tục. + Cấp phát không liên tục: tiến trình đư ...
Tìm kiếm theo từ khóa liên quan:
Giáo trình Hệ điều hành Hệ điều hành Môn học Hệ điều hành Quản lý bộ nhớ Quản lý Processor Hệ điều hành nhiều bộ vi xử lýGợi ý tài liệu liên quan:
-
Giáo trình Lý thuyết hệ điều hành: Phần 1 - Nguyễn Kim Tuấn
110 trang 453 0 0 -
183 trang 317 0 0
-
173 trang 275 2 0
-
175 trang 272 0 0
-
Giáo trình Nguyên lý các hệ điều hành: Phần 2
88 trang 271 0 0 -
Giáo trình Nguyên lý hệ điều hành (In lần thứ ba): Phần 1 - PGS.TS. Hà Quang Thụy
98 trang 248 0 0 -
Đề tài nguyên lý hệ điều hành: Nghiên cứu tìm hiểu về bộ nhớ ngoài trong hệ điều hành Linux
19 trang 245 0 0 -
Bài thảo luận nhóm: Tìm hiểu và phân tích kiến trúc, chức năng và hoạt động của hệ điều hành Android
39 trang 228 0 0 -
Giáo trình Hệ điều hành: Phần 2
53 trang 219 0 0 -
Phần III: Xử lý sự cố Màn hình xanh
3 trang 199 0 0