Bài giảng hệ điều hành chương 6

91 226 0
Bài giảng hệ điều hành  chương 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 6:Quản lý nhớ Tìm hiểu chế quản lý nhớ Hệ điều hành 4-Jun-14 TT QTM Nội dung    Các khái niệm Yêu cầu chức quản lý nhớ Các mô hình quản lý nhớ   4-Jun-14 Dạng đơn giản Quản lý nhớ ảo TT QTM Khái niệm(1): Kết nối địa  Kết nối địa chỉ:  Chương trình:     4-Jun-14 Bao gồm liệu & mã lệnh Phải đưa từ đĩa vào nhớ đặt vào tiến trình để chạy Input queue – tập hợp tiến trình đĩa chờ để đưa vào nhớ để chạy chương trình Chương trình người sử dụng phải qua số bước trước chạy TT QTM Khái niệm(2): Kết nối địa  Các bước thực chương trình người dùng: System System Library Library static linking nhớ dynamic linking 4-Jun-14 TT QTM System System Library Library Khái niệm(3): Kết nối địa  Kết nối lệnh, liệu tới địa nhớ: trình gắn địa lệnh liệu tới địa nhớ xảy giai đoạn khác nhau: Compile time: Nếu vị trí nhớ biết trước, mã xác (absolute code) sinh ra; phải biên dịch lại mã vị trí bắt đầu thay đổi Load time: Phải sinh mã tái định vị (relocatable code) vị trí nhớ giai đoạn biên dịch Execution time: Sự liên kết bị hoãn lại đến giai đoạn chạy trình thực hiện, tiến trình bị chuyển từ đoạn nhớ đến đoạn khác Cần có hỗ trợ phần cứng để ánh xạ địa (ví dụ, base limit registers) 4-Jun-14 TT QTM Khái niệm(3): Liên kết địa  Minh họa: Symbolic address int x, y; goto p1; p1 Relocatable address Absolute address (physical memory) 2000 if (…) … 2250 250 source code 4-Jun-14 Relocatable Object Modules TT QTM process binary image Khái niệm(3): Liên kết địa  Compile time: Absolute addresses (physical memory addresses) Symbolic addresses PROGRAM 1024 JUMP i i Absolute addresses (physical memory addresses) 1024 JUMP 1424 JUMP 1424 1424 LOAD j DATA j 1424 LOAD 2224 Compile Link/Load 2224 Source Code 4-Jun-14 LOAD 2224 2224 Absolute load module TT QTM Process image Khái niệm(3): Liên kết địa  Load time: Relative (relocatable) addresses Symbolic addresses PROGRAM JUMP i 1024 JUMP 400 i 400 LOAD j Absolute addresses (physical memory addresses) 1424 LOAD 1200 Compile JUMP 1424 LOAD 2224 Link/Load DATA j 1200 Source Code 4-Jun-14 2224 Relative Load Module TT QTM Process Image Khái niệm(3): Liên kết địa  Execution time: Relative (relocatable) addresses JMP 400 400 LOAD 1200 1200 MAX=2000 4-Jun-14 TT QTM Khái niệm(4): Địa lôgic & Địa vật lý  Khái niệm không gian địa logic (logical address space) tách riêng với không gian địa vật lý (physical address space) để quản lý nhớ thích hợp    Logical address – tạo CPU, gọi địa ảo (virtual address) Physical address – địa nhận biết đơn vị nhớ (memory unit) Các địa logic (ảo) vật lý giai đoạn gắn kết địa compile-time load-time; chúng khác execution-time 4-Jun-14 TT QTM 10 3.2.4 Thay trang(3): Các giải thuật thay trang    Mục đích: tỷ lệ page-fault thấp Đánh giá giải thuật cách chạy chuỗi riêng biệt tham chiếu nhớ tính số page faults chuỗi Một số giải thuật:    4-Jun-14 FIFO(First In First Out) LRU(Least Recently Used) Giải thuật tương tự LRU TT QTM 77 3.2.4.Thay trang(5): Giải thuật FIFO   Ý tưởng: trang đưa vào nhớ sớm giải phóng để nạp trang khác Ví dụ: chuỗi tham chiếu trang nạp vào nhớ có frame 4-Jun-14 TT QTM 78 3.2.4 Thay trang(6): Least Recently Used (LRU) Algorithm   Ý tưởng: Thay trang có khoảng thời gian không dùng lâu Sự thực Bộ đếm (Counter)   4-Jun-14 Mọi phần tử bảng có đếm, thời điểm trang tham chiếu qua phần tử bảng này, copy clock vào đếm Khi trang cần hoán đổi, tìm đếm để xác định trang làm nạn nhân TT QTM 79 3.2.4 Thay trang(7): LRU Page Replacement 4-Jun-14 TT QTM 80 3.2.4 Thay trang(8): LRU Page Replacement  Sự thực Stack   Dành stack số trang danh sách liên kết kép Khi trang tham chiếu:    Chuyển lên đỉnh có nhớ; chưa, chuyển lên đỉnh loại bỏ trang đáy stack Cần trỏ để đổi trang Không cần tìm kiếm để thay 4-Jun-14 TT QTM 81 3.2.4 Thay trang(9): Các giải thuật tương tự LRU  Giải thuật dùng thêm bit tham chiếu     Gắn bit vào trang, khởi tạo = Khi trang tham chiếu, bit thiết lập = Thay trang có bit tham chiếu = 0, có tồn nhớ Giải thuật hội thứ hai (Second chance)  Cần có bit tham chiếu Nếu bit tham chiếu = thay trang Trái lại cho trang hội thứ hai chuyển đến trang tiếp sau     4-Jun-14 Thiết lập bit tham chiếu = Để trang lại nhớ Thay trang (theo FIFO) với luật tương tự Một cách thực giải thuật sử dụng queue vòng tròn TT QTM 82 3.2.4 Thay trang(12): Giải thuật thay trang "cơ hội thứ hai" 4-Jun-14 TT QTM 83 3.2.4 Thay trang(13): Các giải thuật dựa số liệu thống kê    Dành đếm số tham chiếu đến trang Least Frequently Used (LFU) Algorithm: thay trang đếm (có tần số truy nhập nhỏ nhất) Most Frequently Used (MFU) Algorithm: thay trang đếm nhiều (có tần số truy nhập cao nhất), dựa lý luận trang đếm vừa đưa vào nhớ chưa kịp sử dụng 4-Jun-14 TT QTM 84 3.2.5 Phân phối Frames(1)   Mỗi tiến trình cần số lượng trang tối thiểu để thực Ví dụ: IBM 370 – cần trang để thực lệnh SS MOVE:     lệnh độ dài bytes, chứa trang trang để thực from trang để thực to Hai cách phân phối chính:   4-Jun-14 phân phối cố định (fixed allocation) phân phối có ưu tiên (priority allocation) TT QTM 85 3.2.5 Phân phối Frames(2): Phân phối cố định   Phân phối công – vd có 100 frames tiến trình, cho tiến trình 20 trang Phân phối theo kích thước tiến trình 4-Jun-14 TT QTM 86 3.2.5 Phân phối Frames(3): Phân phối có ưu tiên  Phân phối theo mức ưu tiên   4-Jun-14 Nếu tiến trình Pi phát sinh page fault, chọn thay số frame Frame thay vào chọn từ tiến trình có mức ưu tiên thấp TT QTM 87 3.2.5 Phân phối Frames(4): Global vs Local Allocation   Global replacement – tiến trình chọn frame thay từ tập tất frame; tiến trình lấy frame từ tiến trình khác Local replacement – tiến trình chọn frame thay từ tập frame phân phối cho 4-Jun-14 TT QTM 88 3.2.6 Thrashing  Nếu tiến trình frame, tỷ lệ page fault cao Điều dẫn đến:      Sử dụng CPU thấp HĐH cho cần phải tăng mức đa chương trình Một tiến trình khác thêm vào hệ thống Thrashing ≡ tiến trình gọi Thrashing dành nhiều thời gian (bận rộn) với việc hoán đổi trang vào thời gian thực Tại thrashing xuất hiện?  4-Jun-14 Σ kích thước vùng > tổng kích thước nhớ TT QTM 89 3.2.7 Demand SegmentationPhân đoạn theo yêu cầu    Được sử dụng thiếu phần cứng thực demand paging OS/2 phân phối nhớ theo đoạn theo dõi qua trình quản lý đoạn (segment descriptors) Segment descriptor chứa valid bit biết đoạn có nhớ hay không   4-Jun-14 Nếu đoạn nhớ -> tiếp tục truy nhập, Nếu đoạn không nhớ -> segment fault TT QTM 90 Q&A  List câu hỏi 4-Jun-14 TT QTM 91 [...]... lập I(6KB), J(6KB) 4-Jun-14 A 30KB B 24KB D 12KB TT QTM C 10KB E 10K G 12K H 8KB I 6KB J 6K 16 1 Khái niệm(10): cơ chế Overlays(tt)  A 30KB Overlay:   B 24KB D 12KB C 10KB E 10K G 12K   H 8KB  I 6KB 4-Jun-14 J 6K Cây chương trình gốc B cần: 24+12=36K Cây chương trình gốc C cần: 10+8 +6= 24K B, C độc lập không có mặt đồng thời => cần 36K(lấy module lớn) Cả chương trình cần: 30 (cho A)+ 36= 66K Không... MVT(Multiprogramming w/ a Variable number of Tasks) của hệ điều hành Các tiến trình được nạp liên tục vào bộ nhớ đến khi còn đủ dung lượng Số lượng tiến trình đồng thời trong bộ nhớ không định trước    OS 128K P1 Process Space OS OS 320K 896K P1 320K P2 224K 576K OS  4-Jun-14 OS OS P1 320K P2 224K P3 288K 64 K P1 320K 224K P3 352K 288K 64 K TT QTM P1 320K P4 128K 96K 288K P3 64 K 30 3.1.2 Phân phối không liên tục ... 3.1.1 Cấp phát liên tục(4): MultiProg – Fixed Partitions(Đa ctr với phân vùng cố định)     Bộ nhớ được chia thành các partition (phân vùng or miền or chương ) cố định; tên partition, địa chỉ, dung lượng được gán trong quá trình khởi tạo hệ điều hành Partition 0 dành cho nhân hệ điều hành Mỗi tiến trình được tải vào một partition nhất định và chỉ hoạt động trong partition chứa nó Số tiến trình đồng... có Chia bộ nhớ vật lý thành những khối có kích thước cố định là lũy thừa của 2 (512 bytes - 16 MB),được gọi là các frame(page vật lý) Chia bộ nhớ logic( dành cho các tiến trình) thành các khối cùng kích thước - các page Mỗi page có kích thước = 1 frame Luôn theo dõi tất cả các frame còn trống Để chạy một chương trình có kích thước n pages, cần phải tìm n frames còn trống và nạp chương trình Thiết lập... gian chuyển tỷ lệ thuận với dung lượng bộ nhớ hoán đổi Swap out: chọn tiến trình để đưa ra backing store Swap in: chọn tiến trình từ backing store để đưa vào bộ nhớ trong Trong các hệ điều hành sử dụng swapping, tồn tại module hệ thống swapper có chức năng: chọn tiến trình swap out, chọn tiến trình swap in, định vị & quản lý không gian chuyển 4-Jun-14 TT QTM 18 1 Khái niệm(10): Swapping 4-Jun-14 TT QTM... logic phải nhỏ hơn limit register 4-Jun-14 TT QTM 25 3.1.1 Phân phối liên tục(2)  Ví dụ các thanh ghi Relocation và Limit 4-Jun-14 TT QTM 26 3.1.1 Phân phối liên tục(2)  Ví dụ các thanh ghi Relocation và Limit(tt) 12000 2 56 TH1: 128 12128 TH2: 280 error(vì > 2 56) 4-Jun-14 TT QTM 27 3.1.1 Phân phối liên tục(3): Mono-programming  Operation system + 1 user program 0xFFF… Device drivers in ROM Operating... thực hiện -> module chương trình chính Quan hệ độc lập/phụ thuộc chỉ sự có mặt của 1 nhóm module trong bộ nhớ đòi hỏi/không đòi hỏi sự có mặt của một nhóm module khác Các module độc lập không cần thiết phải có mặt đồng thời trong bộ nhớ Cần đến khi tiến trình có dung lượng lớn hơn bộ nhớ được cấp phát cho nó 4-Jun-14 TT QTM 15 1 Khái niệm(10): cơ chế Overlays(tt)      Ex: chương trình gồm 1 module... chỉ được sinh ra bởi tiến trình của người dùng tại thời điểm nó được gửi tới bộ nhớ Chương trình của người dùng làm việc với các địa chỉ logic; nó không bao giờ nhận ra các địa chỉ vật lý thực TT QTM 11 1 Khái niệm (6) : Địa chỉ lôgic & Địa chỉ vật lý 4-Jun-14 TT QTM 12 1 Khái niệm(7): Dynamic Loading-Tải động     Chương trình(routine) chỉ được nạp vào bộ nhớ khi nó được gọi Sử dụng không gian bộ... hiện thông qua thiết kế chương trình 4-Jun-14 TT QTM 13 1 Khái niệm(8): Dynamic Linking-Liên kết động   Việc liên kết hoãn lại đến execution time Stub: đoạn mã nhỏ   Khi được thực hiện, stub kiểm tra routine cần đến có trong bộ nhớ của tiến trình:    Sử dụng để định vị các chương trình thư viện cư trú trong bộ nhớ (memory-resident library routine) thích hợp nếu chưa thì chương trình nạp routine... động đặc biệt hữu dụng đối với các thư viện chương trình, nhất là trong việc cập nhật thư viện (vd sửa lỗi) 4-Jun-14 TT QTM 14 1 Khái niệm(9): cơ chế Overlays   Ý tưởng: chỉ giữ trong bộ nhớ những lệnh và dữ liệu cần đến tại mọi thời điểm( thường là các module tải) -> giảm không gian nhớ liên tục dành cho ctr Cơ chế Overlay:      Cho phép tổ chức ctr thành các đơn vị ctr(module): Module luôn tồn ... 4-Jun-14 J 6K Cây chương trình gốc B cần: 24+12=36K Cây chương trình gốc C cần: 10+8 +6= 24K B, C độc lập mặt đồng thời => cần 36K(lấy module lớn) Cả chương trình cần: 30 (cho A)+ 36= 66K Không sử...    Bộ nhớ chia thành partition (phân vùng or miền or chương ) cố định; tên partition, địa chỉ, dung lượng gán trình khởi tạo hệ điều hành Partition dành cho nhân hệ điều hành Mỗi tiến trình... I(6KB), J(6KB) 4-Jun-14 A 30KB B 24KB D 12KB TT QTM C 10KB E 10K G 12K H 8KB I 6KB J 6K 16 Khái niệm(10): chế Overlays(tt)  A 30KB Overlay:   B 24KB D 12KB C 10KB E 10K G 12K   H 8KB  I 6KB

Ngày đăng: 03/12/2015, 14:39

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan