Báo cáo kỹ thuật vi xử lý- quản lý bộ nhớ ảo
Mục lục Mục lục 1 I.Tổng quan 2 II.Các phương pháp quản lí bộ nhớ: 2 II.1. Quản lí bộ nhớ ảo phân trang 4 II.2 Các phương pháp giải phóng trang thật 7 II.2.1. Phương pháp FIFO 7 II.2.1 Phương pháp tối ưu 8 II.2.3 Phương pháp “Not Recently-Used” - NRU : 8 II.2.4 Phương pháp “Least Recently-Used” - LRU : 10 II.3 Quản lý bộ nhớ ảo phân đoạn 12 II.4 Quản lý bộ nhớ ảo phân đoạn và phân trang 15 1 QUẢN LÍ BỘ NHỚ ẢO I. Tổng quan Quản lý bộ nhớ là một trong những nhiệm vụ quan trọng và phức tạp nhất của hệ điều hành. Bộ phận quản lý bộ nhớ xem bộ nhớ chính như là một tài nguyên của hệ thống dùng để cấp phát và chia sẻ cho nhiều tiến trình đang ở trong trạng thái active. Các hệ điều hành đều mong muốn có nhiều hơn các tiến trình trên bộ nhớ chính. Công cụ cơ bản của quản lý bộ nhớ là sự phân trang (paging) và sự phân đoạn (segmentation). Với sự phân trang mỗi tiến trình được chia thành nhiều phần nhỏ có quan hệ với nhau, với kích thước của trang là cố định. Sự phân đoạn cung cấp cho chươngtrình người sử dụng các khối nhớ có kích thước khác nhau. Hệ điều hành cũng có thể kết hợp giữa phân trang và phân đoạn để có được một chiến lược quản lý bộ nhớ linh hoạt hơn. II. Các phương pháp quản lí bộ nhớ: ! "#$%&' () & *+, !! %& -)."/.0 & 1 23 "/ ! 4 $5 ! 6 789 -: % ; $ <=>?@AB5 )C D ."/5!E. " / ) , 5 - -: F$ 7890 G%H5 )-IJKL, !0 GD$! . L 2 , !5&0M'F$ (-I, ) J %& - ) ! - . "/ ) 4 & % N "O 4 & PQP ! ) , .$ 4 % "O 4 , )5 2$ - , %R .$,&"+%"O4-0 ST&-$( U VW$<X$B U V W&)<Y+!+$&B U V W &) %$<Y+!+$&Z X$B Q ) 1 , J5 D $ 4 # & [ , .0Q %\ , . & ]99^<9+!&9$$+!+^B0Q %\ 99^D& &SX^0 3 II.1. Quản lí bộ nhớ ảo phân trang GL&)( _ H5 4 N \$ 6 & -I $` "R <?@AB0_I$ ] H <&B0 GJ , !! ) J N &-I$PQP2a ! & )1&"R-:H F $789b 0 U Q %4 2c$ <) %&d $B &5 PQP $ &F$ . "/ $ %\ -: C 5 !E %\ ] $ &0 _: $& >e <efg5fhe5 h_5e_5?_5i_5000B0 U A 789 j $ %\ 5 ! E %\ ] $ H<$+ *$!+B0 _: H>-: $ &0 $H .$$& -, J5 ) ;D !5 !E $ H .$ 1 $ h $ &5 +& D $ .$ $&-$0 U _ . "/ N h I +& \$ 6J : 2 1 L5 PQP J $ I $ &&5 [! ' k**2+& &$ &0 UI'\$6ihlg>mmhmmmmmmmmmmhmm Q$!e,( X,L621$&<>eB nL&**2+F$I<>?B Q N)$&F$%&$ 4 H5PQP"Rho$&&!E521 ,3>21$&F$.5!E,3F$h +&".$I21$&.( WK\$6&2$\$6H( h0; \$6!N <$""B54 1 e ,($+<B%&**2+0 e0N+&"$&&o$0GJ*+" 789>h\$6H.( T0GJ789>m54 12a !h$H<-B5J-I !h$H:<-B5"#$%&I &*+"pq2-p !'*+%]$&%&$ H -0 ?0P46) *+"789>h%*+"$+*$!+>-C$ ) e0 5 : "/%)4 15 789 Te_A $ !i $ H 6 21 ; mrs5!E $?_A0S"g?_A $ !hg &562 1 ;mrhf0P4i$ &)%&%J!J 7890 : "/% o$ %E\$6& 2$ \$6 H 0 +&L5,!! N I& ' \$6ihlg! N 78!'\$6e?fim0 6 II.2 Các phương pháp giải phóng trang th ậ t Trong qui trình đổi địa chỉ ảo sang địa chỉ thật ở các slide trước, ta th ấ y mỗi khi cần nạp trang ảo mới, máy sẽ tìm trang thật trống, nhưng ít khi tìm được, do đó máy sẽ phải tìm 1 trang thật đang dùng nào đó và giải phóng nó. Có nhiều phương pháp giải phóng trang thật khác nhau, mỗi ph ươ ng pháp có giá/kết quả khác nhau, tùy thuộc vào mục tiêu xây dựng HĐH c ụ thể, ta có thể chọn 1 trong các phương pháp này hay kết hợp chúng l ạ i. II.2.1. Phương pháp FIFO JH(@HD !!$!$%& :0_,$J$5$'&2a]0 t"( Y3"/T-$5$,T1 @u(v>E$ Q "/H&wnwk5#J-IJH D !!E$)%&5!6,K.:$ &&R!"$2wnwk5-$,"$22a ]$J0 7 H&wnwk"x 5"xoL-#4-I -&j-J1($]$J $.$ "O4,J5DNL23"/L)2!5"&%H - 2$/2a$E$0 Y1E$N$2ayL-21-$23 "/y0P4]:A+$" II.2.1 Phương pháp tối ưu JH$J$2a23"/&$0 t:"/(Y3"/T-$5-',z1 H&!&E25j-I \::A+$"5L-I!- &#J%-I JENF$J0 II.2.3 Phương pháp “Not Recently-Used” - NRU : t!E $5 HD ! 1 R $ H5$ ] $J 2a$$ N0 8 t:"/(23"/T-$5-',z1( H&zbJ,.E N\.#&$J+&DL!N1R0 Q $ : 5 $ 2a -J !E $ H h ) O$0S/ $e!L)F$;$H2$ ( U 7>mdh<7++B0Q\-{ 7F$ $2a :N$% m5 ! E -$ \ N2+7>h0 U 9>mdh<9&"*+"B09E, ) $&5 9F$$H N$m09E, \ $K"592+Lh0 G%H!E$2a'h&h)2$( h0Ym(7>9>m(&-.,5 $$ N % $$ \ $K"0 e0Yh(7>m59>h(&-. ,5 $$ N $ \ $K"0 T0Ye(7>h59>m(&-.,5$N5 $$ \ $K"0 9 ?0YT(7>h59>h(&-.,5$N%$ \ $K"0 _,$5$]$+&.#L;Ymr|YT0 &G7^'2"+5J$Ym$ "R J} L ] h & $ $:N~!0 Q -~/ ! 5$"R2$( II.2.4 Phương pháp “Least Recently-Used” - LRU : _J !E $h%RI!L ! D $0 9E , $ N5 $D ! N %&!D$F$ $0 9 E - , $5 $ ] $ ! D $ b <$N,1 B0 WK\$6&2$H 'Le% 2$,u%J( h0 o $ & J! E0 : " / -I$& F$?@A5$& ?_A0G %H5 $, o $&.$?@d?_ > h9 , 35 !E , 3 h +&" <"0 " hg +B0 _J o $ 2a J! hg9A %% L~ [ ! D # &789•1 E€ e0JHK\$ 6 &2$ H%J [ , !!52a C!4!5%H!E, #4 h4 !N 5!2a "; ) ) H K \$6 C!4!!- J u4!F$) J•-•! 4 € Q -~ / ! 'L5 D $ "R J $ 10 [...]... field start_addr = base rồi quay lại bước 2 Quản lý bộ nhớ ảo phân đoạn II.4 Quản lý bộ nhớ ảo phân đoạn và phân trang 15 Qui trình đổi địa chỉ ảo sang địa chỉ thật ở slide trước có khuyết điểm trong trường hợp quản lý segemnt có kích thước lớn : ta khó/không tìm được vùng RAM trống chứa nó Vì lý do này, trong thực tế, người ta phải kết hợp 2 phương pháp quản lý phân trang và phân đoạn lại, đây là phương... truy xuất vào trang ảo cấp 1 nào, bảng đặc tả trang cấp 2 của nó mới được nạp vào RAM 11 Để khắc phục nhược điểm 2 trong slide trước, thay vì dùng giải pháp phần mềm để đổi địa chỉ, ta dùng phương pháp phần cứng dựa vào bộ nhớ kết hợp : II.3 Quản lý bộ nhớ ảo phân đoạn Toàn bộ các mạch điện tử trên đều là mạch tổ hợp nên thời gian đổi địa chỉ ảo sang thật hầu như = 0, quá tốt! Trong kỹ thuật phân trang,... gian, ô nhớ đầu tiên của mỗi 13 segment luôn bắt đầu từ 0 Bộ nhớ RAM có kích thước nhỏ nào đó Các segment của chương trình thường nắm trên đĩa cứng, khi cần thiết segment sẽ được nạp vào 1 vùng thích hợp trong RAM Tại từng thời điểm, 1 vùng nhớ RAM thật chứa tốt đa 1 segment ảo, nhưng theo thời gian nó có thể chứa nhiều segment ảo khác nhau Khi ứng dụng truy xuất 1 ô nhớ, nó xác định địa chỉ ô nhớ. .. sẽ quản lý mỗi segment phần mềm như là 1 không gian ảo gồm nhiều trang ảo, mỗi lần chương trình truy xuất ô nhớ nằm trong trang ảo nào của segment nào, hệ thống sẽ tìm cách nạp nó vào RAM Qui trình đổi địa chỉ ảo sang địa chỉ thật : 1 từ địa chỉ mà chương trình truy xuất gồm 2 thành phần : segement (s) và offset, hệ thống sẽ tách offset ra thành 2 thành phần page (p) + offset1 2 Truy xuất record quản. .. chia không gian ảo của phần mềm (4GB) thành n (=1024) trang ảo cấp 1 (Dir), mỗi trang ảo cấp 1 có dung lượng rất lớn (=4MB) được chia nhỏ thành m (=1024) trang ảo cấp 2, mỗi trang ảo cấp 2 có kích thước 4KB và là đối tượng swap vật lý giữa RAM/đĩa cứng Như vậy bảng đặc tả trang cho chương trình chỉ chứa n (=1024) phần tử, rất nhỏ so với trước đây (1M phần tử) Tuy nhiên mỗi trang ảo cấp 1 có bảng... định địa chỉ ô nhớ dạng phân cấp : segment + offset Để quản lý quá trình ánh xạ các segement ảo của chương trình vào các vùng RAM, HĐH dùng 1 bảng đặc tả sgement cho mỗi chương trình, bảng này có số phần tử = số segement của chương trình tương ứng, mỗi phần tử của bảng là 1 record chứa các thông số quản lý segement tương ứng : Qui trình đổi địa chỉ ảo sang địa chỉ thật : 1 từ địa chỉ mà chương trình truy... cho chương trình 1 không gian phằng duy nhất, nếu hệ thống cấp phát cho chương trình các không gian bộ nhớ độc lập có kích thước thay đổi động theo nhu cầu (miễn sao tổng kích thước của chúng bị hạn chế trên nào đó) như hình sau thì chương trình sẽ không gặp vần đề tràn bộ nhớ như slide trước : Nguyên lý hoạt động : khi lập trình, chương trình được phép truy xuất dữ liệu trong nhiều không gian khác... như = 0, quá tốt! Trong kỹ thuật phân trang, mặc dù không gian ảo mà chương trình có thể truy xuất có kích thước rất lớn (4GB), nhưng nó là không gian phẳng nên 1 số 12 chương trình lớn vẫn còn gặp phiền hà sau đây : chương trình tự chia không gian ảo của mình ra thành nhiều partition khác nhau để chứa những thông tin độc lập cần được xử lý, trong quá trình chạy, nếu 1 trong các partition không đủ chỗ... segement (s) và offset, hệ thống sẽ tách offset ra thành 2 thành phần page (p) + offset1 2 Truy xuất record quản lý segement s trong bảng đặc tả segement Nếu field inRAM=1 thì bản đặc tả trang cho segement s đã có trong RAM Nếu không thì tìm cách nạp nó vào RAM 3 Truy xuất record quản lý trang ảo p trong bảng đặc tả trang Nếu field inRAM=1 thì địa chỉ thật tương ứng là : 4 Nếu inRAM =0, hệ thống sẽ tìm... record chứa các thông số quản lý segement tương ứng : Qui trình đổi địa chỉ ảo sang địa chỉ thật : 1 từ địa chỉ mà chương trình truy xuất gồm 2 thành phần : segement (i) và offset 2 Truy xuất record quản lý segement i trong bảng đặc tả segement Nếu field inRAM=1 thì địa chỉ thật tương ứng là : start_addr + Offset và qui trình kết thúc 3 Nếu inRAM =0, hệ thống sẽ tìm 1 vùng RAM thật rãnh (có địa chỉ . “Least Recently-Used” - LRU : 10 II.3 Quản lý bộ nhớ ảo phân đoạn 12 II.4 Quản lý bộ nhớ ảo phân đoạn và phân trang 15 1 QUẢN LÍ BỘ NHỚ ẢO I. Tổng quan Quản lý bộ nhớ là một trong những nhiệm vụ quan. !'*+%]2+!+%&%R789 H ! 0 ?0P46)*+"789>h%*+"2$…$"">$2+C$ ) e0 Quản lý bộ nhớ ảo phân đ o ạ n II.4 Quản lý bộ nhớ ảo phân đoạn và phân trang 15 W K$ 6 &2$. các khối nhớ có kích thước khác nhau. Hệ điều hành cũng có thể kết hợp giữa phân trang và phân đoạn để có được một chiến lược quản lý bộ nhớ linh hoạt hơn. II. Các phương pháp quản lí bộ nhớ: