Giáo trình hướng dẫn phân tích chuyển địa chỉ trong kỹ thuật table indecator kết hợp paging p8 docx

5 356 1
Giáo trình hướng dẫn phân tích chuyển địa chỉ trong kỹ thuật table indecator kết hợp paging p8 docx

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

Thông tin tài liệu

hành phải kiểm soát chặt chẽ các trường hợp này. Để tránh hiện tượng này hệ điều hành phải tạo một cơ chế thích hợp để loại trừ lẫn nhau trong thao tác đọc/ghi file giữa các file đồng thời. Để thực hiện loại trừ lẫn nhau này hệ điều hành đưa thêm hai trường vào các entry trong bảng danh mục người sử dụng: Trường thứ nhất, Bítghi, = 1 đang có một tiến trình ghi vào file, = 0 không có tiến trình nào ghi vào file. Trường thứ hai, Bộ đếm, = <số các tiến trình đang mở file để đọc>. Theo đó một tiến trình chỉ có thể mở file để đọc khi Bít ghi = 0, mở file để ghi khi Bít ghi = 0 và Bộ đếm = 0. Như vậy, ngay sau khi chấp nhận yêu cầu mở file để ghi từ một tiến trình thì hệ điều hành phải gán Bít ghi = 1, ngay sau khi chấp nhận yêu cầu mở file để đọc từ một tiến trình thì hệ điều hành phải tăng Bộ đếm lên 1 đơn vị, Bộ đếm = bộ đếm + 1. Khi một tiến trình đọc file đóng file thì Bộ đếm = bộ đếm + 1, khi một tiến trình ghi file đóng file thì Bít ghi được gán = 1. Rõ ràng kỹ thuật này có thể dẫn đến lỗi khi hệ thống không giám sát tốt việc thay đổi giá trị trên các trường Bítghi và Bộ đếm, điều này chúng ta đã thấy trong chương Quản lý tiến trình của tài liệu này. IV.1.6. Hiệu suất hệ thống file Như đã biết, tốc độ truy xuất dữ liệu trên đĩa chậm hơn rất nhiều so với tốc độ truy xuất dữ liệu trên bộ nhớ, tốc độ truy xuất dữ liệu trên đĩa tính bằng đơn vị milliseconds, trong khi đó tốc độ truy xuất dữ liệu trên bộ nhớ chỉ tính bằng đơn vị nanoseconds. Do đó, để tạo ra sự đồng bộ trong việc trao đổi dữ liệu trên bộ nhớ và trên đĩa, cũng như tăng tốc độ truy xuất dữ liệu trên bộ nhớ, các hệ điều hành phải thiết kế hệ thống file của nó sao cho tốc độ đọc dữ liệu là nhanh nhất và giảm số lần truy cập đĩa mỗi khi truy xuất file xuống mức thấp nhất. Một trong những kỹ thuật được hệ điều hành sử dụng ở đây là tạo ra các block cache hoặc buffer cache. Trong ngữ cảnh này, cache là một tập các block logic trên đĩa, nhưng được tạo ra và được giữ trong bộ nhớ chỉ để phục vụ cho mục đích cải thiện hiệu suất của hệ thống. Có nhiều thuật toán khác nhau được sử dụng để quản lý cache, nhưng tất cả đều hướng tới mục đích của việc sử dụng cache và nguyên lý hoạt động của cache: Khi nhận được một yêu cầu đọc dữ liệu từ tiến trình của người sử dụng thì bộ phận quản lý cache sẽ kiểm tra block dữ liệu cần đọc đã có trong cache hay chưa, nếu có trong cache thì đọc trực tiếp trong cache mà không cần truy cập đĩa, nếu không có trong cache thì dữ liệu cần đọc sẽ được đọc và ghi vào trong cache trước rồi sau đó được chép đến bất cứ nơi nào cần thiết. Việc ghi vào cache này nhằm chuẩn bị cho các lần đọc dữ liệu sau này. Tức là, nếu sau này có một yêu cầu đọc cùng một block dữ liệu như trên thì nó sẽ được đọc trực tiếp từ cache mà không cần truy cập đĩa. Khi cache bị đầy các block thì một vài block trong đó phải bị xoá hoặc bị xoá và ghi trở lại về Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m đĩa nếu block này có sự thay đổi kể từ khi nó được mang vào bộ nhớ kể từ lần được mang vào gần đây nhất. Trong trường hợp này hệ điều hành cũng sử dụng các thuật toán thay trang trong quản lý bộ nhớ như FIFO, LRU, … để chọn một block trong cache để đưa ra đĩa. Tuy nhiên cache được truy xuất ít thường xuyên hơn, nên hệ điều hành có thể tổ chức một danh sách liên kết để theo dõi việc truy xuất các block trong cache, danh sách liên kết này được sử dụng cho thuật toán thay block: LRU. Một số khái niệm dùng trong quản lý đĩa  Track (từ đạo): Là các vòng tròn đồng tâm được tạo ra trên bề mặt đĩa, đây sẽ là nơi chứa dữ liệu sau này. Các track được đánh số bắt đầu từ 0. Số track trên mỗi mặt đĩa phụ thuộc vào từng loại đĩa.  Sector (cung từ): Các track được chia thành các khối có kích thước cố định bằng nhau và được đánh địa chỉ, các khối này được gọi là các sector. Các sector được đánh địa chỉ bắt đầu từ 1 trên mỗi track, như vậy trên đĩa sẽ tồn tại nhiều sector có cùng số hiệu địa chỉ, cách đánh địa chỉ này gây khó khăn nhiều người lập trình. Kích thước của sector, số byte dữ liệu có thể chứa trên một sector, phụ thuộc vào phần cứng. Trên các họ processor x86, kích thước sector trên đĩa cứng thường là 512 byte, kích thước sector trên đĩa CD_ROM thường là 2048 byte.  Các sector được đánh địa chỉ theo kiểu trên được gọi là sector vật lý. Trong thực tế lập trình các hệ điều hành chỉ sử dụng sector logic, theo đó thì địa chỉ các sector được đánh bắt đầu từ 0 kể từ track 0 của mặt 0 trên đĩa thứ nhất. Như vậy trên đĩa không có các sector có cùng số hiệu địa chỉ. Bảng sau đây cho thấy sự tương ứng giữa các sector vật lý với sector logic trên một đĩa mềm: Mặt đĩa Trac k Sector Sector logic Thông tin lưu trữ 0 0 1 0 Boot record 0 0 2 - 5 1 - 4 FAT 0 0 6 - 9 5 - 8 Thư mục gốc 1 0 1 - 3 9 - 11 Thư mục gốc 1 0 4 - 9 12 - 17 Dữ liệu Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 0 1 1 - 9 18 - 26 Dữ liệu Bảng 4.1: Tương ứng giữa sector vật lý và sector logic trên đĩa mềm  Trên bề mặt đĩa tồn tại các sector mà hệ điều hành không thể ghi dữ liệu vào đó hoặc không thể đọc dữ liệu từ đó. Các sector này được gọi là bad sector. Trong quá trình định dạng đĩa hệ điều hành đánh dấu loại bỏ các bad sector này.  Cluster (liên cung): Một nhóm gồm 2, 4 hoặc 6 sector liên tiếp nhau tạo thành một cluster. Kích thước của cluster thường là bội số kích thước của một sector. Các cluster được đánh địa chỉ bắt đầu từ 0. Số sector trên một cluster phụ thuộc vào từng loại đĩa. Một số hệ điều hành cho phép người sử dụng quy định số sector trên một cluster. Các hệ điều hành thường tổ chức lưu trữ dữ liệu, nội dung các tập tin, trên đĩa theo từng cluster. Trên bề mặt đĩa cũng tồn tại các bad cluster, đó là các cluster có chứa bad sector. Một số hệ điều hành có thể khôi phục lại được dữ liệu chứa trên các bad- sector hay bad cluster và ghi nó vào lại một cluster mới. Hệ điều hành có thể chỉ khôi phục và thay thế dữ liệu tại sector bị bad hoặc phải khôi phục và thay thế toàn bộ dữ liệu trên cluster có chứa bad-sector. Hệ thống file NTFS của windowsNT/2000 tham chiếu đến các vị trí vật lý trên đĩa bằng số hiệu cluster logic (LCNs: logical cluster numbers). LCN là kết quả của việc đánh số tất cả các cluster trên volume từ vị trí bắt đầu volume đến kết thúc volume. Để chuyển một LCN thành địa chỉ vật lý trên đĩa, NTFS nhân LCN với thừa số cluster (số sector trên một cluster) để có được byte offset vật lý trên volume. NTFS tham chiếu đến dữ liệu trong phạm vi một file bằng số hiệu cluster ảo (VCNs: Virtual cluster numbers), VCN đánh số các cluster dựa vào một file cụ thể và đánh số từ 0 đến m. Các VCN không cần phải liên tục về mặt vật lý, tuy nhiên nó có thể ánh xạ đến bất kỳ một LCN nào trên volume.  Cylinder (từ trụ): Các track có cùng số hiệu trên các mặt đĩa khác nhau của một hệ thống đĩa tạo thành một cylinder. Như vậy mặt đĩa có bao nhiêu track thì đĩa có bấy nhiêu cylinder. Cylinder chỉ có trên các ổ đĩa cứng.  Partition (phân khu): Partition là một tập các sector liền kề trên một đĩa. Mỗi partition có một bảng partition hoặc một cơ sở dữ liệu quản lý đĩa riêng, dùng để lưu trữ sector đầu tiên, kích thước và các đặc tính khác của partition.  Volume: Một volume tương tự một partition logic trên một đĩa, và nó được tạo khi ta định dạng một đĩa hoặc một phần của đĩa theo hệ thống file NTFS. Trong hệ điều hành windowsNT/2000 ta có thể tạo ra một volume trãi dài trên nhiều đĩa vật lý khác nhau. Một đĩa có thể có một hoặc nhiều volume. NTFS điều khiển mỗi volume sao cho không phụ thuộc vào các volume khác. Một volume bao gồm một tập các file cùng với bất kỳ một không gian Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m chưa được cấp phát nào còn lại trên partition đĩa. Trong hệ thống file FAT, một volume cũng chứa các vùng đặc biệt được định dạng cho việc sử dụng của hệ thống file. Trong các volume NTFS thì ngược lại nó lưu trũ tất cả dữ liệu của hệ thống file, như là bitmap, directory và cả system bootstrap, trên các file.  Simple volume: là các đối tượng đại diện cho các sector từ một partition đơn, mà các trình điều khiển hệ thống file, quản lý nó như một đơn vị đơn.  Multipartition volume: là các đối tượng đại diện cho các sector từ nhiều partition khác nhau, mà các trình điều khiển hệ thống file quản lý nó như một đơn vị đơn. Các multipartition volume có các đặc tính mà các simple volume không có được như: hiệu suất cao, độ tin cậy cao và khả năng mở rộng kích thước.  Metadata: là một dạng dữ liệu đặc biệt, được lưu trữ trên đĩa, nó hỗ trợ cho các thành phần quản lý các dạng thức hệ thống file khác nhau, dữ liệu của nó có thể là vị trí của các tập tin/ thư mục trên các ổ đĩa. Metadata không được sử dụng trong các ứng dụng.  File system (hệ thống file): Các dạng thức hệ thống file định nghĩa cách mà dữ liệu file được lưu trữ trên thiết bị lưu trữ và sự tác động của hệ thống file đến các file. Một dạng thức hệ thống file cũng có thể đưa ra các giới hạn về kích thước của các file và các thiết bị lưu trữ mà hệ thống file hỗ trợ. Một vài hệ thống file hỗ trợ cho cả các file lớn hoặc nhỏ, hoặc cả các đĩa lớn và nhỏ. Một hệ thống file thường bao gồm các thành phần: Sector khởi động (Boot sector), bảng định vị file (FAT: File Allocation Table), bảng thư mục gốc (Root Directory), một tập các file các thư mục và các công cụ quản lý các thành phần này. Các thành phần này có thể có cấu trúc hoặc phương thức tổ chức khác nhau trên các dạng thức hệ thống file khác nhau. Người ta thường dùng tên của FAT trong hệ thống file để gọi tên của hệ thống file đó. Hệ điều hành MS_DOS sử dụng hệ thống file FAT12 và FAT16, hệ điều hành Windows9x sử dụng hệ thống file FAT32 và CDFS, hệ điều hành Windows NT và Windows 2000 sử dụng các hệ thống file FAT12, FAT16, FAT32, CDFS (CD_ROM File System, UDF (Universal Disk Format) và NTFS (New Technology File System). Các điều khiển hệ thống tập tin Các điều khiển hệ thống tập tin (FSD: File system driver) quản lý các dạng thức hệ thống file khác nhau. FSD chính thức xuất hiện từ windowsNT/2000. Trong windows 2000 có 2 loại FSD: Local FSD và Network/ Remote FSD. Local FSD: quản lý các volume được nối trực tiếp với máy tính. Network/ Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Remote FSD: cho phép người sử dụng và chương trình của người sử dụng truy cập dữ liệu trên các volume được nối với một máy tính ở xa.  Local FSD (FSD cục bộ): Các Local FSD bao gồm các tập tin: Ntfs.sys, Fastfat.sys, Cdfs.sys và Raw FSD (được tích hợp trong Ntoskrnl.exe). Hình sau đây cho thấy cách local FSD tương tác với quản lý I/O và các thiết bị lưu trữ. Các local FSD chịu trách nhiệm đăng ký với bộ phận quản lý I/O, khi FSD đã đăng ký thì bộ phận quản lý I/O có thể gọi nó để thực hiện việc xác nhận volume khi các ứng dụng hoặc các hệ thống khởi tạo truy cập đến volume. Việc xác nhận volume bao hàm việc kiểm tra boot sector của volume và các thông tin hệ thống khác. Sector đầu tiên của mọi dạng thức hệ thống file được hỗ trợ bởi windows 2000 đều được dành riêng cho boot sector của volume. Boot sector chứa đầy đủ thông tin cần thiết để local FSD vừa nhận biết mà sector trên đó đang chứa một dạng thức mà FSD quản lý và tìm kiếm bất kỳ một metadata khác được lưu trữ trên đĩa. Để cải tiến hiệu suất, các local FSD thường sử dụng hệ thống quản lý cache để cache dữ liệu của hệ thống file bao gồm cả metadata.  Các Network/Remote FSD (FSD mạng/từ xa): Các Remote FSD bao gồm 2 thành phần: Một Client và một Server. Các client remote FSD cho phép các ứng dụng truy cập đến các file và các thư mục ở xa. Client FSD chấp nhận các yêu cầu I/O từ các ứng dụng và chuyển nó thành các lệnh trong các giao thức về hệ thống file của mạng để thông qua mạng nó được Applicat Applicat I/O manager File system Sto rage device Logical volume (partition) User mode Kernel mode Hình 4.7.a: FSD cục bộ Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . đánh địa chỉ, các khối này được gọi là các sector. Các sector được đánh địa chỉ bắt đầu từ 1 trên mỗi track, như vậy trên đĩa sẽ tồn tại nhiều sector có cùng số hiệu địa chỉ, cách đánh địa chỉ. byte.  Các sector được đánh địa chỉ theo kiểu trên được gọi là sector vật lý. Trong thực tế lập trình các hệ điều hành chỉ sử dụng sector logic, theo đó thì địa chỉ các sector được đánh bắt. chức một danh sách liên kết để theo dõi việc truy xuất các block trong cache, danh sách liên kết này được sử dụng cho thuật toán thay block: LRU. Một số khái niệm dùng trong quản lý đĩa  Track

Ngày đăng: 24/07/2014, 18:20

Từ khóa liên quan

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

Tài liệu liên quan