Kiến trúc PSE Pro

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và phát triển các ứng dụng với cơ sở dữ liệu hướng đối tượng luận văn ths công nghệ thông tin 1 01 10 (Trang 43 - 46)

Chương 2. Các hệ quản trị cơ sở dữ liệu hướng đối tượng

2.2.1. Kiến trúc PSE Pro

PSE Pro lưu trữ một đối tượng C++ dưới khuôn dạng tự nhiên của đối tượng.

Một cơ sở dữ liệu bao gồm nhiều trang, các trang này chứa các đối tượng C++ được sắp xếp theo đúng trật tự chúng sẽ xuất hiện trong bộ nhớ ảo. Khi một ứng dụng mở một cơ sở dữ liệu, PSE Pro sẽ dự phòng sẵn một dải các địa chỉ bộ nhớ ảo chưa được ánh xạ cho toàn bộ dữ liệu của cơ sở dữ liệu. Điều này đảm bảo rằng dải địa chỉ không được sử dụng cho mục đích nào khác ngoài việc dành cho các trang của cơ sở dữ liệu, và cũng đảm bảo rằng cơ sở dữ liệu được ánh xạ tới một miền liên tiếp của bộ nhớ ảo (Hình 15).

Miền dành sẵn

Bộ nhớ ảo

Cơ sở dữ liệu Trang cơ sở dữ liệu

Hình 15.PSE Pro dành sẵn một miền trong bộ nhớ ảo cho các trang CSDL Khi một đối tượng được truyền tới bộ nhớ chương trình, nó không nhất thiết được lưu trữ ở đúng địa chỉ bộ nhớ ảo nó chiếm ban đầu. Mặc dù vậy, nó được lưu ở vị trí ban đầu được điều chỉnh lại bởi offset (được sử dụng để điều chỉnh các con trỏ cơ sở dữ liệu). Do vậy, các con trỏ bộ nhớ ảo bên trong các đối tượng đã được truyền vẫn trỏ đến các mục tiêu ban đầu.

Việc dành trước một dải bộ nhớ ảo chỉ định một cách hiệu quả mỗi trang cơ sở dữ liệu vào một trang bộ nhớ ảo, nhưng các trang cơ sở dữ liệu chưa được truyền ngay tới những trang tương ứng của chúng của bộ nhớ ảo, và các trang nhớ ảo giữ nguyên việc không ánh xạ.

Để đạt được việc truy cập ban đầu tới một cơ sở dữ liệu, chương trình tìm kiếm một đối tượng điểm vào theo tên, và PSE Pro truyền vào trong bộ nhớ ảo trang cơ sở dữ liệu bao chứa đối tượng. Rồi sau đó, chương trình có thể đi theo các con trỏ được chứa trong trang được truyền.

Truyền các trang tới bộ nhớ ảo

PSE Pro dò tìm các con trỏ trỏ tới dữ liệu chưa được truyền bằng việc sử dụng khả năng ánh xạ bộ nhớ ảo của hệ điều hành. Bằng việc đảm bảo rằng bất kỳ con trỏ trỏ tới dữ liệu chưa được truyền nào cũng trỏ vào trong một phần chưa được ánh xạ

của bộ nhớ ảo, PSE Pro đảm bảo rằng hệ điều hành phát tín hiệu một ngoại trừ (một lỗi đọc hoặc một lỗi ghi) khi một chương trình cố gắng huỷ tham chiếu một con trỏ như vậy. PSE Pro bắt tín hiệu này, và truyền vào trong bộ nhớ ảo trang cơ sở dữ liệu bao chứa mục tiêu của con trỏ.

PSE Pro truyền một trang cơ sở dữ liệu bằng việc ánh xạ một bản sao của nó vào trong bộ nhớ ảo với bảo vệ chỉ đọc (cho một lỗi đọc) hoặc bảo vệ đọc/ghi (cho một lỗi ghi). Trong quá trình sao chép, PSE Pro sử dụng thông tin nhận được từ tệp đối tượng lược đồ (một tệp được tạo ra để mô tả các lớp trong cơ sở dữ liệu của chúng ta) để thiết lập các con trỏ được sử dụng nội tại bởi C++. Tất cả những con trỏ khác được sao chép như được thấy bên dưới (Hình 16).

Miền dành sẵn

Bộ nhớ ảo

Cơ sở dữ liệu Trang cơ sở dữ liệu

Các trang nhớ ảo

đ-ợc ánh xạ

Hình 16. Ánh xạ các trang cơ sở dữ liệu vào các trang nhớ ảo

Ghi các trang tới cơ sở dữ liệu

Nỗ lực ban đầu của chương trình để cập nhật một trang sẽ dẫn đến một ngoại trừ hệ điều hành (một lỗi ghi). PSE Pro thu tín hiệu này, truyền trang nếu thấy cần thiết, và đổi sự bảo vệ trang thành đọc/ghi. Sau đó chương trình tiếp tục thực hiện việc cập nhật.

Khi một chương trình PSE Pro thực hiện một thao tác lưu trên một cơ sở dữ liệu, PSE Pro sao chép tới cơ sở dữ liệu tất cả các trang được ánh xạ để đọc/ghi, và sau

đó thay đổi bảo vệ của chúng trở thành chỉ đọc. Theo cách đó, các trang này sẽ không được ghi tới cơ sở dữ liệu trong lần lưu tiếp theo trừ khi chúng được cập nhật lại. Các lỗi PSE Pro trong suốt quá trình lưu và cam kết có thể được khôi phục.

Huỷ bỏ việc ánh xạ và dành trước các trang

Khi một cơ sở dữ liệu bị đóng, PSE Pro thôi không ánh xạ các trang từ bộ nhớ ảo, và cũng không dành trước dải bộ nhớ ảo cho cơ sở dữ liệu.

Chúng ta có thể gọi một hàm PSE Pro API để thôi không ánh xạ một trang hoặc một dải các trang từ bộ nhớ ảo, để giải phóng không gian swap. Trong trường hợp như vậy, bộ nhớ ảo vẫn dành chỗ cho trang hoặc dải các trang. Các trạng thái khác nhau của một trang cơ sở dữ liệu được tổng kết trong một lược đồ trạng thái/ biến đổi dưới đây [1, 19] (Hình 17).

§ãng CSDL

Không đ-ợc chỉ định

Đ-ợc ánh xạ

để ghi

Đ-ợc chỉ định, không đ-ợc ánh xạ

Đ-ợc ánh xạ để chỉ đọc

§ãng CSDL

§ãng CSDL Mở CSDL

Lỗi ghi

Lỗi ghi Lỗi đọc

Trả về bộ nhớ

L-u CSDL

Hình 17. Các trạng thái khác nhau của một trang cơ sở dữ liệu

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và phát triển các ứng dụng với cơ sở dữ liệu hướng đối tượng luận văn ths công nghệ thông tin 1 01 10 (Trang 43 - 46)

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

(97 trang)