Giáo trình phân tích khả năng ứng dụng chiến lược theo điều phối cung cấp processor cho bo mạch p5 ppsx

5 284 0
Giáo trình phân tích khả năng ứng dụng chiến lược theo điều phối cung cấp processor cho bo mạch p5 ppsx

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

Thông tin tài liệu

bước sau:  Trích ra m-n bít trái nhất (thấp nhất) của địa chỉ logic để xác định số hiệu trang cần truy xuất.  Sử dụng số hiệu trang ở trên để chỉ đến phần tử tương ứng trong bảng trang của tiến trình, để xác định khung trang tương ứng, ví dụ là k.  Địa chỉ vật lý bắt đầu của khung trang là k x 2 n , và địa chỉ vật lý của byte cần truy xuất là số hiệu trang cộng với giá trị offset. Địa chỉ vật lý không cần tính toán, nó dễ dàng có được bằng cách nối số hiệu khung trang với giá trị offset. Trong sơ đồ ví dụ ở trên, chúng ta có địa chỉ logic là: 0000010111011110, với số hiệu trang là 1, offset là 478, giả định rằng trang này thường trú trong bộ nhớ chính tại khung tang 6 = 000110. Thì địa chỉ vật lý là khung trang số 6 và offset là 478 = 0001100111011110.  Nhận xét về kỹ thuật phân trang:  Có thể thấy sự phân trang được mô tả ở đây tương tự như sự phân vùng cố định. Sự khác nhau là với phân trang các phân vùng có kích thước nhỏ hơn, một chương trình có thể chiếm giữa nhiều hơn một phân vùng, và các phân vùng này có thể không liền kề với nhau.  Kỹ thuật phân trang loại bỏ được hiện tượng phân mảnh ngoại vi, nhưng vẫn có thể xảy ra hiện tượng phân mảnh nội vi khi kích thước của tiến trình không đúng bằng bội số kích thược của một trang, khi đó khung trang cuối cùng sẽ không được sử dụng hết.  Khi cần truy xuất đến dữ liệu hay chỉ thị trên bộ nhớ thì hệ thống phải 000001 0111011110 10 bÝt Offset 16 bÝt ®Þa chØ logic 6 bÝt Page 000101 000110 011001 000110 0111011110 + 16 bÝt ®Þa chØ vËt lý Bảng trang của tiến trình Không gian bộ nhớ vật lý Hình 3.7b: Sơ đồ chuyển đổi địa chỉ logic (page) – vật lý 0 2 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 cần một lần truy xuất đến bảng trang, điều này có thể làm giảm tốc độ truy xuất bộ nhớ. Để khắc phục hệ điều hành sử dụng thêm một bảng trang cache, để lưu trữ các trang bộ nhớ vừa được truy cập gần đây nhất. Bảng trang cache này sẽ được sử dụng mỗi khi CPU phát ra một địa chỉ cần truy xuất.  Mỗi hệ điều hành có một cơ chế tổ chức bảng trang riêng, đa số các hệ điều hành đều tạo cho mỗi tiến trình một bảng trang riêng khi nó được nạp vào bộ nhớ chính. Bảng trang lớn sẽ tốn bộ nhớ để chứa nó.  Để bảo vệ các khung trang hệ điều hành đưa thêm một bít bảo vệ vào bảng trang. Theo đó mỗi khi tham khảo vào bảng trang để truy xuất bộ nhớ hệ hống sẽ kiểm tra các thao tác truy xuất trên khung trang tương ứng có hợp lệ với thuộc tính bảo vệ của nó hay không.  Sự phân trang không phản ánh được cách mà người sử dụng nhìn nhận về bộ nhớ. Với người sử dụng, bộ nhớ là một tập các đối tượng chương trình và dữ liệu như các segment, các thư viện, và các biến, các vùng nhớ chia sẻ, stack, . Vấn đề đặt ra là tìm một cách thức biểu diễn bộ nhớ sao cho nó gần với cách nhìn nhận của người sử dụng hơn. Kỹ thuật phân đoạn bộ nhớ có thể thực hiện được mục tiêu này. III.2.8. Kỹ thuật phân đoạn đơn (Simple Segmentation) Trong kỹ thuật này không gian địa chỉ bộ nhớ vật lý được chia thành các phần cố định có kích thước không bằng nhau, được đánh số bắt đầu từ 0, được gọi là các phân đoạn (segment). Mỗi phân đoạn bao gồm số hiệu phân đoạn và kích thước của nó. Không gian địa chỉ của các tiến trình kể cả các dữ liệu liên quan cũng được chia thành các đoạn khác nhau và không nhất thiết phải có kích thước bằng nhau, thông thường mỗi thành phần của một chương trình/tiến trình như: code, data, stack, subprogram, , là một đoạn. Khi một tiến trình được nạp vào bộ nhớ thì tất cả các đoạn của nó sẽ được nạp vào các phân đoạn còn trống khác nhau trên bộ nhớ. Các phân đoạn này có thể không liên tiếp nhau. Xem hình 3.8. Để theo dõi các đoạn của các tiến trình khác nhau trên bộ nhớ, hệ điều hành sử dụng các bảng phân đoạn (SCT: Segment control Table) tiến trình, thông thường một tiến trình có một bảng phân đoạn riêng. Mỗi phần tử trong bảng phân đoạn gồm tối thiểu 2 trường: trương thứ nhất cho biết địa chỉ cơ sở (base) của phân đoạn mà đoạn chương trình tương ứng được nạp, trường thứ hai cho biết độ dài/giới hạn (length/limit) của phân đoạn, trường này còn có tác dụng dùng để kiểm soát sự truy xuất bất hợp lệ của các tiến trình. Các bảng phân đoạn có thể được chứa trong các thanh ghi nếu có kích thước nhỏ, nếu kích thước bảng phân đoạn lớn thì nó được chứa trong bộ nhớ chính, khi đó hệ điều hành sẽ dùng một thanh ghi để lưu trữ địa chỉ bắt đầu nơi lưu trữ bảng phân đoạn, thanh ghi này được gọi là thanh ghi STBR: 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 Segment table base register. Ngoi ra vỡ s lng cỏc on ca mt chng trỡnh/tin trỡnh cú th thay i nờn h iu hnh dựng thờm thanh ghi STLR:Segment table length register, ghi kớch thc hin ti ca bng phõn on. H iu hnh cng t chc mt danh sỏch riờng theo dừi cỏc segment cũn trng trờn b nh. Data1: seg2 1820 base limit 0 870 320 Code1 320k Code2: seg0 1470 1 117 0 150 Stack1: 150k 1320 2 182 0 150 Data1: 150k Stack1: seg1 1170 Segment table Các segment 1020 của process 1 của process1 Code1: seg0 870 Bas e lim it Code2 320k Stack2:s eg2 720 0 147 0 320 570 1 250 320 Data2 320k 2 720 150 Stack2: 150k Data2: seg1 250 Segment table Các segment 100 của process 2 của process2 Không gian địa chỉ của bộ nhớ vật lý (a) (b) (c) Hỡnh 3.8: Cỏc on ca 2 tin trỡnh process 1 v process 2 (a), c np vo b nh (b), v 2 bng on tng ng ca nú (c). Trong k thut ny a ch logic m CPU s dng phi gm 2 thnh phn: S hiu on (segment): cho bit s hiu on tng ng cn truy xut. a ch tng 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 i trong on (Offset): giỏ tr ny s c kt hp vi a ch bt u ca on xỏc nh a ch vt lý ca ụ nh cn truy xut. Vic chuyn i t a ch logic sang a ch vt lý do processor thc hin. Hỡnh minh ho: Segment0 750 b Segment1 1950 b Nu cú mt a ch logic gm n + m bớt, thỡ n bớt trỏi nht l s hiu segment, m bớt phi nht cũn li l offset. Trong vớ d minh ho sau õy thỡ n = 4 v m = 12, nh vy kớch thc ti a ca mt segment l 2 12 = 4096 byte. Sau õy l cỏc bc cn thit ca vic chuyn i a ch: Trớch ra n bớt trỏi nht ca a ch logic xỏc nh s hiu ca phõn on cn truy xut. S dng s hiu phõn on trờn ch n phn t trong bng phõn on ca tin trỡnh, tỡm a ch vt lý bt u ca phõn on. So sỏnh thnh phn offset ca a ch logic, c trớch ra t m bớt phi nht ca a ch logic, vi thnh phn length ca phõn on. Nu offset > length thỡ a ch truy xut l khụng hp l. a ch vt lý mong mun l a ch vt lý bt u ca phõn on cng vi giỏ tr offset. Trong s vớ d sau õy, ta cú a ch logic l: 0001001011110000, vi s hiu segment l 1, offset l 752, gi nh segment ny thng trỳ trong b nh chớnh ti a ch vt lý l 0010000000100000, thỡ a ch vt lý tng ng vi a ch logic trờn l: 0010000000100000 + 001011110000 = 0010001100010000. 0001 001011110000 Địa chỉ logic: Segment # = 1; Offset = 752 752 Hỡnh 3.9a: Cỏc phõn on trờn b nh v a ch logic 6 bít Seg 0001 001011110000 10 bít Offset 16 bít địa chỉ logic 001011101110 0000010000000000 011110011110 0010000000100000 1000011000110 00010000100010000 0010001100010000 + 16 bít địa chỉ vật lý Bảng phân đoạn độ dài địa chỉ cơ sở 0 1 2 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ận xét về kỹ thuật phân đoạn:  Vì các segment có kích thước không bằng nhau nên sự phân đoạn tương tự như sự phân vùng động. Sự khác nhau là với sự phân đoạn một chương trình có thể chiếm giữ hơn một phân vùng, và các phân vùnh này có thể không liền kề với nhau. Sự phân vùng loại trừ được sự phân mảnh nội vi, nhưng như sự phân vùng động nó vẫn xuất hiện hiện tượng phân mảnh ngoại vi.  Sự phân trang là không tường minh đối với người lập trình, trong khi đó sự phân đoạn là tương minh đối với người lập trình, và nó cung cấp một sự thuận lợi để người lập trình tổ chức chương trình và dữ liệu. Người lập trình hoặc trình biên dịch có thể gán các chương trình và dữ liệu đến các đoạn nhớ khác nhau.  Tương tự như trong kỹ thuật phân vùng động, kỹ thuật này cũng phải giải quyết vấn đề cấp phát động, ở đây hệ điều hành thường dùng thuật toán STLR STBL > + > s d + l b y y s B¶ng ph©n ®o¹n Bộ nhớ vật lý ®Þa chØ logic địa chỉ vật lý Hình 3.9c: Sơ đồ chuyển địa chỉ có sử dụng STLR, STBR và so sánh offset d Segmentation 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 . người lập trình, trong khi đó sự phân đoạn là tương minh đối với người lập trình, và nó cung cấp một sự thuận lợi để người lập trình tổ chức chương trình và dữ liệu. Người lập trình hoặc trình. nhau trên bộ nhớ. Các phân đoạn này có thể không liên tiếp nhau. Xem hình 3.8. Để theo dõi các đoạn của các tiến trình khác nhau trên bộ nhớ, hệ điều hành sử dụng các bảng phân đoạn (SCT: Segment. Table) tiến trình, thông thường một tiến trình có một bảng phân đoạn riêng. Mỗi phần tử trong bảng phân đoạn gồm tối thiểu 2 trường: trương thứ nhất cho biết địa chỉ cơ sở (base) của phân đoạn

Ngày đăng: 21/07/2014, 22:22

Từ khóa liên quan

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

Tài liệu liên quan