Tiếp nội dung phần 1, Bài giảng Nguyên lý hệ điều hành: Phần 2 cung cấp cho người học những kiến thức như: Quản lý lưu trữ; Quản lý bộ nhớ, Bộ nhớ ảo; Giao diện hệ thống tệp; Hệ vào ra; Cấu trúc lưu trữ phụ;...Mời các bạn cùng tham khảo!
Chương 3: QUẢN LÝ LƯU TRỮ 3.1 Quản lý nhớ 3.1.1 Cơ sở Trong chương thảo luận cách khác để quản lý nhớ Các giải thuật quản lý nhớ từ tiếp cận máy trơ (primitive baremachine) chiến lược phân trang phân đoạn Mỗi tiếp cận có lợi điểm nhược Chọn phương pháp quản lý nhớ cho hệ thống xác định phụ thuộc vào nhiều yếu tố, đặc biệt thiết kế phần cứng hệ thống Chúng ta thấy nhiều giải thuật yêu cầu hỗ trợ phần cứng thiết kế gần tích hợp phần cứng hệ điều hành Bộ nhớ trung tâm để điều hành hệ thống máy tính đại Bộ nhớ chứa mảng lớn từ (words) hay bytes, phần tử với địa CPU lấy thị từ nhớ dựa theo giá trị đếm chương trình Các thị gây việc nạp bổ sung từ lưu trữ tới địa nhớ xác định 1) Liên kết địa Thơng thường, chương trình nằm đĩa tập tin thực thi dạng nhị phân Chương trình mang vào nhớ đặt q trình để thực thi Phụ thuộc vào việc quản lý nhớ dùng, q trình di chuyển đĩa nhớ thực thi Tập hợp trình đĩa chờ mang vào nhớ để thực thi hình thành hàng đợi nhập (input queue) Thủ tục thông thường chọn trình hàng đợi nhập nạp q trình vào nhớ Khi q trình thực thi, truy xuất thị liệu từ nhớ Cuối cùng, q trình kết thúc khơng gian nhớ xác định trống Hầu hết hệ thống cho phép trình người dùng nằm phần nhớ vật lý Do đó, khơng gian địa máy tính bắt đầu 00000, địa q trình người dùng khơng cần 00000 Sắp xếp ảnh hưởng đến địa mà chương trình người dùng dùng Trong hầu hết trường hợp, chương trình người dùng qua số bước, vài chúng tuỳ chọn, trước thực thi (Hình 3.1) Các địa 155 diện cách khác bước Các địa chương trình nguồn thường danh biểu Một trình biên dịch liên kết địa danh biểu tới địa tái định vị (chẳng hạn 14 bytes từ vị trí bắt đầu module này) Bộ soạn thảo liên kết hay nạp liên kết địa tái định vị tới địa tuyệt đối (chẳng hạn 74014) Mỗi liên kết ánh xạ từ không gian địa tới không gian địa khác Về truyền thống, liên kết thị liệu tới địa thực bước theo cách sau đây: - Thời gian biên dịch: thời điểm biên dịch biết trình nằm đâu nhớ mã tuyệt đối phát sinh Thí dụ, biết trước trình người dùng nằm vị trí R mã trình biên dịch phát sinh bắt đầu vị trí mở rộng từ Nếu thời điểm sau đó, vị trí bắt đầu thay đổi cần biên dịch lại mã Các chương trình định dạng COM MS-DOS mã tuyệt đối giới hạn thời điểm biên dịch - Thời điểm nạp: thời điểm biên dịch chưa biết nơi trình nằm đâu nhớ trình biên dịch phải phát sinh mã tái định vị Trong trường hợp này, liên kết cuối trì hỗn thời điểm nạp Nếu địa bắt đầu thay đổi, cần nạp lại mã người dùng để hợp giá trị thay đổi - Thời gian thực thi: q trình di chuyển thời gian thực thi từ phân đoạn nhớ tới phân đoạn nhớ khác việc liên kết phải bị trì hỗn thời gian chạy Phần cứng đặc biệt phải sẳn dùng cho chế để thực công việc Hầu hết hệ điều hành dùng phương pháp 156 Hình 3.1 Xử lý nhiều bước chương trình người dùng Phần chủ yếu chương dành hết để hiển thị liên kết khác cài đặt hữu hiệu hệ thống máy tính thảo luận hỗ trợ phần cứng tương ứng 2) Nạp động (Dynamic Loading) Trong thảo luận gần đây, tồn chương trình liệu trình phải nhớ vật lý để q trình thực thi Kích thước q trình bị giới hạn kích thước nhớ vật lý Để đạt việc sử dụng không gian nhớ tốt hơn, sử dụng nạp động (dynamic loading) Với nạp động, thủ tục khơng nạp gọi Tất thủ tục giữ đĩa định dạng nạp tái định vị Chương trình nạp vào nhớ thực thi Khi thủ tục cần gọi thủ tục khác, thủ tục gọi trước hết kiểm tra để thấy thủ tục khác nạp hay không Nếu không, nạp liên kết tái định vị gọi để nạp thủ tục mong muốn vào nhớ cập nhật bảng địa 157 chương trình để phản ánh thay đổi Sau đó, điều khiển truyền tới thủ tục nạp Thuận lợi nạp động thủ tục khơng dùng khơng nạp Phương pháp đặc biệt có ích lượng lớn mã u cầu quản lý trường hợp xảy không thường xuyên, chẳng hạn thủ tục lỗi Trong trường hợp này, kích thước tồn chương trình lớn, phần dùng (và nạp) nhỏ nhiều Nạp động khơng yêu cầu hỗ trợ đặc biệt từ hệ điều hành Nhiệm vụ người dùng thiết kế chương trình họ để đạt thuận lợi Tuy nhiên, hệ điều hành giúp người lập trình cách cung cấp thủ tục thư viện để cài đặt nạp tự động 3) Liên kết động (Dynamic Linking) Trong hình 3.1 hiển thị thư viện liên kết động Một số hệ điều hành hỗ trợ liên kết tĩnh mà thư viện ngôn ngữ hệ thống đối xử module đối tượng khác kết hợp nạp thành hình ảnh chương trình nhị phân Khái niệm liên kết động tương tự khái niệm nạp động Liên kết bị trì hỗn việc nạp bị trì hỗn thời điểm thực thi Đặc điểm thường dùng với thư viện hệ thống thư viện chương trình ngơn ngữ Khơng có tiện ích này, tất chương trình hệ thống cần có thư viện ngơn ngữ chúng (hay thư viện tham chiếu chương trình) chứa hình ảnh thực thi u cầu làm lãng phí khơng gian đĩa nhớ Với liên kết động, stub đoạn mã hiển thị cách định vị chương trình thư viện cư trú nhớ hay cách nạp thư viện chương trình chưa diện Khi stub thực thi, kiểm tra để thấy chương trình yêu cầu nhớ hay chưa Nếu chưa, chương trình nạp chương trình vào nhớ Dù cách nào, stub thay với địa chương trình thực thi chương trình Do đó, thời điểm phân đoạn mã đạt được, chương trình thư viện thực thi trực tiếp mà không gây chi phí cho việc liên kết động Dưới chế này, tất trình sử dụng thư viện ngôn ngữ thực thi mã thư viện 158 4) Phủ lấp (Overlay) Để cho phép trình lớn lượng nhớ cấp phát cho nó, sử dụng chế phủ lấp (overlays) Ý tưởng phủ lấp giữ nhớ thị liệu yêu cầu thời điểm cho Khi thị yêu cầu, chúng nạp vào khơng gian chiếm trước thị mà chúng khơng cịn cần Thí dụ, xét trình dịch hợp ngữ hai lần (two-pass assembler) Trong suốt lần thứ 1, xây dựng bảng danh biểu; sau đó, lần thứ 2, tạo mã máy Chúng ta phân chia trình dịch hợp ngữ thành mã lần 1, mã lần 2, bảng danh biểu, thủ tục hỗ trợ chung dùng lần lần Giả sử kích thước thành phần sau: Lần 70 KB Lần 80 KB Bảng danh biểu 20 KB Các thủ tục chung 30 KB Để nạp thứ lần, cần 200KB nhớ Nếu có 150KB sẵn có, khơng thể chạy q trình Tuy nhiên, ý lần lần không cần nhớ lúc Do đó, định nghĩa hai phủ lấp Phủ lấp A bảng danh biểu, thủ tục chung, lần 1, phủ lắp B bảng biểu tượng, thủ tục chung lần Chúng ta bổ sung trình điều khiển phủ lấp (10 KB) bắt đầu với phủ lấp A nhớ Khi kết thúc lần 1, nhảy tới trình điều khiển phủ lấp, trình điều khiển đọc phủ lấp B vào nhớ, viết chồng lên phủ lấp B sau chuyển điều khiển tới lần Phủ lấp A cần 120KB, ngược lại phủ lấp B cần 130KB (Hình 3.2) Bây chạy trình hợp ngữ 150KB nhớ Nó nạp nhanh liệu cần chuyển trước việc thực thi bắt đầu Tuy nhiên, chạy chậm nhập/xuất phụ đọc mã mã cho phủ lấp A qua mã cho phủ lấp B 159 Hình 3.2 Các phủ lấp cho hợp ngữ dịch hai lần 3.1.2 Bộ nhớ vật lý nhớ logic Một địa tạo CPU thường gọi địa luận lý (logical address), ngược lại địa xem đơn vị nhớ nghĩa là, địa nạp vào ghi địa nhớ thường gọi địa vật lý (physical address) Các phương pháp liên kết địa thời điểm biên dịch thời điểm nạp tạo địa luận lý địa vật lý xác định Tuy nhiên, chế liên kết địa thời điểm thực thi dẫn đến khác địa luận lý địa vật lý Trong trường hợp này, thường gọi địa luận lý địa ảo (virtual address) Tập hợp tất địa luận lý tạo chương trình khơng gian địa luận lý; tập hợp tất địa vật lý tương ứng địa luận lý không gian địa vật lý Do đó, chế liên kết địa thời điểm thực thi, không gian địa luận lý không gian địa vật lý khác Việc ánh xạ thời điểm thực thi từ địa ảo tới địa vật lý thực thiết bị phần cứng gọi quản lý nhớ MMU (Memory Management Unit) Chúng ta chọn phương pháp khác để thực việc ánh xạ Như hiển thị hình 3.3, phương pháp yêu cầu hỗ trợ phần cứng Thanh ghi gọi ghi tái định vị Giá trị ghi tái định vị cộng vào địa tạo trình người dùng thời 160 điểm gởi tới nhớ Thí dụ, giá trị 14000, việc cố gắng người dùng để xác định vị trí tự động tái định vị tới vị trí 14000; truy xuất tới địa 346 ánh xạ tới vị trí 14346 Hình 3.3 Định vị tự động dùng ghi tái định vị 3.1.3 Hoán vị (Swap) Một trình cần nhớ để thực thi Tuy nhiên, q trình hốn vị (swapped) tạm thời khỏi nhớ tới vùng lưu trữ phụ (backing store), sau mang trở lại nhớ để việc thực thi tiếp tục Thí dụ, giả sử môi trường đa chương với giải thuật lập thời biểu CPU round-robin Khi định mức thời gian hết, quản lý nhớ bắt đầu hoán vị (swap out) vùng lưu trữ phụ trình vừa kết thúc hoán vị vào (swap in) q trình khác tới khơng gian nhớ trống (Hình 3.4) Do đó, định thời biểu CPU cấp phần thời gian tới trình khác nhớ Lý tưởng, quản lý hoán vị trình đủ nhanh để vài trình nhớ, sẳn sàng thực thi, định thời CPU muốn định thời lại CPU Định mức phải đủ lớn để phù hợp lượng tính tốn thực hốn vị Hình 3.4 Hốn vị hai q trình dùng đĩa backing store 161 Một biến thể sách hốn vị dùng cho giải thuật định thời sở ưu tiên Nếu q trình có độ ưu tiên cao đến muốn phụ vụ, quản lý nhớ hốn vị q trình có độ ưu tiên thấp để nạp thực thi q trình có độ ưu tiên cao Khi q trình có độ ưu tiên cao kết thúc, q trình có độ ưu tiên thấp hốn vị vào trở lại tiếp tục Biến thể hoán vị thường gọi cuộn (roll out), cuộn vào (roll in) Thơng thường, q trình hoán vị hoán vị trở lại vào khơng gian nhớ mà chiếm trước Sự giới hạn sai khiến phương pháp liên kết địa Nếu liên kết địa thực thời điểm hợp dịch hay nạp q trình khơng thể di chuyển vào khơng gian nhớ khác địa vật lý tính thời gian thực thi Hốn vị u cầu vùng lưu trữ phụ (backing store) Vùng lưu trữ phụ thường đĩa tốc độ cao Nó phải đủ lớn để chứa tất hình ảnh nhớ cho tất người dùng, phải cung cấp truy xuất trực tiếp tới hình ảnh nhớ Hệ thống trì hàng đợi sẳn sàng chứa tất q trình mà hình ảnh nhớ vùng lưu trữ phụ hay nhớ sẳn sàng để thực thi Bất định thời CPU định thực thi trình, gọi phân phát (dispacher) Bộ phân phát kiểm tra để thấy trình hàng đợi nhớ không Nếu không, vùng nhớ trống, phân phát hốn vị trình hành nhớ hốn vị vào q trình mong muốn Sau đó, nạp lại ghi chuyển điều khiển tới q trình chọn Trong hệ hốn vị, thời gian chuyển đổi tác vụ cần quan tâm Mỗi trình cần phân chia khoảng thời gian sử dụng CPU đủ lớn để không thấy rõ chậm trễ thao tác hoán vị gây Nếu không, hệ thống dùng phần lớn thời gian để hốn vị q trình vào nhớ chính, CPU khơng sử dụng hiệu Hoán vị bị ràng buộc yếu tố khác Nếu muốn hoán vị q trình, phải đảm bảo hồn toàn rỗi Quan tâm đặc biệt việc chờ nhập/xuất Một q trình chờ thao tác nhập/xuất hốn vị q trình tới nơi trống nhớ Tuy nhiên, nhập/xuất truy xuất không đồng bộ nhớ người dùng cho nhập/xuất vùng đệm, q trình khơng thể 162 hoán vị Giả sử thao tác nhập/xuất xếp hàng chờ thiết bị bận Sau đó, hốn vị q trình P1 hốn vị P2 vào thao tác nhập/xuất cố gắng sử dụng nhớ thuộc trình P2 Hai giải pháp chủ yếu cho trình khơng hốn vị q trình chờ nhập/xuất hay thực thi thao tác nhập/xuất vùng đệm hệ điều hành Chuyển vùng đệm hệ điều hành nhớ trình xảy q trình hốn vị vào 3.1.4 Cấp phát liên tục Bộ nhớ phải cung cấp cho hệ điều hành q trình người dùng khác Do đó, cần cấp phát phần khác nhớ cách hiệu Phần giải thích phương pháp thơng dụng, cấp phát nhớ liên tục Bộ nhớ thường phân chia thành hai phân khu, cho hệ điều hành định vị cho trình người dùng Chúng ta đặt hệ điều hành nhớ cao hay nhớ thấp Yếu tố quan trọng ảnh hưởng tới định vị trí vector ngắt Vì vector ngắt thường nhớ thấp nên lập trình viên thường đặt hệ điều hành nhớ thấp Do đó, giáo trình thảo luận trường hợp hệ điều hành định vị nhớ thấp Phát triển trường hợp khác tương tự Chúng ta thường muốn nhiều trình người dùng định vị nhớ thời điểm Do đó, cần xem xét cách cấp phát nhớ trống tới trình hàng đợi nhập chờ mang vào nhớ Trong cấp phát nhớ liên tục, trình chứa phần nhớ liên tục Hình 3.5 Phân vùng nhớ 163 1) Hệ thống đơn chương Trong phương pháp nhớ chia sẻ cho hệ điều hành chương trình người sử dụng Tại thời điểm, phần nhớ hệ điều hành chiếm giữ, phần lại thuộc trình người dùng hệ thống (Hình 3.6) Q trình tồn quyền sử dụng nhớ dành cho User process Operating system 0xFFF… Hình 3.6 Tổ chức nhớ hệ thống đơn chương Khi nhớ tổ chức theo cách thức này, xử lý chương trình thời điểm Quan sát hoạt động q trình, nhận thấy nhiều tiến trình trải qua phần lớn thời gian để chờ thao tác nhập/xuất hoàn thành Trong suốt thời gian này, CPU trạng thái rỗi Trong trường hợp thế, hệ thống đơn chương không cho phép sử dụng hiệu CPU Ngồi ra, đơn chương khơng cho phép nhiều người sử dụng làm việc đồng thời theo chế tương tác Để nâng cao hiệu suất sử dụng CPU, cần cho phép chế độ đa chương mà trình chia sẻ CPU với để hoạt động đồng hành 2) Hệ thống đa chương với phân khu cố định Một phương pháp đơn giản để cấp phát nhớ chia nhớ thành phân khu có kích thước cố định Mỗi phân khu chứa xác q trình Do đó, cấp độ đa chương giới hạn số lượng phân khu Trong phương pháp đa phân khu, phân khu rảnh, trình chọn từ hàng đợi nhập nạp vào phân khu trống Khi trình kết thúc, phân khu trở nên sẳn dùng cho q trình khác Có hai tiếp cận để tổ chức hàng đợi: 164 Hình 4.7 Cấu trúc đĩa cứng 4.2.2 Lập lịch đĩa Hệ điều hành chịu trách nhiệm sử dụng ổ đĩa cách hiệu quả, có nghĩa đĩa phải có thời gian truy nhập nhanh dải thông rộng Thời gian truy nhập có thành phần - Thời gian định vị (Seek time): thời gian chuyển đầu từ tới cylinder chứa sector yêu cầu - Trễ quay (Rotational latency): thời gian cộng thêm chờ đĩa quay sector yêu cầu tới đầu từ Vậy tối thiểu hóa seek time cách lập lịch đĩa Seek time ≈ seek distance Dải thơng đĩa (Disk bandwidth) tính tổng số byte chuyển chia cho tổng thời gian lần chuyển lần chuyển cuối - Seek time tốt với yêu cầu cải thiện bandwidth Khi tiến trình cần thực vào-ra với đĩa, phát system call tới hệ điều hành, hệ điều hàn cần xác định: thao tác input hay output địa đĩa địa nhớ (nguồn đích) 286 số byte cần chuyển Nếu ổ đĩa mạch điều khiển sẵn sàng, yêu cầu thực Trái lại, đưa vào hàng đợi đĩa để chờ phục vụ Có số giải thuật lập lịch phục vụ yêu cầu vào-ra đĩa cho thứ tự tốt 1) FCFS – Fist Come, First Serve Để truy cập tới file, hệ thống tổ chức hàng đợi yêu cầu phục vụ track (lưu trữ liệu file cần truy cập) Track có yêu cầu cần phục vụ trước đầu từ đọc/ghi dịch chuyển tới trước Ví dụ file F1 phân bố track có số thư tự sau đây: 98, 183, 37, 122, 14, 124, 65, 67 Đầu từ đọc/ghi định vị track có số thứ tự 53 Sơ đồ dịch chuyển đọc ghi theo thuật toán FCFS thể sau Tổng quãng đường di chuyển đầu từ 640 cylinder Hình 4.8 Lập lịch đĩa FCFS 2) SSTF – Shortest Seek Time First 287 SSTF chọn yêu cầu với seek (định vị, tìm) time nhỏ từ vị trí đầu từ thời Theo ví dụ trên, sơ đồ dịch chuyển đầu từ đọc/ghi theo thuật tốn SSTF thể hình 4.9 với tổng quãng đường di chuyển đầu từ 236 cylinder Hình 4.9 Lập lịch SSTF 3) SCAN - Disk Arm Thuật toán này, đầu từ đọc/ghi quét từ track nhỏ đến track lớn nhất, sau quét ngược lại, track có nhu càu phục vụ Theo ví dụ trên, sơ đồ dịch chuyển đầu từ đọc ghi theo thuật toán SCAN thể sau: Hình 4.10 Lập lịch SCAN 288 4) C-SCAN - Circular SCAN Tương tự SCAN, có thời gian chờ đồng so với SCAN Đầu từ di chuyển từ đầu đĩa tới đầu lại, phục vụ yêu cầu đến Tuy nhiên, đến đầu quay điểm đầu đĩa mà khơng phục vụ u cầu hành trình quay Hình 4.11 Lập lịch C-SCAN 5) LOOK C-LOOK Là phiên tương ứng SCAN C-SCAN Arm đến yêu cầu cuối hướng đảo hướng mà không tất quãng đường lãng phí đến tận đĩa Gọi LOOK tìm kiếm u cầu trước tiếp tục di chuyển hướng Hình 4.12 Lập lịch C-LOOK 289 Với thuật toán lập lịch, vấn đề phải lựa chọn thuật toán cho hệ thống Thuật tốn SSTF thơng thường Thuật tốn SCAN C-SCAN thích hợp cho hệ thống phải truy xuất liệu khối lượng lớn Với thuật toán lập lịch nào, điều quan trọng khối lượng số kiểu khối cần truy xuất Ví dụ , số khối cần truy xuất liên tục FCFS thuật tốn tốt 4.2.3 Quản lý đĩa 1) Disk Formatting - Low-level formatting, hay physical formatting chia đĩa thành sector (cung) để mạch điều khiển đĩa đọc ghi Cấu trúc liệu sector: header trailer: chứa thông tin sử dụng disk controller, ví dụ số hiệu sector, mã sửa lỗi (ECC: errorcorrecting code) Vùng chứa liệu: thường 512 byte; 256 hay 1024 byte Để sử dụng đĩa lưu giữ file, HĐH cần phải ghi cấu trúc liệu đĩa Phân chia đĩa thành hay nhiều nhóm cylinder, gọi Partition Hệ hiều hành xử lý Partition đĩa độc lập - Logical formatting hay “making a file system”: Hệ điều hành ghi lên đĩa cấu trúc liệu hệ thống file ban đầu, gồm thư mục rỗng ban đầu, đồ không gian nhớ tự sử dụng (bảng FAT – File Allocation Table) 2) Boot Block Để máy tính bắt đầu chạy (khi bật máy, khởi động lại), cần có chương trình khởi tạo để chạy: chương trình mồi (bootstrap) Bootstrap khởi động tất phận máy tính, từ ghi CPU đến mạch điều khiển thiết bị nội dung nhớ chính, sau bắt đầu chạy hệ điều hành Để thực cơng việc mình, chương trình bootstrap tìm nhân (kernel) hệ điều hành đĩa để nạp vào nhớ, nhảy đến địa bắt đầu thực hệ điều hành Bootstrap lưu ROM: ROM không cần khởi tạo Ở vị trí cố định processor bắt đầu thực khởi động ROM không bị ảnh hưởng virus máy tính Hầu hết hệ điều hành chứa chương trình mồi nhỏ boot ROM, giúp 290 cho việc nạp chương trình mồi đầy đủ từ đĩa Chương trình mồi đầy đủ thay đổi dễ dàng Chương trình mồi đầy đủ chứa partition gọi boot blocks, vị trí cố định đĩa Đĩa có boot partition gọi boot disk hay system disk Hình 4.11 Tổ chức đĩa MS-DOS 3) Bad Blocks Trên đĩa đơn giản, ví dụ đĩa IDE bad block xử lý thủ công lệnh format MS-DOS Thực format logic, quét đĩa để tìm bad block Nếu tìm thấy bad block, giá trị đặc biệt ghi vào phần tử tương ứng bảng FAT để báo cho thường trình phân phối (allocation routine) khơng sử dụng block Nếu block trở thành bad hoạt động bình thường, chạy chương trình đặc biệt chkdsk để tìm bad block xử lý chúng Dữ liệu bad block thường bị Trên đĩa phức tạp, vd đĩa SCSI, việc phục hồi bad block thông minh hơn: Mạch điều khiển trì danh sách bad block đĩa DS khởi tạo format cấp thấp nhà máy cập nhật suốt tồn đĩa Format cấp thấp thiết lập sector dự phịng (spare sector) vơ hình HĐH Mạch điều khiển thay bad sector cách logic số sector dự phòng 291 Sector sparing (kỹ thuật dự phòng sector) hay forwarding Hệ điều hành cố gắng đọc block 87 Mạch điều khiển (controller) tính tốn ECC thấy sector bad Nó thơng báo cho HĐH biết Ở lần khởi động tiếp theo, lệnh đặc biệt chạy để lệnh cho Mạch điều khiển SCSI thay bad sector, ví dụ sector 202 Sau đó, hệ thống yêu cầu block 87, mạch điều khiển thông dịch yêu cầu sang địa sector 202 4.2.4 Quản lý không gian swap Swap-space: Bộ nhớ ảo sử dụng không gian đĩa mở rộng nhớ tăng dung lượng, tăng tốc độ Swap-space tạo ra: - Từ hệ thống file bình thường: swap-space file lớn thường trình hệ thống file tạo, đặt tên phân phối nhớ Phương pháp dễ thực không hiệu quả: định vị cấu trúc thư mục cấu trúc liệu đĩa tốn nhiều thời gian truy nhập đĩa nhiều lần - Trong partition riêng (phổ biến hơn): khơng có cấu trúc thư mục file đó, trình quản lý nhớ hoán đổi riêng điều khiển việc phân phối thu hồi block Nó sử dụng giải thuật để tối ưu tốc độ để lưu trữ hiệu 4.2.5 Độ tin cậy đĩa Ổ đĩa quan hệ với thành phần hệ thống, ổ đĩa có tỉ lệ lỗi cao lỗi nguyên nhân gây liệu Hình 4.12 Bản đồ phân đoạn nhớ swap Theo thời gian đĩa thay liệu lưu trữ lại, việc lưu trữ lại liệu nhiều thời gian việc phục hồi liệu bị băng từ đĩa cũ Vì cần phải có hệ thống đĩa đảm bảo độ tin cậy 292 quan trọng Có nhiều cơng nghệ tăng độ tin cậy đĩa hệ thống RAID sử dụng phổ biến RAID thực phần mềm phần cứng Fault Tolerance phần cứng đắt tiền Fault Tolerance phần mềm Fault Tolerance phần cứng thường làm cho máy tính hoạt động nhanh Fault Tolerance phần mềm Các giải pháp Fault Tolerance phần cứng hạn chế tuỳ chọn thiết bị đến nhà cung cấp Các giải pháp Fault Tolerance phần cứng thực thi việc xét nghiệm đĩa cứng phép thay đĩa bị hỏng mà khơng cần phải máy tính Thực thi phần mềm RAID: Trong qui trình thực thi phần mền RAID, hệ điều hành cung cấp chế để bảo đảm thặng dư liệu RAID 0: RAID gọi Disk Striping, volume lưu trữ liệu theo dãy hai nhiều đĩa thể hình Dữ liệu volume tạo vạch cáp phát cách điều dãy thường tạo hoạt động tối ưu cho tất kiểu volume RAID 1: RAID1 gọi Disk Mirroring Disk Mirroring ghi liệu vào đĩa lúc Nếu đĩa bị hỏng, hệ thống sử dụng liệu từ đĩa để tiếp tục hoạt động RAID 5: RAID volume chia sẻ liệu ngang qua tất đĩa mảng RAID level nhất, ghi Parity information (thơng tin dư) sang tất đĩa Parity Information Thông tin thặng dư vốn liên kết với khối thơng tin Thực thi phần cứng RAID: Trong qui trình thực thi phần cứng RAID, giao diện điều khiển đĩa xử lý việc tạo tạo lại thông tin thặng dư Một vài nhà cung cấp phần cứng thực thi chế độ bảo vệ liệu RAID cách trực tiếp phần cứng họ y hệt với card disk array controller Bởi phương pháp riêng biệt cho nhà cung cấp bỏ qua trình diều khiển phần mềm Fault Tolerance hệ điều hành, nhà cung cấp thường cải tiến hoạt động việc thực thi phần mềm RAID thường có chứa tính dư thừa Chẳng hạn việc 293 cuộn đĩa cứng bị hỏng khắc phục nhớ nhằm tiến hoạt động Mức RAID hỗ trợ việc thực thi phần cứng phụ thuộc vào nhà sản xuất phần cứng 4.2.6 Cài đặt hệ lưu trữ ổn định Theo lý thuyết thông tin lưu trữ ổn định không mất, để cài đặt cần lưu trữ thông tin nhiều thiết bị độc lập Khi ghi đĩa sảy trường hợp sau: - Hoàn thành việc ghi: liệu ghi đĩa - Một phần thất bại: Một lỗi sảy q trình truyền liệu, có sector ghi liệu sector bị lỗi q trình ghi - Thất bại hồn tồn: Xảy trước ghi đĩa, liệu trước đĩa cịn ngun Như vậy, xay lỗi trình ghi khối liệu, hệ thống phát gọi thủ tục phục hồi để khôi phục lại trạng thái khối thống Để làm điều ssos hệ thống cần phải trì hai vật lý cho khối logic Dầu thực sau: + Ghi thông tin trên khối vật lý + Khi việc ghi khối hồn thành, ghi tương tự thơng tin khối vật lý thứ hai + Khai báo việc thực xong sau khối thứ hai ghi thành cơng Trong q trình phục hồi lỗi, cặp khối vật lý kiểm tra Nếu hai khối giống khơng có lối tốt, khối chứa lỗi thay nội dung giá trị khối khác Nếu hai khối không lỗi nội dung lại khác thay nội dung khối thứ giá trị khối thứ hai Thủ tục hục hồi đảm bảo ghi lưu trữ ổn định thành cơng hồn tồn kết khơng thay đổi 4.2.7 Các thiết bị lưu trữ thứ ba: Các công việc hệ điều hành vấn đề hiệu 1) Các thiết bị nhớ cấp ba Giá thành rẻ đặc điểm bật nhớ cấp ba Nói chung, nhớ cấp ba gồm thiết bị khả chuyển (removable media) Ví dụ phổ biến: đĩa mềm, đĩa CD, flash disk 294 - Removable Disks Floppy disk đĩa mềm dẻo mỏng phủ lớp từ bảo vệ bên ngồi vỏ chất dẻo Có dung lượng khoảng 1.4 MB; - Removable magnetic disk tạo kỹ thuật tương tự Có dung lượng GB Có tốc độ nhanh gần hard disks, dễ bị hỏng - Đĩa từ-quang (magneto-optic disk) ghi liệu mặt đĩa cứng phủ lớp từ Ổ đĩa có cuộn dây sinh từ trường Tại nhiệt độ thường, từ trường rộng yếu nên khơng thể từ hóa bit đĩa Sử dụng phương pháp đốt Laser: đầu đĩa chiếu tia laser lên mặt đĩa để ghi bit Ánh sáng Laser sử dụng để đọc liệu Đầu đọc đĩa từ-quang bay xa mặt đĩa nhiều so với đầu đọc đĩa từ, lớp từ phủ lớp bảo vệ dầy kính chất dẻo để chống phá hủy đầu đọc - Các đĩa quang (optical disk) không sử dụng tượng từ tính; chúng sử dụng chất liệu đặc biệt bị biến đổi ánh sáng laser thành điểm sáng tối Ví dụ: đĩa đổi pha: Đĩa phủ chất liệu đơng cứng thành trạng thái kết tinh vơ định hình Trạng thái kết tinh suốt nên tia laser sáng qua chất liệu đổi pha bật khỏi lớp phản chiếu Ổ đĩa đổi pha sử dụng ánh sáng laser cường độ: cường độ yếu để đọc liệu, cường độ trung bình để xóa đĩa (làm tan đông cứng lại), cường độ mạnh làm tan chất liệu thành tr.thái vơ định hình để ghi liệu Ví dụ: re-recordable CD-RW DVD-RW - Tapes: So với đĩa, băng rẻ lưu chứa nhiều liệu hơn, truy nhập ngẫu nhiên chậm nhiều Băng giải pháp tiết kiệm cho mục đích khơng u cầu truy nhập nhanh, vd: lưu trữ liệu đĩa; sử dụng trung tâm siêu máy tính lớn để lưu trữ lượng thông tin khổng lồ phục vụ nghiên cứu khoa học - Công nghệ tương lai: Công nghệ lưu trữ ảnh giao thoa laser (Holographic storage): Sử dụng ánh sáng laser để ghi ảnh giao thoa laser (holographic photograph) thiết bị đặc biệt Các ảnh đen trắng mảng chiều pixel, pixel biểu diễn bit: 0-đen; 1-trắng Một 295 ảnh lưu hàng triệu bit liệu; tất pixel truyền nhanh với tốc độ ánh sáng laser tốc độ truyền liệu cao, công nghệ lưu trữ đầy hứa hẹn tương lai Hệ khí vi điện tử (Micro electronic mechanical system - MEMS): chế tạo chip điện tử để sản xuất thiết bị lưu trữ nhỏ, thành công cung cấp công nghệ lưu trữ liệu không khả biến, nhanh đĩa từ rẻ DRAM bán dẫn 2) Các công việc hệ điều hành - Giao diện ứng dụng Hầu hết hệ điều hành quản lý đĩa khả chuyển giống đĩa cố định, đĩa phải format tạo hệ thống file rỗng Các thao tác với ổ đĩa: read, write, seek Các băng coi phương tiện lưu trữ thơ, ví dụ: ứng dụng khơng mở file băng mà mở toàn ổ băng Các thao tác với tape: locate: định vị băng vào khối (block) xác định read position: trả vị trí thời đầu băng (block number) Các ổ băng thiết bị "chỉ ghi thêm“ (append-only) Một dấu EOT (End Of Tape) đặt sau khối vừa ghi - Đặt tên file Vấn đề đặt tên file thiết bị nhớ khả chuyển đặc biệt khó muốn ghi liệu lên máy tính sử dụng máy tính khác: Tìm đường dẫn đến file, kiểu ổ đĩa có tương thích; thứ tự lưu trữ byte liệu khác nhau, ví dụ: vi xử lí Intel 80x86 Pentium: lưu trữ kiểu littleendian; vi xử lí Motorola 680x0 RISC: lưu trữ kiểu big-endian Các hệ điều hành nói chung để mặc vấn đề trên, phụ thuộc vào ứng dụng người sử dụng để tìm cách truy nhập, hiển thị liệu Một số thiết bị nhớ khả chuyển (CD, DVD) tiêu chuẩn hóa tốt để tất máy tính sử dụng chúng theo cách chung - Hiệu + Tốc độ 296 Hai mặt tốc độ nhớ cấp ba dải thông (bandwidth) trễ truy nhập (latency) Dải thông (số byte/giây) Dải thông liên tục (Sustained bandwidth) – tốc độ liệu trung bình suốt trình truyền lớn; tính số byte/thời gian truyền Là tốc độ liệu dòng liệu truyền thực + Effective bandwidth (Dải thơng có hiệu lực) – tính trung bình tồn thời gian vào-ra Là tốc độ liệu tổng thể ổ đĩa Dải thông ổ đĩa thường hiểu sustained bandwith Các removable disk: 0.25 - MB/s; Các tape: 0.25 30 MB/s Trễ truy nhập khoảng thời gian cần thiết để định vị liệu Thời gian truy nhập ổ đĩa dịch đầu từ tới cylinder chọn đợi trễ quay (rotational latency); < 35 ms Truy nhập băng đòi hỏi phải cuộn ống băng khối chọn chạm đến đầu băng; tốn hàng chục hàng trăm giây Nói chung truy nhập ngẫu nhiên băng chậm đĩa hàng nghìn lần + Độ tin cậy Một ổ đĩa cố định đáng tin cậy ổ đĩa hay ổ băng khả chuyển Một đĩa quang đáng tin cậy đĩa từ hay băng từ Sự rơi đầu từ đĩa cứng cố định thường phá hủy liệu, hỏng ổ băng hay ổ đĩa quang thường không làm hỏng đến liệu + Giá thành (USD/1 MB) Bộ nhớ (Main memory) đắt nhiều so với nhớ cấp hai cấp ba Câu hỏi tập chương So sánh thuật toán đọc đĩa Lựa chọn thuậ toán đọc đĩa nào? Nguyên nhân lỗi truy xuất đĩa cách khắc phục? RAM disks gì? 297 Vì có chế Interleave? Đặc điểm phần cứng terminal Terminal ánh xạ nhớ dùng để làm gì? Vai trị đồng hồ Trình bày sơ lược cấu trúc nguyên tắc hoạt động đĩa từ Hệ điều hành quản lý đĩa từ theo đơn vị nào? Thế thư mục thiết bị 10 Trình bày phương pháp quản lý cấp phát không gian nhớ tự đĩa từ hệ điều hành 11 Trình bày yếu tô liên quan đến thời gian truy nhập đĩa từ, từ nêu khái niệm lập lịch cho đĩa (disk scheduler) 12 Trình bày khái niệm hệ file, yếu tố hệ file phương pháp tổ chức hệ file 13 Giả sử vùng không gian nhớ đĩa từ mô tả qua sơ đồ sau: File F1 phân bố lại block có số hiệu: 0,2,4,5,9,13,14,15 Trình bày phương pháp phát liên kết (block 0, block cuối 2) phương pháp cấp phat theo địa số (block số 15) 14 Giả sử vùng không gian nhớ đĩa từ mô tả qua sơ đồ sau: (các block màu sẫm block sử dụng) a) Mô phương pháp quản lý không gian nhớ tự qua sơ đồ 298 b) File F1 có kích thước block Mơ phương pháp không gian nhớ cho F1 qua sơ đồ 15 Giả sử ổ cứng có 200 track ký hiệu từ đến 199; yêu cầu đọc ghi liệu track theo thứ tự sau đây: 45,14,9,26,87,52,122,183,68,184,185 Đầu từ đọc/ghi định vị track 60 Vẽ sơ đồ dịch chuyển đầu từ đọc ghi theo thuật toán: FCFS, SSTF, Scan, C-Scan, Look, C-Look 16 Cho khơng gian đĩa hình sau, khối 2,3,4,5,8,9,10,11,12,13,17,18,25,26,27 khối đĩa tự Tìm bitmap quản lý không gian nhớ tự do: 17 Giả sử đĩa có side, side có 1024 track, track có 32 sector Tốc độ xoay đĩa 6000 vòng/phút Thời gian di chuyển track 100ms Giả sử thời gian đọc chuyển liệu không đáng kể Cho biết để truy xuất tất sector logic sau phải tốn : 34, 16, 120, 14, 86, 200, 79, 300, 8, 500, 170, 450, 1000, 380, 800 Biết : Sector = Seclog / SecTrk + Side = (Seclog/SecTrk) / SideNo Track = (Seclog/(Sectrk *SideNo)) Với Seclog sector logic, SideNo số side, Sectrk số sector track 299 TÀI LIỆU THAM KHẢO [1] Andrew S Tanenbaum, Albert S Woodhull, Operating Systems: Design and Implementation, 3rd edition, Prentice-Hall 2006 [2] Andrew S Tanenbaum, Modern Operating Systems, 2nd edition, Prentice-Hall, 2001 [3] Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Operating System Concepts, 7th edition, John Wiley & Sons, Inc., 2005 [4] Daniel P Bovet, Marco Cesati, Understanding Linux Kernel, 2nd edition, O'Reilly & Associates, 2002 [5] Robert Love, Linux Kernel Development, Sams Publishing, 2003 [6] William Stallings, Operating Systems: Internals and Design Principles 5th edition, Prentice-Hall, 2005 [7] W Richard Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley, 1992 [8] Hà Quang Thụy, Nguyên lý hệ điều hành, NXB KHKT, 2002 300 ... phân đoạn 3, byte 8 52, ánh xạ tới 320 0 (giá trị phân đoạn 3) +8 52= 40 52 Một tham chiếu tới byte 122 2 phân đoạn dẫn đến trap tới hệ điều hành, phân đoạn dài 1000 bytes Hình 3 .25 Thí dụ phân đoạn... kích thước thay đổi Một mục từ 3 2- bit tới khung trang vật lý 23 2 Nếu khung KB, hệ thống với mục từ bytes đánh địa cho 24 4 bytes (hay 16 TB) nhớ vật lý Khi trình vào hệ thống để thực thi, kích thước... Pentium-II sử dụng kiến trúc 1 82 Kiến trúc VAX hỗ trợ biến dạng phân trang hai cấp VAX máy 3 2- bit với kích thước trang 5 12 bytes Khơng gian địa luận lý trình chia làm phần nhau, phần chứa 23 0 bytes