NGHIÊN CỨU TÌM HIỂU VỀ QUẢN LÝ BỘ NHỚ NGOÀI TRONG HỆ ĐIỀU HÀNH LINUX

20 1.5K 13
NGHIÊN CỨU TÌM HIỂU VỀ QUẢN LÝ BỘ NHỚ NGOÀI TRONG HỆ ĐIỀU HÀNH LINUX

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN HỌC NGUYÊN HỆ ĐIỀU HÀNH Nhóm thực hiện: Nhóm - Lớp KHMT3 – K9 Hà Nội ,ngày 18 tháng năm 2016 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI ĐỀ TÀI: NGHIÊN CỨU TÌM HIỂU VỀ QUẢN BỘ NHỚ NGOÀI TRONG HỆ ĐIỀU HÀNH LINUX GV hướng dẫn: Thạc sĩ Nguyễn Tuấn Tú Nhóm thực hiện: Vũ Tiến Long Vương Quốc Huỳnh Nguyễn Thanh Tú Phạm Duy Đạt Nguyễn Trung Huy MỤC LỤC Lời nói đầu Linux tên gọi hệ điều hành máy tính tên hạt nhân hệ điều hành Nó có lẽ ví dụ tiếng phần mềm tự việc phát triển mã nguồn mở Phiên Linux Linus Torvalds viết vào năm 1991, lúc ông sinh viên Đại học Helsinki Phần Lan Ông làm việc cách hăng say vòng năm liên tục cho đời phiên Linux 1.0 vào năm 1994 Bộ phận chủ yếu phát triển tung thị trường quyền GNU General Public License Do mà tải xem mã nguồn Linux Mã nguồn mở HDH chương trình Linux tài liệu vô giá để học hỏi kỹ thuật lập trình vốn tài liệu không công bố ứng dụng Windows Trong luận này, tìm hiểu phần quan trọng HDH Linux là: Quản nhớ Linux Giới thiệu sơ qua Linux: Linux tên gọi hệ điều hành máy tính tên hạt nhân hệ điều hành Nó có lẽ ví dụ tiếng phần mềm tự việc phát triển mã nguồn mở Phiên Linux Linus Torvalds viết vào năm 1991, lúc ông sinh viên Đại học Helsinki Phần Lan Ông làm việc cách hăng say vòng năm liên tục cho đời phiên Linux 1.0 vào năm 1994 Bộ phận chủ yếu phát triển tung thị trường quyền GNU General Public License Do mà tải xem mã nguồn Linux Chim cánh cụt Tux trên, dựa hình ảnh Larry Ewing tạo vào năm 1996, biểu trưng vật may mắn Linux Thông tin thêm: Ubuntu hệ điều hành máy tính dựa Debian GNU/Linux, phân phối Linux thông dụng Ubuntu thường cài đặt máy tính mới, trước người sử dụng mua cài đặt hệ điều hành khác Logo hệ điều hành Ubuntu Android hệ điều hành dựa tảng Linux thiết kế dành cho thiết bị di động có hình cảm ứng điện thoại thông minh máy tính bảng Ban đầu, Android phát triển Tổng công ty Android, với hỗ trợ tài từ Google sau Google mua lại vào năm 2005 Android mắt vào năm 2007 với tuyên bố thành lập Liên minh thiết bị cầm tay mở: hiệp hội gồm công ty phần cứng, phần mềm, viễn thông với mục tiêu đẩy mạnh tiêu chuẩn mở cho thiết bị di động Chiếc điện thoại chạy Android bán vào tháng 10 năm 2008 Logo hệ điều hành Android Các khái niệm -Bộ nhớ: + Bộ nhớ trung tâm để điều khiển hệ thống máy tính đại + CPU lấy thị từ nhớ dựa theo giá trị đếm chương trình -Bộ nhớ ngoài: + Gồm thiết bị như: Thẻ nhớ, ổ cứng, đĩa mềm, đĩa CD/DVD… -Lý phải quản nhớ ngoài: Khi cần lưu trữ chương trình liệu, hệ thống máy tính cần sử dụng nhớ (đĩa từ, băng từ…) Nhiệm vụ hệ điều hành phải đảm bảo chức sau: + Quản không gian nhớ tự nhớ (Free space mange) + Cấp phát không gian nhớ tự (Allocation methods) + Cung cấp khả định vị nhớ + Lập lịch cho nhớ (Disk scheduling) - Sơ lược cấu trúc nguyên tắc hoạt động đĩa từ: Hình 1.1:Hình minh họa cấu trúc đĩa từ + Cấu tạo đĩa từ: Xét cấu trúc vật đĩa từ đĩa từ bao gồm hay nhiều đĩa đặt đồng trục Mỗi mặt đĩa chia thành rãnh đồng tâm gọi track , track chia thành cung gọi sector Tập hợp track cung thứ tự mặt đĩa gọi Cylinder Trên mặt đĩa có đầu từ đọc hay ghi liệu (read hay write heads) Để điều khiển đầu từ đọc hay ghi liệu cần có trình để điều khiển đĩa (disk controler) + Thư mục thiết bị: Thông tin đĩa đĩa tham chiếu thành phần: Ổ đĩa, mặt đĩa, track, sector… Thư mục thiết bị cho biết đĩa gồm thông tin gì, độ dài kiểu, người sở hữu, thời điểm khởi tạo, vị trí, phân bố không gian nào? Thư mục thiết tạo đĩa vùng nhớ đĩa Các phương pháp quản không gian nhớ tự 2.1 Phương pháp Bit vector Không gian đĩa chia thành khối (block) đánh số từ max Vd: Đĩa mềm 44Mb, mặt, 80 track/1mặt, 18 sector/1track đánh số sau: Mỗi khối đĩa sử dụng 1bit để đánh dấu trạng thái Khối đĩa sử dụng bit trạng thái có giá trị 1, chưa sử dụng có giá trị Tập hợp ký hiệu 0, tạo thành bit vector (bitmap) Đọc thông tin bitmap hệ điều hành xác định không gian tự đĩa Hình 2.1: Mô tả không gian đĩa từ Vd: Cho không gian đĩa từ hình trên, khối 2, 3, 4, 5, 8, 9, 10, 11, 12, 143, 17, 18, 25, 26, 27 khối đĩa tự Khi bitmap quản không gian nhớ tự do: 11000011000000111001111110001111… - Ưu điểm: Phương pháp bitmap cài đặt đơn giản, dễ quản lý, dễ tìm kiếm khối liên tục đĩa - Nhược điểm: Tốn không gian lưu trữ dành cho bitmap (vì khối tốn bit để lưu trạng thái khối) 2.2 Phương pháp liệt kê (List) Trong phương pháp này, hệ thống sử dụng danh sách móc nối để liệt kê khối đĩa tự Con trỏ đầu danh sách tới khối đĩa tự đầu tiên, khối có trỏ để trỏ tới khối Ưu điểm phương pháp tiết kiệm không gian nhớ lại làm tăng thời gian truy nhập liệu 2.3 Phương pháp lập nhóm (Grouping) Trong phương pháp này, hệ thống cho phép nhóm khối đĩa tự liên tiếp thành nhóm Khối đĩa tự nhóm lưu trữ địa khối đĩa tư nhóm Khối đĩa cuối nhóm lưu trũư địa khối đĩa tự nhóm Theo hình, ta có bảng quản không gian nhớ tự sau: Nhóm Khối đầu Khối cuối I 2(2,3,4,5) 5(8) II 8(8,9,10,11,12,13 13(17) III 17(17,18) 18(25) IV 25(25,26,27) 27(…) 2.4 Phương pháp đếm (Couting) Phương pháp đếm biến đổi phương pháp lập nhóm Trong phương pháp này, hệ thống lập danh sách quản địa khối đĩa tự số lượng khối đĩa tự liên tục khối đĩa Vd: Theo hình, ta có danh sách quản không gian nhớ tự sau: Danh sách Số lượng 17 25 3.Cơ cấu quản nhớ Linux "Quản nhớ" hạn liên quan đến chế thực hệ thống hoạt động để cung cấp ứng dụng với dịch vụ liên quan đến nhớ Những dịch vụ bao gồm việc sử dụng nhớ ảo (sử dụng đĩa cứng phương tiện lưu trữ khác không-RAM cung cấp thêm nhớ chương trình), bảo vệ nhớ (không bao gồm quyền truy cập vào khu vực nhớ trình), nhớ chia sẻ (hợp tác xã tiếp cận với khu vực nhớ nhiều quy trình) Các dịch vụ quản nhớ Linux xây dựng tảng lập trình bao gồm thiết bị ngoại vi gọi đơn vị quản nhớ (MMU) MMU dịch địa nhớ vật đến địa tuyến tính sử dụng hệ điều hành, yêu cầu lỗi trang gián đoạn, CPU cố gắng truy cập nhớ quyền Không phải tất xử có MMUs Do đó, phân bố uClinux (Linux cho vi điều khiển) hỗ trợ không gian địa hoạt động Kiến trúc không bảo vệ cung cấp MMU, làm cho cho Linux để chạy lớp học vi xử Để hiểu biết thêm cấu trúc dịch vụ MM, cần phải biết đơn vị nhớ Linux trang, khu vực không chồng chéo nhớ tiếp giáp Tất nhớ có sẵn vật tổ chức vào trang vào cuối trình khởi động hạt nhân Kích thước trang phụ thuộc vào kiến trúc vi xử Thiết kế vi xử thường cho phép có hai nhiều hơn, lúc, kích thước trang Kích thước trang truyền thống sử dụng Linux 4096 byte Tuy nhiên, cách sử dụng trang nhớ "như là" thuận tiện Thông thường, cần phải phân bổ trang nhớ Có khả Linux: -Trong hạt nhân, bạn phân bổ đối tượng hạt nhân nhỏ cách sử dụng cấp phát sàn -Bạn cấp phát khối nhớ kmalloc, phân bổ có khối kích thước lớn gần mà có -Trong chế độ người dùng, bạn bố trí số lượng nhớ cách sử dụng chức quản đống thực thư viện chuẩn C -Bạn tạo quản heap riêng bạn đầu trang gọi hệ thống hạt nhân Linux Để cung cấp giao diện đơn giản để tương tác với đơn vị quản nhớ thực tương tác cách cầm tay, Linux, hệ thống phụ phân bổ phát hành nhớ chia thành ba lớp Các lớp là: -Bộ cấp phát Sàn -Bộ cấp phát Zone -Bộ cấp phát Buddy Đề án tổng thể tương tác tất lớp với mã chế độ người dùng phần cứng trông sau: Hình 3.1: Sơ đồ tổng quát quản nhớ Linux Lưu ý Linux, hầu hết chương trình trực tiếp gián tiếp sử dụng quản đống tiêu chuẩn GCC C gọi Thư viện glibc, bạn viết quản heap riêng bạn đầu trang gọi hệ thống hạt nhân Như thấy hình, phân bổ, không gian người sử dụng luôn dẫn đến phân bổ hạt nhân Bộ nhớ hạt nhân phân bổ cách sử dụng chuỗi ba cấp phát hạt nhân đồ phân bổ trang không gian địa trình, có yêu cầu phân bổ Dịch vụ Quản nhớ 4.1 Hệ thống Buddy Bộ cấp phát Buddy chịu trách nhiệm cho việc quản phân bổ trang toàn hệ thống Mã quản danh sách trang vật tiếp giáp đồ chúng vào bảng trang MMU để cung cấp hệ thống hạt nhân khác với phạm vi địa vật hợp lệ, yêu cầu hạt nhân (lập đồ địa vật ảo xử lớp cao VM) Bộ cấp phát Buddy chia nhớ thành cặp trang 2n n phạm vi từ đến MAX_ORDER không đổi (được định nghĩa tập tin tiêu đề ), lưu trữ thông tin khối miễn phí trang mảng danh sách sau: Hình 4.1: Mảng danh sách trang nhớ cấp phát Buddy Mỗi danh sách bao gồm khối miễn phí thể chất tiếp giáp trang nhớ 2i, i số danh sách Mỗi khối vậy, ngoại trừ khối bao gồm trang, chia thành hai nửa sử dụng khối có kích thước 1/2 Vì vậy, mục tồn danh sách yêu cầu, mục danh sách chia thành hai cụm riêng biệt trả lại cho người gọi khác thêm vào danh sách thấp Mặt khác, hai khối nhớ có kích thước, có biên giới chung (sắp xếp nhớ tuần tự, từ quan điểm địa vật lý), thống vào khối kích thước lớn Như khối láng giềng gọi Buddies Khi phân bổ trả lại cho cấp phát Buddy, kiểm tra bạn phân bổ miễn phí, vậy, Buddy cấp phát kết hợp họ lại thành khối lớn Hoạt động lặp lặp lại bạn bè khối không tìm thấy Ngoài ra, nên lưu ý cấp phát Buddy phân bổ khối kích thước trang nâng lên số điện Cấp phát Buddy tương tác với chủ đề hạt nhân kswapd bdflush, chịu trách nhiệm cho việc trì với vùng trao đổi Phạm vi khác trang vật có thuộc tính khác nhau, cho mục đích hạt nhân Ví dụ, nhớ truy cập trực tiếp làm việc phạm vi cụ thể địa vật kiến trúc x86 Mặt khác, PPC hạn chế Để xử tình phần cứng cách độc lập cấp phát Zone tạo Cấp phát Zone sử dụng để phân bổ trang khu vực quy định Hôm Linux kernel hỗ trợ ba khu vực nhớ: -DMA - Vùng bao gồm nhớ truy cập nhớ trực tiếp cho hoạt động thiết bị di sản -NORMAL - Vùng bao gồm địa nhớ sử dụng hạt nhân cho cấu trúc liệu nội hệ thống khác phân bổ không gian người dùng -HIGHMEM - Vùng bao gồm tất nhớ sử dụng dành riêng cho hệ thống phân bổ (bộ đệm hệ thống tập tin, người dùng phân bổ không gian, vv) Lưu ý cấp phát Zone thao tác với trang nhớ Kể từ thường cần phải phân bổ đối tượng có kích thước nhỏ kích thước trang, cần để đối phó với trang phân bổ khối nhớ Chúng ta biết kích thước hầu hết đối tượng thường phân bổ không gian hạt nhân, đó, tạo cấp phát mà nhận trang nhớ từ cấp phát Zone phân bổ đối tượng nhỏ trang nhớ Hệ thống đặt tên cấp phát Sàn (cấp phát nhớ hạt nhân Một đối tượng Caching) Cấp phát Sàn tổ chức nhớ cache, nhớ cache cho loại đối tượng, ví dụ inode_cache, dentry_cache, buffer_head, vm_area_struct Cache bao gồm nhiều (thường trang dài), có chứa nhiều đối tượng khởi tạo.Điều có nghĩa nhà xây dựng đối tượng sử dụng cho giao bạn nên khởi tạo đối tượng trước thả vào cấp phát Sàn Ngoài cấp phát Sàn làm cho phân bổ đệm nhớ kích thước đặc biệt xác định Vùng đệm nhận cách sử dụng chức hạt nhân kmalloc Bạn xác định kích thước, phân bổ kmalloc phân bổ khối kích thước lớn hơn, gần mà bạn yêu cầu Kích thước khối nhớ mà phân bổ theo kmalloc, có sẵn tập tin tiêu đề Ngoài hạt nhân cấp phát nhớ tiếp giáp (bộ nhớ có địa ảo tiếp giáp, không tiếp giáp với địa vật lý) cách sử dụng hàm vmalloc 4.2 Sàn cấp phát: cấp phát nhớ cho đối tượng Rất nhiều nhu cầu cấp phát nhớ cho toàn trang web nhóm trang giao động đối tượng cụ thể Việc phân bổ sàn Linux ví dụ cấp phát nhớ thiết kế để quản đối tượng hạt nhân động (ví dụ, Cột, đệm ổ cắm mạng) Mục tiêu thiết kế cấp phát sàn preallocate vùng nhớ tiếp giáp để làm cho hiệu yêu cầu phân bổ dịch vụ cho đối tượng cụ thể Sàn khối nhớ tiếp giáp lãnh hải, trang thường kích thước Mỗi chịu trách nhiệm xử yêu cầu phân bổ cho đối tượng có kích thước Bởi sàn xử đối tượng có kích thước nhau, vấn đề phân mảnh Trong ngôn ngữ cấp phát sàn, nhớ cache thuật ngữ cho sưu tập chịu trách nhiệm cho đối tượng cụ thể Mỗi sàn ba trạng thái: -Trống rỗng: tất đối tượng phiến đá miễn phí Điều có nghĩa sưu tập trang phiến có thể, cần thiết, khai hoang hệ điều hành cho mục đích khác -Full: tất đối tượng phiến đá sử dụng -Một phần: sàn có chứa hai đối tượng miễn phí sử dụng Bộ cấp phát sàn danh sách liên kết cache (kmem_cache) A, biến cache_chain điểm bắt đầu danh sách Mỗi nhớ cache danh sách xác định loại đối tượng mà chịu trách nhiệm Trong cấu trúc kmem_cache ba trỏ: danh sách đầy đủ tấm, khác với danh sách phần, danh sách sàn rỗng Mỗi đại diện cho danh sách liên kết đối tượng sàn Một số hoạt động sàn là:  kmem_cache_create Tạo nhớ cache Hoạt động thường sử dụng hạt nhân khởi tạo mô-đun hạt nhân nạp Nó xác định tên nhớ cache kích thước đối tượng Lưu trữ riêng biệt cho inodes, mục thư mục, ổ cắm TCP, vv Trên hệ thống Linux, bạn xem tất cấu hình loại tình trạng phân bổ họ tập tin / proc / slabinfo  kmem_cache_destroy Tiêu diệt nhớ cache Các trang sử dụng nhớ cache thu hồi cấp phát trang Điều thường gọi module dỡ xuống đối tượng cụ thể tạo mô-đun không cần thiết  kmem_cache_alloc / kmem_cache_free Phân bổ đối tượng từ nhớ cache đặt tên Nếu có miễn phí phần, cấp phát gọi cache_alloc_refill thêm trang bổ sung cho bê tông Kmem_cache_free chức đánh dấu đối tượng miễn phí  kmalloc / kfree Điều tương tự để kmem_cache_alloc ngoại trừ nhớ cache không quy định cụ thể Chức lặp thông qua danh sách nhớ cache tìm thấy đáp ứng kích thước yêu cầu Linux cấu hình cấp phát sàn với cache chung loạt kích thước phổ biến (ví dụ, kmalloc-8, kmalloc-16, kmalloc-96, kmalloc-256) Kfree chức đánh dấu đối tượng phân bổ miễn phí 4.3 MMU -Tóm tắt thông tin Một đơn vị quản nhớ hỗ trợ phân trang gây tất địa logic (địa ảo) dịch sang địa vật (thực tế địa chỉ) cách dịch số trang hợp địa số khung trang vật Số trang bao gồm bit cao địa địa Các bit thấp hình thức địa bù đắp trang (hoặc khung trang) Ví dụ, với địa 64-bit, kích thước trang MB, sau 20 bit thấp (địa MB) hình thức bù đắp 44 bit đầu hình thành số trang Trang dựa nhớ ảo mát mẻ Nó làm giảm bớt hệ điều hành phải tìm khu vực tiếp giáp nhớ đến nhà trình, sử dụng trang nhớ có sẵn Bảng trang theo dõi ánh xạ không gian địa ảo vật Mỗi trình cảm thấy sở hữu không gian địa đầy đủ xử Các vấn đề phân mảnh bên loại bỏ hoàn toàn Phân mảnh nội tồn không sử dụng nhớ trang Trang lớn làm cho bảng trang nhỏ sử dụng TLB hiệu hơn, tạo phân mảnh nội Bảng trang cho phép hệ điều hành để quản bảo vệ nhớ xác định trang cụ thể ghi chứa mã thực thi Bởi trình cần có bảng trang, hệ điều hành cần thiết lập động lần tạo trình Sau đó, chuyển đổi không gian địa bối cảnh chuyển đổi đơn giản cách thay đổi đăng ký trang bảng sở MMU hỗ trợ nó, ID không gian địa đăng ký Cho đơn vị quản nhớ, tiến trình có không gian địa riêng Cùng địa ảo tham khảo hai khung trang khác (vị trí nhớ vật lý) cho hai trình khác trình có bảng trang riêng Các hệ điều hành chịu trách nhiệm quản bảng trang cho trình Trong bối cảnh chuyển đổi, hệ điều hành phải thông báo cho đơn vị quản nhớ vi xử mà sử dụng bảng trang khác Nó làm điều cách thay đổi bảng trang sở đăng ký, đăng ký có chứa địa bắt đầu bảng trang Hai tối ưu hóa thường xuất đơn vị quản nhớ: tối ưu hóa tra cứu thời gian tối ưu hóa không gian sử dụng bảng trang Nếu tất dịch địa yêu cầu tra cứu bảng trang sau truy cập nhớ hiệu suất hai lần chậm kể từ cần phải đọc bảng trang việc truy cập vào vị trí nhớ mà muốn Chi phí giảm đệm lookaside dịch, TLB, lưu trữ mục bảng trang thường xuyên sử dụng nhớ kết hợp Bởi hầu hết trình sử dụng phần nhỏ không gian địa ảo có sẵn, có khu vực lớn bảng trang chứa mục Để giữ cho kích thước bảng trang dễ quản hơn, cấu trúc đa cấp thường sử dụng Các bit trang địa ảo chia thành hai phần: bit cao xác định bù đắp vào bảng số cấp cao Bảng số có đăng ký sở cho bảng trang phần Các bit thấp bit trang xác định bù đắp bảng trang phần III Các phương pháp cấp phát không gian nhớ tự Cấp phát liên tục (Contiguous) Để phân bổ không gian nhớ cho file, hệ thống chọn đoạn liên tục khối đĩa tự để cấp phát cho file Với phương pháp này, để định vị file hệ thống cần biết địa khối đĩa tự số lượng khối (block) dùng Hình 4.2: Sơ đồ cấp phát liên tục - Ưu điểm: + Hỗ trợ cho phương pháp truy nhập truy nhập trực tiếp - Nhược điểm: + Phải chọn thuật toán tối ưu để tìm vùng không gian tự cấp phát cho file (First Fit, Best Fit Worst Fit) + Có thể xảy trường hợp không đủ số khối đĩa tự liên tiếp cần thiết để cấp phát cho file (kích thước file lớn vùng khối đĩa liên tục lớn nhất) + Trong trường hợp khối đĩa tự nằm tản mạn không sử dụng được, gây lãng phí không gian nhớ Các thuật toán tối ưu: + First fit: Cấp phát hole mà đủ lớn Việc tìm kiếm bắt đầu từ đầu tập hole nơi mà tim kiếm firstfit trước kết thúc Chúng ta dừng việc tìm kiếm tìm thấy hole tự đủ lớn + Best fit: Cấp phát hole nhỏ mà đủ lớn Chúng ta phải tìm kiếm toàn danh sách đó, trừ danh sách sếp theo kích cỡ Chiến lược tạo hole dưa thừa nhỏ + Worst fit: Cấp phát hole lớn Ngược lại, phải tìm kiếm toàn danh sách trừ xếp theo kích thước Chiến lược tạo hole dưa thừa lớn nhất, mà hữu ích nhiều so với hole dưa thừa nhỏ từ tiếp cận bestfit Những mô vừa trình bày first fit best fit tốt worst fit việc giảm thời gian tận dụng lưu trữ 4.4 Cấp phát liên kết (Linked) Trong phương pháp này, file định vị thư mục thiết bị hai trỏ, trỏ tới khối đĩa đầu tiên, trỏ tới khối đĩa cuối để cấp phát cho file Trong khối đĩa cấp phát có trỏ để trỏ tới khối đĩa Ví dụ: File F1 cấp phát khối đĩa có số hiệu 9, 16, 1, 11, 25; khối đầu 9, khối cuối 25 - Ưu điểm: + Sử dụng khối đĩa tự nằm tản mạn - Nhược điểm: + Chỉ hỗ trợ truy nhập không hỗ trợ truy nhập trực tiếp, độ tin cậy không đảm bảo bị trỏ liên Hình 4.3: Sơ đồ cấp phát liên tục 4.5 Cấp phát theo số (Index) Trong phương pháp này, để cấp phát không gian nhớ cho file, hệ thống sử dụng khối đĩa đặc biệt gọi khối địa số (index block) cho file Trong khối đĩa số chứa địa khối đĩa cấp phát cho file, thư mục thiết bị địa khối đĩa số Khi khối đĩa cấp phát cho file hệ thống loại bỏ địa khối khỏi danh sách khối đĩa tự cập nhật vào khối số file Hình 4.4: Cấp phát theo số - Ưu điểm: Hỗ trợ truy nhập trực tiếp - Nhược điểm: Lãng phí không gian nhớ dành cho khối địa số Lập lịch cho đĩa (Disk-scheduling) 5.1 Khái niệm Disk-scheduling - Thời gian truy nhập đĩa phụ thuộc ba yếu tố: + Thời gian di chuyển đầu từ đọc ghi đến track or cylinder cần thiết (Seek time) + Thời gian định vị đầu từ đọc/ghi khối đĩa cần truy nhập (Latency-time) + Thời gian truy nhập liệu (Transfer-time) Mà Seek-time Transfer-time thường cố định phụ thuộc vào cấu trúc kỹ thuật ổ đĩa nên hệ điều hành quan tâm đến Latency-time muốn tăng tốc độ truy nhập đĩa - Như định nghĩa rằng: + Lập lịch cho đĩa xây dựng thuật toán dịch chuyển đầu từ đọc/ghi cho thời gian truy nhập đĩa tối ưu 5.2 Một số phương pháp lập lịch a First come first served (FCFS) Để truy nhập tới file, hệ thống tổ chức hàng đợi yêu cầu phục vụ track (lưu trữ liệu file cần truy nhập) Track có yều cầu phục vụ trước đầu từ đọc ghi dịch chuyển tới trước VD: File F1 phân bổ track có số thứ tự sau đây: 98, 183, 37, 122, 14, 124, 65, 67 Đầu từ đọc/ghi dịnh vị track có số thứ tự 53 sơ đồ dịch chuyển đầu từ đọc ghi theo thuật toán FCFS thể sau: 53 - 98 - 183 - 37 - 122 - 14 - 124 - 65 – 67 b Shortest Seek Time First (SSTF) Thuật toán SSTF chọn track có thời gian di chuyển đầu từ đọc ghi ngắn ưu tiên phục vụ track trước VD: 53 - 65 - 67 - 37 - 14 - 98 - 122 - 124 – 183 c Thuật toán Scan Trong thuật toán đầu từ đọc/ghi quét từ track nhỏ đến track lớn sau quét ngược lại, track có nhu cầu phục vụ d Thuật toán C-Scan Thuật toán tương tự scan không quét chiều ngược lại e Thuật toán Look Tương tự thuật toán Scan thuật toán đầu từ đọc/ghi quét phạm vi track có yêu cầu phục vụ, không quét tới track cuối (nếu track nhu cầu phục vụ) f Thuật toán C-Look Tương tự Look đầu từ đọc/ghi không phục vụ đường Lưu ý: Thuật toán FCFS SSFT thuật toán sử dụng phổ biến Một số hệ thống file Linux 6.1 Giới thiệu Hệ thống tập tin Linux tổ chức theo dạng Có vị trí khởi điểm, gọi root (gốc) Bất kỳ hệ thống Unix/Linux có thư mục đặc biệt gọi thư mục gốc (root directory) kí hiệu dấu slash (“/”) Đây điểm bắt đầu để gắn (mount point) tất phần tử lại hệ thống disks, partitions, CD ROM… vào hệ thống Linux/Unix Hiện nay, hệ thống file tiên tiến được sử dụng Linux Ext2, Ext3, Ext4 có độ tin cậy cao và có khả ghi nhớ quá trình thao tác dữ liệu (journaling) Tên truy cập ô đĩa theo định dạng sau: /dev/xxyN Trong đó: "dev” – tên thư mục chứa tất tập tin thiết bị “xx” – kiểu thiết bị mà phần chia nằm “Y” – Chỉ chữ xác định thiết bị mà phần chia nằm “N” – Số cuối biểu thị cho phần chia 6.2 Hệ thống Ext Tính Kích thước hệ thống file lớn Kích thước file lớn Chiều dài tối đa tên file Kích thước block tuỳ biến Minix 64 MB 64 MB 30 ký tự Không - Đặc trưng: + Hệ thống tập tin Ext2 hỗ trợ kiểu tập tin Unix chuẩn EXT GB GB 255 ký tự Không EXT TB GB 255 ký tự Có + Hệ thống tập tin Ext2 cung cấp tên tập tin dài + Hệ thống tập tin Ext2 dự trữ vài block cho super user (root) + Hệ thống tập tin Ext2 cho phép truy xuất đến hệ thống khác FAT, FAT32, MSDOS Windows 9.x DOS cách dễ dàng ngược lại Hình 6.1: Tổng quan hệ thống tập tin EXT 6.3 Hệ thống Ext Được xây dựng dựa sở của hệ thống file chuẩn ext2 mà Linux sử dụng, ext3 đưa vào thêm chức mới vô cùng quan trọng, journaling file system (JFS), giúp thao tác dữ liệu an toàn Ngoài ra, hệ thống ext có thêm chế JBD (Journaling Block Device) để bảo vệ thông tin thao tác dữ liệu, được đánh giá là tin cậy so với các hệ thống chỉ thực hiện journaling chỉ mục dữ liệu (journaling of metadata only) Reiserfs, XFS hay JFS Với cách bảo vệ hai lần vậy thì hiệu suất ghi dữ liệu có phần nào chậm ext2; một vài trường hợp, nhờ thông tin journal log mà đầu từ ổ cứng di chuyển hợp lý hơn, nên tốc độ thao tác dữ liệu nhanh - Những ưu điểm hệ thống tập tin Ext3: + Tính khả dụng: Khi nguồn bị hỏng hay hệ thống đổ vỡ bất chợt, phân vùng định dạng theo ext2 máy tính phải kiểm tra việc đồng chúng chương trình e2fsck Việc cần khoảng thời gian để tiến hành làm thời gian khởi động hệ thống bị trễ đáng kể, đặc biệt với phân vùng lớn.Trong suốt thời gian liệu phân vùng không dùng đến Ext3 đưa để không cần phải thực việc kiểm tra hệ thống máy tính bị tắt đột ngột, việc kiểm tra xảy phần cứng bị hư hỏng, chẳng hạn ổ đĩa cứng bị hư Thời gian kiểm tra không phụ thuộc vào dung lượng hay số lượng file phân vùng +Tính toàn vẹn liệu: Hệ thống tập tin ext3 cung cấp việc bảo toàn liệu việc hệ thống tắt đột ngột, cho phép ta chọn loại mức độ bảo vệ liệu Mặc định mức bảo vệ cao (high level) +Tốc độ: Bất chấp việc ghi liệu nhiều lần hay lần, ext3 có số lượng liệu đưa vào trình ghi nhiều hẳn so với ext2 ext3 tối ưu hóa đầu đọc chuyển động đĩa cứng Ta chọn ba mức để tối ưu tốc độ điều làm giảm tính toàn vẹn liệu +Dễ dàng chuyển đổi: Thật dễ dàng để ta chuyển đổi từ ext2 lên ext3 đạt lợi ích hệ thống tập tin mạnh mà không cần phải định dạng lại Để chuyển đổi từ ext2 sang ext3, đăng nhập root gõ lệnh: /sbin/tune2fs –j /dev/hdbx /dev/hdb : thay tên thiết bị x số thứ tự phân vùng cần chuyển đổi 6.4 Hệ thống Ext Dung lượng 32 bit phiên nguyên nhân làm giới hạn kích thước hệ thống tập tin 16 TB hành Để mở rộng giới hạn hệ thống tệp tin, phương pháp đơn giản tăng dung lượng bit sử dụng để đại diện cho số lượng khối sau sửa chữa tất tham chiếu cho liệu khối siêu liệu Ở phiên 4, thay mở rộng số lượng khối lên đến 64 bit, người phát triển phiên định mở rộng đồ với số khối 48 bit Nguyên sử dụng 64 bit khó để kiểm soát trọn vẹn nhớ khổng lồ Kể từ địa khối thay đổi hệ thống tập tin đăng tạp chí, khối lớp nhật kí (JBD) yêu cầu để hỗ trợ địa khối 48 bit Vì thế, JBD phân nhánh thành JBD2 để hỗ trợ số khối 32 bit, lúc phiên chia hai Mặc dù có phiên sử dụng JBD2, cung cấp hỗ trợ ghi lại nhật kí chung hai hệ thống tập tin 32 bit 64 bit -THE ENDNhóm thực hiện: Vũ Tiến Long Vương Quốc Huỳnh Nguyễn Thanh Tú Phạm Duy Đạt Nguyễn Trung Huy ... 37, 122, 14, 124, 65 , 67 Đầu từ đọc/ghi dịnh vị track có số thứ tự 53 sơ đồ dịch chuyển đầu từ đọc ghi theo thuật toán FCFS thể sau: 53 - 98 - 183 - 37 - 122 - 14 - 124 - 65 – 67 b Shortest Seek... hình cấp phát sàn với cache chung loạt kích thước phổ biến (ví dụ, kmalloc-8, kmalloc- 16, kmalloc- 96, kmalloc-2 56) Kfree chức đánh dấu đối tượng phân bổ miễn phí 4.3 MMU -Tóm tắt thông tin Một đơn... cuối biểu thị cho phần chia 6. 2 Hệ thống Ext Tính Kích thước hệ thống file lớn Kích thước file lớn Chiều dài tối đa tên file Kích thước block tuỳ biến Minix 64 MB 64 MB 30 ký tự Không - Đặc trưng:

Ngày đăng: 16/04/2017, 12:20

Từ khóa liên quan

Mục lục

  • Lời nói đầu

  • 1. Các khái niệm cơ bản.

  • 2. Các phương pháp quản lý không gian nhớ tự do.

    • 2.1. Phương pháp Bit vector.

    • 2.2. Phương pháp liệt kê (List).

    • 2.3. Phương pháp lập nhóm (Grouping).

    • 2.4. Phương pháp đếm (Couting).

    • 3.Cơ cấu quản lý bộ nhớ Linux.

    • 4. Dịch vụ Quản lý bộ nhớ.

      • 4.1. Hệ thống Buddy.

      • 4.2. Sàn cấp phát: cấp phát bộ nhớ cho các đối tượng.

      • 4.3. MMU -Tóm tắt thông tin.

      • 4.4. Cấp phát liên kết (Linked).

      • 4.5. Cấp phát theo chỉ số (Index).

      • 5. Lập lịch cho đĩa (Disk-scheduling).

        • 5.1. Khái niệm Disk-scheduling.

        • 5.2. Một số phương pháp lập lịch.

        • 6. Một số hệ thống file trong Linux.

          • 6.1. Giới thiệu.

          • 6.2. Hệ thống Ext 2.

          • 6.3. Hệ thống Ext 3.

          • 6.4. Hệ thống Ext 4.

Tài liệu cùng người dùng

Tài liệu liên quan