intTypePromotion=3

Giáo trình phân tích quy trình ứng dụng điều phối cung cấp processor cho bo mạch p5

Chia sẻ: Sdfsdf Fdsfds | Ngày: | Loại File: PDF | Số trang:5

0
31
lượt xem
2
download

Giáo trình phân tích quy trình ứng dụng điều phối cung cấp processor cho bo mạch p5

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'giáo trình phân tích quy trình ứng dụng điều phối cung cấp processor cho bo mạch p5', công nghệ thông tin, hệ điều hành phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: Giáo trình phân tích quy trình ứng dụng điều phối cung cấp processor cho bo mạch p5

  1. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k 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. n  Địa chỉ vật lý bắt đầu của khung trang là k x 2 , 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. 16 bÝt ®Þa chØ logic 6 bÝt Page 10 bÝt Offset 000001 0111011110 16 bÝt ®Þa chØ vËt 0 000101 lý 000110 + 000110 0111011110 011001 2 Bảng trang của tiến trình Không gian bộ nhớ vật Hình 3.7b: Sơ đồ chuyển đổi địa chỉ logic (page) – vật llý ý 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
  2. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k 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:
  3. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k Segment table base register. Ngoài ra vì số lượng các đoạn của một chương trình/tiến trình có thể thay đổi nên hệ điều hành dùng thêm thanh ghi STLR:Segment table length register, để ghi kích thước hiện tại của bảng phân đoạn. Hệ điều hành cũng tổ chức một danh sách riêng để theo dõi các segment còn trống trên bộ nhớ. Data1: seg2 base limit 1820 Code1 870 320 Code2: seg0 0 320k 150 1470 117 1 0 150 Stack1: 1320 182 150k 2 0 Data1: Stack1: Segment 150k seg1 table 1170 C¸c cña process 1 segment 1020 cña Code1: process1 seg0 Code2 Bas lim e it 870 320k 320 Stack2:s 720 147 eg2 0 0 Data2 250 320 570 1 320k 720 150 Data2: seg1 2 Stack2: Segment 150k table 250 C¸c cña segment 100 process 2 Kh«ng gian ®Þa chØ cña process2 cña bé nhí vËt lý (a) (b) (c) Hình 3.8: Các đoạn của 2 tiến trình process 1 và process 2 (a), được nạp vào bộ nhớ (b), và 2 bảng đoạn tương ứng của nó (c). Trong kỹ thuật này địa chỉ logic mà CPU sử dụng phải gồm 2 thành phần: Số hiệu đoạn (segment): cho biết số hiệu đoạn tương ứng cần truy xuất. Địa chỉ tương
  4. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k đối trong đoạn (Offset): giá trị này sẽ được kết hợp với địa chỉ bắt đầu của đoạn để xác định địa chỉ vật lý của ô nhớ cần truy xuất. Việc chuyển đổi từ địa chỉ logic sang địa chỉ vật lý do processor thực hiện. Hình minh hoạ: Segment0 Segment1 1950 b 750 b 752 0001 001011110000 §Þa chØ logic: Segment # = 1; Offset = 752 Hình 3.9a: Các phân đoạn trên bộ nhớ và địa chỉ logic Nếu có một địa chỉ logic gồm n + m bít, thì n bít trái nhất là số hiệu segment, m bít phải nhất còn lại là offset. Trong ví dụ minh hoạ sau đây thì n = 4 và m = 12, 12 như vậy kích thước tối đa của một segment là 2 = 4096 byte. Sau đây là các bước cần thiết của việc chuyển đổi địa chỉ:  Trích ra n bít trái nhất của địa chỉ logic để xác định số hiệu của phân đoạn cần truy xuất.  Sử dụng số hiệu phân đoạn ở trên để chỉ đến phần tử trong bảng phân đoạn của tiến trình, để tìm địa chỉ vật lý bắt đầu của phân đoạn.  So sánh thành phần offset của địa chỉ logic, được trích ra từ m bít phải nhất của địa chỉ logic, với thành phần length của phân đoạn. Nếu offset > length thì địa chỉ truy xuất là không hợp lệ.  Địa chỉ vật lý mong muốn là địa chỉ vật lý bắt đầu của phân đoạn cộng với giá trị offset. Trong sơ đồ ví dụ sau đây, ta có địa chỉ logic là: 0001001011110000, với số hiệu segment là 1, offset là 752, giả định segment này thường trú trong bộ nhớ chính tại địa chỉ vật lý là 0010000000100000, thì địa chỉ vật lý tương ứng với địa chỉ logic ở trên là: 0010000000100000 + 001011110000 = 0010001100010000. 16 bÝt ®Þa chØ logic 6 bÝt Seg 10 bÝt Offset 0001 001011110000 ®é dµi ®Þa chØ c¬ së 16 bÝt ®Þa chØ vËt 0 001011101110 0000010000000000 lý 1 011110011110 0010000000100000 + 0010001100010000 2 1000011000110 00010000100010000
  5. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y bu bu to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k  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. ®Þa chØ sogicd l STLR > địa chỉ vật lý y STBL + > y s d l b + Segmentation B¶ng ph©n Bộ nhớ vật lý ®o¹n Hình 3.9c: Sơ đồ chuyển địa chỉ có sử dụng STLR, STBR và so sánh offset  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
ADSENSE
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản