Trong hệ thống tập tin EXT2, inode là khối xây dựng cơ bản, tất cả các tập tin vàthư mục trong hệ thống tập tin được mô tả bởi một và chỉ inode.. Hình 1.1 cho thấy địnhdạng của một inode
Trang 1MỤC LỤC
MỤC LỤC 1
LỜI MỞ ĐẦU 2
CHƯƠNG I: HỆ THỐNG FILE TRONG LINUX 3
CHƯƠNG II: QUẢN LÝ KHÔNG GIAN NHỚ TỰ DO 10
2.1 Phương pháp quản lý không gian trống 10
2.2 Phương pháp bit vector ( bitmap) 10
CHƯƠNG III : PHƯƠNG PHÁP CẤP PHÁT KHÔNG GIAN CHO FILE 12
Phương pháp cấp phát theo chỉ số ( Index block / Node) 13
CHƯƠNG IV: LẬP LỊCH CHO ĐĨA 18
4.1 Khái niệm Lập lịch 18
4.2 Các thuật toán lập lịch cho đĩa 18
Tài Liệu Tham Khảo 22
Trang 2LỜI MỞ ĐẦU Những năm qua Linux đã thực sự tạo ra một cuộc cánh mạng trong lĩnh vực
máy tính Sự phát triển và những gì chúng mang lại cho máy tính thật đáng kinhngạc : một hệ điều hành đa nhiệm, đa người dùng Linux có thể chạy trên nhiều bộ
vi xử lý khác nhau như : Inter, Dec, Alpha … Nó tương tác tốt với các hệ điềuhành : Apple, Microsoft và Novell
Không phải ngẫu nhiên mà ngành công nghệ thông tin Việt Nam chọn Linux
làm hệ điều hành nền cho các chương trình ứng dụng chủ đạo về kinh tế và quốcphòng Với mã nguồn mở sử dụng Linux an toàn hơn các ứng dụng Windows.Linux đem đến cho chúng ta lợi ích về kinh tế với rất nhiều phần mềm miễn phí
Mã nguồn mở của hệ điều hành và của các chương trình trên Linux là tài liệu vôgiá để chúng ta học hỏi về kỹ thuật lập trình vốn là những tài liệu không được công
bố với các ứng dụng Windows
Khi cần lưu trữ các thông tin, 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…).Trong bài viết này chúng ta sẽ tìmhiểu về một phần quan trọng trong hệ điều hành Linux đó là: quản lý bộ nhớ ngoài
hệ điều hành Linux Bài viết này cho chúng ta hiểu rõ hơn các biện pháp quản lý
và cấp phát không gian nhớ tự do trên đĩa từ, các thuật toán lập lịch cho đĩa từ vànguyên tắc quản lý thông tin trên bộ nhớ ngoài – Hệ file
Trang 3CHƯƠNG I: HỆ THỐNG FILE TRONG LINUX
Tổ chức hệ thống file trong Linux.
Các thông tin lưu trữ ở bộ nhớ ngoài được tổ chức thành các đơn vị lưu trữ gọi làfile(tệp tin) Phân hệ thực hiện chức năng quản lý thông tin bộ nhớ ngoài được gọi
là quản lý hệ file (file management system) Các ứng dụng quản lý, cấp phát haylưu trữ thông tin bộ nhớ ngoài đều phải thông qua hệ quản lý file Để làm rõ hơnchúng ta tìm hiểu về tổ chức bên trong file
Tất cả các tệp được biểu diễn dưới các i-node Mỗi cấu trúc i-node cho thông tin vịtrí của khối của tệp ở thiết bị vật lý nào Nó chứa các con trỏ của các trình thủ tụctrong module hệ thống tệp logic và các trình điều khiển các thao tác đọc/ghi
Trong hệ thống tệp, tệp được biểu diễn bằng một inode Inode cho biết mô tả của
một tệp trên đĩa cùng các thông tin khác như sở hữu tệp, quyền truy nhập, thời gian
truy nhập tệp Khái niệm inode có ý nghĩa là chỉ số của một nút (index node,
trong FS là một lá của cấu trúc cây) Mỗi tệp có một inode duy nhất, nhưng mỗi
inode lại có thể có nhiều tên (tệp) khác nhau Các tên tệp này đều qui chiếu tới
inode đó và mỗi tên như vậy gọi là một liên kết (link) Khi một TT truy nhập một
tệp bằng tên, kernel sẽ phân tích tên trong đường dẫn, tìm tới thư mục chứa tệp,kiểm tra phép truy nhập, tìm inode và trao inode cho TT Khi TT tạo tệp mới,kernel gán cho tệp một inode chưa sử dụng Các inode lưu trong FS trên đĩa, nhưng
khi thao tác tệp, kernel đọc từ đĩa và đưa vào một bảng gọi là in - core inode table (gọi tắt là Inode table) trong bộ nhớ hệ thống.
Trang 4như các thông tin khác.
Super block có các trường sau đây:
- Kích thước của FS
- Tổng số các block còn chưa cấp phát cho tệp (free block) trong FS.
- Danh sách các free block sẵn có trên FS (xem thêm phần cấp phát block đĩa).
- Chỉ số của free block tiếp theo trong danh sách free block
- Kích thước của danh sách inode
- Tổng số các inode chưa cấp phát (free inode) trong FS.
- Danh sách free inode trong FS.
- Chỉ số của free inode tiếp theo trong danh sách free inode
- Các trường khoá (lock) cho free block và các danh sách free inode.
- Cờ (flag) cho biết super block đã có thay đổi.
Phần tiếp theo sẽ nói đến cách sử dụng các trường, các chỉ số và khóa Kernel sẽ
thường xuyên cập nhật super block một khi có sự thay đổi sao cho nó luôn nhất
quán với data trong hệ thống
Inode List, danh cách các inode trong FS Người quản trị xác định kích thước khi
làm cấu hình (cài đặt) hệ thống Kernel qui chiếu các inode bằng chỉ số (index)
trong inode list Có một inode gọi là root inode trong mỗi FS: là inode khởi đầu để vào được FS sau khi thực hiện GHT phép ghép (mount) FS đó vào cây thư mục
gốc
Data blocks, vùng chứa nội dung (dữ liệu) của tệp và dữ liệu quản trị hệ thống (là
các block của tệp thư mục, các block nội dung của một inode) Một khối khi đã cấp
Trang 5cho mỗi tệp thì khối đó chỉ thuộc tệp đó mà thôi
Trong hệ thống tập tin EXT2, inode là khối xây dựng cơ bản, tất cả các tập tin vàthư mục trong hệ thống tập tin được mô tả bởi một và chỉ inode Inodes EXT2 chomỗi nhóm Block được lưu giữ trong bảng inode cùng với một bitmap cho phép hệthống để theo dõi phân bổ và chưa được phân bổ inodes Hình 1.1 cho thấy địnhdạng của một inode EXT2, trong số các thông tin khác, nó bao gồm các lĩnh vựcsau đây:
Đối với EXT2, một inode có thể mô tả một trong những thư mục, tập tin, biểutượng liên kết, khối thiết bị, nhân vật thiết bị hoặc FIFO
Chủ sở hữu thông tin
Người dùng và nhóm định danh của chủ sở hữu của tập tin hoặc thư mục Điều nàycho phép hệ thống tập tin một cách chính xác cho phép các loại quyền truy cập.Kích thước của các tập tin trong byte
Trang 6Hình 1.1 EXT2 I-NODE
Timestamps:
Thời gian mà inode được tạo ra và thời gian cuối cùng mà nó đã được sửa đổiDatablocks Con trỏ tới các khối có chứa các dữ liệu mà inode này được mô tả.Việc đầu tiên 12 là con trỏ đến các khối vật lý có chứa các dữ liệu được mô tả bởiinode này và ba con trỏ qua chứa hàm lượng nhiều hơn và nhiều hơn nữa về mình
Ví dụ, khối gián tiếp đôi con trỏ điểm tại một khối của các con trỏ khối con trỏ đếnkhối dữ liệu Điều này có nghĩa rằng các tập tin nhỏ hơn hoặc bằng 12 khối dữ liệudài nhanh chóng truy cập hơn so với các tập tin lớn hơn
Bạn nên lưu ý rằng inodes EXT2 có thể mô tả các tập tin thiết bị đặc biệt Đâykhông phải là tập tin thực sự nhưng xử lý mà chương trình có thể sử dụng để truycập các thiết bị Tất cả các tập tin thiết bị / dev có để cho phép các chương trình đểtruy cập vào các thiết bị của Linux Ví dụ chương trình gắn kết có như là một đối
số tập tin thiết bị là nó mong muốn gắn kết
Trang 7Số Núi Mount Count và tối đa
Cùng với những cho phép hệ thống để xác định nếu hệ thống tập tin cần được đầy
đủ kiểm tra Số đếm gắn kết được tăng lên mỗi lần hệ thống tập tin đã được lắp vàkhi nó bằng gắn kết tối đa tính thông điệp cảnh báo "gắn kết tối đa đếm đạt tới,chạy e2fsck được khuyến khích "được hiển thị
− Chặn Số Nhóm
− Nhóm Lô số nắm giữ bản sao của các Superblock
− Kích cỡ khối
Trang 8− Kích thước của khối cho hệ thống tập tin trong byte, ví dụ như 1024 byte.
− Khối cho mỗi Nhóm
− Số lượng các khối trong một nhóm Giống như kích thước khối này là cốđịnh khi hệ thống tập tin được tạo ra
Free Blocks: Số lượng các khối trong hệ thống tập tin miễn phí.
Free inodes: Số lượng các inodes miễn phí trong hệ thống tập tin,
Đầu tiên Inode: Đây là số inode của inode đầu tiên trong hệ thống tập tin Inode
đầu tiên trong một EXT2 hệ thống tập tin gốc sẽ là entry thư mục cho thư mục '/'
Descriptor Nhóm EXT2
Mỗi Nhóm Block có một cấu trúc dữ liệu mô tả nó Giống như Superblock, tất cảcác nhóm mô tả cho tất cả của các nhóm khối được nhân đôi trong mỗi NhómBlock trong trường hợp của tập tin hệ thống tham nhũng
Mỗi Descriptor Group chứa các thông tin sau:
Khối Bitmap: Số khối của bitmap phân bổ khối cho tập đoàn này Block Này
được sử dụng trong khối phân bổ và deallocation:
Các mô tả của nhóm được đặt trên khác và họ cùng nhau thực hiện các mô tả nhómbảng Mỗi Nhóm Blocks chứa toàn bộ bảng mô tả nhóm sau bản sao củaSuperblock Chỉ có bản sao đầu tiên (ở Block Group 0) là thực sự được sử dụng
Trang 9bởi hệ thống tập tin EXT2 Các bản sao khác đang có, giống như bản sao củaSuperblock, trong trường hợp các bản sao chính là bị hỏng.
Trang 10CHƯƠNG II: QUẢN LÝ KHÔNG GIAN NHỚ TỰ DO
2.1 Phương pháp quản lý không gian trống
Vì không gian trống là giới hạn nên chúng ta cần dùng lại không gian từ các
tập tin bị xoá cho các tập tin mới nếu có thể Để giữ vết của không gian đĩa trống,
hệ thống duy trì một danh sách không gian trống Danh sách không gian trống ghilại tất cả khối đĩa trống Để tạo tập tin, chúng ta tìm trong danh sách không giantrống lượng không gian được yêu cầu và cấp phát không gian đó tới tập tin mới.Sau đó, không gian này được xoá từ danh sách không gian trống Khi một tập tin bịxoá, không gian đĩa của nó được thêm vào danh sách không gian trống Mặc dù têncủa nó là danh sách nhưng danh sách không gian trống có thể không được cài nhưmột danh sách
2.2 Phương pháp bit vector ( bitmap)
Không gian đĩa được chia thành các khối (Block) và đánh số từ 0 đến max Ví dụ :Đĩa mềm 1,44M , 2 mặt, 80 track/1 mặt , 18 sector/1 track được đánh số như sau :
Head 0 , track 0 , sector 1 Block 0
……… … Head 0 , track 0 , sector 19 Block 18 Head 1, track 0 , sector 1 Block 19
Trang 11
Hình 1.2 Quản lý không gian đĩa
Ví dụ : Cho không gian đĩa từ hình 1.2 các khối
2,3,4,5,8,9,10,11,12,13,17,18,25,26,27 là các khối đĩa tự do Khi các bitmap quản
lý không gian nhớ tự do bởi địa chỉ :
11000011000000111001111110001111…
Phương pháp bitmap có ưu điểm là cài đặt đơn giản, dễ quản lý, dễ tìm kiếmnhững khối đĩa tự do liên tục trên đĩa nhưng tốn không gian dành cho bitmap ( mỗikhối đĩa sẽ tốn một bit )
Trang 12CHƯƠNG III : PHƯƠNG PHÁP CẤP PHÁT KHÔNG GIAN
CHO FILE
Tính tự nhiên của truy xuất trực tiếp đĩa cho phép chúng ta khả năng linhhoạt trong việc cài đặt tập tin Trong hầu hết mọi trường hợp, nhiều tập tin sẽ đượclưu trên cùng đĩa Vấn đề chính là không gian cấp phát tới các tập tin này như thếnào để mà không gian đĩa được sử dụng hiệu quả và các tập tin có thể được truyxuất nhanh chóng Ba phương pháp quan trọng cho việc cấp phát không gian đĩađược sử dụng rộng rãi: cấp phát kề, liên kết và chỉ mục Mỗi phương pháp có ưu vànhược điểm Một số hệ thống hỗ trợ cả ba Thông dụng hơn, một hệ thống sẽ dùngmột phương pháp cụ thể cho tất cả tập tin Linux sử dụng phương pháp cấp pháttheo chỉ số Index Để làm rõ hơn chúng ta tìm hiểu về cơ chế quản lý đĩa
Sơ bộ về tổ chức đĩa:
Thông tin được đọc/ghi theo từng khối sector
Nhóm các sector thành block hay cluster (khối)
Trên đĩa: 1 file gồm 1 tập các khối HDH chịu trách nhiệmcấp phátcác khối cho file:
Không gian trên đĩa phải được cấp phát cho file
Cần theo dõi không gian trống sẵn sàng cho việc cấp phát
Một số vấn đề:
Không gian tối đa yêu cầu cấp phát cho file 1 lần là bao nhiêu?
Không gian cấp phát cho file gọi là phần (portion) Kích thước phầnnhư thế nào ?
Theo dõi các phần được gán cho 1 file
Cấp phát trước và cấp phát động :
Trang 13 Cấp phát trước : Phải xác định kích thước của một file lúc tạo , khóxác định và gây lãng phí
Cấp phát động : Cấp phát một file theo các thành phần như mongmuốn
Với các phần có kích thước thay đổi, sử dụng một số chiến lược:
Phù hợp đầu tiên: chọn nhóm các khối liên tục chưa sử dụng đầu tiêncókích thước phù hợp
Phù hợp nhất: chọn nhóm chưa sử dụng nhỏ nhất có kích thước phùhợp
Phù hợp gần nhất: chọn nhóm có kích thước phù hợp, chưa sử dụngcầnvới cấp phát cho file đó lần trước nhất
Phương pháp cấp phát theo chỉ số ( Index block / Node)
Cấp phát liên kết giải quyết việc phân mãnh ngoài và vấn đề khai báo kích thước của cấp phát kề Tuy nhiên, cấp phát liên kết không hỗ trợ truy xuất trực tiếp hiệu quả vì các con trỏ chỉ tới các khối được phân tán với chính các khối đó qua đĩa và
cần được lấy lại trong thứ tự Cấp phát được lập chỉ mục giải quyết vấn đề này
bằng cách mang tất cả con trỏ vào một vị trí: khối chỉ mục (index block).Mỗi tập
Trang 14tin có khối chỉ mục của chính nó, khối này là một mảng các địa chỉ khối đĩa Mục
từ thứ i trong khối chỉ mục chỉ tới khối i của tập tin Thư mục chứa địa chỉ của khối chỉ mục (như hình X-8) Để đọc khối i, chúng ta dùng con trỏ trong mục từ
khối chỉ mục để tìm và đọc khối mong muốn Cơ chế này tương tự như cơ chế
phân trang
Hình 2.1 Cấp phát không gian đĩa được lập chỉ mục
Khi một tập tin được tạo, tất cả con trỏ trong khối chỉ mục được đặt tới nil.Khi khối thứ i được viết đầu tiên, khối được chứa từ bộ quản lý không gian trống
và địa chỉ của nó được đặt trong mục từ khối chỉ mục Cấp phát được lập chỉ mục
hỗ trợ truy xuất trực tiếp, không gặp phải sự phân mãnh ngoài vì bất cứ khối trốngtrên đĩa có thể đáp ứng yêu cầu thêm không gian Cấp phát được lập chỉ mục gặpphải sự lãng phí không gian Chi phí con trỏ của khối chỉ mục thường lớn hơn chi
Trang 15phí con trỏ của cấp phát liên kết Xét trường hợp thông thường trong đó chúng ta
có một tập tin với chỉ một hoặc hai khối Với cấp phát liên kết, chúng ta mất khônggian của chỉ một con trỏ trên khối (một hay hai con trỏ) Với cấp phát được lập chỉmục, toàn bộ khối chỉ mục phải được cấp phát thậm chí nếu một hay hai con trỏ làkhác nil
Điểm này sinh ra câu hỏi khối chỉ mục nên lớn bao nhiêu? Mỗi tập tin phải cómộtkhối chỉ mục để mà chúng ta muốn khối chỉ mục nhỏ nhất có thể Tuy nhiên,nếukhối chỉ mục quá nhỏ nó không thể quản lý đủ các con trỏ cho một tập tin lớn
và một cơ chế sẽ phải sẳn có để giải quyết vấn đề này:
• Cơ chế liên kết (linked scheme): một khối chỉ mục thường là một
khối đĩa Do đó, nó có thể được đọc và viết trực tiếp bởi chính nó Đểcho phép đối với các tập tin lớn, chúng ta có thể liên kết nhiều khốichỉ mục với nhau Thí dụ, một khối chỉ mục có thể chứa một headernhỏ cho tên tập tin và một tập hợp của các địa chỉ 100 khối đĩa đầutiên Địa chỉ tiếp theo (từ cuối cùng trong khối chỉ mục) là nil (đối vớimột tập tin nhỏ) hay một con trỏ tới khối chỉ mục khác (cho một tậptin lớn)
• Chỉ mục nhiều cấp (multilevel index): một biến dạng của biểu diễn
liên kết là dùng khối chỉ mục cấp 1 để chỉ tới khối chỉ mục cấp 2.Khối cấpchỉ tới các khối tập tin Để truy xuất một khối, hệ điều hànhdùng chỉ mục cấp 1 để tìm một khối chỉ mục cấp 2 và khối đó tìmkhối dữ liệu mong muốn Tiếp cận này có thể được tiếp tục tới cấp 3hay cấp 4, tuỳ thuộc và kích thước tập tin lớn nhất được mong muốn.Với khối có kích thước 4,096 bytes, chúng ta có thể lưu 1,024 con trỏ
4 bytes trong một khối chỉ mục Chỉ mục hai cấp cho phép 1,048,576khối dữ liệu, cho phép tập tin có kích thước tới 4G
• Cơ chế kết hợp (combined scheme): một biến dạng khác được dùng
Trang 16trong UFS là giữ 15 con trỏ đầu tiên của khối chỉ mục trong inode củatập tin 12 con trỏ đầu tiên của 15 con trỏ này chỉ tới khối trực tiếp(direct blocks); nghĩa là chúng chứa các địa chỉ của khối mà chứa dữliệu của tập tin Do đó, dữ liệu đối với các tập tin nhỏ (không lớn hơn
12 khối) không cần một khối chỉ mục riêng Nếu kích thước khối là 4
KB, thì tới 48 KB dữ liệu có thể truy xuất trực tiếp 3 con trỏ tiếp theochỉ tới các khối gián tiếp(indirect blocks) Con trỏ khối gián tiếp thứnhất là địa chỉ của khối gián tiếp đơn (single indirect blocks) Khốigián tiếp đơn là một khối chỉ mục không chứa dữ liệu nhưng chứa địachỉ của các khối chứa dữ liệu Sau đó, có con trỏ khối gián tiếp đôi(double indirect block) chứa địa chỉ của một khối mà khối này chứađịa chỉ của các khối chứa con trỏ chỉ tới khối dữ liệu thật sự Con trỏcuối cùng chứa chứa địa chỉ của khối gián tiếp ba (triple indirectblock) Với phương pháp này, số khối có thể được cấp phát tới mộttập tin vượt quá lượng không gian có thể đánh địa chỉ bởi các con trỏtập tin bytes hay 4 GB Nhiều cài đặt LINUX gồm Solaris và AIX củaIBM hỗ trợ tới 64 bit con trỏ tập tin Các con trỏ có kích thước nàycho phép các tập tin và hệ thống tập tin có kích thước tới terabytes.Một inode được hiển thị trong hình 2.2 :