CHƯƠNG 4 : HỆ THỐNG FILE
4.11. TỔ CHỨC THÔNG TIN TRÊN BỘ NHỚ THỨ CẤP
4.11.2. Điều độ đĩa
Điều độ đĩa (disk scheduling) là quyết định thứ tự các thao tác đọc/ghi đĩa.
Trong quá trình hoạt động, các tiến trình gửi cho hệ điều hành các yêu cầu đọc/ghi đĩa thông qua các lời gọi hệ thống tương ứng. Nếu tại thời điểm nhận được yêu cầu, hệ thống không bận thực hiện thao tác với đĩa, yêu cầu đó sẽ được xử lý ngay. Ngược lại, nếu đĩa cứng đang thực hiện thao tác đọc/ghi khác, yêu cầu sẽ được xếp vào hàng đợi. Khi kết thúc thao tác vào/ra hiện thời, hệ thống chọn trong hàng đợi một yêu cầu để thực hiện. Nếu trong hàng đợi có nhiều hơn một yêu cầu, hệ điều hành sẽ lựa chọn yêu cầu nào được thực hiện trước. Như đã nói trong phần trước, trước khi có thể đọc/ghi cần mất thời gian để di chuyển đầu từ của đĩa (seek time) và chờ cho sector cần đọc quay tới vị trí đầu từ (latency time). Do vậy, việc lựa chọn thứ tự thực hiện các yêu cầu hợp lý có thể tối ưu thời gian thực hiện các yêu cầu
đọc/ghi đĩa do tiết kiệm thời gian định vị đầu từ. Việc lựa chọn này được tiến hành dựa trên chiến lược điều độ đĩa, và thường được lựa chọn dựa trên một tiêu chí nào đó, ví dụ tiêu chí về thời gian, hay về tính cơng bằng.
Để điều độ đĩa, hệ điều hành sử dụng các thông tin về yêu cầu đọc/ghi. Các thông tin này có trong lời gọi hệ thống mà tiến trình gửi cho hệ điều hành để yêu cầu và thường bao gồm các thành phần sau: 1) dạng yêu cầu (đọc hay ghi); 2) vị trí cần đọc trên đĩa; 3) số lượng sector hay cluster cần đọc; 4) địa chỉ vùng bộ nhớ trong để chứa thông tin ghi ra hoặc đọc vào.
Sau đây, ta sẽ xem xét một số chiến lược điều độ đĩa thông dụng. Cần lưu ý rằng do thẻ nhớ SSD không mất thời gian định vị nên không cần quan tâm tới điều độ đĩa, yêu cầu tới trước sẽ được xử lý trước.
Tới trước phục vụ trước (FCFS).
Đây là chiến lược điều độ đơn giản nhất. Các yêu cầu vào/ra được xếp vào hàng đợi FIFO và được xử lý theo đúng thứ tự xuất hiện. Chiến lược này đảm bảo tính cơng bằng, tuy nhiên nếu các yêu cầu xuất hiện liền nhau đòi hỏi truy cập các vùng đĩa nằm xa nhau thì sẽ tốn nhiều thời gian để định vị đầu từ và do vậy có tốc độ chậm.
Xét ví dụ sau, trong đó đầu từ hiện đang nằm tại cylinder 50 và hàng đợi chứa các yêu cầu truy cập tại các cylinder sau: 95, 180, 34, 119, 11, 123, 62, 64. Đĩa gồm 200 cylinder được đánh số từ 0 đến 199. Trên hình 4.20 thể hiện chuyển động của đầu từ nếu sử dụng chiến lược điều độ FCFS. Trước tiên đầu từ di chuyển từ cylinder 50 tới 95 (qua |50-95| cylinder), sau đó di chuyển tới cylinder 180 (|95-180|), tiếp theo quay lại cylinder 34 (180-34|) .v.v. Dưới đây, ta sẽ thấy, so sánh với các phương pháp điều độ khác, quãng đường đầu từ di chuyển khi sử dụng FCFS là khá lớn.
Hình 4.20. Quãng đường di chuyển đầu từ trong điều độ FCFS
Thời gian định vị ngắn trước (SSTF)
Điều độ ưu tiên thời gian định vị ngắn trước (Shortest Seek Time First – SSTF) là phương pháp điều độ trong đó u cầu truy cập có vị trí gần vị trí hiện thời của đầu từ nhất sẽ được xử lý trước. Ở đây, khoảng cách tính bằng số cylinder, tức là tương ứng với thời gian
định vị (seek time) nhỏ nhất. Với ví dụ ở trên, từ vị trí hiện thời ở cylinder 50, yêu cầu truy cập tại cylinder 62 là gần nhất và do vậy được chọn xử lý đầu tiên, tiếp theo là yêu cầu truy cập cylinder 64, rồi đến 34, 11, 95, 119, 123, 180 (hình 4.21).
Hình 4.21. Chuyển động của đầu từ trong điều độ SSTF
Điều độ SSTF thường có tốc độ cao hơn FCFS do tổng thời gian di chuyển đầu từ giữa các cylinder nhỏ hơn. Tuy nhiên, kiểu điều độ này có thể gây đói, tức là một số yêu cầu sẽ rất lâu khơng được xử lý. Giả sử trong ví dụ trên, khi đầu từ ở cylinder 34, xuất hiện thêm nhiều yêu cầu mới nằm gần cylinder 34, khi đó hệ thống sẽ xử lý các yêu cầu này vào do vậy các yêu cầu truy cập cylinder ở cuối đĩa (cylinder 180) sẽ phải chờ rất lâu mới đến lượt.
SCAN
Điều độ SCAN, hay còn gọi là điều độ kiểu thang máy (elevator) là kiểu điều độ trong đó đầu từ di chuyển từ cylinder ngồi cùng vào cylinder trong cùng, sau đó di chuyển ngược lại. Trên đường đi, tới mỗi cylinder, đầu từ sẽ xử lý yêu cầu vào ra tại cylinder đó nếu có. Hình 4.22 thể hiện thứ tự xử lý các yêu cầu trong ví dụ ở trên với điều độ SCAN. Phương pháp này có tên SCAN do đầu từ lần lượt quét tất cả các cylinder, và có tên thang máy do cách xử lý giống thang máy tại một số nhà cao tầng đi lần lượt từ tầng dưới cùng lên tầng trên cùng rồi lại đi ngược lại. Điều độ SCAN cũng có tổng thời gian định vị nhỏ hơn FCFS, trong khi đó đảm bảo khơng u cầu nào phải chờ đợi quá lâu.
Hình 4.22. Chuyển động của đầu từ trong điều độ SCAN PTIT
C-SCAN
C-SCAN là viết tắt của SCAN quay vòng (circular SCAN). Theo phương pháp này, đầu từ chỉ xử lý các yêu cầu khi di chuyển theo một chiều, ví dụ từ trong ra ngoài đĩa (từ cylinder số thứ tự cao đến cylinder số thứ tự thấp). Sau khi đã ra tới mép đĩa, đầu từ di chuyển ngược vào tâm đĩa và khơng xử lý gì trên đường đi. Khi đã vào tới tâm đĩa, đầu từ lặp lại chu trình xử lý như trên (hình 4.23). Như vậy danh sách các cylinder được hình dung như một danh sách vòng, tức là đầu của danh sách gắn với đuôi của danh sách, sau cylinder 0 sẽ là cylinder 199 (xem ví dụ trên hình dưới). Do vậy, phương pháp này được gọi là phương pháp SCAN quay vịng.
Hình 4.23: Chuyển động và thứ tự xử lý yêu cầu của đầu từ trong điều độ C-SCAN
LOOK và C-LOOK
Phương pháp điều độ LOOK và C-LOOK là biến thể của SCAN và C-SCAN, trong đó thay vì chuyển động tới cylinder trong cùng (gần tâm nhất) hoặc ngoài cùng (gần mép nhất) thì đầu từ chỉ chuyển động tới vị trí của yêu cầu xa nhất về phía trong tâm hoặc phía ngồi mép đĩa. Hình 4.24 minh họa cho điều độ C-LOOk. Như vậy, so với kiểu điều độ SCAN, điều độ LOOK tiết kiệm thời gian hơn do không phải di chuyển qua khoảng cách giữa yêu cầu xa nhất về mỗi hướng và cylinder ngoài cùng về mỗi hướng.
Hình 4.24. Chuyển động của đầu từ và thứ tự xử lý yêu cầu trong điều độ C-LOOK
Lựa chọn phương pháp điều độ phù hợp
Ảnh hưởng của phương pháp điều độ tới tốc độ xử lý vào ra phụ thuộc nhiều vào đặc điểm của hệ thống cụ thể. Với những hệ thống có tần suất vào ra không cao, tại mỗi thời điểm, trong hàng đợi thường chỉ có một yêu cầu vào/ra duy nhất. Khi đó, tất cả cả phương pháp điều độ sẽ cho kết quả giống như FCFS, tức là thực chất khơng điều độ gì cả. Đối với phương pháp cấp phát trong đó mỗi file gồm những khối nằm liền nhau, việc đọc/ghi file tuần tự sẽ tương đương với đọc ghi các khổi nằm liên tiếp, tương tự như SSTF hay SCAN hay LOOK.
Trong trường hợp nói chung, SSTF và LOOK có thể sử dụng như phương pháp điều độ mặc định, hoặc hệ thống có thể sử dụng một vài phương pháp điều độ tùy theo tình huống cụ thể.
Các phương pháp điều độ nói trên chỉ có ý nghĩa đối với đĩa cứng. Thiết bị nhớ SSD, như đã nói ở trên, khơng địi hỏi thời gian định vị trước khi ghi hay đọc, và do vậy các yêu cầu vào/ra được điều độ theo kiểu FCFS.