1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hệ điều hành linux nghiên cứu và triển khai trong hoạt động của khoa công nghệ (ĐHQGHN) và ở việt nam

288 127 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 288
Dung lượng 16,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập lích trong Linux dựa trên kỹ thuật chia sẻ thời gian, nghĩa là thời gian của CPU được chia thanh các phần rất nho gọi là lượng tử time slice và trao mỗi lượng tử thời gian này cho từ

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NÔI

HÊ ĐIỂU HÀNH LINUX: NGHIẼN c ứ u VÀ TRIẼN KHAI TRONG HOẠT ĐỘNG CỦA KHOA CÔNG NGHỆ (ĐHQGHN)

VÀ ớ VIỆT NAM

(LINUX OPERATING SYSTEM: RESEARCI IS AND REALIZATION IN

Đ ềtằ ì nghiên cứu kỉĩoa hoc cấp Đ ai hoc Quốc gia Hà N ôi

M Ã SỐ : QC 01-05 CHỦ TR Ì ĐÉ TÀI: TS HÀ Q U A N G T H Ụ Y

HA NỘI-2002

Trang 2

ĐẢ.i H JC QUỐC GIA HA NỘI I

TRONG HOẠT ĐỘNG CƯA KHOA CÔNG NGHỆ (ĐHQGHN)

VÀ ở VIỆT NAM (LINUX OPERATING SYSTEM: RESEARCHS AND REALIZATION IN FACULTY OF TECHNOLOGY (VNUH) AND IN VIETNAM)

ĐềiẦi nghiên cứu khoa hoc cấp Đ ai hoc Quốc gia Hà N ội

MÃ SỐ: QC 01-05 CHỦ TR Ì ĐỂ TÀI: TS HÀ Q UAN G TH Ụ Y

Đ A I H Ọ C Q U Ố C G IA HẢ NÓi TRUNG TẨM THÔNG TIN THƯ Vjifo

V T ỉ i q y

HÀ NOI-2002

Trang 3

ĐAI HỌC QUỐC GIA HÀ NỘI CỘNG HOA X A H Ị CHỦ NGHĨA V IỆT NAM

ĐỘC LẬ P ĨỰ D O HẠNH PHÚC

T Ó M T Ắ T N Ộ I D U N G V À KẾT Q U Ả Đ Ề T À I N G H I Ê N c ử u K H O A H Ọ C CẤ P

Đ Ạ I H Ọ C Q U Ố C G IA H À N Ộ I

1 Tên đê tài

I ỉi: điêu hành Linux: Nghiên cứu và triển khai trong hoat đông

của khoa Công nghệ (ĐHQGHN) và ỏ Việt Nam l.M ẵ số : QC-01-05

* Thời gian nghiên cứư. 12 thiêng

l ư tháng 4/2001 tới tháng 3 /2 0 0 2

3 Chủ nhiêm đê tài: Hả Q u an g ì h u y

I lọc vị: TS

Đơn vị cồng tác: Bộ m ó n Cac hê thống thông tin

4 Can bô phối huo

3 cử n h â n Bùi Q u an g Minh Khoa Công n ghệ (hợp dồng)

4 C ư n h â n Phan Xuân I liếu Khoa Cồng n ghệ (hợp dồng)

7 ITlí? N g u y ễ n Thị Thu Phương Học viện Bưu chính viễn thông

9 ThS N g u y ễ n Thị Vân Công ty diện thoại d i đ ộ n g V inaphone

IU cử n h â n N g u y ễ n Trí T h anh Khoa Cồng n ghệ (hợp đồng)

11 cử n h â n N g u y ễ n Ngọc M inh Khoa Công n ghệ (hợp đồng)

5 Tóm tắt nn' dung chinh

• Muc tiêu của đê tài

- N â n g cấp m ộ t bước việc giảng d ạ y các giáo trìn h v ề n g u y ê n ly các hệ diều h àn h , dặc biệt về nội d u n g các hệ điều h à n h tiên tiến th ô n g q ua các báo

Trang 4

cáo n g h iê n cứu to ầ n diện về hệ điều h à n h Linux và các giáo trình giảng d ạ y trong vầ n g o ai khoa Công nghệ,

- Khảo sát và cải tiến m ột số m ô đ u n trong và ngoải n h â n của hệ điều

h à n h Linux, đặc biệt là nội d u n g vể da n g o n ngữ,

- KhóO sát Cat ư ng d u n g CSDL trong Linux bao h à m m ôi trư ờ n g m ạng,

- C ài đ ặ + m ộ t hệ thống PC-cluster hỗ trợ cho các n ghiên cứu về tính toán song song

- C h u â n bí khả n ă n g tham gia vào các d ự án liên kết q uôc tê liên q uan đến m ôi trư ờ n g hệ d iề u h à n h 1 inux

• N ơi dung nghiên cứu

- Nghiên cưu các tầi liệu liên q uan trên hệ thỏng tài liêu in ấn và trên Internet về n h ân , v ề ứ ng d ụ n g trên Linux,

- Khảo sát các m ô đ u n ừ o n g n h â n của Linux trong h a i hệ thố n g con: Hệ thông con d iề u khiên File và hệ thỗng con điều khiên qud trình (lập lịch, q u ả n

lý bộ nhớ, liên quá trình và m ạng) tiến tói làm chủ m ộ t sô" m ô d u n theo đ ịnh

h ư ơ n g ư ng dụ n g ,

- N g h iên cưu và cài đ ạ t cac nội d u n g về đa n g ô n n g ữ cud Linux: b ảng

mã U nicode, font Vd bọ gõ trong Linux,

- Khảo sát và thử nghiệm các ưng d ụ n g trên Linux (đậc biệt là các hệ quản trị CSDL, m ạ n g và an toàn thông tin),

- k h ở i tạo m ột hệ PC-cluster và ứ ng d ụ n p m ôi trư ờ n g tính to á n songsong

ó K ết quả đệt đươc

• sàn phẩm khoa học

- Bôn (4) b áo cáo khoa học tại H ội thầo p h ạ m vi toan quốc "Các lm h vưc hiện đ ại của Công n ghệ Thông tin" được tổ chức tại Hải P hòng (6-8/6 /2 0 0 1 ),

- Một (1) báo cáo khoa học tại Hội thảo Quốc t ế (Conference on East-

A sian l a n g u a g e Processing a n d Internet Inform atio n T echnology 2002 (EAPIỈT 2002), H anoi, Vietnam, Ja n u a ry 8-11, 2002),

- I lai (2) b á o cáo khoa học cấp khoa Công nghệ: m ộ t (1) v ề PC-cluster,

m ộ t (1) về khai p há lu ậ t kết hợp

• Sẩn phẩm công nghệ/kha năng ưng dwig thực tiễn

- Một (1) san p h â m h o à n chỉnh về bộ gõ b à n p h ím tiếng Việt trên Linux - tên gọi G V N K ey (Tác giả Bui Quang Minh, T rần Quốc Long) Đã p h ò biến theo Lnh (h ầ n ma n g u ồ n m ở {(ỊNU) vả đư ợc công n h ận

- Một m ô đ u n thử nghiệm khai thác hiệu q uả chức n ă n g đa lu ồ n g trong [ in u x (Khoa lu ậ n tốt n g h iệ p Phan Xuân Hiếu),

Trang 5

- M ột m ô đ u n th ử n g h iệ m bô sung chức n ăn g UNDELET ED trong Linux (Khoa lu ậ n tốt n g h iệ p Đỗ Đức Huy),

- Khơi tạo hệ thông PC-cluster tại Bô m ôn Các hệ thống thông tin Hệ thông dã d ư ợ c k hảo sát đ á n h giá sơ bộ về h iệ u n ăng (tốc độ và thông lượng) và hiện đ a n g tiếp tục thử ngh iệ m khai thác tính to á n song song d ố i v ớ i m ộ t sô" lớp

>mg d u n g thích hợp

- Hệ thố n g PC-clusster cùng hai (2j máy tinh đã kết n ối m ạ n g là kết quả

v ật châ't d á n g ke của d ề tầi bô sung vào hệ thống thiết bị của Bộ m ôn và Khoa

• Săn phàm đào tạo

- Có b ảy (7) khóa luạn tôt nghiệp d ại học đã bảo vệ th a n h công v ớ i nội

d u n g từ sự thực hiện dề tài (Bùi Q u an g Minh - K42T, Phan Xuân H iếu - K42C,

Đỗ Đức H u y - K42C, N g u y ễn T h an h Iru n g - DLĐĐ, N g u y ễ n Ván M ạnh -

DL ĐĐ, T rần N gọc H ư ớ n g - DI ĐĐ, N g u y ễ n Q uang Lịch - DLHP)

Có m ộ t (1) khóa luận tốt ng h iệ p d ại học đẫ bước đ ầ u thực hiện với nội

d u n g liên q u a n d ê n đề tài (Sinh viên Đỗ Việt H ù n g - K43C)

- H ai th a n h viên th a m gia dề tải dd bao vệ thaidi công luận v ă n cao học

từ kết quả cua việc tnưc hiện dề tài (Trẩn Vũ lả; N g u y ề n Thị r h u Phương),

- Bien soạn m ộ t (1) tập bài giảng về hẹ d iề u h à n h UNIX-Linux giảng d ạy cho sinh viến lớp Cao đ ã n g K44C,

- Các th à n h vièn cua dề tải tham gia biên soạn m ộ t (1) tài liệu th a m khảo

về Hệ đ iề u h à n h Linux da đư ợ c N hà xuất b ả n giáo dục ân h à n h th á n g 7-2001 Đang tiến h à n h biên soạn m ộ t tài liệu khác về Linux

- Duy trì m ộ t (1) xem ine khoa học sinh h o ạ t t u ầ n / l ầ n về Data Mining,

hệ d iề u h a n h Linux và PC-cluster với k h o ản g 10 cán bộ và sinh viên thư ờ ng xuyên th a m gia,

- H ai th à n h viên th a m gia đề tài đã có kết quả n g h iê n cứu khoa học sinh viên với n ội d u n g thuộc dề tài (Bùi Quang Minh + Trẳn Quốc Long - giải nhì VIFOTEX to à n quốc, Phan Xuân Hỉêu - giải câp khoa Công nghệ),

- Một (1) de tài nghiên cứu khoa học sinh viên về PC-cluster liên q u an đến đề tài đã bước đ ầ u đư ợc trién khai từ đ ầ u n ă m 2002

Các kết quả klidC

- Phát triển hiệ u quả q u a n hệ dối n g o ạ i với Dự á n liên kết quốc tế Paiallel C o m p u tin g S im u ld n o n a n d Parallel A lgorithm s for Data Mining" củaViện Khoa học va C ông n ghệ tiên tiến N h ậ t Bản (Japan A d v a n c e d Institute of Science a n d Technology - JAIS1) do GS S u s u m u H origuchi (JAIST) chủ trì Duy trì và p h á t triển m ối q u an hệ với GS [ ỉồ Tu Báo (J /UST), RGS N g u y ễn

1 lung Sơn (Đại học Tông h ự p Wdrsaw) Tư m ối q u a n hệ q uốc t ế của d ể tai dã

có m ộ t (1) th à n h viên làm NCS tại JAIS I , m ộ t (1) th a n h viên đi thực tập khoa

Trang 6

học tại JAIST thời gian 7 thang, m ộ t (1) th a n h viên đi trao đổi khoa học tại JAIST thời gian hai tuần.

- 'ITiu thập dư ợc m ộ t khối lượng đ á n g kê các tài liệu khoa học có giá trị

về các lĩnh vực n ghién LLÍU n ói trên (Hệ điểu lìả n h Linux, P C -đuster, Tính toán

song song, Data M ining .) từ các n g u ồ n khac n h au , đặc biệt từ Internet

7 Tình hình k in h p h í của đê tài

Tỏng kinh ph:: 40.000.000 d trong 12 th á n g (4/2001 - 3/2002)

n o Mua v ậ t tư, sách, tài liệu cho công tác chuyên Tĩiôn

và sao chụp tải liệu

Xác n hân của Khoa Công nghê

Trang 7

A BSTRA CT OF PROJECT

1 Project Title:

LINUX OPERATING SYSTFM: RESEARCHS AND REALIZATION IN

FACULTY OF TECHNOLOGY (VNUH) AND IN VIETNAM

Project p erio d 12 m o n th s (April 2001 - M arch 2002)

3 Project orainator: PhD H a Q u a n g Thuy

D e p a rtm e n t of Informations Systems, Faculty of Technology

4 Contributors:

2 PhD N g u y ễ n Hải C h âu Institute of Physic a n d FOT

7 MS N g u y ễ n Thị r h u Phương Institute of Post a n d C om m unications

5 Objectives and research contents

This w o rk considers on pro b lem s to realization a n d application Linux

o p eratin g System in Faculty of Technology (VNUH) a n d in Vietnam

Som e m a in concepts in this w ork as follow:

■ Analysis the s ch ed u le r and È,xt2 file system in Linux Investigating the

m u lti-lan g u ag es attribute of I inux to solve the p ro b le m of Vietnamese processing

Trang 8

b Somt main research results

- Four scientific reports in the N ational Conference "Some a d v a n c e d fields

m Inform ation Technology", H ai Phong, June 6-8, 2001

- O ne a n o th e r re p o rt in the International Conference on East-Asian

L anguage Processing a n d Internet Inform ation Technology 2002 (EAPIIT 2002),

H anoi, V ietnam, J anuary 8-11, 2002,

- The p o p u la r GVNKpy softw are in the LinuxVN o p eratin g system in idea

of o p e n source This softw are h as got a VIFOTEC second prize of stu d en ts in the

y ear of 2001

- i h e results of education is tw o c o m p u te r science thesis at m aster level

h ave been c o m p lete d by N g u y e n Thi rhu Phuong, Tran Vù Ha and seven BA

thesis

1 0 n e w eek ly scientific sem in ar on "Data Mining, Linux O p eratin g System

a n d PC-cluster"

- Set u p som e international co-operations w ith some scientific researching

g ro u p s in Japan, Poland to exchange d o cu m en ts dnd reseachers

Trang 9

M Ụ C LỤ C

Phu ỉuc Danh m r : tài liệu khoa hi k ỹ thuật kết quả của đế tài 13

Trang 10

BÁO C Á O T ổ N G Q U A N VẾ N Ộ I D U N G V A KẾT Q U Ả T H ự C H IỆ N ĐỂ TÀI

LỜI M Ở Đ Ầ U

Được t i n us T ovarlđs khởi xướng từ những n ăm d ầ u th ậ p kỷ 1990, hệ diều

h à n h Linux tro th à n h m ột trong nhữ ng đề tài nghiên cứu, triển khai m a n g tính thời sự trong hơn m ư ời n ă m trở lại dáy I ính hữ u d ụ n g cua I ìnux dã dư ợc khẳng

d ịn h bằng việc th à n h lập, tồn tại Vd p h át triẽn của h à n g chục cóng ty p h á t h à n h Linux trên thễ giới, trong số dó co thê kẻ tới C alđera o p e n Linux,Corel Linux,D ebian G N U /L in u x ,L in u x M andrake, Red H at Linux, Red Flag Linux, Slackvvare Linux, SuSE Linux, Turbo] inux Trong thời gian qua, việc nghiên cứu, ứng d ụ n g Linux n h ằ m khdi thác n h ữ n g th ế m ạ n h cua hệ điều h à n h này (dặc biệt trong việc triển khai Dự dn p h á t triển m áy tính thương hiệu Việt N am kèm theo m ộ t hệ d iề u h à n h m a n g u ồ n mở) dă vả d a n g p hdt triển không ngừng Dự ớn xây dựng hệ điều h à n h LinuxVN do Tổng công ty Điện tử - Tin học Việt N a m triển khai trong giai d o ạn năm 2000 - đ ầ u n ă m 2001 la m ột trong

nh ữ n g h o ạ t d ộ n g d iê n h ìn h của xu thế" dó

Phát h u v n h ữ n g kết quả d ạt dược từ việc tham gia triển khai Dự án

I inuxVJSi, n h ằ m góp p h ần phò biến hệ điều h à n h Linux d ối với chuyên viên CNTT đư ự c đ à o tạo tu khoa Cống nghệ, đề tài QC-01 -05 dư ợc tiến h a n h v ớ i ba nội d u n g Lhiiữi dưự c đ ịn h hướng: Khảo sat các th à n h p h ầ n trong n h â n củaLinux, Triển khai hệ thòng tính toan song song PC-cluster trên nền Linux, ứ n g

d ụ n g tính toan song song trong Data Mining Một nội d u n g kh ố n g kem p hần

q u a n trọng của đ ề tài là n âng cấp các giáo trình về hệ điều h anh, bô su n g cho sinh viên các kiến thức ch uyên sâu về hệ điều h à n h Linux

NỘI DUNG NGHIỀN c ứ u CHÍNH

1 Khảo sát hê điểu hành Linux và đê xuất phát triển

H ai hệ thỗng con của n h â n dược q u a n tâm khi triển khai đề tài lá Bộ lập lịch và H ệ thống File trong Linux

Bộ lặp lịch cùng các cấu trúc d ữ liệu (khối d iề u khiển) tương u n g với các

th u ậ t toan trong lập lịch (FCFS, RR và điển h ìn h là SJF cùng dộ ư u tiên) đa được khao sát I inh da chương trình với việc sử d u n g khái niệm luồng di dói với khái niệm quá trình đã d ư ợ c p h â n tích Qua p h â n tích có thê k h à n g d ịn h răng Linux lả

m ột trong n h ữ n g hệ điểu h à n h cho p h ép khai thác tốt h iệ u n ă n g CPU Tuy nhiên, nghiên cứu của dể tài (xem Phan Xuán Hiếu, trang 16-26) cho thaV m ộ t số tồn tại trong bộ lập lịch của L inux: kém hiệu quả nhiều khi số tiến trình d ồ n g thời quá

Trang 11

lơn, việc tăng dô ưu tiên dộ n g cho niệu ứ ng p h ụ và h ạn ch ế trong c h ế đ ộ thời gian thực.

Linux thích h ợ p với da d ạ n g kiểu ] lê thống File Thông qua việc khảo sát

hp thống File Ẽxt2 với việc tổ chưc nhiều n h ó m điều khiển khác n h a u d ể thẩy được việc I inux sử dụ n g hệ thông File d a p ưng dược yêu cầu vừa d ả m bao tính

an toàn thông tin cao lại vừa cho p h ep thực hiện n h a n h các thao tac với File

69), hệ thống File Ext2 với chiến lước cấp p h á t trước dưa đ ến các thao tác với File

nh anh, tuv nhiên việc su d ụ n g hai chê độ ghi trễ va ghi d ồ n g bộ cho đ ồ n g thdi

nh ư n g ưu, k huyét diêm H ớn nưa, đè tài cũng dề xuất các giải p h á p cho việc khôi

p hục File bị xoá rù n g móđuTi chướng trình chạy thử đã dư ợc kiểm nghiệm

Linux lả m ộ t hệ diều h n h da ngôn n g ữ với việc cho p h é p tương thích với

h ầ u h ết cac ngôn n g u tiên th ế giới Ván dể xử ly tièng Việt dược d ặ t ra đối với mỗi hệ đ iế u h a n h dược sử d ụ n g , bao gồm ca I inux, đăc biét là viêc cài d ặ t bộ gõ bàn p h im T hô n g qua việc khảo sat, đ á n h giá n giải p h á p về thiết k ế b ộ gõ ban phím , dê tài {xem Bui Quang Minh và Trần Quốc Long; trang 70-8iỉ) đã tích hợp hai giải p h á p tương ứng dối với m ỗi ché độ text và đồ họa trong bộ gõ bàn phím với tên gọi GVN K ey Bộ gõ n à y dư ợc phô biến theo tinh thần GNU và la một thảnh p h ầ n trong hệ diều h à n h I ìnuxVN

Song song với các nghiên cưu trên dây, để tầi cũng đã q u a n tâm đến trình

q uan ly bộ n h ó và v â n đ ề truyền thông trong 1 inux và n h ạn dược m ột số kết quả bước d ầ u dã đư ợc trình bảy trong sem in ar song chưa tỏng h ợ p trong th a n h báo cáo kỹ thu ậ t của dề tài

2 Hê điêu hành Linux và tinh toán song song

Sự tiến bộ khừng n g ừ n g cua công nghệ p h ầ n cứng (dinh luật Moore) kéo theo sự tăng trư ơ n g kh õ n g thua kém n h u cáu của con ngưỏi trong xử lý thong tin Viêc kết nối các PC th à n h m ạ n g là tiền dề của việc p h á t tríẻn m ột môi trường tính toán song song trên m ạ n g các PC, đ ó là PC-cluster

'lh ô n g qua việc triển khai việc thiết lập các PC-cluster tại Bộ m ô n Các hệ thống thông tin (xem Phan Xuân Hiếu và Bùi Quang Minh, ừang 82-102), các

n ghien cứu trong dế tài cho thấy rằng việc thiết lập m ộ t PC-cluster là k h ô n g khó, tuy nhiên việc khdi thác chú n g là cả m ột qua trình kh ô n g d o n giản Thông qua các

n ghiên cứu về hai hệ thống PC-cluster đ iên h ìn h là PVM (xem Bùi Quang Minh, trang 103-143) va MP1 [xem Hà Quang Thụy và Phan Xuân Hiếu, trang 144-200)

cung vơi các k hẳo sát dáĩiÉi gia thử nghiệm , dề tài chỉ ra cách thức sử d ụ n g các hàm trong các thư viện của PC-cluster hn trọ' việc lập trình tinh toán song song trên n g ồ n n g ử c Các th ử nghiệm cho thấy tính q u a n trọng của th u ậ t toán tính toán song song Việc cực tiêu công việc truyền thông dối với các quá trìn h song

Trang 12

song là m ộ t trong TĨ1UC tiêu q uan trọng khi thiết k ế các th uật toan song song chạv trên PC-cluster Mặt khdL, nghiên cứu cho tháy sự cân b ằng tải trong hệ thống lá rât q u a n trọng vâ m ộ t ư o n g nh ữ n g thể hiện của điều đó trong ưng d ụ n g là số CPU lôgic nên là bội cua số CPU v ậ t lý.

Các nghiên cứu trong dề tài cho đ ịn h h ư ớ n g la việc tăng thông lưrin"

m ạ n g (với m ạ n g LAN thì diều đó đoi hỏi m ột chi p hí không cao) có thê’ d ạ t dược

độ táng tôc đdng kê c ua hệ thống

3 Tính toán song song và Data M ining

Đề tải có q u an hệ m ậ t thiết với Lhr án liên kết nghiên cuu quốc tế

"Massively Parallel Sim ulation and Parallel Algorithms for Data Mining" của Viện khoa học và Công nghệ cao N h ậ t Ban (Japan A dvanced Institute of Science dnd T echnology - JA1ST) vì v ậy việc khảo sát ư ng d ụ n g môi trương tính toán song song ừ ê n nền PC-cluster cho n h ữ n g ưng đ ụ n ạ Data Mining song song la m ộ t nội d u n g quan trọng trong đề tài N h ư dã k h ắ n g d in h trong

p h ầ n trên về y nghĩa to lớn của tlaiạt toán song song, dê tải chú ý dến các mó

kì oil Data Mining song song với các tliuật toán song song

Một trong kỹ th u ậ t khai phá d ữ liệu đien h ìn h hiện nay la khai phá luật kết hợp Luật kết h ợ p dưưc khai phd theo hai dăc trưng q uan trọng là độ hỗ trợ (tính m ạ n h của luặt) và dộ tin cậy (tính tin cậy của luàt) Một lẽ tự nhiên lã cán chú ý việc khai phá luật kết help với dộ hỗ trợ Vd dỏ tin cậy lớn Tuy nhién, trong nh iề u ứ ng d u ng, luật kết h ợ p với dộ hỗ trọ’ Vri độ tin cậy nhỏ không phải

là k h ô n g có ý nghĩa Đề tài {xem Đo Văn Tluuih, Phạm Thọ Hoàn, Phan Xuân Hiếu, trang 215-224] dề xuất mô h ìn h cho việc linh h o ạ t klidi phá luật kêt hợ p với dộ hỗ trọ' khác n h a u mả điều dó có m ộ t p h ạ m vi ứng d ụ n g n h ấ t dịnh

N g a y từ khi được Pavvlak và M azek đễ xướng, tạp thô cho cach tiếp cận khá th u ậ n lợi vẽ mô h ìn h hóa các thông tin không d ay d ủ trong hệ thông tin Một tro 11 ị n h ữ n g th u ậ n lợi trong cách tiếp cận tập thô lầ việc hỗ trd tính toán song song Dựa trên mô h ìn h tập thô, dề tài (xem Trần Vũ Hà, Phan Xuân Hiêu, Bùi Quang Minh, Hrt Quang Thụy, trang 201-214) đề xuất m ộ t mó h ìn h khai phá song song luật kết h ợ p theo cách tiếp cận tập thô

Một đ ịn h h ư ớ n g q u a n trọng của dề tải trong thời gian tói lầ khai phá d ữ liệu trong các cơ so d ữ liệu da p h ư ơ n g tiện( m à trước m ắ t là sở diữ liệu Full- text

Cải tiến n ô i dung giảng day vê H ê điêu hành

Một trong n h ữ n g m ục tiẽu của dề tài là p h ồ biến n h ữ n g nội d u n g về hệ

đ iề u h a n h Linux tới các sinh viên khoa Cóng nghệ; n h ữ n g ch uyên viên CNTT tron tươn^ lai Bằng việc khảo sát sáu cac n ộĩ d u n g hộ thổng bên trong của

1

Trang 13

Linux, các cán bộ th a m gia dề tải đã đưa những nội d u n g dó tru thfinhnh cng kiến thức cho ngư ời học b ă n g việc cải tiến nội d u n g giảng d ạy chuyên đề "Hệ điểu

hd n h UNIX-Linux" đối với các lớp trong khoa Công nghệ Điẻu đó được thể hiện thùng qua việc bô sung n h ữ n g n ội đu n g m ỏi về Linux (xem Ha Quang Thụy, ữang 227-24Ồ) v à o giáo trình tương ứng và nội d u n g thực h a n h trên lớp tương ứng của ch uyên đề này

KẾT LU Ậ N

N ội d u n g của dề tài đ a n g là van dề thui sự và n h ậ n được sự quan tam của nhiều nha khoa học vả công nghê trên thế giới vá trong nước Đề tài đã thực hiện

n h ữ n g n ội d u n g n ghiên cứu sau dày:

- Khảo sát các th â n h p han chinh trong n hân l inux: Bộ lập lịch, Hệ thống File vả v ân dề da ng ô n n g ữ trong I inux Đưa ra dược m ột số d á n h giá về các thành p h ầ n n à y vá m ộ t số dề xuâ tb ư ớ c đ a u bô sung dối VỚI) mux, dặc biệt là ván

đề xu lý tiếng Việt trên Linux

- Thiết lập m ột hệ thống m áy tính và thử nghiệm PC-cluster cho tính toán spr»g song trên nền hệ diều h à n h Linux,

- N g h iên cứu m ô hirih Data Mining, chủ ý đến khai phá luật kết h ợ p theo cdc th u ậ t toán song song

Đề tai d ã đ á p ứ ng dược m uc tiêu d ặt ra với m ột số kết q uả chính yếu n h ưsau:

- Khảo sát m ộ t số th a n h p hần q uan trọng n h ã t của n h án l inux và tổng kết nội d u n g về n h ữ n g th à n h p h ần dỏ m ột cách khoa học N h ữ n g kết quả n ày của dề tải cho p h é p n h ữ n g n g ư ò ì m ới quan tâin sâu về Linux có thê tham kháo đê nhanh chong nắin b ă t tốt Linux N h ữ n g cải tiến được Đề tài đề xuất có tính khả thi cao, đặc biệt là bộ gõ tiếng Việt GVNKey dã được phô’ biến rộng rãi Có hai báo cáo khoa học tại H ội thảo có quy mô toàn quốc tại Hải P hòng trong cac n gày 6­

8 /6 / 2 0 0 1 liên q u a n đ ến nội d u n g nảy

- Một trong n h ữ n g điểm m ạ n h của Linux là cho p hép khai thác tốt năng lực của hệ thống thiêtbị, dặc biệt tại k h u vực trung tâm Các n g h iê n cứu của dề tai (trong và n g o à i tài liệu này) cung eâp cho ngư ời đọc n h ữ n g cách thức đê khai thác

n h ữ n g diểm m ạ n h d ó của Linux

- Đề tầi đã thiết đ ặ t car hệ thống PC-cluster tại Bộ m ô n Các hệ thống thông tin vá các báo cáo kết quả về nội du n g n à y của dề tài hỗ trợ tốt cho n h ữ n g cán bộ

q u a n tâm đôn việc ứng d ụ n g PC-cluster trong tính toan song song

- 1 lai lu ậ n v ă n cao học có nội d u n g liên q u a n đến dề tải, 7 khóa luận tốt

n g h iệ p d ại học về hệ diều h à n h Linux và hai tải liệu giảng d ạv về Hệ d iề u h à n h Linux vả Data M ining đư ợc coi n h ư kết quả d o n g gop về m ặ t đ ào tạo n hân lực

1

Trang 14

- Duy tri đ ể u đ ặ n xêmine khoa học h à n g tuần thu h ú t d ư ợ c nhiều cán bộ khoa học trc cùng q u a n tâm đ ến các nộ, dung nghiên cứu chính yếu mà dề tài đ ật ra,

Trong thơi gian tới, cac t h a n h viên của đề tài tiếp tục thực hiện các nội

d u n g ng h iê n cứu dặc biệt các ưng d ụ n g tính toán song song trong việc giải quyết các bài toan khoa học kỹ th u ậ t và Data Mining song song

Đề tai dề n g h ị các cơ q u an tạo điều kiện, hỗ trợ để đề tài tiếp tục vả thu được các kêt quả cao h ơ n trong thời gian tới: dể tài trọng đièm câp N hà nước

Trang 15

Phu luc

D A N H MỤC TÀI LIỆU KHOA HỌC - KỸ THUẬT KẾT q u ả c ủ a đ ể t à i

!■ Phan Xuân Hiếu. LẬP LỊCH TRONG NHÂN LINUX Hội thảo toàn 16 quốc "Nhuttg vấn dé chọn ỉọc cun Công nghệ 'Iĩtông tin "Hải Phồng 6­

8/6/2001

2- Hà Quang Thụy,, Đố Đức Huy. MỘT s ố KHAO s AT VÀ ĐẢNH GIA 27

trình bày tai H ội thao toàn quốc "Nhiứig vân dề chọn lọc của Công nghệ

'ỈTiông tin" Hải Phòng 6-8/6/2001).

3 Bui Quang Minh, Tran Quoc Long. VIETNAMESE SOLUTIONS AND 70

vân dề chọn lọc của Cổng nghệ ìhông tin" ỉ lai Phòng 6-8/6/2001 (Bầi

viết n ả y c ùng với sản p h ấm bộ gõ tiếng Việt GVNKey trên VN Linux là

công trình d ạ t giải nhì Vii'OTEC sinh viên toàn quốc năm 2001)

4- Phan Xuân Hiếu, Bùi Quang Minh. MPI - PVM: CAU HÌNH k MỘT 82

VÀI THU NGHIỆM VỂ ifrJG DỤNG PHÂN TÁN THEO MÔ HÌNH

SPMD

6- Phan Xuân Hiếu, Hà Quang Thụy LÂP TRÌNH SONG SONG VỚI MPI - Ĩ44

PARALLEL, VIRTUAI MACHINE

7- Hà Quang Thụy, Phan Xuân Hiếu, Bùi Quang Mmh. MỘT s ố THÚ 201

nghị khoa học khoa Công nghệ (ĐỉỈQCHN) lân thứ nhất 20-4-2002

( I òng h ơ p từ ba tải liệu [4-6] trên dây)

8 Tran Vu Ha, Phan Ằuan Hieu, Bui Quang Minh, Ha Quang Thuỵ. A 203

MODEL FUR PARALLEL, ASSOCIATION RULES MINING FROM THE

Conference on East-AsidU Language Processing and Internet

In forma tion 1 ethnology2002 (EAPỈIĨ 2002), Jan uary 8-11,20ÍÌ2, Hanoi,

Vietiiam, Vol 2, 52-63.

1

Trang 16

4 Đô Văn Thanh, Pham Thọ Hoàn, Phan Xuân Hiếu. KHAI PHÁ LUẬT 215

khoa học khoa Công nghệ (DHQGHN) lẩn thứĩửìât20-4-2002.

10 d a n h s á c h l u ậ n v ă n c a o h o c v à k h ó a l u â n rÔT NGHIỆP 226

LINUX" (Trích C hư ơng 1 vả Chưring 2ị

12 ĐỔ Văn Thành. D ự THAO TÀI LIỆU GIANG DAY 'KHAI PHÁ TRI 247

THỨC TRONG c o s ơ DỮ LIỆU ( Trích Phần 1)

]

Trang 18

Lập lịch trong nhân Linux

TS Hà Quang Thuỵ, CN Phan Xuân Hiếu Khoa Công Nghệ, ĐHQG Hà Nội hqthuy@hn.vnn vn hieupx@vnu.edu.vn

Tóm tăi: Giổng như c c hệ chia sẻ thời gian khác, Linux thi hanh cơ chế đa nhiệm bằng cách chuyẻn quyên điéu khiển CPU giữa các tiến trình sau một khoảng thưi gian rất ngẳn Việc khi nào thi cán chuyển Ciụyền điểu khiển CPU và tiến trinh nào được chọn để trao

■quyên đieu khiên chinh là cơ chế lập lịch trong nhân Linux (Process Scheduling)

Báo cáo này chia làm ba phần Phẩn “Chính sách lập lịch” giới thiệu tổng quan, trừu tượng nhât vê cơ chê lập lịch Phần “Thuật toán lập lịch” bàn về cấu trúc dữ liệu và giải thuât lập lịch trong Linux Phân cuối mô tả cụ thể một số loi gọi hệ thống liên quan đến

hệ thống con lập lịch

1 C ơ ch l ập lịch t r ung L i nu x

Giải thuật lập lịch cua các hệ Unix đã đặt ra một số tiêu chí như thời gian phàn hồi của tiến trinh nhỏ, thông Ìuựììg íiĩìh toán iủ a các tiến trinh nền lớn, tận dụng được hết công suất cùa CPU, điều chinh mức đô ưu lên giữa các tiến trinh, v.v Một tập các quy tẳc giúp chon ra một tiền trinh để trao điều khi' ;n CPU được gọi là Chinh sách Ịập lịch.

Lập lích trong Linux dựa trên kỹ thuật chia sẻ thời gian, nghĩa là thời gian của CPU được chia thanh các phần rất nho gọi là lượng tử (time slice) và trao mỗi lượng tử thời gian này cho từng tiến trinh Tất nhiên, nếu hệ thổniị chỉ có một bộ vi xử lý (VXL - UP - Uniprocessor) thi chì có một tiến trinh duy nhất được thi hành tại mỗi thời điểm Nếu tiến trinh hiện thữi vẫn chua kết thúc khi đã “tiêu” hết lượng tữ thời gian của nó thi hệ thống lập lịch sẽ tiến hành chuyển quvẻn điều khiển CPU cho một tiến trinh khác Hệ thống chia sẻ thời gian như Linux dựa trên cơ chế ngắt thời gian nên việc chuyển quyển điều khi n CPU đuơc xem như trong suốt đối với các tiến trình Điều này có nghĩa là mồi tiến trinh đều có cảm giác là minh đang sở hữu một CPU duy nhất, không hề chia sẻ với các tiến trinh khác

Chinh sách lập lịch ciựa trên độ ưu tiên của mỗi tiến trình Dưa vào độ ưu tiên này, hệ thống co thể biết là titn trinh nào xung đáng nhận quyền điều khiển CPU trong lần chuyển điẻu khiển kế tiếp

Trong Linux độ ưu tiên là động Trinh lập lịch (scheduler) kiềm soát được quá trinh thực hiện của tiến trinh và cập nhật độ ưu tiên cùa tiến trinh mót cách định kỳ Với cơ chế này, những tiến trinh có thơi gian chờ CPU lâu hơn sẽ được tăng độ ưu tiên trong những lân cập nhật và đồng thời những tiến trinh nào chiếm giữ CPU nhiều sẽ bị giảm dẩn độ ưu tiên Điều nay đảm bảo quyến binh đẳng giữa các tiển trinh, có nghĩa là không tiên trinh nào chiểm giữ CPU quả lảu và khóng tiển irình nào bị “bỏ rơi”

Tiến trinh thường được cilia làm hai dạng là “ĩ/O-bound” và “CPU-bound” [1] Dạng đẩu thiên về sử dụng các thiết bị vào ra và thường mất nhiều thời gian đẻ đợi các thao tác vào

ra Dạng sau thiên về sừ dụnq CPU Vi dụ [12], trình soạn thảo vi thuộc dạng đẩu vi IIO

I

Trang 19

thưưng xuyên đoi thao tác nhấn phim của người dùng còn trinh biên dịch gcc thuộc dạng sau vi khi tiến hành biên dịch, gcc chù yếu sử dụng CPU để phân tích từ vựng, phân tích

c im giác là hệ thống có tinh tương tác thấp Tiến trinh dạng này thường là shells, trinh soạn tháo, các ứng dụng đồ hoạ

Tiến trình bó

Những tiến trinh dạng này ít tương tác với người dùng, do đó chúng thường chạy

ở chế độ nền Tiến trình dạng này tLưưng là trinh biên dịch, các tiến trinh của hệ

cơ sở dữ liệu, và các tiến trình thiên về tính toán các bài toán khoa học, kỹ thuật

Tiến irình thời gian thụx;

Tiến trinh thời gian thực được hệ thống ưu tiên Chúng thường không bị ngắt bởi các tiến trinh có độ ưu tiên thàp hơn Thời gian phản hồi của tiến trinh thời gian thưc rất nhỏ và ít dao động Tiền trinh dạng này thường là các ứng dụng về video,

âm thanh, điều khiển robot, v.v

TT tương tác TT bó TT thời gian thực

Hai cách phân loại trên tương đối độc lập với nhau Ví dụ, một liến trình bỏ có thể là

“I/O-bound” hoặc “CPU-bound” Trinh lập lịch của Linux “đối xử” riêng với tiên trình thòi gian íhụx:, luy nhiên không phân biệt được giữa tiên trình htơng láctiến trình bó

Để đam bảo tính tirơng tác của liến trhih lưovg lác, giông như Unix, Linux thường “ưu ái” tiến trình dạng ‘I/O-bound” hơn là “CPU-bound”

N g ắ t tiến t r ì n h ( P r e e m p t i o n )

Khi môt tiến trình chuyển trạng thái thành TASK RUNNING, nhân tiến hành kiểm tra độ

ưu tiên động của no có lớn hơn độ ưu tiên động cua tiên trinh hiện thời hay không Nêu lớn hơn tiến trình hiện thỏ! current bị ngắt và trinh lập lịch tiên hành chọn một tiện trinh khác để trao điều khiển CPU Tất nhiên là một tiến trinh cũng bị tước bỏ điêu khiên CPU khi nỏ sừ dụng hết lượng tử thời gian cho phép

Xét một ví LỈụ là hê thống đang thực hiện hai tiến trinh - trinh soạn thảo và trinh biên dịch Trinh soạn thao thuộc dạng tuvvg tác với người dùng, do đó nó có độ ưu tiên động

2

Trang 20

cao hơn độ ưu tiên động cùa trinh biên dịch Tất nhiên, nó thường xuyên ờ trạng thải chờ đợi người dùng nhân phím Tuy nhiên, ngay khi người dùng nhẩn phím, một ngắt bàn phím sinh ra và nhân đánh thức trinh soạn thảo Nhân cũng kiểm tra thấy độ ưu tiên động cùa trinh soạn thào lớn hơn độ ưu tién động cùa tiến trinh hiện thời (current - là trình biên dịch) nên thi t lâp trường thuộc tinh need resched của tiến trinh hiện thời để kích hoạt trinh lập lịch khi trinh xừ lý ngất kết thúc Trinh lập lịch chọn trinh soạn thào và thực hiện chuyển quví:n điêu khitii CPU Quá trinh này xảy ra rất nhanh và người dùng có cảm giác lả ký tư minh vừa nh n được hiển thị ngay íập tưc trên màn hình Khi ky tự được xừ lý xong, trình soạn thảo lại chờ đợi cho lần nhấn phim tiếp theo và trình biên dịch lại tiếp tục được thực hiện.

Việc trinh biên dịch bị ng it để trình soạn thảo xừ lý phím vừa nhẩn được gọi là ngắt tiến trinh (Process preemption) Nên nhớ, tiến trình bị ngat không ờ trang thái treo do nó vẫn

Ngắt tiến trmh trong nhân Linux chỉ xảy ra khi tiển trinh đang thực hiện ờ không gian nuười dùng (User mode) Thi hành ngẳt tiến (ì ình trong không gian nhân (Kernel mode) đem lại hiệu qua, nhưng lại rât phức tạp Một số hệ điều hành thời gian thực thi hànn ngắt tiểìì trinh ngay trong không gian nhân để đảm bau tinh thời gian thực của các tiến trinh thực hiOn trên đó

Một l ư ợ n g tm t h ò i g i an kéo dài b a o lâu?

Đô dai của luợng từ thòi gian quyct định một phần rất lớn đến hiệu suất của hệ thống Lượng từ thời gian không đưực quá lứn cũng không được quá bé Neu lượng tữ thời gian tjua bé hệ thống sẽ phải chi phi thời gian cho việc chuyển diểu khiển Nều lượng tử thời gian quá lớn, hệ thủng sẽ mất đi tính đồng thời thực hiCn giữa các tiến trmh

2 T l m ậ t t oá n lập lịch

Thuật toán lập lịch trong Linux tiến hành chia thơi gian CPU thành các tliới đoạn (epochs) [1] Tại đầu mỗi thời đoạn, lượng tử ihời gian của các tiến trinh được tinh toán lại Noi chung, các tiến trinh thường có lượng từ thời gian khác nhau Lượng từ thời gian

là thời gian cực đại mà một tiến trinh được phép thực hiện trong một thời đoạn Khi một tiến trinh sừ dụng hết lượng tu thời gian của nó, tiến trình đó sẽ trao trả quyền sờ hữuCPU cho một tiến trinh khác Tất nhiên, một tiến trình có thẻ được chọn thực hiện mộtvài lần trong một thời đoạn, miễn là tiến trình đó vẫn chưa sừ dụng hểt lượng từ thời giancủa nó Một thời đoạn kết thúc khi tất cả các tiến trình sù dụng hết lượng tử thời gian củanó

Mỗi tiến trinh có một lượng từ thời gian cơ sờ (base time quantum) đó là lượng từ thời gian mà trinh lập lịch gán cho mồi tiến trinh khi nó đã “xài” hết lượng từ thời gian của nó trong thời đoạn trưòc Người dùng có thê thay đôi lượng tử thời gian cợ sờ cùa tiên trinhbầng cách sừ dụng hai lòi gọi hệ thông là niceQseíprtorttyO Một tiên trinh được sinh

ra luôn thừa kế lượng tử thời gian cơ sờ từ tiến trinh bc

Macro ĨN1T TASK thiết lập lượng tử thòi gian cơ sờ thông qua macro sau:

3

Trang 21

Trong đó, HZ cũng là một macro cho biết tần số cùa ngắt thai gian và bằng ]00 đối vớiIBM PCs, do đó D EF 1'RIORITY bằng 20 tick, tức là khoảng 210 ms.

Đé xac đinh tiến nnl nào sẽ được trao điều khiển CPU, trinh lập lịch dựa vào độ ưu tiêncủa tiến trình Mỗi triến trinh trong Linux cỏ hai ioại độ ưu tiên sau

Độ UI/ tiên íĩỉih (static priority):

Dạng ưu tiên này nằm trong khoảng [1 99], được gán cho tiến trinh thòi gian thưc Dạng ưu tiên này không bao giờ thay đôi bởi trình lập lịch

Độ ưu tiên dộng (dynamic priority):

Dạng ưu tiên này được áp dụng cho các tiến trinh binh thường (không phải tiến trinh thời gian thực) Lượng giá độ ưu tiên động chỉ đơn giàn lả tổng cùa lượng tử thời gian cơ sở (can gọi là độ ưu tiên cơ sờ) với lượng thời gian còn lại trong lương tử thời gian của tiến trinh

Tất nhiên lả độ ưu tiên tĩnh của tiến trinh thời gian thực luôn cao hơn độ ưu tiên động của tiến trình binh thường Do đó, trình lập lịch chi trao điều khiển CPU cho tiến trinh binh thường khi không có tiến trinh thơi gian thục nao ở trạng thai TASK RUNNING

Các cấu t r úc d ữ liệu đi rọc s ử d ụ n g bỏ'i trình lập lịch:

Mỗi tiến trinh co một trinh mô tả (process descriptor) tương ứng Tất cả các trinh mô tả tiến trinh này được kết nối lại với nhau nhờ một danh sách liên kết (process list) Một danh sach liên kết khac (runqueue list) chi iiên két các tiến trinh có khả năng thực hiện, tức là đang ờ trạng thái TASK RUNNING Trong cả hai danh sách trên thi macro

nu íơsk luôn trỏ ềến trinh mô tả tiến trinh đầu tiên

Trinh mô tả tiến trinh có một số trường liên quan đến công việc lập lịch sau đây:

need resched

Đây là một CƯ cho biết hệ thống có cần gọi trinh lập lịch để lập lịch lại hay không

sẽ được thực hiện kể cả khi có một tiến trình thời gian thực khác có cùng

độ ưu tiên đang ờ trạng thai TASK RUNNINGSCHfcD RR

Thuật toan Round-Robin áp dụng cho thời gian thực Khi trao điều khiển cho một tiến trinh, trinh lập lịch đặt trinh mô tả tiên trinh vào cuôi danh

4

Trang 22

sách thực hiện (runqueue list) Chiến lược này đảm bảo tính công bằng cho các tién trinh íhời gian thực có cùng độ ưu tiên.

Nhớ rằng, hai trường priority va counter đóng vai trò khác nhau trong các dạng tiến trinh khác nhau Đôi với tiên trình bình thường (áp dụng chiến luợc SCHED OTHER), hai trường này đươc đùng để tính toán độ ưu tiên động (dynamic priority) Đối với tiến trình thừi gian thực áp dụng chiến lược SCIIED hai trường này được dùng để thực hiện

cơ chế chia sẻ thời gian Còn đổi với tiên tiình thời gian thực áp đụng chiển lược SCHED FIFO thi hai trường này không được sừ dụng trình lập lịch xem lượng từ thời gian cua dang tiến trinh nav là vô han

Hà m lập lịch s ch e d u ỉe Q

Đây lả trình lập lịch và là hàm quan trọng nhất trong nhân Linux Nhiệm vụ cùa nó lả chọn trong danh sách thục hiện (runqueue list) một tiến trinh “xứng đáng” nhất để trao điều khiển CPU Sau đây là các cách kích hoạt hàm này

Kích hoạt trực tiep

Trinh, lập lịch đươc goi trực tiếp vì tiến trình hiện thời chuyển sang trạng thái treo (blocked) đo phải đợi một tài nguyên nào đó hiện chưa có san Trong trường hợp này, thứ tự các bươc thực hiện như sau:

• (1) - Chèn trinh mô ta của tiến trình hiện thời vào hàng đợi (wait queue)

• (2) - Đổi trạng thái cùa tiến trình hiện thời thành TASK INTERRUPTIBLEhoặc TASK UNIN TERRUPTIBLE

• G ọ i hàm scheđuỉeQ

5

Trang 23

• Kiểm tra tải nguyên đã sẵn sang chưa Nếu chưa, nhảy tới bước (2)

• Neu tài nguyên đã săn sàng, loại bò trình mô tả của tiến trinh hiện thời ra khỏihang đơi

Theo thuật tọán trên, nhân lặp đi lặp lại việc kiểm tra xem tài nguyên đã sẵn sàng hạy chưa Nêu chưa săn sàng, nó nhường quyền điều khiển cho tiển trình khác bằng cách gọi ham scheduleộ ờ bước (3) Sau này, khi quyển điểu khiển CPU được gán trở lại, nó [ại tiểp tục kiểm tra tài nguyên

1 rình lập lịch cũng được ẸỌÍ trực tiếp từ nhiều trình điều khiển thiết bị khi phải thực hiện một vòng lăp tôn nhiều thời gian Tại mỗi chu kỳ lặp, trình điều khiển thiết bị kiêm tra cờ need resched xem có được kích hoạt không Nếu có, nó gọi hàm scheduleQ để tu nguyện nhường quyền điều khiển CPU cho tiến trình khác

Kích hoạt "lười"

Trinh lập lịch có thể được kích hoạt bằng cách thiết lập trường need resched của tiên trình hiện thời bằng ] Vì cờ nàv được kiểm tra mỗi lần hệ thống trờ về không gian người dùng (user space) từ khồng gian nhân (kernel) nên hàm scheditleQ sẽ được goi gần như ngay lập tức sau đó Cách gọi này có thể xảy ra trong các trường hợp sau:

• Khi tiến trình hiện thời dùng hết lương từ thời gian Trong trường hợp này,

hàm update Jjrocess ỆmesQ s ẽ tiến hành g ọ i trình lập lịch.

• Khi một tiến trình được dánh thức và độ ưu tiên cùa nó cao hơn độ ưu tiên của tiến trình hiện thời Công việc này được đảm nhiệm bời hàm reschedule iJìe()

(đươc gọi bởi hàm wake up process0).

if (goodnti5s(current, p) > goodness(current, current))

current->need_resched = 1;

• Khi có lời gọi tới một trong hai lời gọi hệ thống sched setschedulerQ hoặc

schedyieldQ.

Trình lập lịcli làm Iihfrng việc gì?

Trước khi thực sự tiến hành lập lịch, triiih lập lịch (hàm schednleộ) thực hiện các hàm cỏn lại trong nhân đang chờ được thực hiện ờ các hàng đợi Sau đó mới thực hiện công việc lập lịch cụ thể như sau

• Trinh mô tả của tiến trình hiện thời được gán cho biến cục bộ prev và truờng

need resched cửa prev được thiết lập bằng 0

• Tiểp đó nó tiến hành kiểm tra xem prev có phải là tiến trinh thời gian thực dạng Round-Robin hay không Nểu đúng, trình lập lịch gán lượng tủ thời gian mới cho

prev và dặc nó vào cuối hàng đợi thực hiện

if (!prcv->counter && prev->policy == SCHED RR) {

Prev->counter = prev->priority,

M o v j a s t njnqueue(prev),}

6

Trang 24

• Kiểm tra trạng thài cưa prev xem có phải là TASK INTERRUPTIBLE không Neu đúng th, đánh thúc nó Tat nhiên là không phải trao điều khiển CPU cho nó mả là cho

nó cơ hội đưoc chọn đê thưc hiện

if (prev->state == TASK INTERRUPTIBLE && signal_pending(prev))

prev->state = TASK RUNNING;

• Nếu prev không ở trong trạng thái TASK RUNNING, trinh lập lịch đã được kích hoạt trực tiếp bởi chính tiến trinh đó bời vi nó phải đợi một tài nguyên nào đó Do đó

prev phải được loại bỏ khó danh sách thực hiện

if (prev->state != TASK RUNNING)

del frum ainiịueue(prev);

• Tiếp dó, trình lập lịch chnn một tiến trình để trao điều khiển CPU Đe làm việc này,

nó phải duyệt qua hàng đợi thực hiện Bắt dầu từ con trỏ next run của trinh mô tả

hút task. Mục tiêu là chọn được tiến trình có độ ưu tiên cao nhất và gán trình mô tả chn biến cục bộ next. Mã lệnh cụ thể như sau:

if (prev->state == TASK R bN N IN G ) {

next = prev;

if (prev >policy & SCHED /IE L D ) {

prev->policy &= -S C H E D YIELD;

p = init task next run,

while (p !=&init task) {

Nếu hàng đợi thực hiện rỗng, vòng lặp không được thực hiện và kết quả là biến cục

bộ next trỏ đen init task

1

Trang 25

Nếu không có liến trinh nào trong hàng đợi thực hiện có độ ưu tiên cao hơn prev thì tiến trình hiện thời vẫn tiếp tục được thực hiện

• Sau vòng lặp, trình lập lịch phải kiểm tra giá trị của c Nếu bằng 0 thi chứng tỏ tẩt cảcác tiên trình đã sử dụng hệ lượng tử thời gian và một thời đoan kết thúc Một thờiđoạn mới bắt đâu và trinh lập lịch phải gán lương tử thời gian mới cho các tiến trinh như sau

• Phần cuối cung cua trinh lập lịch là chuyển điều khiển CPU từ prev sang next Mãnguồn cụ thể như sau:

So sánh độ ưu tiên giữa các tiến trình - hàm goodnessQ

Phần quan trọng nhất của trinh lập lịch lả tim được tiến trinh xứng đáng nhất để trao điềukhiên CPU Đây chính là công viực của hãm goodnessQ. Nó nhận tham số đầu vào là

prev (trình mô tả của tiến trinn hiện thời) và p (írình mô tả của tiến trinh định chọn) Ketquả c trả về từ hàm goo JnessQ được chia làm mẩy loại như sau

• c = -1000 Tiển trinh p sẽ không được chọn Giá trị này của c tương ứng với trườnghợp hàng đợi thực hiện rỗng Chi một mình tiến trình nut task

• c = Q Một thời đoạn kết thúc vỉ tất cả các tiến trình đã í r dụng hết lượng tử thời gian

• 0 < c < 1000 p là tiến trinh binh thương và chưa hết lượng tử thơi gian

• c >= 1000 p là tiến trình thời gian thực Giá trị c càng cao thì tiển trình p càng có khảnăng được chọn

Mã nguồn cụ thể cùa hàm goodnessQ như sau:

Trang 26

if (p->mm == prev->mm)

return p->counter + p->priority + 1,

return p->counter + p->priority;

Nếu là tiến trinh thời gian thực, hàm goodnessQ trả về ít nhát là 1000 Nếu là tiến trình bình thường đã sử đụng hết lượng tử thời gian, giá trị trả về là 0 Các trường hợp khác thi giá trị trả về bàng {p->cotmíer + p->priori(y).

Nếu tiến trinh p và tiến trình hiỌn thơi có chung không gian bộ nhớ thi p được ưu tiên hơn một chút băng cách công thêm 1 đơn vị vảo giá trị trả về Bằng cách này, hệ thống hy vong tiefi trinh p sẽ thừa hướng một số dữ liệu có ích đang còn lại trong cache của CPU

do tiến trình trước đó để lại

Lập lịch ch o hệ t h ố n g đ a mì' ly đối x ứ n g - S M P ( S y m m e t r i c Mu l t i p r o c e ss o r s )

Hàm lập lịch hỗ trợ hệ thống đa xử lý đối xứng cũng tương tự như hàm lập lịch đơn bộ vi

xử lý (VXL) ngoài trừ một sô tliay đổi Trong hệ SMP, bất kể một bộ VXL nào cùa hệ thống cũng được quyền gọi hàm lập lịch scheduleQ. Chúng hoạt động tương đối độc lập

và binh đăng, tuy nhiên cũng phải phối hợp với nhau nhăm nâng cao hiệu năng cùa hệthống

Khi toán giá trị của hàm goodtiessQ cho một tiến trình p nào đó, trình lập lịch phải kiểm tra xem lần thục: hiện gần đây nhất của p có phải là trên CPU này hay không Nếu đúng,

p thực hiện trên CPU này bởi hệ théng giả sừ rằng cache của CPU có thể đang chứa một

số dữ liệu hữu ích liên quan đến p

Nếu có một ỉiến trinh đang thục hiện trên CPU 1 Một tiến trinh p có độ ưu tiên cao hơn

có lần thục hiện gần đây nhất trên CPU 2, chuyển trạng thái thành TASK RUNNING Lúc này, trinh lập lịch ứng xừ thế nào? Có hai cách giải quyết, thứ nhất lả tiến trinh dang chạy trên CPU 1 nhươníĩ quyền điều khiển CPU cho tiến trình p, Cách thứ hai là tiến trinh p phải chờ cho CPU 2 thực hiện xong Cả hai cách là khả thi, nhưng cả hai đểu gặp vấn để Đối với cách thứ nnất thi hệ thống không tận dụng được những dữ liệu của p trên

cache trên CPU 2 Dối vói cách thứ hai thi hệ thống sẽ không tận dụng khả năng song song hoá nếu tại thài đi :m đó CPU 2 đang chạy tiến trinh số 0 (idle process)

Nhằm nâng cao hiệu năng cùa hệ thống, trình lập lịch của Linux trên hệ SMP 'jng xư tinh huống theo kinh nghiệm Việc chọn cách giải quyết nào còn phụ thuộc vào dung lượng

cache của mỗi CPU trong hệ thống

Hàm lập lich schedttìe() cua hẹ thống SMP gồm các bước sau [1]:

• Thực hiện các công việc tiền lập lịch của hệ thống tương tự như hàm schedỉtìeQ cùa

hệ thống đơn bộ VXL

• Lưu định danh của CPU hiện tại vào hiến cục bộ this cpii.

• Khởi tạo biến cục bộ schet data trỏ tơi câu trúc schedule data của this cpit.

• Cìọi lặp đi lặp lại hàm goodmssQ để chon tiến trình có độ ưu tiên cao nhất

• Nếu cần, tính toán lại độ ưu tiên động cua các tiến trinh

• Thiết lập schcd data->cun trỏ vào next

9

Trang 27

• Thict lập mxí->has_cpu thành ] và next->processor trò tới this cpu.

• Lưu con đếm thời gian vào biến cục bộ í

Lưu lương tử thời gian gần nhít của prev vào trong biến this slice. Giả trị này là saikhác gi ưa tsched data- > last schedule

• Gán sched data->last schedule bang t

Gán avg slice của prev bằng (prev->ơvg slice + this ĩ/ice) / 2

• Thực hiện chuyển ngữ cảnh tiến trinh (không gian bộ nhớ, con trỏ file, các thuộc tínhkhác, .)

• Khi tiến trinh được lại được chọn thực hiện Nếu prev vẫn ờ trạng tháiTASK RUNNING vá khône phải là tiến trinh idle thì hệ thống sẽ kích hoạt hàm

reschedule idleQ.

• Thiết lập has cpu của prev bang 0

3 M ộ t vài n h ậ n xét v ề tí nh hiệu q u ả củ a t h u ậ t toán lập lịch t r on g L i nu x

• Thuật toán lập lịch irong Linux khừng đáp ứng được số tiến trinh lớn

Nếu nhiều tiến trình cùng thực hiện tại môt thời điểm, việc tính toán lại độ ưu tiên động của tất cả các tiến trình đầu mồi thòi đoạn chiếm rất nhiều thời gian Đây lả vấn

để bẳt nguồn từ Unix Linux đã cố gắng cải tiến, nhưng không đáng kể Mặt khác, một thời đoạn có thể kéo dài nên việc ưu tiên tiến trinh dạng I/O-Bound không đáng

kể và chính điều này đem lại cảm giác hệ thống không có tính tương tác cao, đặc biệt

là đối vứĩ các ứng dụng trong môi trưong đồ hoạ

• Chiến lược tối ưu cho tiến trinh dạng I/O-Bound chưa tối ưu

Việc ưu ái tiến trinh dạng I/O-Bound đem lại cảm giác là hệ thống có khả năng tươngtác cao, nhưng Linux giải quyết vấn đề này không triệt để Cách phân loại tiến trình ờ-phẩn (1) dẫn đến điều này Một tiến trinh dạng I/O-Bound có thể là một tiến trình tuưng tác với người dùng hoặc có thể là một tiến trình chạy ở chế độ nền Ví dụ, một tiến trinh chủ phục vụ các giao tác cơ sờ dữ liệu là một I/O-Bound vi nó luôn làm việc với ổ đĩa card mạng Với cách phân loại trẽn, Linux xem tiến trinh này cũng lả tiến trinh tương tác với người dùng Và rõ ràng điều này ảnh hưởng đến tính tương tác với nguời dùng cùa một số tiến trinh khác

• Hỗ trợ tiến trình thừi gian thực chưa tốt

Linux không thi hành cơ chế ngẳt tiến trình (preemtion) ờ mức nhân nên ảnh hường đến tiến trinh thơi gian thực Nếu hệ thống đang thực hiện một ngăt ờ không giạn nhân thi một tiến trinh thời gian thực không được thực hiện mặc dù nó vừa chuyển trạng thái thành TA SK_RU N NIN G Điều này là không chấp nhận được đối với tiến trinh thời gian thực Bạn không thể tưởng tượng được khi nghe một bản nhạc lại bị

‘'ngắc nga ngắc neứ” vi hệ thống thường xuyên phải thực hiện ngẳt ở không gian nhân Hy vọng Linux sẽ áp dụng cơ chế ngất tiến trinh ngay trong không gian nhân

10

Trang 28

Ngoài lý do trên, Linux cũng không cung cấp một kỹ thuật nào để phân biệt giữa tài nguyên dành cho tiên trình thời gian thực và tiến trinh binh thường Vi thế tien trinh thời gian thực đoi lúc phải dừng lại đè đợi tài nguyên và đây cũng là điều tối kỵ cho

hệ thống khi thực hiện các ứng dụng thòi gian thực

Tai ìiêĩt thom khao:

[1], Daniel p Bovet & Marco Cesati, Understanding the Linux Kernel, October 2000.[2] Tigran Aivazian, Linux Kernel 2.4 Internals, 21 October 2001

[3], Eduardo Pinhciro (Department o f Computer Science, University o f Rochester),

Linux Internal's - Scheduler and Process Management, Sep/29/1999

[4] Ivan Bowman, Conceptual Architecture of the Linux Kernel, January 1998

[5] Kaare Christan (The Rockefeller University - New York), The Unixm Operating System.

[6], Hank Dietz, Linux Parallel Processing Howto, 5 January 1998

[7], David Mentre, Linux SMP Howto, 25 October 2000

[8] Andreas Schlapbach, Linux Process Scheduling, CEST 2000

[9], Milan Milenkovic (Massachusetts University), Operating System Concept & Design

[10], Andrew s Tanenbaum (Virje Universiteit - Amsterdam, The Netherlands), Modern Operating Systems, Prentice-Hall International, Inc® 1992

[11], Đỗ Duy Việt - Nguyen Hoàng Thanh Ly, Linux Kernel- tham khào toàn diện, Nhà xuất bản thống kê

[12] Phan Xuân Hiếu, Tiến trìnhbộ ỉập lịch trong Linux, Khoá luận tốt nghiệp đại học ngành CNTT, Hà Nội 2001

11

Trang 29

MỒT SỐ KHẢO SÁT VÀ ĐÁN H GIÁ HỆ THỐNG FILE EXT2 TRONG LINUX

ỉ ki Ụuang íhụy, Đổ Due Huy Khoa Công nghệ, Dại học Quôcgia ỉỉà Nội

Tóm tắt. Một trong những diểm mạnh của Linux là có sẵn cơ chế dể quản lý nhiỂu hẹ

thống file khác nhau Trong bài viết này, chúng ta sẽ phân tích, dưa ra một số

d ánh gia bước dầu vể hộ thống file Iìxt2, một hẹ thống file dược hỗ trự trong

há a hết các hệ thống Linux hiộn nay Thôm vào dó, chúng tfli củng dề xuất giải pháp vé m ỗdun UND12L1ÌI LD cùng với chương trình nguổn của mổdun này

1 Lịch sử ra đời và phát triển rủa hệ thông file Ext2

I lệ diều h ành Linux ban dàu chỉ hổ trớ một hộ thống file duy nhất dó là hệ thống file mĩnix Hộ thống file n à || chua dựng trong nó rất nhiều hạn chế như tổn file khổng the dài quá

14 ký tự, kích thước file lớn nhâ't cũng chỉ có 64Mbyte vả phân vùng chứa h í thống file cũng bị hạn chế ỏi con số 64Mbyte, Điểu này rất bát lựi trong các họ thống lon

Với sự ra dời cua hệ thống file ảo VFS, số lượng các kiểu hộ thống file của các họ diều hành khác nhau dưực hỗ trợ trong Linux ngày càng nhiỂu Tuv nhiữn chưa có hộ thống nào dược thÌPt kế dành rréng cho Linux dể tối ưu các thao tác cùa VPS Điồu này đã thúc bách cộng dổng l.inux phải thiết kế ra mẹithộ thống file mui dành cho I inux

'Iháng 4/1992, hệ thống file dầu tiên (lược thiết kồ dành cho Linux dã dưực lích hợp vào phiỀn bản nhân 0.96c Hộ thông file này dược gọi lá hô thống file mỏ' rộng (Extended rile Systfm) với tôn Ext I lệ thống file mới nảy dưực viết dựa Irổn mã nguổn rủa hệ thống file mmix bơi ba tác giả: Rémy Card (card0raasi.ibp.fr), Theodore Tsũo (tytsrlp9tiit.edu) và Stephen I weedie (sct@dcs.ed.ac.uk) HỂ thống file Txt dã khắc phục dược các nhược diêm của

hệ thống file minix nliư: hỗ trọ' tổn file dài tối da 255 ký tư, kích thước lớn nhất của tile là 2 Gbyte, kích thước tối da cua mỏt phân vùng là 2Gbyte Tuy nhiện, ho thống file này vần còn một sô vrn đề cân phải cải tiến như khong ghi lại dưực các thời diêm thay dôi file, thay dõi i­node, không có khả năng mở rộng Đê’ khắc phục các nhược di- m của hộ thống file ext, hai họ thống file dã ra dới vào tháng 1/1993 dó lả hệ thống file Xia và hẹ thống file mỏ rộng cấp 2 Ext2 (Second Extended File System) Hệ thống file Xia su dụng lại mã nguồn của hộ thống file minix và thòm vàn một số mở rộng nh ư hỗ trự tòn file dài và các thuộc tính thời gian của file,

hà trự phân vung lổn đôn 2Gbyte I \ệ thống file Ext2 dưực phát hiển từ hộ thống file Iixt vui một số cải tiOn vá tớ' chức lại Nó dã khắc phuc dược các nhược dióm của hộ thống file Iixt và

có khà nãng hô trợ các p hân vung thưc sự lờn (tối da 4Tbyte) Ngoài ra, hệ thống file lìxt2 còn dược thiết kế dế co khả năng mở rộng sau này Hang 1 dưoi dây mô tả một số dặc tính của các

hộ thòng file kế trên

Trong nhưng phiôn bản đẩu tién, cả hai họ thống file Xia và Iỉxt2 đổu hỗ trọ nhùng dặc tinh giống nhau N h i phát triốn trôn một hẹ thong file cỏ sẩn là minix nén mã nguôn cùa Xia nhỏ gọn h a n và do dó hệ thốn£ file này chạy ôYi định hơn I uy nhk'n, trong quá trình sư dụng,

hệ thống file 11x12 ngày càng dược hoán thiện và mó rộng I lõ thỏng file Lxt2 hiỏn nay dã hoàn

1

Trang 30

toàn Ổn dịnh và trờ thành một nhân tỏ' khỏng thế thiếu cùa hỏ dicu hành linux Phién bàn họ

Iống file Ext2 mới nhất hiộn nay dưực dưa vào nhân 2.4.2 dó là phidn bàn 0 5b

iịg#! iỉí ijfcilii <-•

Bảng Ệ Gác dặc tính rủa bôn hộ tíìòng file

2 Cấu trúc Vdt lý của hê thống file Ext2

Cũng giống nh ư hầu hết các hồ thống file khác, hộ thống file Cxt2 cũng được xây dựng trẽn y tương tỏ’ chức d ứ liệu theo các khối cùng kích thước Kích thước khối dữ liệu có thể lớn hcín kích thước khối vệt lý ỉ lộ thống file lZxt2 cho phép dật kích thước khối lúc kh(ỉi tạo (dùng

mke2fs).

thuận tiỌn cho v n quan lý các khỏi dữ liệu trổn thiết bị lưu trữ, dặc biôt là các thiếl

bị lớn, hệ thống file Ext2 dưực chia thành các nhỏm khói (block group) Mỗi một nhóm khối chứa một số lưựng nhất dịnh các khối dữ liệu trên thiốt bị lưu trữ I lình 4.1 minh lioạ cáu trúc của hộ thống file ỉlxt?

Hìiìỉì ì Cáu trúc vắtlvcủđ một hệ dỉôiig file ỈSxt2

Các nhom khối của hệ thống file dược d ặt kê’ tiếp nhau Trong mỗi một nhóm này, ngoái car khối d ử liẹu, nó cỏn chứa các khối dạc biọt đẽ lưu giữ cíìu Irúc của hệ thống file và các thông tin diỂu khiốn hệ thống file Các khối dữ liệu này bao gồm:

Super block: Chứa cac thòng tin về hệ thống file như dấu nhân dạng, tình trạng hộ thống, số các nhóm khổ'], kích thước khối Super block dưực sao lưu trên mọi nhóm khối

Group description: Đây lả khối dặc biọt chứa toàn bộ các dặc tả của các nhóm khối trong hệ thống file Mỏ] dặc tả nhóm khối chua cac thong tin vể nhỏm như số inode rỗi, số khối rỗi, dịa chỉ các khối bitmap d ành cho nhom Giống như voi super block, khối các chứa dặc ta cũng dược lưu trtn nhiểu nhóm khối

2

Trang 31

Block bitmap: Ran dổ bit câ'p phát các khối (bitmap) dỡ’ hỗ trợ tìm ra một khối rỗi Mỗi một nhóm khối sẽ r ó một khối chưa bản đồ bit dánh dấu các khối rỗi và dã dùng của nhóm.

Inode bitmap: Tương tự như block bitmap nhưng dùng dể dánh dâu các innđe cùa nhóm.Inode table: Đây là một dãy các khối chứa các inode của nhcfn

Data block: Các khôi d ữ liệu của nhóm khối này

Việc sư dụng các nhóm khôi và sao lưu các thống tin quan trọng của hộ thông file như super block đã tăng dáng kể dộ an toàn cho hẹ thống file Thông thưởng, khi cần các thổng tin của họ thống, super block của nhóm khối dầu tiCn sẽ được dọc Nếu khối này bị sự cố, hộ thống sẽ tiên hành dọc khối super block ở các nhóm khối sau dó Ngoài ra, do các inode và các khối dữ liệu thưòng năm trổn cùng một nhỏm khối nên các than tác dọc ghi sẽ nhanh hơn, gibm thời gian tìm kiOm của hộ thống

Hệ thống file Ext2 sử dung câu trúc thư mục phân cấp, các thư mục dược sử dụng dế lưu giữ dường dẫn tới các file trong hệ thống Cũng giống như hẩu hết các hệ thống file khác, thư mục trong hé thống file Uxt2 chứa một danh sách các mụr nhập thư mục (directory entry) Môi mục nhập dai diỌn cho một file hay một thư mục con của thư mục cha Nó chứa dựng các Ihỏng tin sau:

- Số inode của file tương ứng

- Độ dài mục nhầp

■ Độ dài của tòn mục n hập {tón file hoặc thư mục)

- K.iOu của muc nhạp (một file, thu’ muc, tliiêlbị, socket )

Hình 2 Mục nháp thu mục của hệ thòng file Lxt2

Các khối d ừ liệu (lạc biệt của họ thông file Iixt2 dược lưu theo các câu trúc d ữ liộu nhâ't dịnh Các câu trúc này dược dịnh nghĩa trong các file ticu đổ Ìinux/exl2 fs.h, linux/ext2_ fs_sb.hỈinux/ext2 fs i.h. Các phần dưới dáy mổ ta cụ thế thồng tin của các khôi d ữ liệu này

3

Trang 32

2.1.Super b lock

I lự thrfng file M dược dặc trưng bơi một khôi dặc liiột gọi In super block Đáy là một khối lưu giữ cấu trúc của toàn bộ hệ thống file cùng nhiều thòng tin khác Khối này được tô’ cl.ức theo một cấu trúc dữ liệu dược dinh nghía trong file Ỉinu)ựext2 fs.h như sau

struct ext2 super 1 (lock I

_ u 3 2 s free blocks count; /* I'ree blocks count */

u32 s j r e e inodes c o u n t ;/* l:ree inodes count */

u32 s first data block; /* First Data Block */

u32 s blocks per group; / * # Rlocks per group */

u?>2 s frag.", per group; /* # Fragments per group */

u32 s inodes per group; / * # Inodes per group */

* errors */

* Note: the difference between the compatible feature set and

* the incompatible feature pet is that if thert s a bit set

* in the incompatible feature set that the kernel doesn't

* know about, it should refuse to m ount the filesystem

4

Trang 33

* e2fsck's requirements are more strict; if it doesn't know

* about a feature in either the compatible or incompatible

* feature set, it m ust abort and not try to meddle with

* things it doesn't understand

7

*superblock */

_ u32 s feature incompat; /* incompatible feature set */

* s e t*/

uH s uuid[1h]; / * 128-bit uuid for v o lu m e */

char s volume name[16]; /* volume name */

char s last mountpd[64]; /* directory where last mounted */

U0( s algorithm usage bitmap; I I lror compression */

r

* Performance hints Directory preallocation should only

* happen if the EX 12 COM PAT PREAIi ,OC flag is on

Các thờng tin dưực lưu giữ trnng super block có thế dược chia ra thanh các dạng sau:

Thống tin nhân danq hổ thống file

í rường s magic lưu giữ một sô" nhận dạng cùa hệ thống íile Trong phiên bán Ext2 hiện tại cua nhán 2.4.2, sô nhận dạng này co giá trị 0xFI;53

lhỏng số vổ.cấu trúc hé thong file

Đây lá các thỏng tin cố dịnh từ lúc tạo hộ thống file Các thông tin này giúp hệ điểu hành biết dược câu trúc của hộ thống file Nó ềưực giữ trong các trường s a u 1

s_inodes_count. Tổng số i-node cud hệ thống file

s blocks_count. l ong sổ khồi rủa hộ thống file

s_fìrst_data_bỉock. Số của khối d ữ liệu dầu tiỀn

blocks_per group, s ố khối trổn một nhóin khối Số khối này bao gồm cả các khối dử liệu dặc biot

5

Trang 34

s modes per_group. SỐ i-node trôn một nhmn khối

sJog_bIocksize. Kích thước của một khối logic trôn hộ thống lile

s_create OS. I lệ điểu h ành dã tạo ra hẹ thống file Đây là một số nguyẽn 32 bit chỉ ra hệ diềuhành đã tạo ra hệ thống file Các giá trị của trường này dược định nghĩa theo các macro nhưsau:

Các tham số ngưòi dùn£

Đầy ià các thông tín có lien quan dến người dùng hộ thống Các thững tin này bao gồm:

s_r_blocks^count. Số iượng khối dành riâng cho ngươi dùng ront Đây là người dùng có quyền tối cao trong hộ thồng Cár khối danh riông này dược ngưòi dùng root sử dung trong trưìíng hợp hỄ thống file bị dẩy dữ liC’u

s_deỉ' resuids_deỉ_resgid. Chứa bộ nhận dạng của ngưỏ! dùng và nhóm người dung dược

sử dụng các khối danh riêng

C ác thông tin về trang thái hicn tai của ho thống file

Các thổng tin này bao gồm:

free blocks count. Số lượng các khối rỗi hiẹn tại

s_free_inodes_count Sồ các inode cun rỗi hiOn tại

s_mtime. Thời diểin kết gan hẹ thông gần nhất

ầ Vttime. líhời diỄm thay dối hệ thớng file gần nhát

Thông tin diều khiển viẽc quản lý vá sửa lỗi

Mỗi khi hô thông file được kỏt gán hoặc loại bỏ (huỳ kết gán), trạng thái của hộ thống file dược dánh dấu Trường s_state dược sử dụng dô lưu giữ tr-ạng thái lỗi của hữ thống ] liỏn tại, chi 2 bit của trường náy dược dùng:

bit 0: Cho biết tình írạng kết gan của hr thống Khi hệ thống file được kết gán, bit này dược dạt lá 1 (not clcan), khi hệ thống file bị loai bỏ (umount), bit này dược dặt vể 0 (clean) Vì vệy, nếu một he thống tile chưa kồt gán mà có giá trị bit này là 1 sẽ chứng tỏ rằng hộ thống này bị sụ’ cố trước khi loại bỏ

bit 1: Bit này dược nhân thiet lập lả 1 khi tìm thdy một lôi trén hổ thống file

Rỏn cạnh trương s_stđte dó theo dõi trạng thái của hộ thống file, super bkick còn chứa một số trường khac dược su dung khi kết gán và kĨL-m tra họ thống file Các trưởng này là:

s_mnt_count, s ố lán kết gán hẹ thống kể từ lần kiếm tra sau cùng Vlỗi lần hộ thống dược kết gan, giá trị này lại dược tăng lòn 1 Khi sò này dạt di n một giá trị nào dó, họ thống file bị buộc phai kiỏni tra dù nõ dang (í trạng thái clean và sau dó, s_mnt_ coun/\ại dược đặt 0

s_max m n tro u n t Số lần kế( gán tối da Trưởng này quy dịnh giá trị tối đa của s mnt_count sjastcheck T h is diêm kiểm tra gần nhâl

6

Trang 35

chrckintervaỉ. Thời gian tối da giữa hai lần kiểm tra I lệ thống file bị buộc phải kiêm tra nếu thời gian từ lần kiểm tra gẩn n hất dến thời điếm hiện tại lớn hơn giá trị của trường này

s_error. Trương nảy quy dinh thái dộ của nhân khi tìm thấy lôi trong lúc kết gán hệ thống Giá tri Liia trường này dược khai báo b(ỉi các macro sau:

#define EX 12 MOUNI ERRORS CON I 0x0010/* Continue on errors */

#define l*x I 2 MOUNI LỈRRORS RO 0x002(1 /* Remount fs ro on errors */

#<lefine 1ÌXT2 MOUNT ERRORS PANIC 0x0040 /* Panic on errors 7

Giá trị của nám trường trôn có thd thay dổi dược khi sử dụng hẹ thống (sừ dụng tune2fs).

Ngoài các thống tin trỄn, super block còn cỏ một số trường chứa các thổng tin khác ví

du như các thông till dể tối ưu dọc ghi s_prca!ỉoc_blocks, s_prealloc_dir_bỉock, hay 204 giá trị 32 bit chưa sử dụng s_reserved[204Ị.

ulfi bg free blocks count; f*Vree blocks count */

ulf) ỉíg free inodes count; /* Tree inodes count */

u lh bg used dirs count; /* Directories CDunt */

u l 6 bg pad;

u32 bg reserved[3];

Các Lhông tin của một đặc tả bao gôm:

Địa chi của khối bản dồ bit hô trợ cho việc cáp phát các khối trong nhóm Giá trị này dược giữ trong trường bg block bitmap.

Địa chi cứa khối bdn dồ bit hỗ trọ' cht) việc cấp phát các i-node trong nhỏm Giá trị này được giữ trong trường bg_inode_bitmap.

Số cùa khối tlau tiên chứa bảng i-nođe của nhóm khối

Số các inode và khni rỗi trong nhóm khối Thồng tin này nằm trong hai trường

bg free inodes countbg free_blucks count.

Ngoài ra, dặc tả nhom khối còn chữa một số trưởng dành riêng dỏ phát triốn

Các dăc tả của toàn bộ các nhỏm khối trong hệ thống file dược dật kế tiếp nhau tạo thành một bảng các dậc tả Bàng này cung với super block dược lưu giữ tại mọi nhõm khối do’ dảm bảo an toàn cho hệ thống Theo mặc dịnh, nhân sẽ sử dụng bảng các dặc tá và super

block trong n h ó m khối dầu t TI, n h ỏm 0.

7

Trang 36

2.3 Các khôi bitmap

I lọ thống file Lxt2 sử dụng bản dồ bit (bitmap) dử theo dõi trạng thái cùa các khối và i­node trỄn hệ thống Mổi một nhom khối sẽ có hai bản dồ bit, một cho các khối (block bitmap)

và một cho các i node (inode bitmap) của nhóm Tô' chức của khôi bitmap như sau:

Mỗi một bit quản lý một khối hoặc một i-node hong nhóm Nốu gin Irị cùa bit bằng 0, khối hoặc i-nođe tương ứng dang ở trạng thái lôi, cỏ thể sừ dụng dể câp phát Ngược lại, khối hay i-node nay có thể dã dược dùng hoặc bị lỗi, không thể dùng dô cấp phát

'ITiứ tụ' của các bit trong bitmap (tinh tù trát qua phải) tưn'nt» úng vói số thứ tự các khối hoặc i-nodp của nhóm Ví du:

Bif 0 cua byte 0 trong bitmap tương ứng vói khối (i-nodc) dầu tiên của nhom khối

Bit 7 của byte 0 trong bitmap tương ứng với khối (i-node) thứ 8 của nhóm khối,

nit 0 của byte 1 trong bitmap tướng ứng với khối (i-node) thứ 9 của nhóm khối

Bit m của byte n trong bitmap tương ứng vói khối (i-node) thứ n*H+m của nhóm khối

Việc sử dung CdC khối bitmap đ ' theo dõi tình trạng cùa các khối và i-node dã làm giảm dang kế không gian lưu trữ và tối ưu CđC thao tác dọc ghi vì toán bộ khối bitmap có the

dược trạng thái của 1024*8 = 8192 khối hay H Mb dữ liệu

2.4.1-node và bảng ì-node

Mỗi file trong hí'1 tháng file dưực dại diện bởi một i-nođe 1-node trong họ thống file Hxt2, tương tự n h ư frong Vl;s, lả một cấu I t ú c dữ liộu lưu giũ' c.íc thông tin v í file như các thuộc tính, kiổu file và dịa chỉ car khối dứ liêu ma file nắm giữ Câu trúc này dược dịnh nghía trong file tiêu (,+ề Ỉìnu>ỵpxt2 fs.h như sau:

struct ext2 inođe {

11 ^ 2 i si/.e; /* S iz e in bytes */

Ị1 § 2 dtime; /* Deletion Time */

ul 6 i links count; /* I inks count */

Trang 37

u32 i block[EXT2 N BIOCKS]; /* Pointers to blocks 7

/* File version (for NTS) */

/* rile ACL 7/* Directorv ACL */

/* fragm ent address */

/* Fragment number */

/* I ragmpntsize */

u32 i generation;

u32 i file acl;

u32 i dir acl;

u16 l i uid high; /* these 2 fields */

u!6 l i gid nigh; /* were reserved2[l)] */

u32 1 i reserved2;

} Iinux2;

struct {

uH h i frag; /* l:ragment number */

uH h i ísiĩ.e; /* fragm ent size */

Trang 38

Pit 151 i l l t? 11 inI q R 7 A 5 A 1

I

■►lead, write, execute for another, -►read, write, execute for o w n e r-►reau, write, execute tor o w n e r

""*"group

-►read, write, execute for ow ner,

""^sticky bit for inode

/ tình ,3 Các bit củi) trường J mode

C hin bit d ầu tiôn (0 - H) chúa các quyồn truy cập của ngươi dùng dôn file Các quyỂn này bao gồm quyỂn dọc (read), ghi (write) và gụi thưc hiộn (execute) Quyổn dối vói i node được quy djnh theo ba dối tượng' quyổn của ch'] sở hữu (owner), cùa nhóm chủ S(ỉ hữu (owner group) vầ của các người dùng còn lại (another)

Bit 9 (sticky bit)

Bit l()(set group id)

Bit 11 (set user id)

Rốn bit cuối cùng (12-15): Chỉ ra kiổu của inode Rốn hit này tạc thành một số nguyOn 4 bit Các giá trị của nó cho biết kiổu của inode I lệ thống rile lixt2 hỗ trự các kiểu file: l;ile thổng thuờng, thư muc, tuyên dẫn (pipe), file thiết bi kiểu ký tự (character device), kiểu khối (block device), liẾn kết tưựng trưng (sympolic link; và socket

Các thuộc tính thời gian: Mỗi inode của Ext2 dưực gắn với 4 thời diểm Đó lả thời diern tạo file (trường i_ctime), thời diem thay dổi gần nhát ụ_nĩtime), thời dicm truy cập gân nhất (i_atime) và thời diểm huỷ Cap phát i-node (tuc là thời diêm xoá file) (trường / dtime). 'ITiởi gian đưực tính từ thời diểm bắt dầu là ()():()():()() GMT của ngày 1 tháng I năm 1970

Kích thước file: Được giữ trong trường i size của câu trúc i-node

SỐ block dưực sử dụng dạ lưu du liệu của file (/_blocks)

Các thông tin về chủ sổ hữu và nhóm sủi hữu: Đầy lả chỉ số của người dùng và nhỏmngười dùng dã tạo ra file (/_uidLgìơ).

SỐ các liên kết tơi inođe Tham số này dược giữ trong trường ijink_cnunt biểu thị số các mục nhập trong hộ thống trỏ tới i-nođe Giá trị này bằng 1 khí tạo inode lẩn dầu tiên Sau này, mỗi khi có một liôn kêt cúng tói file, giá trị dưực tăng lủn I

Gia trị cùa trương i_fíngs là một số nguyổn 32 bit quy dịnh một số tliuộc tính mỏ' rộng củd inode Các bit của trường này có ý nghĩa như sau:

Bit 0: Xoá có báo mật: Với bit nay dược dặt là 1, khi file bị xoá, toàn bộ các khối dữ liổu

cũ se bi ghi dè bởi giá trị 0

ííit ] I lỗ trợ undelete Chưc năng này chưa dược phát triển trong phiên bản hiộn tại.Bit 2 : 1 lổ trợ file nén Chức năng này cũng chưa hỗ trợ trong phiên bàn liiộn tại

Bit 3: Ghi dồng bộ Neill bit này dược dặt lá I, mọi thao tác thay dổi trôn file sẽ dưộc ghi fập tức vào thiết bị vật lý

10

Trang 39

Bit 4: File không thê thay dổi Khi bit này dược dặt là 1, mọi người dùng sẽ khổng thổ thay dổi, xoá, dổi tôn file.

Bit 5' Chỉ dược pháp thẻm (append) Khi bit nảy được dặt là 1, người dùng chỉ có khả năng thêm dữ liệu vào file

Các giá trị trÊn dược dịnh nghĩa dưới dạng các macro trong file Ỉinu)ựext2_fs.h.

Danh sách d itu klu n truy cập file dược quy dịnh bởi hai trường i_fíle_ad

i_dir_acl. I lai trường nay dược dặt la 0 khi inode dược khởi tạo và l:xt2 chưa hỗ trọ' các thao tác với nó trong phiổn bản hiộn tại

Ngci ỉi ra, cáu trúc inođe còn chứa hai giá trị union chứa các thông tin phụ thuộc vào hộ dicu hành dó là oscì7 Va OSIỈ2.

Dữ liệu của file dược xác dịnh bởi trường ỉ block Đây là một mảng số nguyỄn 32 bit

co số phần tử dược quy dịnh bởi macro EXT2 N BI.Oí KS Phiổn ban hiện tại, macro này ró giá trị là 15 Các phần tử của mong chính là các con trỏ chỉ vào một khối dữ liệu trín thiet bị lưu trữ Các khối d ữ liộu của một file dược to chuc thành một c.iv phân cap I lình 4.4 minh hoạ câu trúc này

m L * IfflUfHtttttifttl -

S i S K r a

K

data

Hình 4 Gìy dữ liệu củiì inodc

Các khối dữ 'liệ u của hộ thống file lìxt2 gồm có hai loại dó lả các khối d ữ líỌu bình thường và các khối dịa chỉ Khối địa chi hì khói chưa dịa chí cùa các khối dù litu khác trên thiot bị lưu trứ I rong hệ thống file Lxt2, khối địa chỉ gồm có ba loai:

Khối dịa chỉ trưc tiếp (direct block): Khối này chưa các dịa chỉ trỏ tới các khối dữ liệuthực sự

Khối dịa chỉ gián ticp cấp I (inderect block): Khối này chứa các dịa chỉ cùa các khối dịa chỉ trực tiếp

II

Trang 40

Khối dịa chi gián tiép cáp hai (double índerect block): Khôi này chứa các dịa chi của các khối dịa ứkù gián tiốp cáp 1.

IVfii bd loại khôi dja chi tTL-n trong, hó thớng file lZxt2 có bốn loại dịa chỉ tưdng ứng d«)

lá:

Địa chỉ trực tiếp: Trỏ tới khối dữ liộu thực sự

Địa chi gián ticF câp 1: Trỏ tói khối dịa chỉ trực tiêp

Địa chì gián tiốp câ'p 2: í W) tới khối dịa chì gián tiếp cáp 1.

Địa chí gián tiếp cấp 3 (triple inderect): Trù tới khối dịa chỉ gián tiếp cấp 2

Mc’ng 1 block rủa câu trúc ext2 inode chứa các dịa chỉ cùa các khối dữ liộu Mưởi hai phần tử dáu tíồn là các die chỉ trưc tiốp Phân tử thư 13 là một dịa chỉ gián tiếp câp 1, phẩn từ thứ 14 ]à dịa chi yian tiổp Cdp 2 vá phần từ cuối cùng la một dịa chỉ gián tiếp cấp 3

I liện tại, kích thước của một i-node trong hộ thống file lixt2 là 12H byte Lệnh mke2fstheo mạc dinh sè danh cho mỗi i-node 4096 byte Cac i-node dược tổ chức thành một bảng gọi

là bảng i-node Các bảng i-node tĩôn các nhỏm khối có số lưọng i-node (ÍỂU nhau Địa chì của các inode chinh là số hiệu của nó dưực tính từ nhóm khối dầu tiỏn trở di Ví liu một nhóm khối có 2000 i-node thi nhóm dầu tiỄn sẽ có các i-node ill số 0-1999, nhỏm tiếp theo sẽ có các i­node từ 2000-3999

2.5 Câu trúc mục nh.ìp

Như dã mfì tả trên, thư mục trong hổ thống file iixt2 bao gồm các mục nhập Mỗimục nhập không chứa các thuộc tính cud tile mà chỉ chua tỄn, kiêu vả sốhiộu i-node của filetưởng ứng Câu trúc mục nhập dưực dịnh nghĩa trong file Hnu>/ext2_ /s /m h ư s a u

struct ext2 dir entry 2 {

u8 file, type;

char nam e [EX'12 N AM EJ.EN]; / ‘ F ile n am e* /

);

c á u trúc mục nhập trôn cỏ tên ext2 dir entry2 là vì trong file Ỉinu)ựext2_fs.h cong

dịnh nghĩa một cấu trúc mang ton ext2 dir entry Câu trúc này khác cấu trúc ext2 dir entry2

ở chỗ nó khổng cỏ trường fiiejyp e. Nói cách khác, cấu trúc dưực dịnh nghĩa (í trổn lả một cải

tiến tủd lìxt2.

Cae giá trị của kiểu file dược dinh nghĩa dưới dạng các macro n hư sau:

#detíne 1ÌX 12 FT UNKMpWN 0 / / Chira bi 1 kiểu Dìing khi Iịio mộl mục nhạp

#define KXT2 IT CMRD1ÌV 3 Ị Ị File Ihiốl hị kiểu ký lự

#define 1ÌXT2 r i ' Bì KD1:V 4 / / File Ihiốl bị kiểu khối

12

Ngày đăng: 12/05/2020, 22:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w