- Độ ưu tiờn của cỏc tiến trỡnh là (5 là độ ưu tiờn cao nhất): 1 1 2 4
3.2.4. Kỹ thuật phõn đoạn đơn (Simple Segmentation)
Khụng gian địa chỉ logic của cỏc tiến trỡnh kể cả cỏc dữ liệu liờn quan là tập hợp cỏc đoạn khỏc nhau và khụng nhất thiết 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.
Khụng gian địa chỉ bộ nhớ vật lý cũng đượ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ú.
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.
Để theo dừi cỏc đoạn của cỏc tiến trỡnh khỏc nhau trờn bộ nhớ, HĐH sử dụng cỏc bảng phõn đoạn (SCT: Segment control Table) cho mỗi tiến trỡnh. Mỗi phần tử trong bảng phõn đoạn gồm tối thiểu 2 trường: địa chỉ cơ sở (base) của phõn đoạn và độ dài/giới hạn (length/limit) của phõn đoạn. Địa chỉ cơ sở (base) đoạn xỏc định địa chỉ vật lý của byte đầu tiờn trong đoạn. Giới hạn đoạn (limit) xỏc định kớch thước đ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 BN chớnh, khi đú HĐH 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: 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ớ.
Trong kỹ thuật này địa chỉ logic mà BXL sử dụng 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 và địa chỉ tương đố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.
Nếu cú một địa chỉ logic gồm n + m bớt, thỡ n bớt bờn trỏi là số hiệu segment, m bớt bờn phải cũn lại là offset. Trong vớ dụ minh hoạ sau đõy thỡ n = 4 và m = 12, như vậy kớch thước tối đa của một segment là 212 = 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 bờn trỏi 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 bờn phải 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 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.
Trong kỹ thuật phõn đoạn, cú thể chia sẻ cỏc phõn đoạn chương trỡnh hoặc chia sẻ cỏc gúi chương trỡnh con, dữ liệu.
Nhận xột về kỹ thuật phõn đoạn 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
của tiến trình Không gian bộ nhớ vật
lý
Hỡnh Sơ đồ chuyển đổi địa chỉ logic (segment) – vật lý
độ dài địa chỉ cơ sở
0 1
- 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ựng 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 đ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 best-fit hay first-fit.
- Kỹ thuật phõn đoạn thể hiện được cấu trỳc logic của chương trỡnh, nhưng nú phải cấp phỏt cỏc khối nhớ cú kớch thước khỏc nhau cho cỏc phõn đoạn của chương trỡnh trờn bộ nhớ vật lý, điều này phức tạp hơn nhiều so với việc cấp phỏt cỏc khung trang. Để dung hũa vấn đề này cỏc hệ điều hành cú thể kết hợp cả phõn trang và phõn đoạn.
* Kỹ thuật phõn đoạn kết hợp phõn trang
Khụng gian địa chỉ là một tập cỏc phõn đoạn, mỗi phõn đoạn được chia thành cỏc trang. Khi một tiến trỡnh được đưa vào hệ thống, HĐH sẽ cấp phỏt cho tiến trỡnh cỏc trang cần thiết để chứa đủ cỏc phõn đoạn của tiến trỡnh.
Cơ chế MMU cần cú một bảng phõn đoạn và mỗi phõn đoạn cú một bảng trang phõn biệt.
Địa chỉ logic mỗi đơn vị nhớ cú (s, p, d); trong đú s – là số hiệu phõn đoạn, để chỉ đến phần tử tương ứng trong bảng phõn đoạn; p – số hiệu trang, chỉ đến phần tử tương ứng trong bảng trang của phõn đoạn; d – địa chỉ tương đối trong trang, kết hợp với địa chỉ đầu của trang để tạo ra địa chỉ vật lý mà trỡnh quản lý BN sử dụng.
Đặc điểm chung
Cỏc kỹ thuật trờn đều cú khuynh hướng cấp phỏt vựng nhớ cho tiến trỡnh toàn bộ cỏc trang yờu cầu trước khi thực sự xử lý.
Do kớch thước BN chớnh bị giới hạn, nờn kớch thước tiến trỡnh cũng bị giới hạn. Khú cú thể duy trỡ đồng thời nhiều tiến trỡnh trong BN, và như vậy khú nõng cao mức độ đa chương của hệ thống.