II.QUẢN LÍ BỘ NHỚ NGOÀI TRÊN LINUX2.1 Lý do phải quản lí bộ nhớ ngoài: 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 cần sử dụng bộ nhớ ngoài Nhiệm vụ chính của
Trang 1BÀI TẬP LỚN MÔN: NGUYÊN LÍ HĐH
ĐỀ TÀI: NGHIÊN CỨU TÌM HIỂU VỀ QUẢN LÍ
BỘ NHỚ NGOÀI TRONG HĐH LINUX
Lớp: ĐH-KHMT1-K10
Nhóm sinh viên thực hiện:
Nhóm 6:
1.Trần Hữu Lộc 2.Phạm Hồng Phi 3.Nguyễn Thành Quang 4.Vũ Duy Quang 5.Vũ Văn Việt
Trang 2LỜI NÓI ĐẦU
Linux bắt nguồn từ một HĐH lớn hơn có tên là Unix Unix là một trong những HĐH được sử dụng rộng rãi nhất thế giới do tính ổn định và khả năng hỗ trợ của nó Ban đầu HĐH Unix đã được phát triển như một HĐH
đa nhiệm cho các máy mini và các máy lớn (mainframe) trong những năm
70 Cho tới nay nó đã được phát triển trở thành một HĐH phổ dụng trên toàn thế giới, mặc dù với giao diện chưa thân thiện và chưa được chuẩn hóa hoàn toàn Linux là phiên bản của Unix được cung cấp miễn phí, ban đầu được phát triển bởi Linus Torvald năm 1991 khi còn là một sinh viên của trường đại học Helssinki Phần Lan Hiện nay Linus làm việc tại tập đoàn Transmeta và tiếp tục phát triển nhân HĐH Linux Hiện nay, Linux được phát triển và bảo trì bởi một nhóm hang nghìn lập trình viên cộng tác chặt chẽ với nhau qua Internet Hiện nay, Linux là một HĐH Unix đầy
đủ và độc lập Nó có thể chạy X Window, TCP/IP, Emacs, Web, thư điện tử
và các phần mềm khác Hầu hết các phần mềm miễn phí và thương mại đều được chuyển lên Linux Rất nhiều các nhà phát triển đã bắt đầu
chuyển sang viết trên Linux và từ trước đến nay Linux vẫn được biết đến là một trong những HĐH nhanh, gọn, nhẹ nhất thế giới.
Trang 3Nhận xét của thầy giáo
Trang 4
MỤC LỤC
BỘ CÔNG THƯƠNG 1
LỜI NÓI ĐẦU 2
NHẬN XÉT 3
NỘI DUNG CHÍNH 5
I.TỔNG QUAN VỀ BỘ NHỚ NGOÀI LINUX 5
II.QUẢN LÍ BỘ NHỚ NGOÀI TRÊN LINUX 6
2.1 Lí do 6
2.2 Lập lịch cho bộ nhớ ngoài 6
2.2.1 Phương pháp quản lí không gian nhớ tự do 6
a.Phương pháp Bit vector 6
b.Phương pháp Liệt kê 8
2.2.2 Cấp phát không gian nhớ tự do 8
a Cấp phát liên tục 8
b Cấp phát liên kết 8
c Cấp phát theo chỉ số 10
2.2.3 Cấu trúc phân vùng trong Linux 12
2.3 Bộ nhớ ảo 13
III LẬP LỊCH CHO ĐĨA 14
Các phương pháp lập lịch cho đĩa 14
IV HỆ THỐNG FILE TRÊN LINUX 16
4.1 Khái niệm 16
4.2 Các công cụ tìm kiếm tập tin 17
4.3 Di chuyển trong hệ thống tập tin 18
Trang 5
I.TỔNG QUAN VỀ BỘ NHỚ NGOÀI LINUX
Tương tự như bộ nhớ ngoài của các máy tính cơ bản:
bố năm 2005), trong tương lai, có thể FlashROM sẽ dần thay thế các ổ đĩa cứng, các loại đĩa
CD, DVD
Cách phân biệt trong và ngoài như trên chỉ mang tính tương đối Ví dụ các loại ổ cứng, ổ đĩa CD có thể gắn ngoài (qua giao tiếp USB, SATA)tốc độ truy cập nhanh Ổ đĩa mềm có thể đặt vào máy, lấy ra khỏi máy dễ dàng dung lượng bé tốc độ quay chậm, tốc độ truy cập chậm Đĩa CD và USB là những thiết bị nhớ có dung lượng tương đối cao đến hàng 100 MB
và vài GB
ở đây ta chỉ nghiên cứu tới đĩa từ trên máy tính
- Sơ lược cấu tạo của đĩa từ:
+ Cấu tạo đĩa từ: đĩa từ bao gồm 1 hay nhiều lá đĩa đặt đồng trục Mỗi mặt đĩa chia thành cácrãnh đồng tâm gọi là track ,một track được chia thành các cung nhỏ 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 Trên mỗi mặt đĩa có 1 đầu đọc từ đọc hay ghi dữ liệu Để điều khiển đầu từ đọc hay ghi dữ liệu cần có 1 trình để điều khiển đĩa
Trang 6II.QUẢN LÍ BỘ NHỚ NGOÀI TRÊN LINUX
2.1 Lý do phải quản lí bộ nhớ ngoài:
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 cần sử dụng bộ nhớ ngoài
Nhiệm vụ chính của hệ điều hành phải đảm bảo đượ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 các không gian nhớ tự do (Allocatio methods)
+Cung cấp khả năng đinh vị bộ nhớ ngoài
2.2 Lập lịch cho bộ nhớ ngoài (Disk scheduling).
2.2.1.Phương pháp quản lý không gian nhớ tự do trên Linux
a Phương pháp bit vector:
+ Đây là phương pháp dùng khá phổ biến trên linux
+ Ưu điểm: Cài đặt đơn giản,dễ quản lý ,dễ tìm kiếm những khối đĩa liên tục
+ Nhược điểm: Tốn không gian lưu trữ dành cho bitmap
Dữ liệu trên đĩa
Trang 7Ví dụ: Cho không gian đĩa từ như hình trên, các khối 2, 3, 4, 5, 8, 9, 10, 11, 12, 143, 17,
18, 25, 26, 27 là các khối đĩa tự do Khi đó bitmap quản lý không gian nhớ tự do:
11000011000000111001111110001111…
b Phương pháp liệt kê:
Trang 8+ Trong linux phương pháp liệt kê được sử dụng chính gồm có 4 loại cơ bản : Active
List,Inactive-dirty list ,Inactive-clean list,Free list
Trong phương pháp này ,hệ thống sử dụng 1 danh sách móc nối để liệt kê các khối đĩa tự do con trỏ đầu danh sách chỉ tới khối đĩa tự do đầu tiên ,mỗi khối có 1 con trỏ trỏ tới khối kế tiếp
Ưu điểm: Tiết kiệm không gian nhớ
Nhược điểm: Làm tăng thời gian truy nhập dữ liệu
2.2.2 Cấp phát không gian nhớ tự do.(allocation methods)
+ Giống với đa số các hệ điều hành khác linux dùng 3 phương pháp cấp phát không gian nhớ
a Cấp phát liên tục (Contiguous)
+ Linux dùng phương pháp này chủ yếu để cấp phát cho các file có kích thước nhỏ
+ Hệ thống sẽ chọn 1 đoạn liên tục các khối đĩa tự do để cấp phát cho file đó Với phương pháp này ,để định vị file hệ thống chỉ cần biết địa chỉ của khối đĩa tự do đầu và số block đã dùng
Ví dụ:
Trang 9File F1 được cấp phát 5 khối đĩa có số hiệu 9, 16, 1, 10, 23; khối đầu là 9, khốicuối là 23.
Ưu điểm :
+ Sử dụng được các khối đĩa tự do nằm tản mạn
Nhược điểm :
+ Chỉ hỗ trợ truy nhập tuần tự không hỗ trợ truy nhập trực tiếp
+ Độ tin cậy không cao do có nguy cơ bị mất các con trỏ liên kết
+ Tốn không gian nhớ để lưu trữ các con trỏ
c Cấp phát theo chỉ số
Trang 10Trong phương pháp này, để cấp phát không gian nhớ cho một file, hệ thống sử dụngmột khối đĩa đặc biệt gọi là khối địa chỉ số (index block) cho mỗi file Trong khối đĩachỉ số chứa địa chỉ của các khối đĩa đã cấp phát cho file, trong thư mục thiết bị địa chỉcủa các khối đĩa chỉ số Khi một khối đĩa được cấp phát cho file thì hệ thống loại bỏ địachỉ của khối này khỏi danh sách các khối đĩa tự do và cập nhật vào khối chỉ số của file.
Ưu điểm:
+ Hỗ trợ truy nhập trực tiếp
+ Tận dụng được khối nhớ tự do nằm tản mạn
Nhược điểm:
+ Lãng phí không gian nhớ dành cho khối địa chỉ số
+ Không thể truy nhập tuần tự
Để giải quyết vấn đề tốn dung lượng bộ nhớ cần đưa ra cơ chế phù hợp để điều chỉnhdung lượng của khối chỉ số sao cho tối ưu nhất
Trang 11* Cơ chế liên kết (link scheme) : Một khối chỉ số 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ối chỉ số với nhau Thí dụ, một khối chỉ số có thể chứa một header nhỏ cho tên tập tin và một tập hợp của các địa chỉ 100 khối đầu tiên Địa chỉ tiếp theo (từ cuối cùng trong khối chỉ số) là nil (đối với một tập tin nhỏ ) hay một con trỏ trỏ tới khối chỉ số khác (cho một tập tin lớn)
* Chỉ số 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 chỉ số cấp 1 để chỉ tới khối chỉ số cấp 2 Khối cấp 2 chỉ tới các khối tập tin Để truy xuất một khối,
hệ điều hành dùng chỉ số cấp 1 để tìm một khối chỉ số cấp 2 và khối đó tìm khối dữ liệu mong muốn Tiếp cận này có thể tiếp tục tới cấp 3 hay cấp 4, tùy thuộc vào kích thước tập tin lớn nhất 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ỉ số Chỉ số hai cấp cho phép 1,048,567 khối dữ liệu, cho phép tập tin có kích thước tối đa 4GB
* Cơ chế kết hợp (combined scheme): một biến dạng khác được dùng trong US là giữ 15 contrỏ đầu tiên của khối chỉ số trong inode của tậ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ỉ số riêng Nếu kích thước khối là 4KB, thì tới 48 KB dữ liệu có thể truy xuất trực tiếp 3 con trỏ tiếp theo chỉ 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ối gián tiếp đơn là một khốichỉ số không chứa dữ liệu nhưng chứa địa chỉ của các khối chứa dữ liệu Sau đó, có con trỏ khối gián tiếp đôi (double indirect blocks) 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 địa chỉ của khối gián tiếp ba (triple indirect blocks) Với phương pháp này, số khối có thể được cấp pháttới một tập tin vượt quá lượng không gian có thể đánh địa chỉ bởi các con trỏ tập tin 4 bytes hay 4GB
Inode (index node)
+ Là một khái niệm cơ bản trong Linux filesystem Mỗi đối tượng của filesystem dược đại diện bởi một inode inode là một cấu trúc dữ liệu trong hệ thống tệp truyền thống của các
họ Unix ví dụ như UFS hoặc EXT,EXT3 Inode lưu trữ thông tin về 1 tệp thông thường, thư mục, hay những đối tượng khác của hệ thống tệp tin
+ Cơ chế cấp phát lập chỉ số có một số hạn chế về năng lực cấp phát liên kết.Các khối chỉ số có thể được lưu trữ trong cache trong bộ nhớ; Nhưng khối dữ liệu có thể trải rộng khắp phân khu
Trang 12 Cấu trúc phân vùng trong Linux:
- Boot block: Chứa thông tin vùng khởi động
- Super block: Chứa thông tin về phân vùng
- Inode list: Danh sách các inode trong file system
- Data/Index block: Danh sách các block dữ liệu
Trang 13+ Linux sử dụng các inode table chứa danh sách các inode trong FS Các inode có các chỉ số khác nhau, có một inode gọi là root inode trong mỗi FS.inode là khởi đầu để vào được các
FS sau khi gọi thực hiện hệ thống phép ghép (mount) FS đó vào cây thư mục gốc Mỗi đối tượng của filesystem dược đại diện bởi một inode Tất cả các file đều có những thuộc tính sau đây: Loại file, permissions, chủ sở hữu, nhóm, kích thước file, thời gian truy cập, thay đổi, sửa đổi file, thời gian file bị xóa, số lượng liên kết, thuộc tính mở rộng, danh sách truy cập file
2.3 Bộ nhớ ảo (Virtual Memory)
a Khái niệm:
Linux hỗ trợ bộ nhớ ảo, nghĩa là nó sử dụng một phần của đĩa như là RAM để tăng kíchthước của bộ nhớ Kernel sẽ ghi nội dung của một khối nhớ hiện không sử dụng trên đĩacứng để bộ nhớ được sử dụng cho mục đích khác Khi cần lại những nội dung này thìchúng sẽ được đọc trở lại vào bộ nhớ Việc này hoàn toàn trong suốt đối với người sử dụng,các chương trình chạy trong linux chỉ thấy một số lượng lớn bộ nhớ có sẵn mà không quantâm rằng những phần đó nằm trên đĩa Tất nhiên, việc đọc và ghi trên đĩa chậm hơn(khoảng một ngàn lần) so với sử dụng bộ nhớ thật, vì vậy chương trình chạy không nhanh.Phần đĩa cứng được sử dụng như là bộ nhớ ảo được gọi là không gian hoán đổi
Linux có thể sử dụng một file thông thường trong file hệ thống hoặc một phân vùng riêng
để làm không gian hoán đổi Một phân vùng swap thì nhanh hơn nhưng lại dễ hơn trongviệc thay đổi kích thước của 1 file swap
Trang 14b Swap
+ File swap nằm trên ổ đĩa và chiếm một phần không gian lưu trữ
+ Swapping cần thiết vì 2 lí do:
Khi hệ thống yêu cầu một lượng bộ nhớ nhiều hơn mức RAM cho phép, chức năng hoánđổi của Kernel sẽ đẩy bớt các pages được dung ít hơn ra ngoài và gửi lượng bộ nhớ choứng dụng đang cần ngay lập tức
Có một số pages quan trọng được sử dụng bởi 1 ứng dụng trong suốt quá trình startup, cóthể chỉ được dùng cho khởi tạo thôi, sau đó không bao giờ sử dụng lại nữa, hệ thống có thểswap out những pages này ra, giải phóng bộ nhớ cho những ứng dụng khác, hoặc cho việccache đĩa
Có 2 loại swap space, đó là: Swap partition và Swap file
+ Swap partition là một phân vùng độc lập nằm trên đĩa cứng, chỉ có mục đích là hoánđổi(swapping), không có file nào khác nằm trên đó
+ Swap file là một file riêng biệt nằm trên hệ thống, nó có thể nằm giữa hệ thống và các file
dữ liệu
III LẬP LỊCH CHO ĐĨA (DISK SCHEDULING)
** Các phương pháp lập lịch cho đĩa trên Linux
+ Linux và các bản phân phối của nó sử dụng chủ yếu 2 thuật toán là FCFS và SSTF
Trang 15- Xử lí các hoạt động theo thứ tự trước tiên, ứng dụng nào được kích hoạt trước thì xử
lí trước, kích hoạt sau thì xử lí sau
- Ưu điểm: Tuổi thọ pin thân thiện hơn
- Nhược điểm: Hiệu suất giảm
+ Deadline:
- Sẽ đưa ra danh sách các app nào được ưu tiên theo ý nó và bớt chăm sóc các appkhông ưu tiên đi
- Ưu điểm: Là một trong những Scheduler tốt nhất cho CPU vì được tính toán
sao cho tương thích với hệ thống.
- Nhược điểm: Khi hệ thống quá tải, các Process có thể bất ngờ bị đóng mà
không hề báo trước (Process có thể hiểu là trạng thái nghỉ của một ứng dụng, khi Process của ứng dụng đó tồn tại nó sẵn sang được bật lại ngay khi ta cần sử dụng, gần như không có độ trễ
CFQ
+ Ưu tiên xử lí ứng dụng đang chạy trực tiếp Đợi đến khi ứng dụng đó kết thúc hoạt độngmới tiếp tục xử lí các ứng dụng khác
+ Ưu điểm: Scheduler này giúp máy chạy mượt ứng dụng đang thao tác từ khi bắt
đầu đến khi dừng lại Thích hợp khi xử lí đa nhiệm.
+ Nhược điểm: Trong một số trường hợp nhất định gây độ trễ khi quét các tập tin
Trang 16IV HỆ THỐNG FILE TRONG LINUX
4.1 Khái niệm hệ thống tập tin
4.1.1 Khái niệm
- Người dùng đã từng làm việc với hệ điều hành DOS/Windows thì rất quen biết với các khái niệm: file (tập tin), thư mục, thư mục hiện thời Để đảm bảo tính hệ thống và thuận tiện cho người dùng chưa từng làm việc thành thạo với một hệ điều hành nào khác, chương này vẫn giới thiệu về các khái niệm này một cách sơ bộ
- Một đối tượng điển hình trong các hệ điều hành đó là file File là một tập hợp dữ liệu có tổ chức được hệ điều hành quản lý theo yêu cầu của người dùng Cách tổ chức dữ liệu trong file thuộc về chủ của nó là người đã tạo ra file File có thể là một văn bản (trường hợp đặc biệt là chương trình nguồn trên C, PASCAL, shell script ), một chương trình ngôn ngữ máy, một tập hợp dữ liệu Hệ điều hành tổ chức việc lưu trữ nội dung file trên các thiết bị nhớ lâu dài (chẳng hạn đĩa từ) và đảm bảo các thao tác lên file Chính vì có hệ điều hành đảm bảo các chức năng liên quan đến file nên người dùng không cần biết file của mình lưu ởvùng nào trên đĩa từ, bằng cách nào đọc/ghi lên các vùng của đĩa từ mà vẫn thực hiện được yêu cầu tìm kiếm, xử lý lên các file
- Hệ điều hành quản lý file theo tên gọi của file (tên file) và một số thuộc tính liên quan đến file Trước khi giới thiệu một số nội dung liên quan đến tên file và tên thư mục, chúng ta giới thiệu sơ bộ về khái niệm thư mục
- Để làm việc được với các file, hệ điều hành không chỉ quản lý nội dung file mà còn phải quản lý các thông tin liên quan đến các file Thư mục (directory) là đối tượng được dùng để chứa thông tin về các file, hay nói theo một cách khác, thư mục chứa các file Các thư mục cũng được hệ điều hành quản lý trên vật dẫn ngoài và vì vậy, theo nghĩa này, thư mục cũng được coi là file song trong một số trường hợp để phân biệt với "file" thư mục, chúng ta dùng thuật ngữ file thông thường Khác với file thông thường, hệ điều hành lại quan tâm đến nội dung của thư mục
4.1.2 Một số nội dung liên quan đến tên file (bao gồm cả tên thư mục)
- Tên file trong Linux có thể dài tới 256 ký tự, bao gồm các chữ cái, chữ số, dấu gạch nối, gạch chân, dấu chấm Tên thư mục/file trong Linux có thể có nhiều hơn một dấu chấm, ví dụ: This_is.a.VERY_long.filename Nếu trong tên file có dấu chấm "." thì xâu con của tên file từ dấu chấm cuối cùng được gọi là phần mở rộng của tên file (hoặc file) Ví dụ, tên file trên đây có phần mở rộng là filename Chú ý rằng khái niệm phần mở rộng ở đây không mang ý nghĩa như một số hệ điều hành khác (chẳng hạn như MS-DOS)
- Tên file thường là tham số thực sự khi gõ lệnh và công việc gõ lệnh trở nên rất nặng nề đối với người dùng nếu như trong lệnh phải gõ một đường dẫn dài theo dạng trên (được biết với tên gọi là đường dẫn tuyệt đối) Vì vậy, Linux (cũng như nhiều hệ điều hành khác) sử dụng khái niệm thư mục hiện thời của mỗi người dùng làm việc trong hệ thống Thư mục hiện thời là một thư mục trong hệ thống file mà hiện thời "người dùng đang ở đó"