Bài giảng Hệ điều hành: Chương 7 - Trần Công Án (ĐH Cần Thơ)
lượt xem 12
download
Bài giảng "Hệ điều hành - Chương 7: Quản lý bộ nhớ" cung cấp cho người đọc các kiến thức: Tổng quan về bộ nhớ và tiến trình, hoán vị (swapping), cấp phát bộ nhớ kề nhau (Contigous allocation), phân trang (Paging), các cấu trúc bảng trang, phân đoạn (Segmentation), kết hợp phân trang và phân đoạn. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Hệ điều hành: Chương 7 - Trần Công Án (ĐH Cần Thơ)
- CT107. Hệ Điều Hành Chương 4. Quản lý bộ nhớ Giảng viên: Trần Công Án (tcan@cit.ctu.edu.vn) Bộ môn Mạng máy tính & Truyền thông Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2014
- [CT107] Ch7. Quản lý bộ nhớ Mục Tiêu I Mô tả chi tiết các phương pháp tổ chức bộ nhớ. I Giải thích các kỹ thuật quản lý bộ nhớ bao gồm phân trang và phân đoạn. I Một số ví dụ thực tế về quản lý bộ nhớ: quản lý phân đoạn trong bộ xử lý Intel Pentium và quản lý địa chỉ bộ nhớ trong HĐH Linux. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 2
- [CT107] Ch7. Quản lý bộ nhớ Nội Dung Tổng quan về Bộ nhớ và Tiến trình Hoán vị (swapping) Cấp phát bộ nhớ kề nhau (Contigous allocation) Phân trang (Paging) Các cấu trúc bảng trang Phân đoạn (Segmentation) Kết hợp phân trang và phân đoạn Phụ lục – Một Số Ví Dụ TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 3
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Tổng quan về bộ nhớ Giới Thiệu Bộ Nhớ I CPU chỉ có thể truy xuất trực tiếp thanh ghi và bộ nhớ chính. ⇒ Để thực thi một chương trình, đoạn mã của chương trình phải được tải vào trong bộ nhớ chính và đặt trong một tiến trình. I Thanh ghi: một dạng bộ nhớ đặc biệt, đặt bên trong CPU và chỉ mất tối đa 1 chu kỳ CPU để truy xuất. I Bộ nhớ chính: tốc độ truy xuất chậm hơn thanh ghi, đòi hỏi vài chu kỳ. I Bộ nhớ cache: là bộ nhớ trung gian giữa thanh ghi và bộ nhớ chính, tốc độ truy xuất nhanh, chỉ chậm hơn thanh ghi. I Việc bảo vệ bộ nhớ là cần thiết để đảm bảo thực thi đúng đắn của các tiến trình, đặc biệt trong môi trường đa nhiệm. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 4
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Thanh ghi nền và thanh ghi giới hạn Thanh Ghi Nền & Thanh Ghi Giới Hạn 8.1 Back 0 operating I Hỗ trợ việc phân chia vùng nhớ system cho các tiến trình. 256000 I Thanh ghi nền (base): xác định process giới hạn vùng nhớ vật lý thấp 300040 300040 nhất. base process I Thanh ghi giới hạn (limit): xác 420940 120900 định kích thước của vùng nhớ. limit process ⇒ Địa chỉ vùng nhớ mà một tiến trình có thể truy xuất: [base, 880000 base+limit] 1024000 Figure 8.1 A base and a limit register define a logical address TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 5
- Protection [CT107] Ch7. Quản lý bộ nhớof memory space is accomplished by having the CPU hardware compare Tổng quan every về Bộ nhớ address và Tiến trìnhgenerated in user mode with the registers. Any attempt bykhông Bảo vệ a program gian nhớexecuting in user mode to access operating-system memory or other users’ memory results in a trap to the operating system, which treats the attempt as a fatal error (Figure 8.2). This scheme prevents a user program from Bảo Vệ Không Gian Nhớ Bằng Phần Cứng (accidentally or deliberately) modifying the code or data structures of either the operating system or other users. The base and limit registers can be loaded only by the operating system, which uses a special privileged instruction. Since privileged instructions can I Được thực thi be executed onlybởi CPU,mode, in kernel sử dụng t/ghi and since onlycơ thesở và t/ghi operating giớiexecutes system hạn. in kernel mode, only the operating system can load the base and limit registers. I Hai thanh ghi chỉ có thể được thay đổi bởi HĐH, với quyền đặc biệt. base base ' limit address yes yes CPU ≥ < no no trap to operating system monitor—addressing error memory Figure 8.2 Hardware address protection with base and limit registers. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 6
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Gắn kết địa chỉ (Address binding) Gắn Kết (Binding) Địa Chỉ I Tập hợp các chương trình chờ đợi để được nạp vào bộ nhớ tạo thành một hàng đợi vào (input queue). I Các tiến trình có thể được nạp vào bất kỳ vùng nào (sẵn sàng) trên bộ nhớ, không nhất thiết từ địa chỉ 00000. I Một chương trình thường trãi qua 1 số bước trước khi được thực thi ⇒ Sự biểu diễn địa chỉ bộ nhớ trong từng g/đoạn có thể khác nhau: I Các địa chỉ tượng trưng trong chương trình nguồn. I Các địa chỉ có thể tái định vị khi biên dịch. I Các địa chỉ tuyệt đối khi nạp (loading) hoặc kết nối (linking). I Binding: ánh xạ địa chỉ từ không gian này sang 1 không gian khác. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 7
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Gắn kết chỉ thị và dữ liệu vào bộ nhớ Gắn Kết Dữ Liệu & Chỉ Thị Vào Bộ Nhớ I Có thể diễn ra tại 3 giai đoạn khác nhau: I Thời điểm biên dịch: có thể sinh ra mã lệnh tuyệt đối (absolute code) nếu biết trước vị trí vùng nhớ. Tuy nhiên, phải biên dịch lại nếu vị trí bắt đầu của vùng nhớ thay đổi. I Thời điểm nạp: việc gắn kết xảy ra ở thời điểm nạp nếu trình biên dịch sinh ra mã lệnh có thể tái định vị (relocatable code) – khi nó không biết vị trí vùng nhớ khi biên dịch. I Thời điểm thực thi: việc gắn kết xảy ra ở thời điểm này nếu tiến trình có thể bị di chuyển từ phân đoạn (segment) bộ nhớ này sang phân đoạn bộ nhớ khác khi nó đang thực thi. I Cần sự hỗ trợ của phần cứng (e.g. t/ghi nền và t/ghi giới hạn) I Được sử dụng bởi nhiều HĐH. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 8
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Gắn kết chỉ thị và dữ liệu vào bộ nhớ Các Bước Xử Lý Một Chương Trình 8.1 Background 355 source program compiler or compile assembler time object module other object modules linkage editor load load module time system library loader dynamically loaded system library in-memory execution dynamic binary time (run linking memory time) image Figure 8.3 Multistep processing of a user program. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 9
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Không gian địa chỉ vật lý và luận lý Không Gian Địa Chỉ Vật Lý & Luận Lý I Việc gắn kết không gian bộ nhớ vật lý và luận lý là trọng tâm của cơ chế quản lý bộ nhớ. I Địa chỉ luận lý (logical address): sinh ra bởi CPU, còn được gọi là địa chỉ ảo (vitual address). I Địa chỉ vật lý (physical address): được nhìn thấy bởi bộ quản lý bộ nhớ. I Địa chỉ luận lý và vật lý là giống nhau trong sơ đồ gắn kết địa chỉ tại thời điểm biên dịch và nạp chương trình; và sẽ khác nhau trong sơ đồ gắn kết tại thời điểm thực thi. I Không gian địa chỉ luận lý: tập tất cả các địa chỉ luận lý. I Không gian địa chỉ vật lý: tập tất cả các địa chỉ vật lý. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 10
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Bộ quản lý bộ nhớ – Memory Management Unit Bộ Quản Lý Bộ Nhớ - MMU I Là thiết bị phần cứng làm nhiệm vụ ánh xạ địa chỉ luận lý sang địa chỉ vật lý. I Có nhiều phương pháp được sử dụng, ví dụ như phương pháp dùng thanh ghi tái định vị (reallocation register) – địa chỉ bộ nhớ sử dụng bởi tiến trình sẽ được cộng thêm giá trị của thanh ghi tái định vị khi nó truy xuất bộ nhớ. I Thanh ghi tái định vị chính là thanh ghi cơ sở. I HĐH MS-DOS trên nền Intel 80x86 sử dụng 4 thanh ghi tái định vị. I Tiến trình người dùng chỉ dựa trên địa chỉ luận lý, không cần biết đến địa chỉ vật lý – sự ánh xạ đến địa chỉ vật lý xảy ra trong thời gian thực thi, khi tiến trình cần truy xuất bộ nhớ. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 11
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Bộ quản lý bộ nhớ – Memory Management Unit Bộ Quản Lý Bộ Nhớ – Sự Tái Định Vị Động Chapter 8 Main Memory relocation register 14000 logical physical address address CPU ' memory 346 14346 MMU Figure 8.4 Dynamic relocation using a relocation register. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 12
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Nạp động (Dynamic loading) Nạp Động (Dynamic Loading) I Các hàm-thư-viện (library routines) chỉ được nạp vào bộ nhớ khi nó được gọi. (vs. nạp tĩnh: toàn bộ chương trình sẽ được nạp trước khi tiến trình bắt đầu thực thi) I Các hàm-thư-viện sẽ được giữ trên đĩa theo định dạng nạp có thể tái định vị (dùng địa chỉ tương đối – relative address – kể từ địa chỉ 0). I Bộ nạp mã có thể tái định vị (reallocatable linking loader) được dùng để nạp các hàm-thư-viện (mã) cần thực thi. I Ưu điểm: tăng hiệu năng sử dụng bộ nhớ – các hàm-thư-viện không được gọi sẽ không được nạp lên bộ nhớ. I Hữu ích khi 1 lượng lớn các mã lệnh không thường được gọi. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 13
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Liên kết động (dynamic linking) Liên Kết Động (Dynamic Linking) I Liên kết tĩnh: mã của các hàm-thư-viện và mã chương trình được kết hợp vào trong mã nhị phân của chương trình. I Liên kết động: liên kết giữa các hàm-thư-viện và mã chương trình được thực hiện khi thực thi. I Một đoạn mã (gọi là stub) được sử dụng để định vị các hàm-thư-viện thường trú trong bộ nhớ (hoặc cách nạp nếu hàm-thư-viện chưa được nạp). I Khi cần thực thi hàm-thư-viện, stub thay thế chính nó bằng địa chỉ của hàm-thư-viện và thực thi hàm-thư-viện. I Stub có thể phải nạp hàm-thư-viện lên bộ nhớ nếu chưa có sẵn trên bộ nhớ. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 14
- [CT107] Ch7. Quản lý bộ nhớ Tổng quan về Bộ nhớ và Tiến trình Liên kết động (dynamic linking) Liên Kết Động (Dynamic Linking) I Liên kết động thường đòi hỏi sự hỗ trợ từ HĐH: I HĐH là thực thể duy nhất có thể kiểm tra một hàm-thư-viện có ở trong cùng không gian nhớ với chương trình gọi không. I Thực hiện phân quyền truy cập cho hàm-thư-viện khi cần thiết. I Liên kết động đặc biệt hữu ích cho phép tạo các thư viện hàm chia sẻ (shared libraries). TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 15
- [CT107] Ch7. Quản lý bộ nhớ Hoán vị (swapping) Hoán Đổi (Swapping) I Là một kỹ thuật cho phép tổng không gian bộ nhớ của các tiến trình lớn hơn tổng không gian nhớ vật lý: I Một (hay một phần) tiến trình có thể được di chuyển tạm thời từ bộ nhớ chính ra các thiết bị lưu trữ phụ (cuộn ra – roll/swap out) rồi sau đó di chuyển ngược vào bộ nhớ chính để tiếp tục thực thi (cuộn vào – roll/swap in). I Cho phép tăng độ đa nhiệm của các hệ thống đa chương. I Tốc độ của thiết bị lưu trữ phụ phải đủ nhanh để sao chép hiện trạng bộ nhớ (memory image) của các tiến trình và cho phép truy cập trực tiếp các dữ liệu này. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 16
- memory of the system, thus increasing the degree of multiprogramming in a [CT107] Ch7. Quản lý bộ nhớ system. Hoán vị (swapping) Roll in, Roll out 8.2.1 Standard Swapping Standard swapping involves moving processes between main memory and Swap Out, Swap In a backing store. The backing store is commonly a fast disk. It must be large operating system process P1 1 swap out process P2 2 swap in user space backing store main memory Figure 8.5 Swapping of two processes using a disk as a backing store. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 17
- [CT107] Ch7. Quản lý bộ nhớ Hoán vị (swapping) Cài Đặt Hoán Đổi Cài Đặt Hoán Đổi I Phần chính của thời gian hoán đổi là thời gian chuyển dữ liệu (transfer time), thường tỷ lệ với kích thước bộ nhớ hoán đổi. I Hệ thống duy trì một hàng đợi sẵn sàng để lưu trữ danh sách các tiến trình sẵn sàng thực thi và đang được hoán đổi ra vùng lưu trữ phụ. I Thời gian chuyển ngữ cảnh trong cách tiếp cận này tương đối cao ⇒ thường không khả thi trong thực tế. I Các phiên bản được sửa đổi của swapping được sử dụng trong các hệ điều hành hiện tại: I Swapping bình thường bị vô hiệu hóa. I Nó chỉ được kích hoạt khi nhu cầu bộ nhớ đạt đến 1 ngưỡng nào đó. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 18
- [CT107] Ch7. Quản lý bộ nhớ Cấp phát bộ nhớ kề nhau (Contigous allocation) Giới thiệu Cấp Phát Bộ Nhớ Kề Nhau I Là một trong các p/pháp cấp phát bộ nhớ được sử dụng đầu tiên. I Bộ nhớ chính thường được chia thành 2 phần: I Phần thường trú của HĐH: tổ chức trong vùng nhớ thấp (các vector ngắt). I Tiến trình người dùng: được tổ chức trong vùng nhớ cao. I Mỗi tiến trình được cấp phát một vùng nhớ đơn, liên tục. I Bộ quản lý bộ nhớ thực hiện ánh xạ địa chỉ luận lý sang vật lý vào thời gian thực thi (động): I địa chỉ vật lý = địa chỉ luận lý + giá trị thanh ghi tái định vị. TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 19
- [CT107] Ch7. Quản lý bộ nhớ Cấp phát bộ nhớ kề nhau (Contigous allocation) Bảo vệ vùng nhớ Bảo vệ vùng nhớ I Thanh ghi tái định vị được sử dụng để bảo vệ vùng nhớ của các tiến trình người dùng và HĐH (mã lệnh và dữ liệu). I Thanh ghi tái định vị: chứa địa chỉ vật lý thấp nhất của tiến trình. I Thanh ghi giới hạn: chứa phạm vi địa chỉ luận lý của tiến trình. limit relocation register register logical physical address yes address CPU ( ' memory no trap: addressing error TS. Trần Công Án (Khoa CNTT&TT) [CT107] Ch7. Quản lý bộ nhớ 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Hà Lê Hoài Thương
39 p | 182 | 33
-
Bài giảng Hệ điều hành - Chương 1: Giới thiệu hệ điều hành
32 p | 167 | 16
-
Bài giảng Hệ điều hành: Chương 9 - ĐH Bách khoa TP HCM
56 p | 116 | 13
-
Bài giảng Hệ điều hành: Chương 2 - Trần Công Án (ĐH Cần Thơ)
39 p | 137 | 11
-
Bài giảng Hệ điều hành - Chương 5: Quản lý vào ra
30 p | 166 | 10
-
Bài giảng Hệ điều hành: Chương 1 - Phan Xuân Huy
25 p | 143 | 9
-
Bài giảng Hệ điều hành: Chương 1C - Cấu trúc hệ điều hành
22 p | 133 | 9
-
Bài giảng Hệ điều hành: Chương 2 - Hà Duy An (ĐH Cần Thơ)
45 p | 106 | 9
-
Bài giảng Hệ điều hành: Chương 1 - Nguyễn Phan Trung
43 p | 122 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Hà Lê Hoài Trung
20 p | 123 | 9
-
Bài giảng Hệ điều hành: Chương 2 - ThS. Phan Đình Duy
36 p | 79 | 7
-
Bài giảng Hệ điều hành: Chương 1 - TS. Ngô Hữu Dũng
60 p | 122 | 7
-
Bài giảng Hệ điều hành: Chương 1 - Đặng Minh Quân
23 p | 75 | 6
-
Bài giảng Hệ điều hành: Chương 1 - ThS. Huỳnh Triệu Vỹ
156 p | 78 | 5
-
Bài giảng Hệ điều hành - Chương 1: Tổng quan hệ điều hành (Lương Minh Huấn)
109 p | 46 | 5
-
Bài giảng Hệ điều hành: Chương 1 - ĐH Bách khoa TP Hồ Chí Minh
26 p | 119 | 5
-
Bài giảng Hệ điều hành: Chương 2 - ĐH Công nghệ thông tin
36 p | 68 | 3
-
Bài giảng Hệ điều hành - Chương 1: Mở đầu
13 p | 86 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn