Giáo trình Nguyễn Lý Hệ điều hành - Chương 3: Quản lý lưu trữ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Nguyễn Lý Hệ điều hành - Chương 3: Quản lý lưu trữ", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_nguyen_ly_he_dieu_hanh_chuong_3_quan_ly_luu_tru.pdf
Nội dung text: Giáo trình Nguyễn Lý Hệ điều hành - Chương 3: Quản lý lưu trữ
- Nội dung chương 3 1. Quảnlýbộ nhớ 2. B ộ nhớảo 3. Giao di ệnhệ thống file 4. Cài đặth ệ thống file 2008-05-01 Nguyên lý Hệ điềuhành 2
- 1. Quảnlýbộ nhớ 1. Cơ sở 2. Swapping 3. Phân phốibộ nhớ liên tục 4. Phân trang (paging) 5. Phân đo ạn (segmentation) 6. Phân đo ạnkế thợpvới phân trang (Segmentation với Paging) 2008-05-01 Nguyên lý Hệ điềuhành 3
- 1.1. Cơ sở Chương trình muốnthựcthicầnphải đượctảivào bộ nhớ và đặt trong mộttiếntrình Hàng đợi vào (Input Queue) Tậpcáctiến trình trên đĩa, đang đợitảivàobộ nhớđểthực hiện Các chương trình ngườidùngmuốn đượcthựcthi cầnphải qua mộtsố bước trong đócóbướcgánđịa chỉ cho các câu lệnh/dữ liệu. 2008-05-01 Nguyên lý Hệ điềuhành 4
- Gán bộ nhớ cho các câu lệnh và dữ liệu Việcgánđịachỉ cho các câu lệnh và dữ liệu đượcthựcthitại các thời điểm Biên dịch –nếuvị trí trong bộ nhớđã đượcbiếttrước–sinhra mã tuyệt đối (absolute code); cầnphải đượcbiêndịch lạinếuvị trí bắt đầubị thay đổi Lúc tải (loading time) –phảisinhramãcóthểđịnh vị lại (relocatable code) – nếuvị trí trong bộ nhớ không đượcbiết trước Mã có thểđịnh vị lại “14 bytes kể từđầu module” Lúc thựcthi–Gánđịachỉđược trì hoãn cho đếnkhithựcthi nếutiếntrìnhcóthể thay đổi, từđoạnbộ nhớ này đến đoạnbộ nhớ khác trong khi thựcthi. Yêu cầuphầncứng hỗ trợ cho các ánh xạđịachỉ (thanh ghi cơ sở, thanh ghi giớihạn) 2008-05-01 Nguyên lý Hệ điềuhành 5
- Các bướcxử lý củatiến trình người dùng 2008-05-01 Nguyên lý Hệ điềuhành 6
- Không gian địachỉ vật lý và không gian địac hỉ logic Khái niệ m không gian địachỉ logic gắnvới không gian địachỉ vậtlýlà trung tâm củacáckĩ thuậtquản lý bộ nhớ Các địachỉ logic – đượcsinhrabởiCPU; cònđượcgọilà địachỉảo Địachỉ vậtlý–địachỉ thật trong bộ nhớ, thấy đượcbởi đơnvị quảnlýbộ nhớ Như nhau trong lược đồ gán địachỉ lúc biên dịch, tải Khác nhau trong lược đồ gán địachỉ lúc thựcthi 2008-05-01 Nguyên lý Hệ điềuhành 7
- Đơnvị quảnlýbộ nhớ (MMU) Thiếtbị phầncứng thựchiệnviệcánhxạđịachỉảo đến địachỉ vậtlý Ví dụ về 1 lược đồ MMU đơngiản Giá trị thanh ghi relocation đượccộng vào cho mỗi địachỉ đượcsinhrabởitiến trình người dùng tạithời điểmnótải vào bộ nhớ. Chương trình người dùng làm việcvớicácđịachỉ logic; nó không bao giờ thấy địachỉ vậtlý 2008-05-01 Nguyên lý Hệ điềuhành 8
- Gán địachỉđộng với thanh ghi relocation 2008-05-01 Nguyên lý Hệ điềuhành 9
- Tải động vào bộ nhớ Các phương thức không đượctảivàobộ nhớ khi nó đượcgọi Tậndụng không gian bộ nhớ tốthơn Phương thức không đượcsử dụng sẽ không bao giờđượctải Hữu ích khi cầnlượng mã lớn để xử lý các trường hợp không thường xuyên Không cầnphảicósự hỗ trợđặcbiệtcủahệ điều hành trong thiếtkế chương trình 2008-05-01 Nguyên lý Hệ điềuhành 10
- Liên kết động Việc liên kếtsẽ bị trì hoãn đếnthờigianthựcthi Các đoạnmãnhỏ, gọilàstub, đượcsử dụng để xác định thủ tục thư viện trong vùng bộ nhớ thích hợp. Stub đượcthaythế bởi địachỉ vậtlýcủa routine và thựcthi routine Hệđiều hành cầnphảikiểmtraxemliệuphương thứccónằm trong địachỉ bộ nhớ củatiếntrình Liên kết động rấthữuhiệu cho các thư viện 2008-05-01 Nguyên lý Hệ điềuhành 11
- Overlays Chỉ giữ trong bộ nhớ những câu lệnh và dữ liệucần trong bấtcứ thời điểmnào Cầnkhitiếntrìnhlớnhơnkíchcỡ bộ nhớđượcgán cho nó Đượcthựcthibởingười dùng, không cầnsự hỗ trợ đặcbiệttừ hệđiều hành, thiếtkế lậptrìnhcủacấu trúc overlay tương đốiphứctạp 2008-05-01 Nguyên lý Hệ điềuhành 12
- Overlays 2008-05-01 Nguyên lý Hệ điềuhành 13
- 1.2. Swapping Mộttiếntrìnhcóthể bị swapped tạmrabộ lưutrữ nền , sau đó được mang trở lạibộ nhớđểthựcthitiếp Bộ lưutrữ nền–đĩatốc độ nhanh, đủ lớn để lưutrữ phiên bảncủatất cảảnh bộ nhớ cho tấtcả người dùng; phải cung cấpkhả năng truy cập trựctiệp đếncácảnh bộ nhớ này. Roll out, roll in –biếnthể swapping đượcsử dụng trong thuật toán lấp lịpcóưutiến; tiếntrìnhcóđộ ưutiênthấpnhấtbị swap ra cho phép tiếntrìnhcóđộ ưutiêncaonhất đượctảivàovàthựcthi. Một trong những giai đoạn quan trọng trong thời gian swap là thờigian chuyển đổingữ cảnh Tổng thờigianchuyểngiaotỉ lệ vớitổng dung lượng bộ nhớ bị swap. Ta có thể thấynhiều phiên bảnbiếnthể củatrênrất nhiềuhệ thống, i.e., UNIX, Linux, and Windows. 2008-05-01 Nguyên lý Hệ điềuhành 14
- Lược đồ Swapping 2008-05-01 Nguyên lý Hệ điềuhành 15
- 1.3. Phân phốibộ nhớ liên tục Bộ nhớ chính thường được chia thành hai phần Phầnlưutrúhệđiều hành, thường đượctổ chức trong vùng bộ nhớ thấp(địachỉ thấp) vớivector ngắt. Các tiến trình người dùng, thường đượctổ chức trong vùng bộ nhớ cao. Bảovệ Lược đồ thanh ghi relocation cho việcbảovệ các tiếntrình người dùng. Thay ghi relocation chứagiátrị của địachỉavậtlýnhỏ nhất; thanh ghi giớihạnchứa các giá trị từ miền địachỉ logic – các địachỉ logic phảicógiátrị nhỏ hơngiátrị của thanh ghi giớihạn. 2008-05-01 Nguyên lý Hệ điềuhành 16
- Hỗ trợ phầncứng cho các thanh ghi relocation và thanh ghi limit 2008-05-01 Nguyên lý Hệ điềuhành 17
- Phân phối liên tục (Cont.) Phân phối đa phân đoạn Lỗ hổng–khốibộ nhớ rỗi; các lỗ hổng vớinhững kích cỡ khác nhau nằm rải rác trong bộ nhớ. Khi mộttiếntrìnhcầntảivàobộ nhớ, nó được phân phối vùng bộ nhớ từ lỗ hổng đủ lớnchứanó. Hệđiều hành quản lý thông tin về: a) các phân đoạn đã được phân phốib) Cácphânđoạnrỗi(lỗ hổng) OS OS OS OS process 5 process 5 process 5 process 5 process 9 process 9 process 8 process 10 process 2 process 2 process 2 process 2 2008-05-01 Nguyên lý Hệ điềuhành 18
- Bài toán phân phốibộ nhớđộng Làm thế nào để phân phốitiến trình có kích cỡ n vào một danh sách các lỗ hổng còn rỗi First-fit: tìm lỗ hổng đầutiênđủ lớn Best-fit: tìm lỗ hổng bé nhất, đủ lớn Tìm kiếm trên toàn bộ danh sách các lỗ hổng (trừ phi các lỗ hổng đượcsắpxếp theo kích cỡ) Sinh ra phầnthừanhỏ nhất Worst-fit: tìm lỗ hổng lớnnhất Cũng phảitìmkiếm Sinh ra phầnthừalớnnhất First-fit và best-fit tốthơnchiếnlược worst-fit trên quan điểmtốc độ và sự tậndụng bộ nhớ 2008-05-01 Nguyên lý Hệ điềuhành 19
- Sự phân mảnh Phân mảnh ngoài –tổngkhônggianbộ nhớ có thể đáp ứng yêu cầu, nhưng không liên tục Phân mảnh trong –bộ nhớđược phân phốicóthể lớnhơnmột chút so vớiyêucầu; sự khác biệtvề kích cỡ này là nộitrongmột phân đoạn, và ko được sử dụng Làm giảm phân mảnh ngoài bằng kếtkhối Xáo các nội dung bộ nhớđểđặttấtcả vùng bộ nhớ rỗi cạnh nhau tạo thành mộtkhốilớn Kếtkhốichỉ thích hợpkhiviệc phân đoạnlạilàđộng và đượcthựchiệntạilúcthựcthi 2008-05-01 Nguyên lý Hệ điềuhành 20
- 1.4. Phân trang (paging) Không gian địachỉ logic củamộttiếntrìnhcóthể không liên tục; Chia bộ nhớ vật lý thành các khốicókíchcỡ cốđịnh gọilà frames (kích cỡ là lũythừacủa 2, khoảng từ 512 bytes đến 8192 bytes). Chia bộ nhớ logic thành các khốicũng kích cỡ, gọilàtrang (pages). Lưulạitấtcả các frames rỗi. Để thựcthimộtchương trình có n pages, cầntìmn frames rỗivà tảichương trình vào. Thiếtlậpmộtbảng page để chuyển đổi địachỉ logic thành địachỉ vậtlý. Có sự phân mảnh trong. 2008-05-01 Nguyên lý Hệ điềuhành 21
- Lược đồ dịch địachỉ Địachỉ sinh bởiCPU được chia thành hai phần Page number (p) – đượcsử dụng như là mộtchỉ số trong bảng page, chứa địachỉ cơ sở củamỗi page trong bộ nhớ vậtlý Page offset (d) – đượckếthợpvới địachỉ cơ sở để xác định địachỉ vậtlýđượcgửichođơnvị bộ nhớ. 2008-05-01 Nguyên lý Hệ điềuhành 22
- Kiếntrúcdịch địachỉ 2008-05-01 Nguyên lý Hệ điềuhành 23
- Ví dụ về phân trang 2008-05-01 Nguyên lý Hệ điềuhành 24
- Ví dụ phân trang 2008-05-01 Nguyên lý Hệ điềuhành 25
- Các frame rỗi Trước khi phân phối Sau khi phân phối 2008-05-01 Nguyên lý Hệ điềuhành 26
- Thực thi bảng page Bảng page đượclưutrữ trong bộ nhớ trong. Thanh ghi cơ sở bảng-trang (PTBR) trỏđếnbảng trang. Thanh ghi độ dài bảng trang (PRLR) chỉ kích cỡ của bảng trang. Trong lược đồ này, mọitruycập đếndữ liệuvàcâu lệnh đòi hỏi hai lầntruycậpbộ nhớ. Mộtlầnchobảng trang và mộtlầnchodữ liệu/ câu lệnh. Hai vấn đề truy cậpbộ nhớ này có thểđượcgiải quyếtbằng cách sử dụng một cache phầncứng tra cứu nhanh gọilàbộ nhớ kếthợp hay bộđệmdịch (TLBs) 2008-05-01 Nguyên lý Hệ điềuhành 27
- Bộ nhớ kếthợp Bộ nhớ kếthợp – tìm kiếm song song Page # Frame # Dịch địachỉ (A’, A’’) NếuA’làthanhghik ếthợp, lấy frame# ra Nếu không, lấy frame# từ bảng trang trong bộ nhớ 2008-05-01 Nguyên lý Hệ điềuhành 28
- Phầncứng cho phân trang, TLB 2008-05-01 Nguyên lý Hệ điềuhành 29
- Thờigiantruycậphiệuquả Tra cứukếthợp= ε thờigianđơnvị Giả sử thờigianchukỳ bộ nhớ là 1 micro giây Tỉ lệ hit – phầntrămthờigianmàmột page number được tìm thấy trong các thanh ghi kếthợp; khẩu phần liên quan đếnsố các thanh ghi kếthợp. Hit ratio = α Thờigiantruycậphiệuquả(EAT) EAT = (1 + ε) α + (2 + ε)(1 – α) = 2 + ε – α 2008-05-01 Nguyên lý Hệ điềuhành 30
- Bảovệ bộ nhớ Bảovệ bộ nhớ bằng cách kếthợp các bit bảo vệ mớimỗiframe. Bit valid-invalid gắnvớimỗiphầntử của bảng trang: “valid” chỉ rằng trang liên kếttrongmột không gian địachỉ logic, và là mộttranghợplệ. “invalid” chỉ rằng trang không ở trong một không gian địachỉ logic. 2008-05-01 Nguyên lý Hệ điềuhành 31
- Bit valid và invalid trong bảng trang 2008-05-01 Nguyên lý Hệ điềuhành 32
- Các trang chia sẻ Mã chia sẻ Một phiên bảnmãchỉđọc đượcchiasẻ giữa nhiềutiến trình(i.e., text editors, compilers, window systems). Mã chia sẻ phảixuấthiệntại cùng mộtvị trí trong không gian địachỉ logic củatấtcả các tiếntrình. Mã và dữ liệuriêng Mỗitiếntrìnhlưutrữ một phiên bảnriêngcủamãvàdữ liệu. Các trang cho mã riêng và dữ liệu riêng có thể xuấthiện mọinơi trong không gian địachỉ logc. 2008-05-01 Nguyên lý Hệ điềuhành 33
- Ví dụ về các trang chia sẻ 2008-05-01 Nguyên lý Hệ điềuhành 34
- 1.5. Cấutrúcbảng trang Phân trang phân cấp Các bảng trang băm Các bảng trang đánh chỉ số ngược 2008-05-01 Nguyên lý Hệ điềuhành 35
- Các bảng trang phân cấp Chia không gian địachỉ vật lý thành nhiều bảng trang. Mộtkĩ thuật đơngiảnlàsử dụng bảng trang hai mức. 2008-05-01 Nguyên lý Hệ điềuhành 36
- Ví dụ về bảng trang hai mức Một địachỉ logic (trên máy 32 bit vớikíchcỡ trang 4K) được chia thành: Page number gồm20 bits Page offset gồm 12 bits Khi bảng trang được phân trang, page number đượcchiatiếp thành: Một page number 10 bits. Một page offset 10 bit. Như vậy, không gian địachỉ logic sẽ như sau: page number page offset pi p2 d 10 10 12 ởđây pi là mộtchỉ số củabảng page ngoài và p2 là độ dịch chuyển trong trang củabảng trang ngoài. 2008-05-01 Nguyên lý Hệ điềuhành 37
- Lược đồ bảng trang hai mức 2008-05-01 Nguyên lý Hệ điềuhành 38
- Lược đồ dịch địachỉ Lược đồ dịch địachỉ cho kiến trúc phân trang 32-bit hai tầng. 2008-05-01 Nguyên lý Hệ điềuhành 39
- Các bảng trang băm Thông thường các không gian địachỉ > 32 bits. Chỉ số trang ảo đượcbămvàomộtbảng trang. Bảng trang này chứamộtchuỗicácphầntửđược bămvàocùngmộtvị trí. Các chỉ số trang ảo được tìm kiếmtrongchuỗinày. Nếutìmthấy, frame vậtlýtương ứng đượclấyra. 2008-05-01 Nguyên lý Hệ điềuhành 40
- Bảng trang băm 2008-05-01 Nguyên lý Hệ điềuhành 41
- Bảng trang ngược Mỗiphầntừ tương ứng vớimột trang thật trong bộ nhớ. Mỗiphầnthử gồm địachỉảocủa trang đượclưu trong phầnbộ nhớ thật, với thông tin về tiếntrình chứa trang đó. Giảmbộ nhớ cầnthiết để lưutrữ mỗibảng trang, nhưng tăng thờigiancầnthiết để tìm kiếmbảng khi mộtyêucầutruycậptrangxuấthiện. Sử dụng trang băm để giớihạntìmkiếm đếnmột, hoặcmộtvàiphầntử củabảng trang. 2008-05-01 Nguyên lý Hệ điềuhành 42
- Kiếntrúcbảng trang ngược 2008-05-01 Nguyên lý Hệ điềuhành 43
- 1.6. Phân đoạn Lược đồ quảnlýbộ nhỡ hỗ trợ quan điểmcủangười dùng về bộ nhớ. Mộtchương trình là mộttậpcácđoạn. Một đoạnlàmột đơnvị logic gồmcó: main program, procedure, function, method, object, local variables, global variables, common block, stack, symbol table, arrays 2008-05-01 Nguyên lý Hệ điềuhành 44
- Quan điểmngười dùng củamột chương trình 2008-05-01 Nguyên lý Hệ điềuhành 45
- Quan điểm logic của segmentation 1 4 1 2 3 2 4 3 user space physical memory space 2008-05-01 Nguyên lý Hệ điềuhành 46
- Kiến trúc phân đoạn Địachỉ logic gồm hai phần: , Bảng Segment– ánh xạ các địachỉ vật lý hai chiều; mỗiphầntử củabảng có: Base –chứa địachỉ vậtlýbắt đầunơi mà các segment lưutrú trong bộ nhớ. Limit –xácđịnh kích cỡ của segment. Segment-table base register (STBR) trỏđếnbảng segment trong bộ nhớ. Segment-table length register (STLR) thế hiệnsố các segments đượcsử dụng bởimộtchương trình; segment number s là hợplệ nếu s < STLR. 2008-05-01 Nguyên lý Hệ điềuhành 47
- Kiến trúc segmentation (cont.) Xác định vị trí lại. Động Dùng bảng segment Chia sẻ. Các đoạn đượcchiasẻ. Cùng segment number Phân phối. first fit/best fit Phân mảnh ngoài 2008-05-01 Nguyên lý Hệ điềuhành 48
- Kiến trúc phân đoạn Bảovệ. Mộtphầntừ trong bảng segment liên kết với: Bit hợplệ = 0 ⇒ segment không hợplệ Ưu tiên read/write/execute Các bits bảovệ kếthợpvới các segments; chia sẻ mã ở mức segment. Khi các segment thay đổikíchcỡ, phân phốibộ nhớ là phân phối động. Mộtvídụ segmentation được cho trong hình vẽ sau 2008-05-01 Nguyên lý Hệ điềuhành 49
- Phầncứng phân đoạn 2008-05-01 Nguyên lý Hệ điềuhành 50
- Ví dụ về phân đoạn 2008-05-01 Nguyên lý Hệ điềuhành 51
- Chia sẻ các đoạn 2008-05-01 Nguyên lý Hệ điềuhành 52
- Phân đoạnkếthợpvới phân trang Hệ thống MULTICS giảiquyết bài toán phân mảnh ngoài bằng cách phân trang các segments. Giải pháp khác với segmentation thuầntúylà phầntừ bảng segment không chứa địachỉ cơ sở củasegment màđịachỉ cơ sở của bảng trang cho segment này. 2008-05-01 Nguyên lý Hệ điềuhành 53
- Lược đồ dịch địachỉ MULTICS 2008-05-01 Nguyên lý Hệ điềuhành 54
- Phân đoạnkếthợpvới phân trang – Intel 386 Như tronghìnhvẽ sau, Intel 386 sử dụng segmentation với paging cho việcquảnlýbộ nhớ vớilược đồ hai tầng phân trang. 2008-05-01 Nguyên lý Hệ điềuhành 55
- Dịch địachỉ Intel 30386 2008-05-01 Nguyên lý Hệ điềuhành 56
- 2. Bộ nhớảo 1. Cơ sở 2. Phân trang theo yêu cầu 3. Hi ệunăng của phân trang theo yêu cầu 4. Thay thế trang 5. Các thu ậttoánthayth ế trang 6. C ấp phát frames 7. Thrashing 8. Các vấn đề khác 2008-05-01 Nguyên lý Hệ điềuhành 57
- 2.1. Cơ sở Câu lệnh/ dữ liệucần trong BNTđể thựchiện Không cầnthường xuyên lưu toàn bộ chương trình người dùng vào trong BNT Bộ nhớảo –táchbiệtbộ nhớ logic mứcngười dùng và bộ nhớ vậtlý Chỉ mộtphầnchương trình cần trong bộ nhớđểthựcthi Không gian địachỉ logic có thể lớnhơn nhiều không gian địachỉ vậtlý Cho phép chia sẻ các không gian địachỉ bởimộtsố tiến trình. Cho phép tạo nhiềutiếntrìnhmộtcáchhiệuquả. Bộ nhớảocóthểđượcthực thi thông qua: Phân trang theo yêu cầu Phân đoạn theo yêu cầu 2008-05-01 Nguyên lý Hệ điềuhành 58
- Bộ nhớảolớnhơnbộ nhớ vậtlý 2008-05-01 Nguyên lý Hệ điềuhành 59
- Không gian địachỉảo 2008-05-01 Nguyên lý Hệ điềuhành 60
- Thư việnchiasẻ dùng bộ nhớảo 2008-05-01 Nguyên lý Hệ điềuhành 61
- 2.2. Phân trang theo yêu cầu Chỉ tảimột trang vào bộ nhớ khi cầnthiết Cầnvào/raít Cầnbộ nhớ ít Phản ứng nhanh hơn Cho phép nhiềungười dùng hơn Cầnmộttrang⇒ tham chiếu đếnnó Tham chiếu không hợplệ ⇒ bỏ qua Không trong bộ nhớ ⇒ tảivàobộ nhớ 2008-05-01 Nguyên lý Hệ điềuhành 62
- Chuyểnbộ nhớđược phân trang vào không gian đĩ aliêntục 2008-05-01 Nguyên lý Hệ điềuhành 63
- Bit valid/invalid Liên kếtmỗiphầntử củabảng trang vớimột bit valid/invalid (1 ⇒ in-memory, 0 ⇒ not-in-memory) Bit valid–invalid đượckhởitạobằng 0 vớimọiphầntử củabảng trang. Ví dụ về mộtbảng trang. Frame # valid-invalid bit 1 1 1 1 0 M 0 0 page table Trong quá trình dịch địachỉ, nếu bit valid-invalid trong phầntử bảng trang là 0 ⇒ lỗi trang. 2008-05-01 Nguyên lý Hệ điềuhành 64
- Bảng trang khi một vài trang không trong bộ nhớ chính 2008-05-01 Nguyên lý Hệ điềuhành 65
- Lỗitrang Tham chiếu đếnmột trang không có trong bộ nhớ, trước tiên tham chiếusinhramột trap cho hệđiều hành ⇒ lỗi trang Hệđiều hành kiểmtrabảng khác để xác định Tham chiếu không hợplệ ⇒ bỏ qua. Trang không có trong bộ nhớ. Lấyramột frame rỗng Tráo đổi trang vào frame Thiếtlậplạicácbảng, bit valid = 1 Khởitạolạilệnh: Chuyểnkhối 2008-05-01 Nguyên lý Hệ điềuhành 66
- Các bướcxử lý lỗitrang 2008-05-01 Nguyên lý Hệ điềuhành 67
- Trường hợp không còn frame rỗi Thay thế trang Tìm mộttrangnàođóhiệntrongbộ nhớ, nhưng đang không đượcsử dụng, swap nó ra. Thuật toán thay trang Hiệunăng – cầnmộtthuậntoántrả lạivớiítlỗi trang nhấtcóthể. Trangcóthểđượctảivàobộ nhớ mộtvài lần. 2008-05-01 Nguyên lý Hệ điềuhành 68
- 2.3. Hiệunăng của phân trang theo yêu cầu Tỉ lệ lỗ i trang 0 ≤ p ≤ 1.0 Nếu p = 0, không có lỗitrang Nếu p = 1, mọi tham chiếu đềulỗi Thờigiantruycậphiệuquả (EAT) EAT = (1 – p) x thời gian truy cậpbộ nhớ + p (phụ trội do lỗ i trang + [swap trang ra ] + swap trang vào + phụ trộido khở i động lại) 2008-05-01 Nguyên lý Hệ điềuhành 69
- Ví dụ về phân trang theo yêu cầu Thờigiantruycậpbộ nhớ = 1 microsecond 50% trang bị thay thế cầnphảicậpnhậtlại (do đã có sửa đổi) Æ 50% trang cầnphải đượcswap ra Thời gian Swap trang = 10 msec = 10,000 microsec EAT = (1 – p) x 1 + p (15000) 1 + 15000P (in microsec) 2008-05-01 Nguyên lý Hệ điềuhành 70
- 2.4. Thay thế trang Tránhtìnhtrạng phân phốibộ nhớ quá tải Dịch vụ lỗi trang bao gồmviệc thay trang. Sử dụng bít sửa đổi (dirty) Giảmthờigianphụ trộicủaviệcchuyển trang – chỉ có các trang bị sửa đổimớiphải ghi lạilênđĩa. Thay trang làm tăng sự tách biệt giữabộ nhớ logic và bộ nhớ vậtlý 2008-05-01 Nguyên lý Hệ điềuhành 71
- Yêu cầu thay trang 2008-05-01 Nguyên lý Hệ điềuhành 72
- Kĩ thuật thay trang cơ bản 1. Tìm vị trí củatrangyêucầutrênđĩa. 2. Tìm mộtframe rỗi: -Nếucómộtframe rỗi, tậndụng frame đó. -Nếu không có frame rỗi, áp dụng thu ậttoán thay trang để lựach ọ nmộtframe n ạn nhân . 3. Đọctrangyêucầu vào frame mớirỗi. Cậpnhật trang và bảng frame 4. Khởi động lạitiến trình. 2008-05-01 Nguyên lý Hệ điềuhành 73
- Thay trang 2008-05-01 Nguyên lý Hệ điềuhành 74
- 2.5. Các thuật toán thay thế trang Mục đích: tỉ lệ lỗi trang thấpnhất. Đánh giá thuật toán Áp dụng thuậttoántrênmộtchuỗi các tham chiếu bộ nhớ Tính toán số lỗi trang trên chuỗi đó. Trong tấtcả các ví dụ sau, ta sử dụng chuỗi tham chiếusau 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. 2008-05-01 Nguyên lý Hệ điềuhành 75
- Đồ thị mô tả số lỗitrangtheosố Frames 2008-05-01 Nguyên lý Hệ điềuhành 76
- Thuậttoánvàotrướcratrước(FIFO) Chuỗi tham chiếu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frames (mỗitiếntrìnhchỉ có 3 trang cùng ở trong bộ nhớ tại cùng mộtthời điểm) 1 1 4 5 2 2 1 3 9 page faults 3 3 2 4 4 frames 1 1 5 4 2 2 1 5 10 page faults 3 3 2 4 4 3 Thay thế FIFO – Belady’s Anomaly Nhiềuframes ⇒ ít lỗi trang 2008-05-01 Nguyên lý Hệ điềuhành 77
- Thay trang theo thuật toán FIFO 2008-05-01 Nguyên lý Hệ điềuhành 78
- Thuậttoántối ưu Thay trang sẽ không đượcsử dụng trong thờigian dài Ví dụ 4 frames: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 4 2 6 page faults 3 4 5 Làm thế nào biết được điềunày? Đượcsử dụng để đánh giá hiệusuấtthuậttoánsử dụng 2008-05-01 Nguyên lý Hệ điềuhành 79
- Thuật toán thay trang tối ưu 2008-05-01 Nguyên lý Hệ điềuhành 80
- Thuật toán LRU (least recently used) Chuỗi tham chiếu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 5 2 3 5 4 4 3 Thực thi counter Mọiphầntử trang có một counter; mỗilầntrangđược tham chiếu đến Æ cậpnhật counter bằng thời điểmthamchiếumới. Khi một trang cần thay đổi, xem xét các counter để xác định trang nạn nhân. 2008-05-01 Nguyên lý Hệ điềuhành 81
- ThuậttoánLRU 2008-05-01 Nguyên lý Hệ điềuhành 82
- ThuậttoánLRU Cài đặtbằng ngănxếp Lưugiữ số hiệu trang trong mộtngănxếp Cài đặtmột danh sách liên kếtkép Tham chiếu trang: Chuyểnlênđầungănxếp Cần thay đổitổng cộng 6 con trỏ Không đòi hỏitìmkiếm khi thay trang 2008-05-01 Nguyên lý Hệ điềuhành 83
- Sử dụng mộtngănxếp để lưutrữ hầuhết các tham chi ếumới 2008-05-01 Nguyên lý Hệ điềuhành 84
- Các thuậttoánxấpxỉ LRU Bit tham chiếu Mỗi trang liên kếtvớimột bit, bit này đượckhởitạobằng 0 Khi một trang được tham chiếu đến, bit đượcthiếtlậpbằng 1 Thay thế bit 0 (nếu có). Tuy nhiên ta không biếtthứ tự thay thế. Cơ hộithứ hai Cần bit tham chiếu. Thay thếđồng hồ. Nếu trang chuẩnbịđược thay thế (theo thứ tựđồng hồ) có bit tham chiếu= 1. Thiếtlậpbit thamchiếubằng 0. Để lại trang đótrongbộ nhớ. Thay thế trang kế tiếp (theo thứ tựđồng hồ), theo cùng mộtsố luật. 2008-05-01 Nguyên lý Hệ điềuhành 85
- ThuậttoánCơ hộithứ hai 2008-05-01 Nguyên lý Hệ điềuhành 86
- 2.6. Cấp phát frames Mỗitiếntrìnhcầnmộtsố lượng ít nhấtcác trang cần dùng Ví dụ: IBM 370 – cần 6 trang để thựchiện lệnh SS MOVE: Lệnh 6 bytes, lưu trong 2 trang 2 trang để xử lý from 2 trang để xử lý to Hai lược đồ phân phốicơ bản Phân phốicốđịnh Phân phối ưutiên 2008-05-01 Nguyên lý Hệ điềuhành 87
- Cấp phát cốđịnh Cấp phát đều–Vídụ: Nếu có 100 frames và 5 tiến trình, cấpcho mỗitiến trình 20 frames. Cấp phát tỉ lệ –Cấp phát theo kích cỡ củatiếntrình sizesi = of processpi S= ∑ i s total m = number of frames s a allocation= p= i for ×m i i S m = 64 si = 10 s2 = 127 10 a= ×64 ≈ 5 1 137 127 a=64 × ≈ 59 2 137 2008-05-01 Nguyên lý Hệ điềuhành 88
- Cấp phát ưu tiên Lược đồ cấp phát tỉ lệ theo độ ưutiên(thayvì theo kích cỡ) NếutiếntrìnhPi phát sinh mộtlỗi trang Chọn để thay thế một trong các frame củanó Chọn để thay thế mộtframe từ mộttiếntrìnhvới độ ưutiênthấphơn 2008-05-01 Nguyên lý Hệ điềuhành 89
- Cấp phát cụcbộ và cấp phát toàn cục Cấp phát toàn cục –tiếntrìnhlựachọnmộtframe thay thế từ tậptấtcả các frame; mộttiếntrìnhcóthể lấymộtframe củatiến trình khác. Cấpphátcụcbộ –tiếntrìnhchỉ lựachọnframe thay thế từ tập các frame củanó 2008-05-01 Nguyên lý Hệ điềuhành 90
- 2.7. Thrashing Nếumộttiến trình không có “đủ” trang, tỉ lệ lỗitrang có thể rấtcao. Tính tậndụng CPU thấp Hệđiềuhànhmuốntăng độ đachương trình Tiếntrìnhmới được thêm vào hệ thống Thrashing ≡ mộttiến trình dùng nhiềuthờigiancho việc thay trang 2008-05-01 Nguyên lý Hệ điềuhành 91
- Thrashing (tiếp) 2008-05-01 Nguyên lý Hệ điềuhành 92
- Phân trang theo yêu cầu và thrashing Mô hình cụcbộ Các tiếntrìnhditrútừ miềncụcbộ này sang miềncụcbộ khác Các miềncụcbộ có thể bị chồng chéo. Vì sao lạixuấthiện thrashing? Σ kích cỡ các miềncụcbộ > dung lượng bộ nhớ 2008-05-01 Nguyên lý Hệ điềuhành 93
- Mô hình “tậplàmviệc” Δ≡cửasổ tậplàmviệc Mộttậpcốđịnh các tham chiếu trang Ví dụ: 10,000 lệnh WSSi (tậplàmviệccủatiếntrìnhPi) Tổng số trang được tham chiếu trong cửasổ làm việcmớinhất Δ (thay đổi theo thời gian) Δ quá nhỏ sẽ không chứa được toàn bộ mộtmiềncụcbộ Δ quá lớnsẽ chứa đồng thờimộtsố miềncụcbộ Δ = ∞⇒chứa toàn bộ chương trình D = Σ WSSi ≡ tổng các frames yêu cầu Nếu D > m ⇒ Thrashing Chiếnlược: Nếu D > m, thựchiện phong tỏamột trong số các tiếntrình 2008-05-01 Nguyên lý Hệ điềuhành 94
- Mô hình tậplàmviệc 2008-05-01 Nguyên lý Hệ điềuhành 95
- Lược đồ tầnsuấtlỗitrang Thiếtlậpmộttỉ lệ lỗi trang chấpnhận được Nếutỉ lệ lỗithựctế thấp, tiến trình giải phóng frames Nếutỉ lệ lỗithựctế cao, tiếntrìnhlấy thêm frames 2008-05-01 Nguyên lý Hệ điềuhành 96
- 2.8. Các vấn đề khác Thựcthi“tiền phân trang” Giảmmộtsố lượng lớnlỗi trang xuấthiệnvào thời điểmbắt đầutiếntrình Phân trướcmộtsố trang mà tiếntrìnhcóthể cần tới Thựchiện“tiền phân trang” có thể làm lãng phí thiếtbị vào ra hoặcbộ nhớ Nếuthờigiantiếtkiệm được do lỗitranglớnhơnthời gian lãng phí Æ nên dùng tiềnphântrang 2008-05-01 Nguyên lý Hệ điềuhành 97
- Kích cỡ trang Xem xét các yếutốđểquyết định kích cỡ trang: Phân mảnh Kích cỡ bảng Phụ trội do vào ra Tham chiếucụcbộ 2008-05-01 Nguyên lý Hệ điềuhành 98
- Cấutrúcchương trình Cấutrúcchương trình Int[128,128] data; Mỗi hàng đượclưu trong 1 trang Chương trình 1 for (j = 0; j <128; j++) for (i = 0; i < 128; i++) data[i,j] = 0; 128 x 128 = 16,384 lỗi trang Chương trình 2 for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0; 128 lỗi trang 2008-05-01 Nguyên lý Hệ điềuhành 99
- 3. Giao diệnhệ thống file 1. Khái niệm file 2. Các phươ ng pháp truy nhập file 3. Chia sẻ file 4. G ắnhệ thố ng file 5. B ảovệ 2008-05-01 Nguyên lý Hệ điềuhành 100
- Hệ thống file Hệ thống file cung cấpkholưutrữ lâu dài cho chương trình và dữ liệu. Để đảmbảoviệclưutrữ lâu dài, các file đượclưu trữ trên đĩa Để có thể sử dụng nội dung file, CPU đọcfile vào bộ nhớ trong Hệ thồng file bao gồm Mộttậpcácfile Mộtcấutrúcthư mục 2008-05-01 Nguyên lý Hệ điềuhành 101
- 3.1. Khái niệm file Mộttậpdữ liệu đượclưutrữ trong thiếtbị lưutrữ thứ cấp. Thông thường, một file lưutrữ chương trình hoặc dữ liệu Mộtchuỗi các bit, bytes, dòng hoặcbảnghi Ý nghĩacủacácbản ghi này được định nghĩabởingười tạo Hệđiềuhànhtrừutượng hóa chi tiếtcủamỗithiếtbị lưutrữ Người dùng thấymộtmảng tuyến tính các bản ghi Hệđiềuhànhánhxạ file logic lên thiếtbị lưutrữ 2008-05-01 Nguyên lý Hệ điềuhành 102
- Cấu trúc file Không có cấutrúc–chuỗicáctừ (words), bytes Cấutrúcbản ghi đơngiản Các dòng Kích cỡ cốđịnh Kích cỡ thay đổi Các cấutrúcphứctạp Tài liệu được định dạng File có thểđịnh vị lại được Có thể cài đặtcấutrúcphứctạpbằng cách thêm mộtsố kí tựđiềukhiển vào file. 2008-05-01 Nguyên lý Hệ điềuhành 103
- Những thông tin về file mà HĐH quảnlý File có các thuộc tính: Tên (name) Sốđịnh danh (identifier) Kiểu (type) Vị trí (location) Kích thước(size) Bảovệ (protection) : thông tin điềukhiểntruycập OwnerID Thời gian: tạo, sửa đổilầncuối, truy cậplầncuối 2008-05-01 Nguyên lý Hệ điềuhành 104
- Ví dụ về khối điềukhiển file trong Linux 2008-05-01 Nguyên lý Hệ điềuhành 105
- Các thao tác trên file File là mộtkiểudữ liệutrừutượng Thông thường, có các thao tác trên file sau create(): tìm không gian trong hệ thống cho một file và sau đó thêm nó vào thư mục write(): thêm dữ liệuvàofile tạivị trí hiệntại read(): đọcdữ liệutừ file bắt đầutừ vị trí hiệntại seek(): thay đổivị trí con trỏđọchoặc ghi đếnmột ví trí xác định trong file delete(): xóa mộtfile khỏihệ thống file 2008-05-01 Nguyên lý Hệ điềuhành 106
- Các file mở Các thông tin để quản lý các file đang mở: Con trỏ file: trỏđếnvị trí đọc/ghi cuối Thông tin đơntiếntrình Số lầnmở file – Khi các tiếntrìnhmở file thoát Æ xóa phầntử tương ứng với file trong bảng file mở Thông tin hệ thống Vị trí đĩa: Lưulại thông tin truy nhậpdữ liệu Các quyềntruynhập: mode truy nhập đốivớimỗi tiếntrình 2008-05-01 Nguyên lý Hệ điềuhành 107
- Khóa các file mở Mộtsố HDH và hệ thống file hỗ trợ khóa các file mở Sắpxếpviệctruynhập file Bắtbuộc/Tư vấn: Bắtbuộc –truyvấnbị từ chốitùythuộckhóavà yêu cầu Tư vấn –cáctiếntrìnhkiểmtratrạng thái của khóa và xác định. 2008-05-01 Nguyên lý Hệ điềuhành 108
- Ví dụ khóa file trong Java import java.io.*; import java.nio.channels.*; public class LockingExample { public static final boolean EXCLUSIVE = false; public static final boolean SHARED = true; public static void main(String arsg[]) throws IOException { FileLock sharedLock = null; FileLock exclusiveLock = null; try { RandomAccessFile raf = new RandomAccessFile("file.txt", "rw"); // get the channel for the file FileChannel ch = raf.getChannel(); // this locks the first half of the file - exclusive exclusiveLock = ch.lock(0, raf.length()/2, EXCLUSIVE); / Now modify the data . . . */ // release the lock exclusiveLock.release(); 2008-05-01 Nguyên lý Hệ điềuhành 109
- Ví dụ khóa file trong Java // this locks the second half of the file - shared sharedLock = ch.lock(raf.length()/2+1, raf.length(), SHARED); / Now read the data . . . */ // release the lock exclusiveLock.release(); } catch (java.io.IOException ioe) { System.err.println(ioe); }finally { if (exclusiveLock != null) exclusiveLock.release(); if (sharedLock != null) sharedLock.release(); } } } 2008-05-01 Nguyên lý Hệ điềuhành 110
- Các kiểu file – tên, phầnmở rộng 2008-05-01 Nguyên lý Hệ điềuhành 111
- 3.2. Các phương pháp truy cập Truy cậptuầntự read next write next reset no read after last write (rewrite) Truy cậptrựctiếp read n write n position to n read next write next rewrite n n = số hiệutương đốicủakhối 2008-05-01 Nguyên lý Hệ điềuhành 112
- File truy nhậptuầntự 2008-05-01 Nguyên lý Hệ điềuhành 113
- Mô phỏng truy cậptuầntự trên mộtfile truy nh ậptrự ctiếp 2008-05-01 Nguyên lý Hệ điềuhành 114
- Ví dụ về chỉ số và các file tương đối 2008-05-01 Nguyên lý Hệ điềuhành 115
- 3.3.Cấu trúc thư mục Các đĩathường đượctổ chức thành các phân vùng. Các thư mụcthuthậpvàtổ chức các file trên một phân vùng Directory Files F 2 F 4 F 1 F 3 F n 2008-05-01 Nguyên lý Hệ điềuhành 116
- Cách thứctổ chứcmộthệ thống file điển hình 2008-05-01 Nguyên lý Hệ điềuhành 117
- Các thao tác trên thư mục search: tìm một file hoặctập các file khớpvới điềukiệntìmkiếm create: tạomột file trên mộtthư mục delete: xóa một file khỏimộtthư mục list: xem nội dung thư mục rename: thay đổitêncủamột file traverse 2008-05-01 Nguyên lý Hệ điềuhành 118
- Tổ chứcthư mục(mức logic) Hiệuquả Xác định vị trí các file một cách nhanh chóng Đặttên–thuậntiện cho người dùng Hai người dùng có thể dùng cùng 1 tên cho hai file khác nhau File giống nhau có thể có các tên khác nhau Gộp nhóm – gộp các file có cùng đặctrưng lại thành các nhóm (e.g., các file chương trình java, tấtcả trò chơi, ) 2008-05-01 Nguyên lý Hệ điềuhành 119
- Cấutrúcđơnmức Mộtthư mục đơnchotấtcả người dùng Vấn đề Đặttên Gộp nhóm 2008-05-01 Nguyên lý Hệ điềuhành 120
- Cấutrúchaimức Mỗingười dùng có mộtthư mục Đường dẫn Cho phép hai người dùng khác nhau đặt cùng mộttênfile Tìm kiếmhiệuquả Chưacótínhnăng gộp nhóm 2008-05-01 Nguyên lý Hệ điềuhành 121
- Cấu trúc cây 2008-05-01 Nguyên lý Hệ điềuhành 122
- Cấu trúc cây Tìm kiếmhiệuquả Tính năng gộp nhóm Thư mụchiệnthời(thư mục làm việc) cd /spell/mail/prog type list 2008-05-01 Nguyên lý Hệ điềuhành 123
- Cấutrúcđồ thị không có chu trình 2008-05-01 Nguyên lý Hệ điềuhành 124
- Cấutrúcđồ thị không có chu trình Làm sao đảmbảo không có chu trình? Chỉ chophéptạoliênkết đến file mà không cho tạoliênkết đếncácthư mụccon Thu rác (garbage collection) Mỗikhimộtliênkếtmới được thêm, sử dụng một thuật toán xác định chu trình để kiểmtraxemcó thêm được không 2008-05-01 Nguyên lý Hệ điềuhành 125
- 3.4.Gắn hệ thống file Mộthệ thống file cần được gắn trướckhicóthể truy cập 2008-05-01 Nguyên lý Hệ điềuhành 126
- ĐiểmgắnHệ thống file 2008-05-01 Nguyên lý Hệ điềuhành 127
- 3.5.Chia sẻ file Nhu cầuchiasẻ file trong hệ thống đangười dùng Thựchiệnchiasẻ file thông qua lược đồ bảovệ Trên các hệ thống phân tán, các file có thểđược chia sẻ qua mạng Hệ thống file mạng (NFS) là phương pháp chia sẻ file phổ biến 2008-05-01 Nguyên lý Hệ điềuhành 128
- Chia sẻ file – đangười dùng User IDs nhậndiệnngười dùng, cho phép cấpquyềnvàbảovệ file cấpngười dùng. Group IDs xác định nhóm người dùng, cấp quyềntruynhập theo nhóm. 2008-05-01 Nguyên lý Hệ điềuhành 129
- Chia sẻ file – Các hệ thống file từ xa Thông qua mạng để truy cậphệ thống file giữacáchệ thống Truy cậpthủ công thông qua các chương trình như FTP Truy nhậptựđộng thông qua hệ thống file chia sẻ Truy nhập bán tựđộng thông qua world wide web Mô hình client-server cho phép khách gắncáchệ thống file củaservers Server có thể phụcvụ nhiều clients Việcnhậndạng người dùng trên máy client thường không bảomậthoặc phứctạp NFS là giao thứcchiasẻ file client-server chuẩncủa UNIX CIFS là giao thứcchuẩncủa Windows. Các lờigọi file chuẩncủahệđiều hành đượcchuyển thành các lờigọifile từ xa. Các hệ thống thông tin phân tán (các dịch vụđịnh dạng phân tán) như LDAP, DNS, NIS, Active Directory thiếtlậptruycậphợpnhất đến thông tin chia sẻ từ xa. 2008-05-01 Nguyên lý Hệ điềuhành 130
- Chia sẻ file – Các mode thấtbại Các hệ thống file từ xa có thêm các mode thấtbại, do mạng, do server Khôi phụctừ thấtbạicần thông tin trạng thái của mỗiyêucầutừ xa. Các giao thức không hướng kếtnốinhư NFS trong mỗiyêucầu cho phép khôi phụcdễ dàng hơn nhưng ít bảomậthơn. 2008-05-01 Nguyên lý Hệ điềuhành 131
- Chia sẻ file – Tính thống nhấtvề mặtngữ nghĩa Tính nhấtquánvề ngữ nghĩa xác định cách thức cho phép nhiềungười dùng truy cập vào file cùng lúc. Tương tự cách đồng bộ tiếntrìnhcộng tác Hệ thống file Andrew (AFS) triểnkhaingữ cảnh chia sẻ file từ xa Hệ thống file Unix (UFS) thiếtlập: Việcghilênmột file mở có thể thấybởinhững người dùng khác ngay lậptức Con trỏđến file chia sẻ cho phép nhiềungười dùng truy cập đến file đồng thời. AFS có các ngữ cảnh sessions Việccậpnhật lên file chỉ thấy được trong những sessions sau khi file đã đóng 2008-05-01 Nguyên lý Hệ điềuhành 132
- 3.6. Bảovệ Ngườitạo/sở hữuphảicókhả năng điềukhiển Xác định ai có thể làm gì trên file Các kiểutruynhập Read Write Execute Append Delete List 2008-05-01 Nguyên lý Hệ điềuhành 133
- Nhóm và quyềntruynhập Các mode truy nhập: read, write, execute Ba lớpngười dùng RWX a) owner access 7 ⇒ 1 1 1 RWX b) group access 6 ⇒ 1 1 0 RWX c) public access 1 ⇒ 0 0 1 Tạomột nhóm G (tên duy nhất), và thêm người dùng vào nhóm đó. Vớimột file (vd: game) hay thư mục con, định ngh ĩamột quyềntruynhập xác định owner group public chmod 761 game 2008-05-01 Nguyên lý Hệ điềuhành 134
- Quản lý quyềntruynhập trong XP 2008-05-01 Nguyên lý Hệ điềuhành 135
- Liệtkêthư mục trong Unix 2008-05-01 Nguyên lý Hệ điềuhành 136
- 4. Cài đặthệ thống file 1. Cấutrúcvàcàiđặthệ thống file 2. Cài đặtthư mục 3. Các ph ương pháp phân phối 4. Qu ản lý không gian rỗ i 5. Hi ệuquả , hi ệusu ất 6. Khôi phục 2008-05-01 Nguyên lý Hệ điềuhành 137
- 4.1. Cấutrúcvàcàiđặthệ thống file Cấu trúc file Đơnvị lưutrữ mứclogic Tập các thông tin có liên quan đếnnhau Hệ thống file đượclưutrênthiếtbị lưutrữ thứ cấp (các đĩatừ) Hệ thống file đượctổ chứcthànhcáctầng Khối điềukhiển file –cấutrúclưutrữ chứa thông tin về một file 2008-05-01 Nguyên lý Hệ điềuhành 138
- Hệ thống file phân tầng 2008-05-01 Nguyên lý Hệ điềuhành 139
- Mộtkhối điều khiển file điểnhình 2008-05-01 Nguyên lý Hệ điềuhành 140
- Các cấutrúchệ thống file trong bộ nhớ Các cấu trúc file hệ thống cầnthiếtvàđược cung cấpbởihầuhếtcáchệđiều hành. Hình 12-3(a) mô tả quá trình mở một file. Hình 12-3(b) mô tả quá trình đọcmột file 2008-05-01 Nguyên lý Hệ điềuhành 141
- Các cấutrúchệ thống file trong bộ nhớ 2008-05-01 Nguyên lý Hệ điềuhành 142
- Các hệ thống file ảo Các hệ thống file ảo(VFS) cungcấpmộtcáchthức hướng đốitwongjđể cài đặthệ thống file VFS cho phép thiếtlậpgiaodiệnlờigọihệ thống (API) chung cho các loạihệ thống file khác nhau API là giao diện VFS thay vì giao diệncủabấtkì mộthệ thống file cụ thể nào 2008-05-01 Nguyên lý Hệ điềuhành 143
- Hệ thống file ảo 2008-05-01 Nguyên lý Hệ điềuhành 144
- 4.2. Cài đặtthư mục Danh sách liên kết chứa tên file và con trỏđến các file Đơngiản Tốnkémthờigian Bảng băm. Giảmthời gian tìm kiếmthư mục Va chạm – tình huống xảy ra khi hai tên file được ánh xạ vào cùng một địa điểm Kích cỡ cốđịnh 2008-05-01 Nguyên lý Hệ điềuhành 145
- 4.3. Các phương pháp phân phối Cách thức phân phốicáckhối đĩa cho các file: Phân phối liên tục Phân phối liên kết Phân phốichỉ số 2008-05-01 Nguyên lý Hệ điềuhành 146
- Phân phối liên tục Mỗifile lưutrongmộttậpcáckhốiliêntụctrênđĩa Đơngiản–chỉ cần điểmbắt đầu (block #) và kích cỡ (số các blocks) Truy nhậpngẫunhiên Không tậndụng không gian tối ưu Các file không thể thay đổikíchcỡ 2008-05-01 Nguyên lý Hệ điềuhành 147
- Phân phối liên tục (tt) Ánh xạ từ không gian logic sang không gian vậtlý Q LA/512 R Khốicầntruycập= Q + địachỉ bắt đầu Gia số trong khối= R 2008-05-01 Nguyên lý Hệ điềuhành 148
- Phân phối không gian đĩaliêntục 2008-05-01 Nguyên lý Hệ điềuhành 149
- Các hệ mở rộng dựa trên phân phối liên tụ c Nhiềuh ệ thống file mới (ví dụ: Veritas File System) sử dụng mộtlược đồ phân phốiliêntụccósửa đổi Các hệ thống file mở rộng phân phốikhối đĩa trong các extents Một extent là mộttậpcáckhối đĩa liên tục Extents được phân phốichomột file Mộtfile cóthể chứamột hay nhiều extent. 2008-05-01 Nguyên lý Hệ điềuhành 150
- Phân phối liên kết Một file có thể là một danh sách khối đĩa: các khối đĩacóthể nằmrảirác. Khối= Con trỏ 2008-05-01 Nguyên lý Hệ điềuhành 151
- Phân phối liên kết (tt) Đơngiản–chỉ cần địachỉ bắt đầu Hệ thống quản lý không gian rỗi– Không lãng phí tài nguyên Không truy nhậpngẫu nhiên Q Ánh xạ LA/511 R Khốisắp đượctruynhậptạivị tri thứ Qth trong danh sách liên kết các blocks biểudiễn file. Gia số trong blocks= R + 1 Bảng phân phối file ( bảng FAT) – phân phối không gian đĩa trong MS-DOS và OS-2 2008-05-01 Nguyên lý Hệ điềuhành 152
- Phân phối liên kết 2008-05-01 Nguyên lý Hệ điềuhành 153
- Bảng phân phối file 2008-05-01 Nguyên lý Hệ điềuhành 154
- Phân phốichỉ số Khối index: chứa toàn bộ con trỏđến các khối đĩa . Bảng chỉ số 2008-05-01 Nguyên lý Hệ điềuhành 155
- Ví dụ về phân phốichỉ số 2008-05-01 Nguyên lý Hệ điềuhành 156
- Phân phốichỉ số (tt) Cầnbảng chỉ Truy cậpngẫu nhiên Phân phối động mà không sinh ra phân mảnh ngoài (chỉ tốn không gian cho bảng index) Ánh xạ từ không gian logic sang không gian vật lý trong một file kích cỡ tối đa là 256K từ và kích cỡ khối là 512 từ chúng ta chỉ cầnmộtkhốicho bảng index Q Q = chỉ số trong bảng index LA/512 R = chỉ số trong khối R 2008-05-01 Nguyên lý Hệ điềuhành 157
- Phân phối đánh chỉ số – Ánh xạ (tt) Ánh xạ từ không gian logic sang không gian vậtlý trong mộtfile độ dài không giớihạn (kích cỡ khốilà 512 từ). Lược đồ liên kết–Liênkếtcáckhối trong bảng chỉ số (không giớihạnkíchcỡ). Q1 LA / (512 x 511) R1 Q1 = khốicủabảng chỉ số R1 đượcsử dụng như sau: Q2 R1 / 512 R2 Q2 = gia số trong khốichứabả ng chỉ số R2 gia số trong khối file: 2008-05-01 Nguyên lý Hệ điềuhành 158
- Phân phối đánh chỉ số - Ánh xạ (tt) Hai mứcchỉ số (kích cỡ file tối đalà 5123) Q1 LA / (512 x 512) R1 Q1 = Gia số trong bảng file mức ngoài R1 đượcsử dụng như sau: Q2 R1 / 512 R2 Q2 = gia số trong khốicủabảng chỉ số mức trong R2 gia số trong khối file: 2008-05-01 Nguyên lý Hệ điềuhành 159
- Phân phối file chỉ số – Ánh xạ (tt) M outer-index index table file 2008-05-01 Nguyên lý Hệ điềuhành 160
- Lược đồ kếthợp: UNIX (4K bytes mỗikhối) 2008-05-01 Nguyên lý Hệ điềuhành 161
- 4.4. Quản lý không gian rỗi Vector bit (n khối 0 1 2 n-1 0 ⇒ block[i] free bit[i] = 1 ⇒ block[i] occupied 678 Tính toán số khối (s ố lượng bit mỗitừ) * (số lượng từ nhậngiátrị 0) + Gia số bit 1 đầ utiên 2008-05-01 Nguyên lý Hệ điềuhành 162
- Quản lý không gian rỗi (tt) Ánh xạ bit cần thêm không gian Ví dụ: kích cỡ khối= 212 bytes kích cỡđĩ a= 230 bytes (1 gigabyte) n = 230/2 12 = 218 bits (or 32K bytes) Dễ dàng truy nhập đế n file liên tục Danh sách liên kết (danh sách liên kếtrỗi) Khó có được không gian liên tục Không lãng phí không gian 2008-05-01 Nguyên lý Hệ điềuhành 163
- Quản lý không gian rỗi (tt) Cầnphảibảovệ: Con trỏđếndanhsáchrỗi Ánh xạ bit Phải đượcgiữ trên đĩa Bảnsaotrongđĩavàtrongbộ nhớ có thể khác nhau Không cho phép khối[i] ở trong trạng thái mà bit[i] = 1 trong bộ nhớ và bit[i] = 0 trên đĩa Giải pháp: Thiếtlậpbit[i] = 1 trong đĩa Phân phốikhối[i] Thiếtlậpbit[i] = 1 trong bộ nhớ 2008-05-01 Nguyên lý Hệ điềuhành 164
- Danh sách liên kết không gian rỗi trên đĩa 2008-05-01 Nguyên lý Hệ điềuhành 165
- Hiệunăng Hiệuquả phụ thuộc vào: Các thuật toán phân phối đĩavàthư mục Các kiểudữ liệu đượcgiữ trong đầuvàothư mục chứa file Năng suất Cache đĩa–lưulạimộtphần đĩathường xuyên được truy nhập Giải phóng sau- đọctrước–kĩ thuậttối ưutruynhập tuầntự Tăng năng suấtlàmviệcchoPC 2008-05-01 Nguyên lý Hệ điềuhành 166
- Cache trang Một cache trang lưulại các trang thay vì các khối đĩasửadụng bởicáckĩ thuậtbộ nhớ Ánh xạ bộ nhớ I/O sửadụng cache trang Các thao tác vào ra vớihệ thống file sử dụng page(disk) cache 2008-05-01 Nguyên lý Hệ điềuhành 167
- I/O mà không có mộttổ chức cache hợpnhất 2008-05-01 Nguyên lý Hệ điềuhành 168
- Sửadụng cache bộđệmhợpnhất Mộtcache bộđệmhợpnhất: sử dụng không gian cache page để cache cả các trang ánh xạ bộ nhớ vào/ra các hệ thống file thông thường 2008-05-01 Nguyên lý Hệ điềuhành 169
- I/O sử dụng cache bộđệmhợpnhất 2008-05-01 Nguyên lý Hệ điềuhành 170
- Khôi phục Kiểm tra tính nhất quán – so sánh dữ liệu trong cấutrúc thư mục và so sánh vớikhối đĩa, cố gắng giảiquyếttính không nhất quán Sử dụng các chương trình hệ thống để back up dữ liệu từđĩa sang các thiếtbị lưutrữ khác (floppy disk, magnetic tape, other magnetic disk, optical) Khôi phụcfile hay thư mụcbị mấtbằng cách khôi phục lại backup 2008-05-01 Nguyên lý Hệ điềuhành 171