Chia sẻ (dựng chung) chương trỡnh và dữ liệu trong hệ thống tổ chức trang

Một phần của tài liệu Tài liệu hệ điều hành tiếng việt BKHN (Trang 69 - 75)

p (Page No) d (Offse t) Địa chỉ ảo v=(,d)

8.6.4 Chia sẻ (dựng chung) chương trỡnh và dữ liệu trong hệ thống tổ chức trang

phần bảng ỏnh xạ nằm trong associative memory. Nếu như ỏnh xạ trang p cú ở đú thỡ bảng ỏnh xạ trong associative memory trả lại kết quả số page frame p' tương ứng với trang ảo p và giỏ trị p' này được cộng với offset d, ta cú được địa chỉ thực r tương ứng với địa chỉ ảo v=(p,d).

Để đảm bảo chỉ số tốc độ cao, bảng ỏnh xạ trong asociative memory phải khụng lớn quỏ. Thật vậy, trong thực tế, với cỏc hệ thống sử dụng chỉ 8 hoặc 16 thanh ghi asociative memory, cú thể đạt được 90% hoặc hơn nữa tốc độ khi sử dụng hoàn toàn associative memory (khi đú kớch thước associative memory cú thể lớn gấp hàng chục đến 100 lần). Cú được kết quả đú là nhờ tớnh chất đặc biệt của cỏc process hoạt động, gọi là tớnh địa phương - locality, hiện tượng này chỳng ta sẽ xem xột sau.

Sử dụng cơ chế kết hợp đú là lời giải kỹ thuật dựa trờn cỏc thụng số kinh tế của cỏc thiết bị hiện cú.

8.6.4 Chia sẻ (dựng chung) chương trỡnh và dữ liệu trong hệ thống tổ chức trang trang

Trong cỏc hệ đa nhiệm, đặc biệt cỏc hệ phõn chia thời gian, thường xảy ra trường hợp nhiều user cựng chạy cỏc chương trỡnh giống nhau. Nếu mỗi user đều dựng riờng một bản copy của chương trỡnh thỡ một phần đỏng kể bộ nhớ bị lóng phớ. Rừ ràng cú một giải phỏp- đú là sử dụng chung (chia sẻ) cỏc trang cú thể chia sẻ.

Sử dụng chung cần phải xử lý , theo dừi cẩn thận để ngăn chặn tỡnh huống khi một process cố thay đổi dữ liệu mà cựng lỳc đú process khỏc đang đọc. Trong nhiều hệ thống tiờn tiến, cú sử dụng chung bộ nhớ, thường cỏc chương trỡnh cấu tạo từ hai phần riờng biệt- vựng chương trỡnh (procedure) và vựng dữ liệu (data). Cỏc procedure cố định (khụng thay đổi) hay cũn gọi là reentrant procedure, cú thể dựng chung. Cỏc dữ liệu tĩnh (vớ dụ

70/117

bảng thụng tin cố định nào đú)- cú thể dựng chung. Cỏc procedure động (thay đổi) cũng khụng thể dựng chung.

Tất cả điều đú núi lờn rằng mỗi trang bộ nhớ cần xỏc định xem cú thể dựng chung hoặc khụng. Sau khi cỏc trang của mỗi process được chia ra hai loại, trong hệ thống tổ chức theo trang thuần tuý việc chia sẻ bộ nhớ được biểu diễn trờn h.8.15. Việc chia sẻ bộ nhớ làm giảm dung lượng bộ nhớ sử dụng và hệ thống cú thể phục vụ số lượng user lớn hơn. Hỡnh 8.15 Bảng ánh xạ trang process A Bảng ánh xạ trang process B Bảng ánh xạ trang process C chỉ process A Bộ nhớ vật lý chia sẻ A và B chỉ process B chỉ process C chi sẻ A và C 8 8..77TTcchhcctthheeoođđoonn((sseeggmmeenntt))

Trong chương trước núi về bộ nhớ thực, chỳng ta đó thấy rằng trong cỏc hệ thống đa nhiệm với phõn đoạn thay đổi, việc phõn bố bộ nhớ thường thực hiện theo cỏc thuật toỏn 'first suitable', 'most suitable' hay 'least suitable' theo tương quan về kớch thước cỏc vựng trống. Nhưng vẫn cú hạn chế là chương trỡnh phải nạp vào một vựng liờn tục.

Trong cỏc hệ thống tổ chức theo segment, sự hạn chế đú cú thể vượt qua, và cho phộp chương trỡnh (và dữ liệu) cú thể nằm trong nhiều khối nhớ khụng liờn tục (h.8.16); Tuy rằng bản thõn cỏc khối nhớ là một vựng nhớ liờn tục nhưng chỳng cú thể cú kớch thước khỏc nhau.

71/117 OS OS vùng trống 10K vùng trống 15K vùng trống 10K Yêu cầu bộ nhớ 30K

Trong giải phỏp này xuất hiện một số vấn đề thỳ vị. Vớ dụ như vấn đề bảo vệ chương trỡnh, bộ nhớ. Sử dụng cặp thanh ghi biờn khụng cũn tỏc dụng nữa. Vấn đề tương tự như thế với việc kiểm soỏt việc truy nhập bộ nhớ của một chương trỡnh nào đú. Một trong những phương phỏp thực hiện bảo vệ bộ nhớ trong cỏc hệ thống tổ chức theo segment- đú là sử dụng khoỏ bảo vệ, như trờn h.8.17

OS BXL BXL 2 Khoá bộ nhớ Bộ nhớ App A App B App A App C App C App A App B App C 1 2 1 3 1 2 3 3

Khoá bảo vệ bộ nhớ từng block

Hỡnh vẽ: Bảo vệ bộ nhớ dựng khoỏ trong cỏc hệ đa nhiệm với phõn bố bộ nhớ thành cỏc block. Khi giỏ trị khoỏ trong BXL được đặt bằng hai- tương ứng với user B, chương trỡnh của user B chỉ cú thể truy nhập đến cỏc block bộ nhớ cú cựng khoỏ (2) Việc điều khiển khoỏ bảo vệ được thực hiện bởi OS.

Địa chỉ ảo trong cỏc hệ thống segment- là cặp số v=(s,d) trong đú s- số segment của bộ nhớ ảo, cũn d- offset trong đoạn đú.

Hỡnh 8.18: dạng địa chỉ ảo

72/117

Process cú thể tiếp tục chỉ trong trườngh hợp segment hiện tại nằm trong bộ nhớ. Segment được nạp từ bộ nhớ ngoài vào bộ nhớ vật lý theo cả segment, và segment phải được nạp vào một vựng nhớ liờn tục. Segment cú thể được nạp vào bất kỳ vựng trống liờn tục nào đủ lớn. Cỏc chiến lược phõn bố segment cũng giống như trong cỏc hệ thống đa nhiệm với phõn đoạn thay đổi, thường thỡ cỏc thuật toỏn ' first suitable' và 'most suitable' hay được ỏp dụng.

Quỏ trỡnh biến đổi địa chỉ động được thực hiện như h.8.19. Process truy nhập theo địa chỉ ảo v=(s,d). Cơ chế ỏnh xạ segment tỡm và (nếu cú) thỡ xỏc định địa chỉ đầu segment s'. Sau đú địa chỉ thực r được tớnh bằng tổng s' và d. Cỏc chi tiết của quỏ trỡnh biến đổi địa chỉ chỳng ta sẽ xem xột sau. Hỡnh 8.19 r Địa chỉ thực p d Địa chỉ ảo v = (s,d) + Bảng ánh xạ b+s s' b

Block table origin Register

s

+

8.7.1 Điều khiển truy nhập trong hệ thống tổ chức segment

Cho phộp mỗi process truy nhập khụng hạn chế đến segment bất kỳ là khụng thực tế. một trong những ưu thế của hệ thống tổ chức theo segment là khả năng kiểm soỏt truy nhập chặt chẽ. Mỗi process được trao một số quyền truy nhập xỏc định đối với một số segment nào đú cũn phần lớn segment khỏc là hoàn toàn khụng được truy nhập.

Trong bảng 8.20 cú liệt kờ những dạng quyền truy nhập phổ thụng nhất được ỏp dụng trong cỏc hệ thống tiờn tiến. Nếu process cú quyền read thỡ nú cú thể đọc (truy nhập) đến bất kỳ ụ nhớ nào trong segment và khi cần nú cú thể copy toàn bộ cả segment.

Nếu như process cú quyền write thỡ nú cú thể thay đổi nội dung của bất kỳ ụ nhớ nào trong segment, và cú thể thờm thụng tin bổ sung vào segment. Khi cần nú cũng cú thể xoỏ toàn bộ segment. Process cú quyền execute thỡ nú cú thể làm việc với segment như là với chương trỡnh. Cũn quyền truy nhập đến cỏc segment dữ liệu thường là bị cấm. Khi process cú quyền append thỡ nú cú thể thờm thụng tin vào cuối segment, nhưng khụng được phộp thay đổi thụng tin đó cú.

73/117

Quyền Ký hiệu Giải thớch

Read R cú quyền đọc thụng tin

Write W cú quyền thay đổi nội dung

Execute E cú quyền thực hiện (chương trỡnh)

Append A cú quyền thờm thụng tin vào cuối block

Trong bảng hệ thống cú phõn biệt 4 loại quyền truy nhập như trờn, cú thể cú 16 chế độ điều khiển truy nhập- cho phộp hay cấm mỗi loại. Tuy nhiờn một số trong chỳng là khụng cú ý nghĩa, cũn một số khỏc thỡ cú. Để đơn giản chỳng ta xem xột 8 tổ hợp quyền truy nhập đối với cỏc quyền read, write và execute- như trong bảng 8.21

Hỡnh 8.21

Trong chế độ 0 tất cả cỏc hỡnh thức truy nhập đều bị cấm. Chế độ này ngăn chặn sự truy nhập bất hợp phỏp, process sẽ khụng thể truy nhập đến segment. Chế độ 1 chỉ cho phộp thực hiện. Chế độ này cần thiết khi process chỉ cần được phộp sử dụng chương trỡnh trong segment nhưng khụng được thay đổi nú hay copy.

Chế độ 2 và 3 thực tế khụng ỏp dụng- khụng cú logic khi cho phộp process thay đổi nội dung của segment mà khụng cho pộp đọc.

Chế độ 4 chỉ cho phộp đọc. Chế độ này cần cho cỏc quỏ trỡnh tỡm kiếm thụng tin, nhưng khụng cho phộp thay đổi chỳng.

Chế độ 5 cho phộp đọc và thực hiện. Chế độ này ỏp dụng trong cỏc TH process được phộp thực hiện chương trỡnh trong segment nhưng khụng được thay đổi nú. Tuy nhiờn process cú thể copy segment và sau đú cú thể thay đổi bản copy của mỡnh.

Chế độ 6 cho phộp đọc và ghi. Chế độ này thường ỏp dụng với segment chứa dữ liệu mà process cú thể đọc hoặc ghi và dữ liệu cần tranghs TH vụ tỡnh cố thực hiện (vỡ segment đú khụng chứa chương trỡnh)

Chế độ 7 khụng hạn chế quyền truy nhập. Chế độ này cần để cho phộp process cú toàn quyền làm việc với cỏc segment của mỡnh, hoặc khi user khỏc tin tưởng hoàn toàn -cho phộp toàn quyền truy nhập segment của anh ta.

Cỏc chế độ kiểm soỏt quyền truy nhập là cơ sở của việc bảo vệ segment và được ỏp dụng trong nhiều hệ thống.

8.7.2 Biến đổi địa chỉ segment-ỏnh xạ trực tiếp

Cũng như trong tổ chức theo trang, trong cỏc hệ tổ chức segment cú nhiều chiến lược thực hiện biến đổi địa chỉ của segment. Việc biến đổi địa chỉ cú thể là ỏnh xạ trực tiếp,

74/117

dựng associative memory hay kết hợp. Chỳng ta sẽ xem xột biến đổi trực tiếp và toàn bộ bảng ỏnh xạ nằm trong cache memory.

Dạng của bản ghi trong bảng ỏnh xạ thường cú như h.8.22 Hỡnh 8.22

r a l R W E A

Địa chỉ trong

bộ nhớ ngoàiĐộ dài Bit bảo vệ truy cập

Địa chỉ trong bộ nhớ

s'

Đầu tiờn chỳng ta xột TH khi quỏ trỡnh biến đổi diễn ra bỡnh thường và sau đú là một số TH cú thể khỏc.

Process truy nhập theo địa chỉ ảo v=(s,d) trong đú s là số segment. Số segment s được cộng với địa chỉ cơ sở b- địa chỉ đầu của bảng ỏnh xạ- nằm trong thanh ghi. Ta cú được địa chỉ thực của bảng ghi ỏnh xạ của segment s. Từ bảng ỏnh xạ ta cú địa chỉ thực s', cộng s' với offset d ta được địa chỉ thực r=s'+d là địa chỉ thực tương ứng với địa chỉ ảo v=(s,d).

Trờn h.8.22 chỳng ta thấy dạng của một ỏnh xạ.

Bit dấu hiệu tồn tại r cho biết thời điểm đú segment cú nằm trong bộ nhớ hay khụng. Nếu như cú, thỡ s' là địa chỉ đầu của nú, cũn nếu khụng cú trong bộ nhớ thỡ a là địa chỉ bộ nhớ ngoài theo đú HĐH nạp segment để process cú thể tiếp tục. Tất cả cỏc thao tỏc truy nhập segment được kiểm soỏt theo độ dài segment l để luụn chắc chắn rằng chỳng khụng vượt ra ngoài segment. Mỗi thao tỏc truy nhập segment cũn được kiểm soỏt theo cỏc bit bảo vệ để xỏc định xem thao tỏc đo cú được phộp hay khụng. Như thế, khi thực hiện biến đổi địa chỉ động, sau khi tỡm đến dũng ỏnh xạ của một segment cụ thể s đầu tiờn sẽ kiểm tra bit r để xỏc định xem lỳc đú segment cú nằm trong bộ nhớ hay khụng. Nếu khụng nằm trong bộ nhớ thỡ sinh ra một ngắt missing segment fault, theo đú OS nhận quyền điều khiển và nạp segment đú từ bộ nhớ ngoài (theo địa chỉ a). Sau khi nạp xong quỏ trỡnh xử lý địa chỉ tiếp tục, offset d sẽ đựơc so sỏnh với độ dài l của segment. Nếu d>l thỡ sinh ra ngắt segment over flow fault, và OS khụng cho phộp thực hiện. Nếu d nằm trong giới hạn thỡ tiếp tục kiểm tra theo cỏc bit bảo vệ để xem tỏc vụ truy nhập cú được phộp hay khụng. Nếu đựơc phộp thỡ mới cộng địa chỉ thực s' của segment với offset d và cú được địa chỉ thực r=s'+d tương ứng với địa chỉ ảo v=(s,d). Cũn nếu thao tỏc khụng được phộp thỡ sẽ sinh ra ngắt segment protection fault và OS khụng cho thực hiện.

8.7.3 Chia sẻ (dựng chung) chương trỡnh và dữ liệu trong cỏc hệ thống tổ chức theo segment.

Một trong những ưu thế cơ bản của tổ chức theo segment so với tổ chức theo trang là ở chỗ tổ chức theo segment mang tớnh logic hơn là tớnh vật lý. Tổng quỏt thỡ cỏc segment khụng bị giới hạn bởi kớch thước cố định nào. Chỳng cú thể cú kớch thước tuỳ TH cần thiết khỏc nhau. Vớ dụ segment để lưu một bảng nào đú sẽ cú kớch thước tương ứng với

75/117

bảng đú. Kớch thước của segment chứa cấu trỳc dữ liệu thay đổi, cú thể thay đổi theo dữ liệu....

Hỡnh 8.23: Chia sẻ bộ nhớ trong tổ chức theo segment Bộ nhớ

Bảng ánh xạ Process A

Bảng ánh xạ Process B

Chia sẻ chương trỡnh, dữ liệu trong hệ thống tổ chức theo segment cũng đơn giản hơn hệ thống tổ chức trang. Vớ dụ trong hệ thống tổ chức trang, cú một bảng dữ liệu dựng chung nào đú cú kớch thước 3,5 trang, thỡ thay vỡ một con trỏ núi rằng 'bảng này dựng chung' chỳng ta cần cỏc con trỏ cho mỗi trang. Mặt khỏc làm việc với một phần của trang khú hơn nhiều. Tỡnh trạng cũn phức tạp hơn trong trường hợp cấu trỳc dữ liệu động. Nếu dữ liệu mở rộng thờm một trang thỡ dấu hiệu sử dụng chung trang cần thay đổi ngay trong thời gian hoạt động của process. Cũn trong hệ thống tổ chức segment, sau khi segment đó được đỏnh dấu dựng chung, thỡ dữ liệu cú thể thay đổi kớch thước tuỳ ý mà khụng làm thay đổi dấu hiệu logic là segment đú được dựng chung.

Trờn h.8.23 biểu diễn sự chia sẻ chương trỡnh, dữ liệu trong hệ thống tổ chức segment, hai process dựng chung segment nếu trong cỏc bảng ỏnh xạ segment cú cỏc bản ghi trỏ tới cựng một segment trong bộ nhớ.

8

Một phần của tài liệu Tài liệu hệ điều hành tiếng việt BKHN (Trang 69 - 75)

Tải bản đầy đủ (PDF)

(117 trang)