Bài giảng Hệ điều hành - Operating System (CNTT)

Chính sách lập lịch trên đĩa (6) • Shortest Service Time First (SSTF) – Chọn yêu cầu I/O mà đòi hỏi ít di chuyển nhất đầu đĩa từ vị trí hiện tại – Luôn luôn cho ra seek time nhỏ nhất. – Ví dụ: cần đọc các khối 98 183 37 122 14 124 65 và 67. Giả sử đầu đọc đang ở vị trí 53. – đầu đọc sẽ lần lượt qua các khối 53 65 67 37 4 98 122 124 183 Chính sách lập lịch trên đĩa (7) • SCAN – đầu đọc di chuyển theo một hướng nhất định. Ví dụ cần đọc các khối 98 183 37 122 14 124 65 67. Giả sử đầu đọc ở vị trí 53. – đầu đọc sẽ lần lượt qua các khối 53 37 14 0 65 67 98 122 124 183 (theo SCAN định hướng về 0) Chính sách lập lịch trên đĩa (7) • C-SCAN – Như SCAN, giới hạn chỉ di chuyển theo 1 chiều – Quay về vị trí bắt đầu ngay khi đụng track ở xa nhất, không cần phải tiếp tục. – Ví dụ cần đọc các khối 98 183 37 122 14 124 65 67. Giả sử đầu đọc ở vị trí 53. – đầu đọc sẽ lần lượt qua các khối 53 65 67 98 122 124 183 199 0 14 37

pdf236 trang | Chia sẻ: HoaNT3298 | Lượt xem: 878 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Hệ điều hành - Operating System (CNTT), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
kết lúc thực thi tiến trình. • Một ñoạn lệnh nhỏ, gọi là stub, dùng ñể ñịnh vị hàm của thư viện ñang ở trong bộ nhớ. • Stub thi hành hàm vừa tìm thấy. • HðH cần phải kiểm tra xem hàm cần tìm có nằm trong bộ nhớ của tiến trình hay không. Memory management 8 Overlays • Chỉ lưu trong bộ nhớ chỉ thị và dữ liệu ñang cần. • Cần thiết khi một tiến trình lớn hơn dung lượng nhớ có thể cấp phát cho nó. Memory management 9 Một số khái niệm • Khi một chương trình thực hiện, nội dung của nó sẽ ñược ñưa vào bộ nhớ máy tính. • Khi ñó, hệ ñiều hành phải ñịnh ra một vùng nhớ trống cho chương trình hoạt ñộng. • Thao tác này gọi là location. Memory management 10 Một số khái niệm • Sau một thời gian hoạt ñộng sẽ có một số chương trình kết thúc bộ nhớ bị phân mảnh. • Một số chương trình khác muốn hoạt ñộng nhưng các khối nhớ trống còn lại không ñủ cấp cho nó. • Khi ñó hệ ñiều hành phải thực hiện thao tác relocation ñịnh vị lại các chương trình hiện có ñể tạo ra khối nhớ trống lớn nhất cho chương trình. Memory management 11 Một số khái niệm • Cơ chế overlay là cơ chế cho phép chia nhỏ 1 chương trình ra thành nhiều phần. • Mỗi phần là 1 trang (page). Tại một thời ñiểm chỉ thực hiện một hoặc một số trang. • Số trang thực hiện mỗi lần là số khung trang k. Các phần còn lại sẽ ñược ñể lại ở bộ nhớ ngoài. Memory management 12 Các kỹ thuật thay thế trang trong cơ chế overlay • Fifo: – Ví dụ: A cần thực hiện nội dung các page theo thứ tự sau: 2 9 6 8 2 4 3 7 5 3 9. Với số khung trang k = 3. ( Mỗi thời ñiểm tối ña thực hiện ñược 3 trang). – ðầu tiên 2 ñược nạp vào bộ nhớ. 2 (trạng thái bộ nhớ) – Tiếp theo 9 ñược nạp vào bộ nhớ. 2 9 – Tiếp theo 6 ñược nạp vào bộ nhớ. 2 9 6 – Sau ñó sẽ thay 2 bởi 8. 8 9 6 – Sau ñó sẽ thay 9 bởi 2. 8 2 6 – ??? 8 2 4 – ??? 3 2 4 – ??? 3 7 4 – ??? 3 7 5 – ??? 3 7 5 – ??? 9 7 5 Memory management 13 Các kỹ thuật thay thế trang trong cơ chế overlay • Ít sử dụng nhất trong tương lai: – Trang ñược thay thế là trang ít sử dụng nhất trong tương lai. Nếu 2 trang trong tương lai có số lần xuất hiện bằng nhau và khác 0 thì ta sẽ chọn trang xa nhất ñể thay thế. Nếu hai trang trong tương lai ñều không xuất hiện thì chọn trang ñầu tiên tính từ trên xuống. – Ví dụ: B cần thực hiện nội dung các page theo thứ tự sau: 2 9 6 8 5 2 4 3 7 5 3 8 9. Với số khung trang k = 3. ( Mỗi thời ñiểm tối ña thực hiện ñược 3 trang). – ðầu tiên 2 ñược nạp vào bộ nhớ. 2 (trạng thái bộ nhớ) – Tiếp theo 9 ñược nạp vào bộ nhớ. 2 9 – Tiếp theo 6 ñược nạp vào bộ nhớ. 2 9 6 – Sau ñó sẽ thay 6 bởi 8. 2 9 8 – Sau ñó sẽ thay 9 bởi 5. 2 5 8 – ??? 2 5 8 – ??? 4 5 8 – ??? 3 5 8 – ??? 3 5 7 – ??? 3 5 7 – ??? 8 5 7 – ??? 9 5 7 Memory management 14 Câu hỏi • A cần thực hiện nội dung các page theo thứ tự sau: 2 9 6 8 2 4 3 7 5 3 9. Với số khung trang k = 3. ( Mỗi thời ñiểm tối ña thực hiện ñược 3 trang). Hãy thực hiện theo kỹ thuật ít sử dụng nhất trong tương lai. • B cần thực hiện nội dung các page theo thứ tự sau: 2 9 6 8 5 2 4 3 7 5 3 8 9. Với số khung trang k = 3. ( Mỗi thời ñiểm tối ña thực hiện ñược 3 trang). Hãy hiện thực theo kỹ thuật thay thế trang fifo trong cơ chế overlay. Memory management 15 Không gian ñịa chỉ lôgic và vật lý • Khái niệm một không gian ñịa chỉ lôgic ñược kết buộc với một không gian ñịa chỉ vật lý ñóng vai trờ trung tâm trong một việc quản lý bộ nhớ tốt. – ðịa chỉ lôgic – ñược phát sinh bởi bộ xử lý; còn ñược gọi là ñịa chỉ ảo. – ðịa chỉ vật lý – ñịa chỉ ñược nhìn thấy bởi ñơn vị quản lý bộ nhớ. – Không gian ñịa chỉ – là tập hợp tất cả các ñịa chỉ ảo phát sinh bởi một chương trình. – Không gian vật lý – 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. • ðịa chỉ lôgic và ñịa chỉ vật lý như nhau trong mô hình kết buộc ñịa chỉ tại thời ñiểm biên dịch và nạp; • ðịa chỉ lôgic và ñịa chỉ vật lý khác nhau trong mô hình kết buộc ñịa chỉ tại thời ñiểm thi hành. Memory management 16 ðơn vị quản lý Bộ nhớ Memory-Management Unit (MMU) • Thiết bị phần cứng ñể ánh xạ ñịa chỉ ảo thành ñịa chỉ vật lý. • Trong mô hình MMU, mỗi ñịa chỉ phát sinh bởi một tiến trình ñược cộng thêm giá trị của thanh ghi tái ñịnh vị (relocation register) tại thời ñiểm nó truy xuất ñến bộ ngớ. • Chương trình người dùng chỉ quan tâm ñến ñịa chỉ lôgic; nó không thấy ñịa chỉ vật lý thật sự. Memory management 17 Memory management 18 Các kiểu cấp phát vùng nhớ • Cấp phát bộ nhớ liên tục với một phân vùng • Cấp phát bộ nhớ liên tục với nhiều phân vùng có kích thước cố ñịnh • Cấp phát bộ nhớ liên tục với nhiều phân vùng có kích thước ñộng • Cấp phát bộ nhớ không liên tục bằng phân trang Memory management 19 Cấp phát liên tục một phân vùng • Bộ nhớ chính thường chia làm hai phân vùng: – Phần chứa HðH, thường nằm ở vùng nhớ thấp cùng với bảng vector ngắt. – Các tiến trình người dùng nằm ở vùng nhớ cao. • Cấp phát chỉ trên một vùng – Thanh ghi tái ñịnh vị ñược dùng ñể bảo vệ các tiến trình người dùng với nhau và bảo vệ dữ liệu và ñoạn mã của HðH. – Thanh ghi tái ñịnh vị lưu giá trị ñịa chỉ vật lý nhỏ nhất; thanh ghi giới hạn (limit register) chứa phạm vi ñịa chỉ lôgic  mọi ñịa chỉ lôgic phải nhỏ hơn thanh ghi giới hạn. – Thường dùng trong các hệ ñơn chương Memory management 20 9.03 Memory management 21 Cấp phát liên tục nhiều phân vùng cố ñịnh • Cấp phát liên tục với nhiều phân vùng cố ñịnh – Bộ nhớ ñược phân thành các phân vùng có kích thước cố ñịnh (có thể khác nhau hoặc bằng nhau) – Khi một tiến trình vào, nó sẽ ñược cấp phát cho một phân vùng có kích thước ñủ ñể chứa nó. • Khuyết ñiểm: – Mỗi phân vùng chỉ ñược lưu một tiến trình  số tiến trình ñồng thời bị giới hạn bởi số phân vùng – Nếu kích thước của tiến trình không vừa ñúng bằng kích thước của phân vùng chứa nó, phần bộ nhớ không ñược sử dụng sẽ lãng phí  hiện tượng phân mảnh nội vi (internal fragmentation). – Sử dụng thanh ghi tái ñịnh vị và thanh ghi giới hạn ñể bảo vệ các tiến trình khỏi bị xâm phạm lẫn nhau. Memory management 22 Cấp phát liên tục nhiều phân vùng cố ñịnh Memory management 23 Cấp phát liên tục nhiều phân vùng cố ñịnh Memory management 24 P3 P1 P5 400 900 1900 2560 Dư 200Kb Dư 400Kb Dư 160Kb Cấp phát liên tục nhiều phân vùng cố ñịnh Giả sử các phân vùng cố ñịnh là 500 Kb, 1000Kb và 656 Kb. Memory management 25 Cấp phát liên tục nhiều phân vùng ñộng • Cấp phát liên tục với nhiều phân vùng ñộng – Khi một tiến trình vào hệ thống, cấp phát cho nó vùng nhớ vừa ñúng với kích thước của tiến trình. – Khi tiến trình kết thúc vùng nhớ ñó sẽ bị thu hồi và cấp phát cho các tiến trình khác – Kích thước của vùng nhớ ñộng – Vị trí của vùng nhớ cũng ñộng • Khuyết ñiểm: – Không còn hiện tượng phân mảnh nội vi nhưng xuất hiện hiện tượng phân mảnh ngoại vi (external fragmentation)  có khả năng tổng vùng nhớ còn trống có thể ñủ ñể cấp phát cho nhu cầu của tiến trình nhưng không thể vì chúng nằm rải rác. – Giải pháp cho phân mảnh ngoại vi dồn vùng nhớ  phức tạp, chi phí cao. – Nếu trong quá trình xử lý tiến trình có nhu cầu sử dụng thêm vùng nhớ  phải dời chỗ tiến trình hoặc cấp phát thêm nếu còn trống phần ngay sau nó  cần phải có một thuật toán lường trước hoặc tối ưu việc cấp phát vùng nhớ tránh phải dời chỗ tiến trình nhiều. Memory management 26 Cấp phát liên tục nhiều phân vùng ñộng Memory management 27 Cấp phát liên tục nhiều phân vùng ñộng Memory management 28 Relocation Memory management 29 Relocation Memory management 30 Cấp phát liên tục nhiều phân vùng ñộng • First-fit: Cấp phát cho vùng trống ñầu tiên có thể chứa ñược tiến trình. • Best-fit: Cấp phát vùng trống nhỏ nhất có thể chứa ñược tiến trình; phải tìm kiếm trên toàn bộ danh sách các vùng trống. • Worst-fit: Cấp phát vùng trống lớn nhất; phải tìm kiếm trên toàn bộ danh sách Chọn vùng nhớ trống nào ñể cấp phát cho một tiến trình khi có nhu cầu First-fit tốt hơn về tốc ñộ và Best-fit tối ưu hóa việc sử dụng bộ nhớ Memory management 31 Câu hỏi bài tập • Vẽ sơ ñồ cấp phát liên tục nhiều phân vùng ñộng theo: – First fit ? – Best fit ? – Worst fit? Trong trường hợp của hình bên Memory management 32 Swapping • Một tiến trình có thể bị chuyển ra ngoài tạm thời ñến một vùng lưu trữ nào ñó khi tiến trình ñó phải chờ ñợi trong khoảng thời gian dài ñể giải phóng vùng nhớ cho tiến trình khác (swap out). • Khi tiến trình kết thúc việc chờ, nó có thể ñược mang vào lại bộ nhớ chính ñể xử lý (swap in). • Thao tác swap cũng có thể xảy ra khi dùng các thuật toán ñiều phối tiến trình có ñộ ưu tiên Memory management 33 Swapping • Nâng cao mức ñộ ña chương • Khi tiến trình ñược mang lại bộ nhớ chính, nó sẽ ñược nạp vào vùng nhớ nào? – Kết buộc lúc nạp  phải ñưa vào vùng nhớ cũ của nó – Kết buộc lúc thi hành  thay ñổi thanh ghi tái ñịnh vị • Cần sử dụng bộ nhớ phụ ñủ lớn ñể lưu các tiến trình bị khóa. • Thời gian swap chủ yếu là thời gian chuyển tiến trình từ vùng nhớ chính ñến bộ nhớ phụ  một tiến trình cần phải có khoảng thời gian xử lý ñủ lớn. Memory management 34 Mô hình thao tác swapping Memory management 35 Khuyết ñiểm của các pp cấp phát liên tục • Xảy ra hiện tượng phân mảnh bộ nhớ: – Phân mảnh nội vi (internal fragmentation) • Kích thước phân vùng cố ñịnh – Phân mảnh ngoại vi (external fragmentation) • Kích thước phân vùng ñộng Memory management 36 Cấp phát bộ nhớ bằng pp phân trang (Paging) • Không gian ñịa chỉ lôgic của một tiến trình có thể không liên tục. • Chia bộ nhớ vật lý thành các khối có kích thước cố ñịnh gọi là khung (frame) (kích thước là số mũ của 2, từ 512 ñến 8192 bytes). • Chia bộ nhớ lôgic thành các khối có cùng kích thước và gọi là trang (pages). • Lưu trạng thái của tất cả các khung (frame). • ðể chạy một chương trình có kích thước n trang, cần phải tìm n khung trống và nạp chương trình vào. • Tạo một bảng trang ñể chuyển ñổi ñịa chỉ lôgic sang ñịa chỉ vật lý. • Có hiện tượng phân mảnh bộ nhớ nội vi. Memory management 37 Mô hình chuyển ñổi ñịa chỉ • ðịa chỉ ñược tạo ra bởi CPU gồm có hai phần: – Số trang (Page number) (p) – ñược dùng như là một chỉ số của một bảng trang chứa ñịa chỉ cơ sở của mỗi trang trong bộ nhớ vật lý. – Page offset (d) – kết hợp với ñịa chỉ cơ sở ñể ñịnh ra không gian ñịa chỉ vật lý ñược gởi ñến bộ nhớ. Memory management 38 Kiến trúc chuyển ñổi ñịa chỉ Memory management 39 Ví dụ trang Memory management 40 Cài ñặt bảng trang • Bảng trang ñược ñặt trong bộ nhớ. • Page-table base register (PTBR) chỉ ñến bảng trang. • Page-table length register (PRLR) cho biết kích thước của bảng trang. • Với mô hình này, mọi sự truy cập chỉ thị/dữ liệu ñều ñòi hỏi hai lần truy cập vùng nhớ: 1) truy cập bảng trang; 2) chỉ thị hoặc dữ liệu  có vẻ chậm. • Khắc phục vấn ñề hai lần truy cập vùng nhớ bằng cách sử dụng một vùng ñệm phần cứng tra cứu nhanh ñặc biệt (special fast-lookup hardware) gọi là associative registers hoặc translation look-aside buffers (TLBs) Memory management 41 Memory management 42 Effective Access Time • Thời gian tìm kiếm trong associate registers = ε ñơn vị thời gian • Giả sử thời gian truy cập bộ nhớ là 1 ms • Gọi α là tỉ lệ số lần số trang ñược tìm thấy trong các associative registers. • Effective Access Time (EAT) EAT = (1 + ε) α + (2 + ε)(1 – α) = 2 + ε – α Memory management 43 Bảo vệ vùng nhớ • Làm sao biết trang nào của tiến trình nào? Cần bảo vệ các tiến trình truy xuất vào trang không phải của mình. • Việc bảo vệ vùng nhớ ñược cài ñặt bằng cách liên kết một khung với một bit, gọi là bit kiểm tra hợp lệ (valid- invalid bit). • Valid-invalid bit ñược ñính kèm vào mỗi ô trang bảng trang: – “valid” chỉ ra rằng trang ñi kèm là nằm trong không gian ñịa chỉ lôgic của tiến trình vì vậy truy xuất trang này là hợp lệ. – “invalid” chỉ ra rằng trang ñi kèm không nằm trong không gian ñịa chỉ lôgic của tiến trình. Memory management 44 Memory management 45 Tổ chức bảng trang • Chỉ một bảng trang (cho mỗi tiến trình) • Tiến trình nhiều trang  quản lý bộ nhớ rất lớn  số trang nhiều  kích thước của bảng trang phải lớn  không tối ưu. • Giải pháp: – Phân trang ña cấp (multilevel paging) – Bảng trang nghịch ñảo Memory management 46 Phân trang ña cấp • Phân chia bảng trang thành các phần nhỏ • Bản thân bảng trang cũng ñược phân trang Memory management 47 Mô hình phân trang hai cấp Memory management 48 Ví dụ phân trang 2 cấp • Một ñịa chỉ lôgic (trên máy 32 bit với kích thước trang là 4K) ñược chia thành: – Page number: 20 bit. – Page offset: 12 bit. • Bởi vì bảng trang ñược phân trang, số trang tiếp tục ñược phân chia thành: – Page number: 10-bit. – Page offset: 10 bit. • ðịa chỉ lôgic sẽ có cấu trúc như sau: page number page offset pi p2 d 10 10 12 Memory management 49 Chuyển ñổi ñịa chỉ • Address-translation scheme for a two-level 32-bit paging architecture Memory management 50 Phân tích • Nếu chỉ dùng một trang – bảng trang sẽ có 220 phần tử. • Nếu dùng phân trang 2 cấp – Bảng trang ngoài cần 210 phần tử – Bảng trang trong vẫn có 220 phần tử nhưng có thể ñược ñặt ở vùng nhớ phụ Memory management 51 Bảng trang nghịch ñảo • Sử dụng một bảng trang duy nhất cho mọi tiến trình • Một entry cho mỗi khung (bộ nhớ vật lý). • Một entry bao gồm ñịa chỉ ảo của khung và tiến trình sở hữu khung ñó. • Giảm kích thước lưu trữ bảng trang , nhưng tăng thời gian tìm kiếm bảng trang. • Dùng bảng băm ñể tăng tốc tìm kiếm. Memory management 52 Kiến trúc bảng trang nghịch ñảo Memory management 53 Chia sẻ và bảo vệ • Chia sẻ và bảo vệ – Ở cấp ñộ trang – ðứng ở khía cạnh người dùng, khá bất tiện • Vd: ðoạn mã nằm trên nhiều trang  phải chia sẻ tất cả các trang ñó với nhau. – ðoạn mã phải nằm ở một vị trí giống nhau trông tất cả các không gian ñịa chỉ của của tiến trình muốn chia sẻ Memory management 54 Ví dụ chia sẻ trang Memory management 55 Phân ñoạn • Hỗ trợ quản lý bộ nhớ theo góc ñộ người dùng. • Một chương trình bao gồm nhiều phân ñoạn (segment): – ðoạn mã – Biến toàn cục, dữ liệu – stack – heap Memory management 56 Góc ñộ người dùng 1 3 2 4 1 4 2 3 user space physical memory space Memory management 57 Kiến trúc phân ñoạn • ðịa chỉ lôgic = • Bảng phân ñoạn (Segment table) – chuyển ñổi ñịa chỉ hai chiều thành ñịa chỉ vật lý một chiều. Mỗi ô trong bảng gồm có: – Thanh ghi nền (base) – chứa ñịa chỉ vật lý bắt ñầu của phân ñoạn trong bộ nhớ chính. – Thanh ghi giới hạn (limit) – chỉ kích thước của phân ñoạn. • Segment-table base register (STBR) lưu trữ ñịa chỉ của bảng phân ñoạn trong vùng nhớ. • Segment-table length register (STLR) chỉ số segment ñược sử dụng bởi 1 chương trình Memory management 58 Chuyển ñổi ñịa chỉ Memory management 59 Kiến trúc phân ñoạn (tt) • Tái ñịnh vị. – ðộng (dynamic partition) – Thông qua bảng phân ñoạn • Chia sẻ. – Có thể chia sẻ các phân ñoạn giữa các chương trình – Sử dụng chung chỉ số sement • Cấp phát. – first fit/best fit – Có hiện tượng phân mảnh ngoại vi Memory management 60 Chuyển ñổi ñịa chỉ Memory management 61 Kiến trúc phân ñoạn (tt) • Bảo vệ – Mỗi entry thêm một bit “valid bit”. Nếu valid bit = 0 ⇒ truy cập phân ñoạn không hợp lệ – Hỗ trợ phân quyền theo từng thao tác read/write/execute Memory management 62 Memory management 63 Kết hợp phân trang và phân ñoạn • Ý tưởng: – Phân trang trong mỗi phân ñoạn – Bộ nhớ = nhiều phân ñoạn – Phân ñoạn = nhiều trang • Giải quyết tình trạng phân mảnh ngoại vi • Mỗi phần tử của bảng phân ñoạn gồm hai thành phần: – Thanh ghi giới hạn (limit): kích thước của phân ñoạn (giống với phân ñoạn thuần) – Thanh ghi cơ sở (base): chứa ñịa chỉ của bảng trang của phân ñoạn ñó (khác với phân ñoạn thuần) Memory management 64 Các tiêu chuẩn so sánh các pp quản lý vùng nhớ • Hỗ trợ phần cứng • Hiệu năng • Sự phân mảnh • Khả năng tái ñịnh vị • Hỗ trợ swap • Chia sẻ • Bảo vệ 11/07/08 1 Bộ nhớ ảo Trần Sơn Hải Khoa Toán – Tin học ðại học Sư phạm TPHCM Heavily reference to Operating System Slide of Hoang Than Anh Tuan, University of Pedagogy, HCMC 11/07/08 2 Bộ nhớ ảo: Ý tưởng • Hai ñặc trưng quan trọng của kiến trúc phân ñoạn và phân trang: – Mọi sự truy xuất vùng nhớ của một tiến trình ñều ñược chuyển ñổi ñịa chỉ lúc thi hành (run-time)  có thể swap-in, swap- out. – Một tiến trình ñược phân ra thành một số phần (trang hoặc ñoạn) và không nhất thiết phải nằm liên tục nhau 11/07/08 3 Bộ nhớ ảo: Ý tưởng (tt) • Nếu hai tính chất trên ñược bảo ñảm thì không nhất thiết tất cả các trang hoặc phân ñoạn phải nằm trong bộ nhớ chính lúc thi hành. • Ưu ñiểm: – Có nhiều tiến trình trong bộ nhớ hơn  giải thuật lập lịch sẽ tối ưu hơn  nâng cao mức ñộ ña chương – Một tiến trình có thể lớn hơn kích thước của bộ nhớ chính 11/07/08 4 Nguyên lý cục bộ Các thao tác truy cập vùng nhớ có khuynh hướng cụm lại (cluster). Sau một khoảng thời gian ñủ dài, cụm này có thể sẽ thay ñổi, nhưng trong một khoảng thời gian ngắn, bộ xử lý chủ yếu chỉ làm việc trên một số cụm nhất ñịnh. Sau một khoảng thời gian ñủ dài, cụm này có thể sẽ thay ñổi, nhưng trong một khoảng thời gian ngắn, bộ xử lý chủ yếu chỉ làm việc trên một số cụm nhất ñịnh. 11/07/08 5 Giải thích Các câu lệnh cơ bản chủ yếu là tuần tự (thi hành từ trên xuống dưới). Câu lệnh không tuần tự là câu lệnh rẽ nhánh (câu lệnh ñiều kiện) thường chiếm tỉ lệ khá ít. Trong một khoảng thời gian ngắn, các chỉ thị thông thường nằm trong một số hàm, thủ tục nhất ñịnh. Hầu hết các câu lệnh lặp chứa một số ít các chỉ thị và lặp lại nhiều lần. Do ñó trong suốt thời gian lặp, việc tính toán hầu như chỉ diễn ra trong một vùng nhỏ liên tục. Khi truy cập vào một cấu trúc dữ liệu trước ñó, thông thường các câu lệnh ñặt liền nhau sẽ truy cập ñến các thành phần khác nhau của cùng một cấu trúc dữ liệu. 11/07/08 6 Các vấn ñề liên quan ñến bộ nhớ ảo • Cần có sự hỗ trợ phần cứng về kiến trúc phân trang và phân ñoạn – ðã khảo sát • Cần có thuật toán hiệu quả ñể quản lý việc chuyển ñổi các trang, phân ñoạn từ bộ nhớ chính vào bộ nhớ phụ và ngược lại – Nguyên lý cục bộ – ðĩa cứng hoạt ñộng theo khối – Dự ñoán ñược các trang và phân ñoạn dựa vào lịch sử truy xuất vùng nhớ trước ñó. 11/07/08 7 Quản lý việc chuyển ñổi giữa vùng nhớ chính và vùng nhớ phụ • Các chính sách cần xét: – Chính sách nạp (fetch policy): khi nào thì một trang ñược nạp vào bộ nhớ? – Chính sách ñặt (placement policy): trang hoặc phân ñoạn sẽ ñược ñặt ở ñâu trong bộ nhớ chính? – Chính sách thay thế (replacement policy): chọn trang nào ñưa ra khỏi bộ nhớ phụ khi cần nạp một trang mới vào bộ nhớ chính? 11/07/08 8 Cài ñặt bộ nhớ ảo • Kỹ thuật phân trang theo yêu cầu (demand paging) • Kỹ thuật phân ñoạn theo yêu cầu (demand segmentation) – Khó vì kích thước không ñồng nhất 11/07/08 9 Kỹ thuật phân trang theo yêu cầu • Phân trang theo yêu cầu = Phân trang + swapping • Tiến trình là một tập các trang thường trú trên bộ nhớ phụ. • Một trang chỉ ñược nạp vào bộ nhớ chính khi có yêu cầu. • Khi có yêu cầu về một trang nào ñó, cần có cơ chế cho biết trang ñó ñang ở trên ñó hoặc ở trong bộ nhớ – Sử dụng bit valid/invalid – Valid: có trong bộ nhớ chính – Invalid: trang không hợp lệ hoặc trang ñang nằm trong bộ nhớ phụ 11/07/08 10 Cơ chế phần cứng • Bảng trang – Phải phản ánh ñược một trang ñang nằm trong bộ nhớ chính hay bộ nhớ phụ và tương ứng ñang nằm ở vị trí nào (trong bộ nhớ chính hoặc bộ nhớ phụ) • Bộ nhớ phụ – Dùng một không gian trên ñĩa cứng thường gọi là không gian swapping. 11/07/08 11 11/07/08 12 11/07/08 13 Quá trình xử lý một trang không có trong bộ nhớ chính (lỗi trang) 1. Kiểm tra trang ñược truy xuất có hợp lệ hay không? 2. Nếu truy xuất không hợp lệ  kết thúc Ngược lại  bước 3 3. Tìm vị trí chứa trang muốn truy xuất trên ñĩa cứng. 4. Tìm một khung trang trống trên bộ nhớ chính 1. Nếu tìm thấy  bước 5 2. Nếu không tìm thấy khung trang trống, tìm một khung trang “nạn nhân” và chuyển nó ra bộ nhớ phụ, cập nhật bảng trang 5. Chuyển trang muốn truy xuất từ bộ nhớ phụ vào bộ nhớ chính, cập nhật bảng trang, bảng khung trang. 6. Tái kích hoạt tiến trình tại chỉ thị truy xuất ñến trang 11/07/08 14 11/07/08 15 Thay thế trang • Là cơ chế thay thế một trang ñang nằm trong bộ nhớ nhưng chưa cần sử dụng bằng một trang ñang nằm trong ñĩa (không gian swapping) ñang ñược yêu cầu. • Hai thao tác: – Chuyển trang từ bộ nhớ chính ra bộ nhớ phụ – Mang trang từ bộ nhớ phụ vào vào nhớ chính • Giảm số lần thao tác bằng bit cập nhập (dirty bit) – Bit cập nhật = 1: nội dung trang ñã bị thay ñổi  cần lưu lại trên ñĩa – Bit cập nhật = 0: nội dung trang không bị thay ñổi  không cần lưu lại trên ñĩa 11/07/08 16 Một phần tử trong bảng trang Page number Valid bit Dirty bit 11/07/08 17 Hiệu quả của phân trang theo yêu cầu • Gọi p là xác suất xảy ra lỗi trang: – P = 0: không có lỗi trang – P = 1: mỗi truy xuất ñến bộ nhớ ñều có lỗi trang • MA: thời gian truy xuất ñến bộ nhớ chính • TDP: thời gian xử lý lỗi trang = [+ swapout] + swapin + tái kích họat • TEA: thời gian thật sự ñể thực hiện một truy xuất bộ nhớ TEA = (1-p)MA + p*TDP • Mấu chốt là p: p càng thấp thì hiệu quả của phân trang theo yêu cầu càng cao 11/07/08 18 Thuật toán thay thế trang • Ý tưởng chính: – Chọn trang nạn nhân là trang mà sau khi thay thế sẽ gây ra ít lỗi trang nhất. • Các thuật toán: – FIFO – Tối ưu (ít sử dụng nhất trong tương lai) – LRU – Xấp xỉ LRU 11/07/08 19 Thuật tóan FIFO • Ý tưởng: – Ghi nhận thời ñiểm một trang ñược ñưa vào bộ nhớ – Thay thế trang ở trong bộ nhớ lâu nhất • Có thể không cần ghi nhận thời ñiểm ñưa mộ trang vào bộ nhớ. Sử dụng danh sách trang theo kiểu FIFO  trang thay thế luôn là trang ñầu • Dễ hiểu, dễ cài ñặt, nhưng không lôgic trong trường hợp những trang ñầu tiên ñược nạp vào thường những trang quan trọng, chứa dữ liệu truy xuất thường xuyên  chuyển nó ra sẽ gây lỗi trang cho những lần truy xuất sau • Nghịch lý Belady: số lượng lỗi trang sẽ tăng lên nếu số lượng khung trang tăng lên. 11/07/08 20 Thuật toán tối ưu • Ý tưởng: – Thay thế trang sẽ ñược lâu sử dụng nhất trong tương lai. • Hoàn hảo về mặt ý tưởng nhưng không khả thi về mặt thực tế – Làm sao dự ñoán ñược chuỗi các trang truy xuất trong tương lai. 11/07/08 21 Thuật toán “Lâu nhất chưa sử dụng” (Least-recently-used LRU) • Ý tưởng: – Ghi nhận thời ñiểm cuối cùng trang ñược truy cập – Thay thế trang chưa ñược truy cập lâu nhất • Dùng quá khứ gần ñể dự ñoán tương lai – FIFO: thời ñiểm nạp vào – Tối ưu: thời ñiểm sẽ truy cập 11/07/08 22 Least-recently-used LRU • Các cách cài ñặt: – Sử dụng bộ ñếm • Mỗi phần tử trong bảng trang có một thành phần ghi nhận thời ñiểm truy xuất mới nhất. • CPU có một bộ ñếm, tăng khi có một truy xuất ñến bộ nhớ • Cập nhật thời ñiểm theo bộ ñếm • Trang có thời ñiểm truy xuất nhỏ nhất sẽ bị thay thế – Sử dụng stack • Lưu các số hiệu trang • Khi một trang ñược truy xuất  chuyển số hiệu trang lên ñầu stack • Thay thế trang có số hiệu ở ñáy stack 11/07/08 23 • LRU ñòi hỏi phần cứng hỗ trợ khá nhiều – Biến bộ ñếm – Stack • Tìm các thuật toán xấp xỉ LRU 11/07/08 24 Thuật toán xấp xỉ LRU • Có 3 thuật toán – Sử dụng nhiều bit tham khảo (reference bit) – Cơ hội thứ hai – Cơ hội thứ hai cải tiến • Ý tưởng chính: bit tham khảo ñược thêm vào mỗi phần tử trong bảng trang – Ban ñầu = 0 – Có truy xuất  1 – Sau mỗi chu kỳ qui ñịnh trước, kiểm tra bit này và gán nó trở lại là 0. – Biết ñược trang nào ñã ñược truy xuất gần ñây nhưng không biết ñược thứ tự truy xuất. 11/07/08 25 Thuật toán nhiều bit tham khảo • Ý tưởng: – 1 bit tham khảo chỉ biết ñược thông tin của 1 chu kỳ – Nhiều bit tham khảo sẽ biết ñược thông tin của nhiều chu kỳ. • Sử dụng thêm 8 bit tham khảo cho mỗi phần tử trong bảng trang • Sau một chu kỳ, một ngắt ñược phát sinh, HðH sẽ ñặt bit tham khảo của trang ñó (0 hoặc 1) vào bit cao nhất trong 8 bit, loại bỏ bit cuối cùng (thấp nhất) • 8 bit sẽ lưu trữ tình hình truy xuất ñến trang trong 8 chu kỳ gần nhất • 10001000 sẽ tốt hơn 01111111 • Nếu xem là số nguyên không dấu thì trang ñược thay thế là trang có số tương ứng nhỏ nhất. 11/07/08 26 Thuật toán cơ hội thứ hai • Ý tưởng: – Sử dụng một một bit tham khảo duy nhất – Ý tưởng như FIFO có cải tiến • Nếu bit tham khảo = 0  thay thế trang • Ngược lại, cho trang này cơ hội thứ hai ñặt bit tham khảo về 0, chọn trang FIFO kế tiếp. Trang ñược cho cơ hội thứ hai ñặt vào cuối hàng ñợi. • Một trang ñã ñược cho cơ hội thứ hai sẽ không bị thay thế trước khi các trang còn lại bị thay thế • Có thể cài ñặt bằng một xâu vòng (danh sách liên kết vòng). 11/07/08 27 Thuật toán cơ hội thứ hai nâng cao • Ý tưởng: – Xét cặp bit: reference bit và dirty bit – (0,0): không truy xuất, không sửa ñổi  trang tốt nhất ñể thay thế. – (0,1): không truy xuất, có sửa ñổi  cần lưu lại trang thay thế. – (1,0): có truy xuất, chưa sửa ñổi  có khả năng sẽ ñược sử dụng tiếp. – (1,1): có truy xuất, có sửa ñổi  có khả năng ñược sử dụng tiếp và nếu thay thế cần lưu lại. – Lớp ñầu tiên có ñộ ưu tiên thấp nhất và lớp cuối cùng có ñộ ưu tiên cao nhất. 11/07/08 28 Cấp phát khung trang • Trả lời câu hỏi: – Mỗi tiến trình sẽ ñược cấp phát bao nhiêu khung trang? • Các hướng tiếp cận: – Cấp phát cố ñịnh: • Cấp phát công bằng • Cấp phát theo tỉ lệ – Cấp phát theo ñộ ưu tiên 11/07/08 29 Cấp phát cố ñịnh • Mỗi tiến trình sẽ ñược cấp phát một số lượng khung trang cố ñịnh ngay từ ñầu cho ñến khi kết thúc thi hành. • Có 2 hướng – Cấp phát công bằng • M khung trang, n tiến trình  mỗi tiến trình m/n – Cấp phát theo tỉ lệ • Si: kích thước bộ nhớ ảo của tiến trình I • S = sum(Si) • M khung trang • Tiến trình I sẽ có: (Si/S)*M khung trang 11/07/08 30 Cấp phát theo ñộ ưu tiên • Số khung trang dành cho mỗi tiến trình phụ thuộc vào ñộ ưu tiên của tiến trình tại thời ñiểm xác ñịnh. • Nếu tiến trình pi phát sinh lỗi trang, chọn một trong các khung trang của nó ñể thay thế hoặc một khung trang của các tiến trình có ñộ ưu tiên thấp hơn. 11/07/08 31 Thay thế toàn cục và Thay thế cục bộ • Thay thế toàn cục – Trang “nạn nhân” có thể là bất cứ khung trang nào của hệ thống, không nhất thiết phải là khung trang của tiến trình ñó. • Thay thế cục bộ – Trang nạn nhân là một trong số khung trang của tiến trình ñó. • Có vẻ thay thế toàn cục sẽ linh hoạt hơn nhưng có thể gây ra hiệu ứng trì trệ hệ thống (thrashing) • Thrashing: tự ñọc tài liệu 1Hệ thống quản lý tập tin 2 Tổng quan • Khái niệm cơ bản • Mô hình quản lý tập tin • Cài ñặt hệ thống quản lý tập tin • Truy xuất hệ thống quản lý tập tin 3Các khái niệm cơ bản • Bộ nhớ ngoài (secondary storage) – Có khả năng lưu trữ dữ liệu trong thời gian dài – Công dụng: • Dữ liệu có kích thước rất lớn  bộ nhớ trong không ñủ ñể chứa • Phải ñược lưu lại trong thời gian dài, ngay cả khi chương trình không chạy • Tập tin – Là ñơn vị lưu trữ thông tin cơ bản của bộ nhớ ngoài – Là sự trừu tượng hóa của bộ nhớ ngoài – ðược quản lý bởi hệ ñiều hành – Có một tên – Tập hợp các sector 4 Các khái niệm cơ bản • Thư mục – Là một tập tin ñặc biệt, có thể lưu trữ nhiều tập tin khác. • Hệ thống quản lý tập tin – Là một phần của hệ ñiều hành cung cấp các chức năng quản lý tập tin (thư mục) như: • Cách hiển thị tập tin • Cách ñặt tên tập tin • Tổ chức thông tin của tập tin • Thao tác trên tập tin • Sử dụng và bảo vệ tập tin 5Mô hình quản lý tập tin • Cách ñặt tên: – Phụ thuộc vào hệ ñiều hành – Thường là các chữ cái và số – Phân biệt chữ hoa, chữ thường??? – Chia làm 2 phần ñược phân cách bởi dấu “.”: • Phần tên: tên của tập tin • Phần mở rộng: ñể xác ñịnh loại tập tin 6 Cấu trúc của tập tin • Có thể chia làm 3 loại – Dãy tuần tự các byte không cấu trúc – Dãy các record có kích thước cố ñịnh – Cấu trúc cây: gồm nhiều record, không nhất thiết phải có kích thước bằng nhau. Mỗi record có thể có khóa ñể tìm kiếm nhanh hơn. 7Phân loại các kiểu tập tin • Tập tin bình thường: – Tập tin văn bản: có phân biệt ký tự xuống dòng  thích hợp với các chương trình soạn thảo – Tập tin nhị phân: có qui ñịnh cấu trúc riêng. • Thư mục: là tập tin dùng ñể lưu trữ các tập tin khác • Tập tin dành riêng cho hệ ñiều hành: thường ñược gắn với một thiết bị phần cứng. 8 Truy xuất tập tin • Truy xuất tuần tự – ðể ñến ñược byte (record) thứ i phải ñi qua i byte (record) trước ñó. • Truy xuất ngẫu nhiên 9Các thuộc tính của tập tin • Mô tả các thông tin của tập tin • Ví dụ: – Bảo vệ: ai ñược quyền truy xuất. – Ngày giờ tạo tập tin – 10 Hệ thống thư mục • Thư mục chứa nhiều entry, mỗi entry tương ứng với một tập tin. • Entry chứa: – Tên tập tin, thuộc tính, ñịa chỉ trên bộ nhớ ngoài lưu tập tin. – Hoặc tên tập tin và một con trỏ trỏ ñến cấu trúc chứa thuộc tính, ñịa chỉ trên bộ nhớ ngoài. • Một tập tin luôn nằm trong một thư mục  khi có yêu cầu mở một tập tin, HðH tìm trên thư mục ñã chỉ ra cho ñến kho tìm ñược tập tin cần tìm, ñưa vào bộ nhớ chính. Thao tác sau ñó hầu hết sẽ làm việc trên bộ nhớ chính. 11 Hệ thống thư mục • Theo dạng thư mục ñơn: – Chỉ có một thư mục và mọi tập tin ñều ñặt trong thư mục ñó  khó ñặt tên tập tin vì có thể trùng nhau. • Theo dạng hai cấp: – Có một thư mục gốc, trong thư mục gốc có nhiều thư mục con và các tập tin sẽ ñược lưu vào trong các thư mục con. • Theo dạng ña cấp – Có một thư mục gốc, một thư mục có thể chứa các thư mục con và các tập tin. 12 Hệ thống thư mục 1 cấp 13 Hệ thống thư mục 2 cấp 14 Hệ thống thư mục ña cấp (cấu trúc cây) 15 Hệ thống thư mục ña cấp (không có chu trình) 16 Hệ thống thư mục tổng quát 17 ðường dẫn • ðường dẫn: cho phép xác ñịnh vị trí của tập tin trong hệ thống thư mục. • Trong hệ thống thư mục theo kiểu ña cấp (cây thư mục) có hai cách ñể xác ñịnh một tập tin. • ðường dẫn tuyệt ñối: mỗi tập tin ñược gán một ñường dẫn từ thư mục gốc ñến tập tin. • ðường dẫn tương ñối: người dùng có thể qui ñịnh một thư mục hiện hành, mọi ñường dẫn không cần chỉ ra từ thư mục gốc mà chỉ cần chỉ ra từ thư mục hiện hành • Lưu ý: “.” thư mục hiện hành, “..” thư mục cha 18 Các chức năng • Tập tin: – Tạo – Xóa – Mở – ðóng – ðọc – Ghi – Thêm – Tìm – Lấy thuộc tính và thay ñổi thuộc tính – ðổi tên 19 • Thư mục: – Tạo – Xóa – Mở (thư mục) – ðóng – ðọc thư mục – ðổi tên – Liên kết – Bỏ liên kết Các chức năng 20 Hệ Thống Quản Lý Tập Tin • ðóng vai trò trung gian nhờ vào ñó người dùng chỉ cần cung cấp tên có thể xác ñịnh ñược tập tin nằm ở những sector nào. • Hai ñối tượng chủ yếu trên HTQLTT là tập tin và thư mục. 21 Hệ Thống Quản Lý Tập Tin • Multi System là cơ chế cho phép trên 1 ñĩa cứng có nhiều hệ ñiều hành. • Mỗi vùng trên ñĩa cứng thuộc về một hệ ñiều hành gọi là 1 partition. • Một hệ ñiều hành có thể có nhiều partition khi ñó nó sẽ có 1 partition chính: primary partition, còn lại là extended partition. 22 Hệ Thống Quản Lý Tập Tin • Khi ñĩa cứng có nhiều hệ ñiều hành phải tồn tại 1 hệ ñiều hành ñược khởi ñộng ñầu tiên thì partition chính của hệ ñiều hành ñó ñược gọi là active. • ðể quản lý các partition, ta sử dụng sector ñầu tiên trên ñĩa gọi là Master Boot Record. Mỗi partition sẽ chiếm 16 bytes thông tin trên Master Boot Record 23 Hệ Thống Quản Lý Tập Tin • Mỗi partition sẽ chiếm 16 bytes thông tin trên Master Boot Record Khoảng cách từ Master Boot ñến partition 48 Dung lượng partition412 Sector kết thúc17 Track kết thúc16 Head kết thúc15 F9 – DOS, FA - Win Byte mô tả loại hệ ñiều hành14 Sector bắt ñầu13 Track bắt ñầu12 Head bắt ñầu11 80h hoặc 0Active partition10 Ví dụÝ Nghĩaðộ lớnOffset 24 Hệ Thống Quản Lý Tập Tin • Mutil Volume: là cơ chế cho phép trên 1 partition có thể chia nhỏ ra nhiều phần. Mỗi phần ñược gọi là 1 volume. • Mỗi volume sẽ tương ứng với 1 ổ ñĩa logic. • Một volume sẽ có cấu trúc như sau: • Với DOS, Win, 1 partition thường tương ứng với 1 volume, 1 ổ ñĩa logic • ðiã mềm ñược xem là 1 volume. DataQuản lýBoot Sector 25 Cài ñặt hệ thống quản lý tập tin • Mỗi tập tin ñược lưu trên nhiều block (khối) khác nhau của 1 volume.Mỗi block có kích thước 2k sector và ñánh số từ 0. • ðĩa mềm 1 block = 1 sector. Một block có các trạng thái sau: – Free: chưa thuộc về tập tin nào – Used: thuộc vào duy nhất một tập tin • Vấn ñề là hệ thống cần phải biết tất cả các khối của một tập tin nào ñó  bảng phân phối vùng nhớ • Các phương pháp chính – ðịnh vị liên tiếp (mô hình tuần tự) – ðịnh vị bằng chỉ số (mô hình Index) – ðịnh vị bằng danh sách liên kết (Mô hình liên kết) – ðịnh vị bằng danh sách liên kết sử dụng chỉ số (Mô hình liên kết chỉ số) – I-node 26 ðịnh vị liên tiếp • Các khối của tập tin ñược cấp phát liên tiếp nhau  chỉ cần lưu khối ñầu tiên và kích thước của tập tin. • Cấu trúc một ô của vùng quản lý: Struct oquanly { char filename[11]; int blockbatdau; long size; } • Ưu ñiểm: – Dễ cài ñặt – ðọc nhanh • Khuyết ñiểm: – Không thể lưu trữ khi bị phân mảnh – Phải biết kích thước tối ña của tập tin 27 ðịnh vị liên tiếp 28 ðịnh vị chỉ số • Cấu trúc một ô của vùng quản lý: Struct oquanly { char filename[11]; int blockIndex[max];//mảng chỉ số các block long size; } • Ưu ñiểm: – Có thể lưu trữ khi phân mảnh – ðọc nhanh • Khuyết ñiểm: – Giới hạn kích thước tập tin 29 ðịnh vị bằng danh sách liên kết • Các khối của một tập tin sẽ trỏ ñến khối kế tiếp. Khối cuối cùng trỏ ñến NULL  chỉ cần lưu khối ñầu tiên. • Ưu ñiểm: – Không bị phân mảnh • Khuyết ñiểm – Truy xuất tuần tự 30 ðịnh vị bằng danh sách liên kết 31 ðịnh vị bằng DSLK sử dụng chỉ số • Thay vì dùng con trỏ, sử dụng chỉ số ñể liên kết các khối. • Ưu ñiểm: – Có thể truy xuất ngẫu nhiên • Khuyết ñiểm: – Giới hạn kích thước bảng chứa các chỉ số liên kết 32 33 Câu Hỏi • Master Boot Record là gì? Một ổ cứng có thể chia tối ña bao nhiêu partion? Một Partion có phải luôn tương ứng với một ổ ñĩa Logic (ví dụ C D) hay không? • Theo phương pháp ñịnh vị bằng chỉ số, nếu một ô quản lý có kích thước 59 bytes thì giới hạn kích thước một tập tin là bao nhiêu trong trường hợp 1 block = 1KB. • Bạn ñang ở thư mục “C:\Documents and Settings\All Users” hãy viết ñường dẫn tương ñối ñến “C:\Windows”? 34 ðịnh vị bằng I-node • I-node gồm 2 phần: phần lưu thuộc tính và phần ñịa chỉ. • Phần ñịa chỉ có thể chia làm 2 phần – Phần ñầu: 10 phần tử chứa ñịa chỉ trực tiếp của 10 khối ñầu tiên – Phần tử thứ 11 chứa ñịa chỉ của một khối mà khối ñó chứa 210 phần tử, mỗi phần tử chứa ñịa chỉ của một khối thật sự của tập tin – Phần tử thứ 12 chứa ñịa chỉ của một khối mà mỗi phần tử trong khối như là phần tử thứ 11. – Phần tử thứ 13 chứa ñịa chỉ của một khối mà mỗi phần tử trong khối như là phần tử thứ 12. 35 36 0 1 10 11 12 37 Mô hình tổ chức Volume của UNIX • Theo dạng inode DataDanh sách inode Khối khởi ñộng Boot Sector Khối khởi ñộng chứa chương trình khởi ñộng. Danh sách các inode ñược phân thành các ô. Mỗi ô gọi là một inode (64 bytes) Mỗi inode quản lý cho một tập tin hoặc một thư mục con. 38 Mô hình tổ chức Volume của UNIX 13 1211109 8765 4321(3bytes) 25 bytes thông tin về tập tin và thư mục con (tên, thuộc tính, quyền sở hữu....) 39 bytes phân thành 13 ô. Mỗi ô chứ chỉ số của 1 block. 10 ô ñầu tiên chứa chỉ số block dữ liệu của tập tin. Ô 11 chứa chỉ số block mà block ñó ñược phân thành nhiều ô (3 bytes) chứa chỉ số block dữ liệu. Ô 12 chứa chỉ số block mà block này ñược chia thành các ô. Mỗi ô chứa chỉ số của 1 block có vai trò như của ô 11. Ô 12 chứa chỉ số block mà block này ñược chia thành các ô. Mỗi ô chứa chỉ số của 1 block có vai trò như của ô 12. 39 Quản lý ñĩa • Tập tin ñược lưu trên ñĩa  lưu như thế nào? – Lưu trên n byte liên tiếp  tập tin lớn thì quản lý khó – Lưu trên các khối  thường dùng • Kích thước khối hầu như ñược ñặt là 512byte (1 sector chuẩn) – Có thể là 1K, 2K 40 Lưu danh sách khối trống • Công dụng: – Nhanh chóng xác ñịnh khối ñể cấp phát khi có nhu cầu lưu tập tin hoặc tạo mới tập tin. • Các phương pháp: – Bảng bit: • N khối  n bit. • Bit = 0  khối còn trống • Bit = 1  khối ñã sử dụng • Kích thước bảng bit: disk size / (8 * block size) • Ví dụ: ñĩa 16Gb, block 512 byte  bảng bit chiếm 4MB 41 • Các phương pháp lưu khối trống – Danh sách các vùng trống • Mỗi phần tử bao gồm vị trí bắt ñầu và kích thước của vùng trống – Danh sách khối trống • Mỗi khối ñược gán một con số • Danh sách các khối trống ñược lưu trong một vùng dành riêng 42 Giới thiệu về hệ thống quản lý quyền sở hữu file của UNIX • Tiến trình và file ñều ñược sở hữu bởi một người dùng nào ñó. • Một tập tin sẽ có user owner và group owner – Chủ sở hữu có quyền kiểm soát chính và có thể bị tước ñọat bởi root (user cao nhất). – Mỗi file có một chủ sở hữu chính và thuộc vào một hay nhiều nhóm chủ sở hữu. – Chủ sở hữu có thể xác ñịnh quyền truy cập cho mọi thành viên còn lại (trừ root) bằng chmod. – Người sở hữu không nhất thiết phải thuộc về một nhóm sở hữu tập tin. 43 Hệ thống FAT 12, 16, 32 • Mô hình này ñược áp dụng cho hệ ñiều hành DOS và Windows. • FAT1 và FAT2 là hai bảng giống nhau. FAT2 là bảng dự phòng của FAT1. • FAT (File Allocation Table) ñược phân thành các ô, mỗi ô quản lý trong 1 block. – Ô thứ i quản lý Block thứ i-2 – Kích thước mỗi ô có thể là 12, 16 hay 32 Bit. BS FAT1 FAT2 DIRECTORY Data Vùng quản lý Vùng dữ liệu 44 Hệ thống FAT 12, 16, 32 • FAT (File Allocation Table) ñược phân thành các ô, mỗi ô quản lý trong 1 block. – Ô thứ I quản lý Block thứ i-2 – Kích thước mỗi ô có thể là 12, 16 hay 32 Bit. – Giá trị của các ô có thể là: • 0 là free • FF7 là bad • FF8 – FFF là cuối file • Khác là ô tiếp theo BS FAT1 FAT2 DIRECTORY Block 0 1 2 3 Vùng quản lý Vùng dữ liệu 45 Hệ thống FAT 12, 16, 32 • Root Directory ñược phân thành các ô, mỗi ô quản lý cho 1 tập tin hay thư mục. – Mỗi ô của Root Directory có kich thước 32 bytes – Cấu trúc 32 bytes này như sau: BS FAT1 FAT2 DIRECTORY Block 0 1 2 3 Vùng quản lý Vùng dữ liệu 46 Hệ thống FAT 12, 16, 32 BS FAT1 FAT2 DIRECTORY Block 0 1 2 3 Vùng quản lý Vùng dữ liệu Kích thước file428 chỉ số ô ñàu tiên trên bảng FAT 226 Giờ tạo224 Ngày tạo222 Chưa dùng ñến1012 Thư mục con (16) hay tập tin (>=32) 111 Extension38 Filename80 Ý nghĩaðộ lớnOffset Cấu trúc một ô của Root Directory 47 Thông tin về mô hình FAT trên ñĩa mềm 1,4 MB • Có 2880 sector • Vùng quản lý gồm 32 sector: – FAT1: 9 sector – FAT2: 9 sector – Root Directory: 14 sector. Chia thành (14*512)/32=224 ô.  có tối ña 224 tập tin trên thư mục gốc. • Vùng dữ liệu 2847 sector. • Thư mục con cũng chiếm một số block trên volume. Nội dung của các block này sẽ có cấu trúc như Root Directory. Nghĩa là cũng phân thành các ô, mỗi ô quản lý cho 1 tập tin. 48 Ví dụ • Trên thư mục gốc có tập tin emoi.c (5,2,7): dự liệu của tập tin emoi trên các block 5, 2, 7 hay nói cách khác chỉ số cá ô quản lý là ô (7,4,9), tập tin m.txt (9,4,3) và thư mục L (6). Hãy vẽ bảng FAT, Root Dir? • Nhắc lại: ô thứ I của FAT quản lý block thứ i-2. • Root Dir ñược chia thành các ô (32 bytes), ta tập trung vào thể hiện 4 thông tin tên file, phần mở rộng, giá trị byte 11 biểu diễn tập tin hay thư mục và giá trị bytes26-27 biểu chỉ số ô ñầu tiên trong bảng FAT. 49 Ví dụ 60 (free) FFFFFF 45 FFF9 0 (free)0 (free) 816L 1132txt m 732c emoi 32 là thư mục; 16 là tập tin 7, 11, 8 là chỉ số ô ñầu tiên trong bảng FAT của tập tin emoi.c, m.txt và thư mục L. Ô thứ 0 50 Ví dụ • Giả sử thư mục L (6) trong ví dụ chứa tập tin A(1) và B.doc(8) thì nội dung của block 6 như sau: 1032doc B 332 A 016.. 816. Chỉ số ô FAT ñầu tiêncủa thư mục hiện hành Chỉ số ô FAT ñầu tiên của thư mục cha nếu cha là thư mục gốc thì bằng 0 Block 51 Ví dụ • Giả sử thư mục L (6) trong ví dụ chứa tập tin A(1) và B.doc(8) thì nội dung của block 6 và bảng FAT như sau: 1032doc B 332 A 016.. 816. 6FFF FFFFFF 45 FFF9 FFF0 (free) 52 Bài tập FAT và RD • Dung lượng ñĩa sẽ quyết ñịnh kích thước 1 ô trên bảng FAT. • FAT12  212 ô = 4096 ô  tối ña là 4094 block. (vì mỗi ô quản lý 1 block) Tính toán khoảng gần ñúng. • Ví dụ: cho ñĩa có dung lượng 20MB. Mỗi block là 2 sector. Hỏi ñĩa sử dụng bảng FAT nào là hợp lý? – Số ô = số block + 2 = (20*10242)/(2*512) = 5*212+2 Nên dùng FAT 16. • Nếu dùng FAT 32 thì sao? – Mỗi block có kích thước nhỏ ñi  1 block có thể chỉ là 1 sector. 53 Bài tập FAT và RD • Cho một volume có 20 block như sau • Thư mục gốc \: – E (0) • M.TXT (1,19,18) • C (2) – U.TXT (4,5) – V (6) » N.TXT (7,8) » I.TXT (9,10) – M.TXT (3,17,16) • Hãy vẽ FAT, RD và các block liên quan (block nội dung của thư mục có cấu trúc tượng tự RD thêm vào . và ..) . • Quy ước có phần mở rộng là tập tin, có chứa con thì sẽ phải là thư mục. Cho một ñĩa có dung lượng 40GB. Mỗi block gồm 16 sector. Hỏi ta sử dụng bảng FAT nào là thích hợp nhất? 54 Câu Hỏi Ôn tập 1. So sánh thời gian các lệnh copy, move, delete trong tất cả các trường hợp có thể có. 2. Tại sao trong UNIX không có system call detete() ñể xoá file mà chỉ có system call unlink() ñể xoá một link ñến file? 3. Trình bày các thao tác của DOS/Win khi tiến hành khi delete một file? 1Hệ thống quản lý nhập/xuất 2 Tổng quan • Giới thiệu về thiết bị nhập xuất • Các kỹ thuật quản lý thao tác nhập xuất • Các vấn ñề về thiết kế hệ thống quản lý nhập xuất trong HðH • Kỹ thuật vùng ñệm nhập xuất • Quản lý hệ thống nhập xuất ñĩa 3Phân loại các thiết bị nhập/xuất • Human readable – Dùng ñể giao tiếp với người dùng – Máy in – Thiết bị ñầu cuối liên quan ñến hiển thị • Màn hình hiển thị • Bàn phím • Chuột 4 Phân loại các thiết bị nhập/xuất (2) • Machine readable – Dùng ñể giao tiếp với thiết bị ñiện tử – ðĩa 5Phân loại các thiết bị nhập/xuất (2) • Giao tiếp – Dùng ñể giao tiếp với các thiết bị ở xa (remote device) – Modem 6 Sự khác nhau giữa các thiết bị I/O • Tốc ñộ • Ứng dụng • Mức ñộ phức tạp ñể kiểm soát • ðơn vị truyền • Biểu diễn dữ liệu • Phát sinh lỗi 8Sự khác nhau giữa các thiết bị I/O (2) • Ứng dụng – ðĩa dùng ñể lưu trữ ñòi hỏi phải có hệ thống quản lý tập tin ñi kèm – ðĩa dùng ñể làm bộ nhớ ảo ñòi hỏi phải có sự hỗ trợ phần cứng và phần mềm. – Các thiết bị ñầu cuối ñược sử dụng bởi quản trị sẽ có ñộ ưu tiên cao hơn. 9Sự khác nhau giữa các thiết bị I/O (3) • ðộ phức tạp ñể kiểm soát: – Máy in so với ñĩa • ðơn vị truyền – Có thể ñược truyền theo byte hoặc khối (có thể là bit) • Biểu diễn dữ liệu – Cơ chế mã hóa • Phát sinh lỗi – Thiết bị khác nhau xử lý lỗi phát sinh khác nhau 10 Kỹ thuật xử lý I/O • Programmed I/O – Tiến trình phải busy-waiting cho thao tác nhập xuất hoàn thành • Interrupt-driven I/O – Phát sinh lệnh I/O – Bộ xử lý tiếp tục thực thi các chỉ thị khác – Module I/O gởi một ngắt ñến bộ xử lý khi hoàn thành thao tác I/O 11 Kỹ thuật quản lý I/O (2) • Direct Memory Access (DMA) – Module DMA ñiều khiển việc chuyển ñổi dữ liệu giữa bộ nhớ chính và thiết bị I/O – Bộ xử lý chỉ bị ngắt khi toàn bộ khối ñã ñược chuyển 12 Lịch sử phát triển của quản lý I/O • Bộ xử lý trực tiếp ñiều khiển thiết bị ngoại vi • Bộ ñiều khiển (Controller) hay module I/O module ñược thêm vào – Bộ xử lý dùng programmed I/O không có hỗ trợ ngắt – Bộ xử lý không cần phải quản lý chi tiết các thiết bị ngoại vi 13 Lịch sử phát triển của quản lý I/O • Bộ ñiều khiển hoặc module I/O module có hỗ trợ ngắt – Bộ xử lý không cần phải bỏ thời gian chờ thao tác I/O thi hành • Direct Memory Access – Khối dữ liệu ñược chuyển vào bộ nhớ mà không cần xử lý của bộ xử lý – Bộ xử lý chỉ liên quan vào lúc bắt ñầu và lúc kết thúc chuyển khối. 14 Lịch sử phát triển của quản lý I/O • Module I/O là một bộ xử lý riêng biệt – Có tập lệnh chuyên biệt • Bộ xử lý I/O – Module I/O có bộ nhớ riêng 15 Các vấn ñề thiết kế liên quan ñến HðH • Tính hiệu quả – Hầu hết các thiết bị I/O ñều rất chậm so với bộ nhớ chính • Sử dụng cơ chế ña chương cho phép một vài tiến trình chờ I/O trong khi tiến trình khác thi hành – Cơ chế swapping • Bản chất cũng là thao tác nhập/xuất 16 Các vấn ñề thiết kế liên quan ñến HðH • Tính tổng quát – Mong muốn xử lý tất cả các thiết bị I/O giống nhau – Che giấu hầu hết chi tiết của thiết bị nhận xuất ñể tiến trình (mức cao) xem các thiết bị ở một vài chức năng thông dụng như read, write, open, close, lock, unlock 17 Mô hình lôgic các chức năng nhập xuất • Giao tiếp ñơn giản (thiết bị ngoại vi cục bộ) – Logical I/O – Device I/O – Scheduling and Control • Giao tiếp thông quan cổng kết nối – Communication architecture – Device I/O – Scheduling and Control 18 Mô hình lôgic các chức năng nhập xuất • Hệ thống tập tin – Directory management – File system – Physical organization – Device I/O – Scheduling and Control 20 Kỹ thuật vùng ñệm nhật/xuất • Lý do – Các tiến trình phải chờ hoàn thành I/O trước khi xử lý tiếp – Thao tác I/O vẫn phải tốn bộ nhớ 21 Kỹ thuật vùng ñệm nhật/xuất (2) • Các thiết bị I/O có hai dạng hỗ trợ nhập/xuất cơ bản: – Hướng khối (block – oriented) – Hướng dòng (stream – oriented) • Block-oriented – Thông tin ñược lưu trong những khối có kích thước cho trước – ðơn vị chuyển là một khối / một lần – Dùng cho ñĩa • Stream-oriented – Truyền thông tin như là một dòng các byte – Dùng cho các thiết bị ñầu cuối, máy in, chuột, cổng giao tiếp, 22 Single Buffer • HðH dành riêng một vùng ñệm trong bộ nhớ chính cho thao tác I/O • Block-oriented – Dữ liệu vào ñược chuyển vào vùng ñệm theo ñơn vị khối – Khối ñó sẽ chuyển ñến cho tiến trình người dùng khi cần – Khối khác ñược chuyển vào vùng ñệm, trong khi tiến trình ñang xử lý khối trước ñó. • Stream-oriented – Như khối nhưng với ñơn vị là dòng. Một dòng ñược kết thúc bởi dấu CF. 23 I/O Buffering 24 Double Buffer • Dùng hai vùng ñệm thay vì một • Một tiến trình có thể chuyển dữ liệu vào và ra một vùng ñệm trong khi hệ ñiều hành truyền thông tin hoặc thao tác trên vùng ñệm còn lại 25 Circular Buffer • Nhiều hơn hai vùng ñệm • Trong trường hợp thao tác nhập xuất gắn liền với tiến trình. 26 I/O Buffering 27 Nhắc lại cấu trúc ñĩa • Các thành phần của ñĩa – platters – surfaces – tracks – sectors – cylinders – arm – heads platter surface track sector cylinder arm head 28 Các tham số liên quan ñến hiệu năng truy xuất ñĩa • ðể ñọc hay ghi, ñầu ñĩa phải di chuyển ñến track và sector tương ứng • Seek time – Thời gian dùng ñể ñịnh vị ñầu ñĩa ñến track mong muốn • Rotational delay hoặc rotational latency – Thời gian dùng ñể di chuyển ñầu ñĩa ñến sector tương ứng (vị trí ñầu tiên của sector) • Transfer time – Thời gian chuyển dữ liệu (từ hoặc vào bộ nhớ chính) 29 Thời gian thi hành tác vụ I/O 30 Tham số hiệu năng ñĩa • Access time = seek time + rotational delay – Thời gian ñể ñặt ñầu ñĩa và ñúng vị trí ñể ñọc và ghi • Dữ liệu sẽ ñược chuyển khi ñầu ñĩa nằm ñúng vị trí sector. 31 Chính sách lập lịch trên ñĩa • Mấu chốt là Seek time. – Vì sao? • Với một ñĩa có thể một số các yêu cầu I/O • Cần có cơ chế xử lý các yêu cầu này thích hợp  tăng hiệu năng xử lý I/O 32 Chính sách lập lịch trên ñĩa (2) • First-in, first-out (FIFO) – Xử lý yêu cầu một cách tuần tự – Công bằng cho tất cả tiến trình – Nếu nhiều tiến trình thì xác suất xem như là ngẫu nhiên 33 Chính sách lập lịch trên ñĩa (3) • Có ưu tiên – Mục tiêu không phải là tối ưu ñĩa mà ñể phục vụ cho các mục tiêu khác – Các công việc có thời gian thi hành ngắn có thể có ñộ ưu tiên cao hơn – Khả năng tương tác cao 34 Chính sách lập lịch trên ñĩa (4) • Last-in, first-out – Tốt cho các hệ thống xử lý giao dịch (transaction processing system) • Thiết bị ñược giao cho người dùng gần ñây nhất  ñầu ñọc di chuyển ít nhất – Có thể xảy ra tình trạng ñói (starvation) 35 Chính sách lập lịch trên ñĩa (5) • First Come, First Service – Phương pháp này dễ lập trình nhưng không cung cấp dịch vụ tốt. – Ví dụ: cần phải ñọc các khối theo thứ tự sau 98 183 37 122 14 75 và ñầu ñọc ñang ở vị trí 59. – ðầu ñọc sẽ lần lượt ñi qua các khối 59 98 183 37 122 12 75. 36 Chính sách lập lịch trên ñĩa (6) • Shortest Service Time First (SSTF) – Chọn yêu cầu I/O mà ñòi hỏi ít di chuyển nhất ñầu ñĩa từ vị trí hiện tại – Luôn luôn cho ra seek time nhỏ nhất. – Ví dụ: cần ñọc các khối 98 183 37 122 14 124 65 và 67. Giả sử ñầu ñọc ñang ở vị trí 53. – ðầu ñọc sẽ lần lượt qua các khối 53 65 67 37 4 98 122 124 183 37 Chính sách lập lịch trên ñĩa (7) • SCAN – ðầu ñọc di chuyển theo một hướng nhất ñịnh. Ví dụ cần ñọc các khối 98 183 37 122 14 124 65 67. Giả sử ñầu ñọc ở vị trí 53. – ðầu ñọc sẽ lần lượt qua các khối 53 37 14 0 65 67 98 122 124 183 (theo SCAN ñịnh hướng về 0) 38 Chính sách lập lịch trên ñĩa (7) • C-SCAN – Như SCAN, giới hạn chỉ di chuyển theo 1 chiều – Quay về vị trí bắt ñầu ngay khi ñụng track ở xa nhất, không cần phải tiếp tục. – Ví dụ cần ñọc các khối 98 183 37 122 14 124 65 67. Giả sử ñầu ñọc ở vị trí 53. – ðầu ñọc sẽ lần lượt qua các khối 53 65 67 98 122 124 183 199 0 14 37 39 Disk Scheduling Algorithms 40 Câu hỏi ôn tập – Ví dụ: cần ñọc các khối 98 183 124 65 12 và 67. Giả sử ñầu ñọc ñang ở vị trí 53. – ðầu ñọc sẽ lần lượt qua các khối nào và vẽ sơ ñồ theo các thuật toán ñọc ñĩa FCFS, SSTF, SCAN và C-SCAN. – Từ ñó kết luận xem cách ñọc nào tối ưu nhất. 41 ðịa chỉ tương ñối = (head, cylinder, sector) Head : 0  Số mặt trên ñĩa – 1 Cylinder: 0  Số cylinder trên ñĩa – 1 Sector : 1  Số sector trên track ðịa chỉ tuyệt ñối = head * Số sector/track + track * số sector/cylinder + sector - 1

Các file đính kèm theo tài liệu này:

  • pdfhdh_tom_tat_bai_giang_2_slides_per_page_0511_1826323.pdf