Khi cần lưu trữ các chương trình hoặc dữ liệu, các hệ thống máy tính bắt buộc phải sử dụng bộ nhớ ngoài (đĩa từ, băng từ, Compaq… ). Nhiệm vụ chính của hệ điều hành phải bảo đảm được các chức năng sau: Quản lý không gian nhớ tự do trên bộ nhớ ngoài (Free space manage) Cấp phát không gian nhớ tự do ( Allocation Methods) Cung cấp các khả năng định vị bộ nhớ ngoài. Lập lịch cho bộ nhớ ngoài. II. Cấu trúc vật lý Xét cấu trúc vật lý của đĩa từ: đĩa từ bao gồm một hoặc nhiều lá đĩa đặt đồng trục. Mỗi mặt đĩa chia thành các rãnh tròn đồng tâm gọi là track, mỗi track được chia thành các cung gọi là sector, tập hợp các track cùng thứ tự trên các mặt đĩa gọi là cylinder (từ trụ). Trên mỗi mặt đĩa có một đầu từ đọcghi dữ liệu (ReadWrite Heads), để điều khiển đầu từ đọcghi dữ liệu cần có một trình điều khiển đĩa (Disk controler ). Thông tin trên đĩa được tham chiếu bởi các thành phần: ổ đĩa, mặt đĩa, track, sector. Hệ điều hành xem đĩa như một mảng một chiều mà thành phần là các khối đĩa (disk block). Mỗi khối đĩa ghi các thông tin về mặt đĩa, track, sector mà hệ điều hành có thể định vị trên đó.
ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI -Khoa Cơng nghệ thơng tin- BÀI TẬP LỚN Môn: NGUYÊN LÝ HỆ ĐIỀU HÀNH Đề tài: Nguyên cứu tìm hiểu quản lý nhớ HĐH Windows Giáo viên hướng dẫn: Nguyễn Thanh Hải Sinh viên thực hiện: Nhóm 3: Nguyễn Văn Hồng Đàm Văn Quang Nguyễn Văn Bình Phạm Tn Năm 2012 Mục Lục I Yêu cầu quản lý nhớ II Cấu trúc vật lý III Thư mục thiết bị IV Các phương pháp quản lý không gian tự Phương pháp dùng bit vector (Bitmap) .4 Phương pháp liệt kê (Free list) Phương pháp lập nhóm (Grouping) Phương pháp đếm (Counting) .6 V Các phương pháp cấp phát không gian nhớ tự Cấp phát kề (Contiguous) .6 Cấp phát liên kết (Linked) Cấp phát theo số (Index) VI Lập lịch cho đĩa (Disk Scheduling) 11 Khái niệm lập lịch cho đĩa 11 Các thuật toán lập lịch cho đĩa: 13 Quản lý lỗi 17 RAM Disks 18 Interleave 19 I Yêu cầu quản lý nhớ Khi cần lưu trữ chương trình liệu, hệ thống máy tính bắt buộc phải sử dụng nhớ ngồi (đĩa từ, băng từ, Compaq… ) Nhiệm vụ hệ điều hành phải bảo đảm chức sau: - Quản lý không gian nhớ tự nhớ (Free space manage) - Cấp phát không gian nhớ tự ( Allocation Methods) - Cung cấp khả định vị nhớ - Lập lịch cho nhớ II Cấu trúc vật lý Xét cấu trúc vật lý đĩa từ: đĩa từ bao gồm nhiều đĩa đặt đồng trục Mỗi mặt đĩa chia thành rãnh tròn đồng tâm gọi track, track chia thành cung gọi sector, tập hợp track thứ tự mặt đĩa gọi cylinder (từ trụ) Trên mặt đĩa có đầu từ đọc/ghi liệu (Read/Write Heads), để điều khiển đầu từ đọc/ghi liệu cần có trình điều khiển đĩa (Disk controler ) Thông tin đĩa tham chiếu thành phần: ổ đĩa, mặt đĩa, track, sector Hệ điều hành xem đĩa mảng chiều mà thành phần khối đĩa (disk block) Mỗi khối đĩa ghi thông tin mặt đĩa, track, sector mà hệ điều hành định vị III Thư mục thiết bị Trên đĩa thơng thường có thư mục thiết bị (device directory) cho biết đĩa gồm thơng tin gì, độ dài, kiểu, người sở hữu, thời điểm khởi tạo, vị trí, phân bố không gian Thư mục thiết bị tạo đĩa vùng nhớ đặc biệt IV Các phương pháp quản lý không gian tự Phương pháp dùng bit vector (Bitmap) Không gian đĩa chia thành khối (block) đánh số từ 0…max Ví dụ: đĩa mềm 1.44Mb, mặt, 80 track/1 mặt, 18 sector/1 track đánh số sau: Mỗi khối đĩa sử dụng bit để đánh dấu trạng thái Khối đĩa sử dụng bit trạng thái có giá trị một, chưa sử dụng có giá trị Tập hợp kí hiệu 0,1 tạo thành bit vector (bitmap) Đọc thơng tin bitmap hệ điều hành xác định khơng gian tự đĩa Ví dụ: cho khơng gian đĩa hình 4.1, khối 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26, 27 khối đĩa tự Khi bitmap quản lý khơng gian nhớ tự sau: 11000011000000111001111110001111… Phương pháp bitmap có ưu điểm cài đặt đơn giản, dễ quản lý, dễ tìm kiếm khối đĩa tự liên tục đĩa tốn không gian lưu trữ dành cho bitmap (mỗi khối đĩa bit) Phương pháp liệt kê (Free list) Trong phương pháp hệ thống sử dụng danh sách móc nối để liệt kê khối đĩa tự Con trỏ đầu danh sách tới khối đĩa tự đầu tiên, khối có trỏ tới khối (hình 4.1) Ưu điểm phương pháp tiết kiệm không gian nhớ làm tăng thời gian truy nhập liệu Phương pháp lập nhóm (Grouping) Trong phương pháp này, hệ thống cho phép khối đĩa tự liên tiếp thành nhóm Khối đĩa tự nhóm lưu trữ địa khối đĩ tự nhóm Khối đĩa tự cuối nhóm lưu trữ địa khối đĩa tự nhóm Hình 4.1 Mơ tả khơng gian đĩa từ Ví dụ: theo hình 4.1 ta có bảng quản lý khơng gian nhớ tự sau: Nhóm Khối đầu Khối cuối I (2,3,4,5) (8) II (8,9,10,11,12,13) 13(17) III 17 (17,18) 18 (25) IV 25 (25,26,27) 27 (…) Phương pháp đếm (Counting) Phương pháp đếm biến đổi phương pháp lập nhóm Trong phương pháp này, hệ thống lập danh sách quản lý địa khối đĩa tự số lượng khối đĩa tự liên tục khối đĩa Ví dụ: theo hình 4.1 ta có danh sách quản lý không gian nhớ sau: Danh sách Số lượng 17 25 V Các phương pháp cấp phát không gian nhớ tự Cấp phát kề (Contiguous) Để phân bố không gian nhớ cho file, hệ thống chọn đoạn liên tục khối đĩa tự để cấp phát cho filei Với phương pháp này, để định vị file hệ thống cần biết địa khối đĩa tự số lượng block dùng Ưu điểm cấp phát liên tục hỗ trợ phương pháp truy nhập truy nhập trực tiếp, tồn nhược điểm chính: - Phải chọn thuật tốn tối ưu để tìm vùng không gian tự cấp phát cho file (First – Fit, Best – Fit Worst – Fit) - Có thể xảy trường hợp không đủ số khối đĩa tự liên tiếp cần thiết để cấp phát cho file ( kích thước file lớn vùng khối đĩa liên tục lớn nhất) - Trường hợp khối đĩa tự nằm tản mạn không sử dụng, gây lãng phí khơng gian nhớ Hình 5.1 không gian đĩa cấp phát kề Cấp phát liên kết (Linked) Trong phương pháp này, file định vị thư mục thiết bị trỏ, trỏ tới khối đĩa đầu tiên, trỏ tới khối đĩa cuối cấp phát cho file Trong khối đĩa cấp phát có trỏ để trỏ tới khối đĩa Ví dụ: file f1 cấp phát khối đĩa có số hiệu 9, 16, 1, 11, 25; khối đầu 9, khối cuối 25 Hình 5.2 cấp phát không gian đĩa liên kết Cấp phát liên kết có ưu điểm sử dụng khối đĩa tự nằm tản mạn hỗ trợ truy nhập tuần tự, không hỗ trợ truy nhập trực tiếp, độ tin cậy không đảm bảo trỏ liên kết Mặt khác phương pháp tốn không gian nhớ để lưu trữ trỏ ( khoảng 0,38% không gian đĩa) Cấp phát theo số (Index) Phương pháp này, để cấp phát không gian nhớ cho file, hệ thống sử dụng khối đĩa đặc biệt gọi khối đĩa số (Index block) cho file Trong khối đĩa số chứa địa khối đĩa cấp phát cho file, thu mục thiết bị địa khối đĩa số Khi khối đĩa cấp phát cho file hệ thống loại bỏ địa khối đĩa khỏi danh sách cấc khối đĩa tự cập nhật vào khối số file Hình 5.3 cấp phát khơng gian đĩa theo số Phương pháp cấp phát theo số hỗ trợ truy nhập trực tiếp lãng phí khơng gian nhớ dành cho khối đĩa số Điểm sinh câu hỏi: Khối số nên lớn bao nhiêu? Tuy nhiên, khối số q nhỏ khơng thể quản lý đủ trỏ cho tập tin lớn, cần có chế giải vấn đề này: + Cơ chế liên kết (linked scheme): khối số thường đĩa Do đó, đọc viết trực tiếp Để cho phép tập tin lớn, liên kết nhiều khối số với Thí dụ, khối số chứa header nhỏ cho tên tập tin tập hợp địa 100 khối đĩa Địa (từ cuối khối số ) nil (đối với tập tin nhỏ ) hay trỏ tới khối số khác (cho tập tin lớn) + Chỉ số nhiều cấp (multilevel index): biến dạng biểu diễn liên kết dùng khối số cấp để tới khối số cấp Khối số cấp tới khối tập tin Để truy xuất khối, hệ điều hành dùng số cấp để tìm khối số cấp khối tìm khối liệu mong muốn Tiếp cận tiếp tục tới cấp hay cấp 4, tùy thuộc vào kích thước tập tin lớn mong muốn Với khối có kích thước 4,096 bytes, lưu 1,024 trỏ bytes khối số Chỉ số hai cấp cho phép 1,048,576 khối liệu, cho phép tập tin có kích thước tới 4GB + Cơ chế kết hợp (combined scheme): biến dạng khác dùng UFS giữ 15 trỏ khối số inode tập tin 12 trỏ 15 trỏ tới khối trực tiếp (direct blocks), nghĩa chúng chứa địa khối mà chứa liệu tập tin Do đó, liệu tập tin nhỏ (khơng lớn 12 khối) không cần khối số riêng Nếu kích thước khối 4KB, 48KB liệu truy xuất trực tiếp trỏ tới khối gián tiếp (indirect blocks) Con trỏ khối gián tiếp thứ đại khối gián tiếp đơn (single indirect blocks) Khối gián tiếp đơn khối số không chứa liệu chứa địa khối liệu Sau đó, có trỏ khối gián tiếp đơi (double indirect block) chứa địa khối mà khối chứa địa khối chứa trỏ tới khối liệu thật Con trỏ cuối chứa địa khối gián tiếp ba (triple indirect block) Với phương pháp này, số khối cấp phát tới tập tin vượt hạn lượng khơng gian đánh địa trỏ tập tin bytes hay GB Nhiều cài đặt UNIX gồm Solaris AIX IBM hỗ trợ tới 64 bit trỏ tập tin Các trỏ có kích thước cho phép tập tin hệ thống tập tin có kích thước tới terabytes Một inode hiển thị hình 5.4: 10 Mode Owners (2) data timestamps(3) size block data count data Direct blocks single indirect double indirect data data data triple indirect data data data data Hình 5.4 Inode UNIX Cơ chế cấp phát lập số gặp số vấn đề khó khăn lực cấp phát liên kết Đặc biệt khối số lưu trữ (cache) nhớ,nhưng khối liệu trải rơng khắp phân khu VI Lập lịch cho đĩa (Disk Scheduling) Khái niệm lập lịch cho đĩa Thời gian truy nhập đĩa phụ thuộc vào ba yếu tố: thời gian di chuyển đầu từ đọc/ghi đến track cylinder cần thiết (seek-time), thời gian định vị đầu từ đọc/ghi 11 khối đĩa cần truy nhập (latency-time) thời gian truy nhập liệu (transfer-time) Thời gian định vị đầu từ đọc/ghi thời gian truy nhập liệu thông thường cố định phụ thuộc cấu trúc kỹ thuật ổ đĩa Do để tăng tốc độ truy nhập đĩa, hệ điều hành thường quan tâm tới thời gian di chuyển đầu từ đọc/ghi Lập lịch cho đĩa xây dựng thuật toán dịch chuyển đầu từ đọc ghi cho thời gian truy nhập đĩa tối ưu Thời gian truy nhập đĩa - Thời gian di chuyển đầu từ đọc ghi đến strack thích hợp(seek-time) - Thời gian chờ cho khối cần thiết đầu đọc(latency -time) - Thời gian vận chuyển liệu đĩa nhớ chính(transfer-time) Tất cơng việc phụ thuộc vào việc nạp chương trình nhập xuất tập tin, điều quan trọng dịch vụ đĩa phải nhanh tốt Hệ điều hành tổ chức dịch vụ truy xuất đĩa tốt cách lập lịch yêu cầu truy xuất đĩa Tốc độ đĩa bao gồm ba phần Để truy xuất khối đĩa, trước tiên phải di chuyển đầu đọc đến track hay cylinder thích hợp, thao tác gọi seek thời gian để hoàn tất gọi seek time Một đến track, phải chờ khối cần thiết đến đầu đọc Thời gian chờ gọi latency time Cuối vận chuyển liệu đĩa nhớ gọi transfer time Tổng thời gian cho dịch vụ đĩa tổng ba khoảng thời gian Trong seek time latency time 12 nhiều thời gian nhất, để giảm thiểu thời gian truy xuất hệ điều hành đưa thuật toán lập lịch truy xuất Các thuật toán lập lịch cho đĩa: - First come first Served(FCFS) - Shortest seek time first(SSTF) - Scan - C-Scan - Look - C-Look * First come first Served(FCFS) - Để truy nhậ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 nhập) - Nội dung: track có yêu cầu phục vụ trước đầu đọc ghi dịch chuyển tới trước Ví dụ: File F1 phân bổ track số thứ tự :98,183,37,122,14,124,65,67 giả sử đầu đọc track 53 Sơ đồ dịch chuyển theo FCFS(640 bước dịch chuyển) 13 - Ưu điểm: +)Dễ lập trình +)Các track cần truy xuất liên tục - Nhược điểm +)Số track mà đầu đọc phải di chuyển nhiều +)Hiệu thuật toán phụ thuộc vào thứ tự track hàng đợi * Shortest Seek time First - Nội dung: track có thời gian di chuyển đầu từ đọc ghi ngắn phục vụ trước Ví dụ:File F1 phân bổ track số thứ tự :98,183,37,122,14,124,65,67 giả sử đầu đọc track 53 Sơ đồ dịch chuyển theo SSTF(Tổng quãng đường dịch chuyển 360) Ưu, nhược điểm SSTF - Ưu điểm Số track mà đầu đọc phải chuyển giảm - Nhược điểm Có thể gây số yêu cầu không phục vụ 14 * Scan Nội dung:Đầu đọc đĩa di chuyển từ phía (ví dụ bên ngồi bên đĩa) sang phía để phục vụ yêu cầu đọc, sau di chuyển ngược lại trình lặp lặp lại Ví dụ:File F1 phân bổ track số thứ tự :98,183,37,122,14,124,65,67 giả sử đầu đọc track 53 Tổng quãng đường dịch chuyển 252 Đặc điểm: - Phương thức hoạt động thang máy - Số bước đầu đọc phải di chuyển giảm * C-Scan - Nội dung: Đầu đọc chuyển từ phía (trong/ngồi)sang phía phục vụ yêu cầu Khi sang đến phía kia, đầu đọc quay trở lại quay trở lại khơng phục vụ u cầu nào.(qt chiều) 15 Ví dụ: File F1 phân bổ track số thứ tự :98,183,37,122,14,124,65,67 giả sử đầu đọc track 53 Số bước dịch chuyển đầu từ 252 * Look - Nội dung: tương tự Scan thuật toán đầu đọc ghi quét phạm vi track có nhu cầu phục vụ khơng quét tới track cuối Ví dụ: File F1 phân bổ track số thứ tự :98,183,37,122,14,124,65,67 giả sử đầu đọc track 53 Số bước dịch chuyển đầu từ 208 16 * C-Look - Nội dung: Tương tự Look đầu đọc ghi khơng phục vụ đường Ví dụ: File F1 phân bổ track số thứ tự :98,183,37,122,14,124,65,67 giả sử đầu đọc track 53 Lựa chọn giải thuật lập lịch đĩa: - FCFS thuật toán phù hợp track cần truy xuất liên tục - SSTF phổ biến có hiệu tốt - SCAN LOOK thích hợp cho hệ thống phải truy xuất liệu lớn Quản lý lỗi Đĩa đối tượng mà truy xuất gây nhiều lỗi Một số lỗi thường gặp : Lỗi lập trình : yêu cầu đọc sector không tồn Lỗi lập trình xảy yêu cầu điều khiển tìm kiếm cylinder không tồn tại, đọc sector không tồn tại, dùng đầu đọc không tồn tại, vận chuyển vào nhớ không tồn Hầu hết điều khiển kiểm tra tham số báo lỗi khơng thích hợp Lỗi checksum tạm thời : gây bụi đầu đọc 17 Bụi tồn đầu đọc bề mặt đĩa gây lỗi đọc Nếu lỗi tồn tại, khối bị đánh dấu hỏng phần mềm Lỗi checksum thường trực : đĩa bị hư vật lý khối Lỗi tìm kiếm : ví dụ đầu đọc đến cylinder phải đọc Lỗi điều khiển : điều khiển từ chối thi hành lệnh RAM Disks Ý tưởng RAM disk đơn giản Thiết bị khối phần lưu trữ trung gian với hai lệnh : đọc khối ghi khối Thông thường khối lưu trữ đĩa mềm đĩa cứng RAM disk dùng phần định vị trước nhớ để lưu trữ khối RAM disk có ưu điểm cho phép truy xuất nhanh chóng (khơng phải chờ quay hay tìm kiếm) Như thích hợp cho việc lưu trữ chương trình hay liệu truy xuất thường xun Hình mơ tả ý tưởng RAM disk Một RAM disk chia làm nhiều khối, số lượng tùy thuộc vào dung lượng vùng nhớ Mỗi khối có kích 18 thước vừa kích thước khối thực đĩa Khi driver nhận thị đọc ghi khối, tìm nhớ RAM disk vị trí khối, thực việc đọc hay ghi thay từ đĩa mềm hay đĩa cứng Interleave Bộ điều khiển đọc ghi đĩa phải thực hai chức đọc/ghi liệu chuyển liệu vào hệ thống Để thực đồng hai chức này, điều khiển đọc đĩa cung cấp chức interleave Trên đĩa sector số hiệu liên tiếp khơng nằm kế bên mà có khoảng cách định, khoảng cách xác định q trình format đĩa Ví dụ : giả sử hệ thống có 17 sector, interleave chọn sector bố trí theo thứ tự sau : 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Cách đọc sau : Lần 1: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Lần 2: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Lần 3: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Lần 4: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, Như sau bốn lần thứ tự sector đọc từ đến 17 19