CẤU TRÚC CHƢƠNG TRÌNH

Một phần của tài liệu Nguyen ly h diu hanh (Trang 31 - 35)

1. Kiến trúc tuyến tính (độc lập)

Chƣơng trình chỉ có 1 mơđun duy nhất đƣợc nạp vào bộ nhớ 1 lần.Vùng bộ nhớ đƣợc giải phóng khi chƣơng trình thực hiện xong.

Ví dụ: Các tệp *.com trong HĐH MSDOS a. Ƣu điểm:

- Đơn giản, dễ tổ chức, biên tập và định vị - Thời gian thực hiện là nhanh

- Thời gian thực hiện chƣơng trình thƣờng đƣợc dùng làm chuẩn để đánh giá, so sánh các phƣơng pháp tổ chức khác nhau.

- Tính linh động cao: dễ dàng sao chép chƣơng trình mang sang các máy khác cùng loại và cùng hệ thống mà vẫn duy trì khả năng thực hiện.

b. Nhƣợc điểm: Lãng phí bộ nhớ, mức lãng phí tỉ lệ với kích thƣớc chƣơng trình

2. Kiến trúc động

Chia chƣơng trình thành nhiều mơđun: m1, m2….mk Cách nạp chƣơng trình:

- Lúc đầu nạp m1 vào bộ nhớ.

- Kết thúc m1, m1 nạp m2 vào bộ nhớ và tổ chức cho m2 thực hiện.

(m1 kết thúc giải phóng vùng nhớ của m1, m2 có thể sử dụng vùng nhớ đó). Q trình diễn ra liên tục đến khi kết thúc ở môđun p (1 ≤ p ≤ k)

a. Ƣu điểm m0 m0 m0 m0 m0 m2 m2 m2 m1

- Nếu quản lý bộ nhớ tốt thì cấu trúc này rất tiết kiệm bộ nhớ - Giải phóng bộ nhớ theo các chu trình (giai đoạn)

b. Nhƣợc điểm

- Tốn thời gian nạp chƣơng trình (do nhiều lần giao tiếp ngoại vi)

- Đòi hỏi ngƣời sử dụng phải biết quản lý, cũng nhƣ cần có kỹ năng, kiến thức về lập trình hệ thống

3. Kiến trúc Overlay

Hầu hết các chƣơng trình ứng dụng đều có kiến trúc Overlay. Tất cả các ngơn ngữ lập trình đều hỗ trợ Overlay

Khi sử dụng kĩ thuật “chia để trị” để thiết lập giải thuật cho bài toán, ta xây dựng lƣợc đồ cho cấu trúc chƣơng trình.

Ta nhận thấy rằng, tại 1 thời điểm chƣơng trình chỉ thực hiện theo 1 nhánh nào đó của cây. Nhƣ vậy tại thời điểm này chỉ cần nạp các mơđun trên nhánh đó vào bộ nhớ.

Nhận xét:

- Giải sử số nút là n. - Độ sâu của cây là h.

- Ở 1 thời điểm chỉ cần nạp tối đa h vùng nhớ để nạp 1 nhánh cây (h<<n).

- h vùng nhớ này trong quá trình chƣơng trình hoạt động sẽ đƣợc sử dụng luân phiên để nạp các nhánh cây. Nhánh nạp sau phủ lên nhánh nạp trƣớc.

- Hầu hết các chƣơng trình trong máy tính đều có cấu trúc này. - VD: Các file *.exe a. Ƣu điểm 80 KB 100 KB 60 KB 110 KB 80 KB 100 KB 90 KB 80 KB 60 KB 60 KB 40 KB 110 KB 40 KB 70 KB Moduls mức 1 Moduls mức 2 Moduls mức 3 MỨC 0 MỨC 1 MỨC 2 MỨC 3 RAM Tổng cộng: 270 KB 730 KB .OVL

- Tiết kiệm vùng nhớ

- Cấu trúc Overlay dễ dàng xác lập. - Khơng địi hỏi kiến trúc sâu về bộ nhớ b. Nhƣợc điểm

- Tốn thời gian nạp các môđun (Do có thể nạp đi nạp lại 1 mơđun nhiều lần (Re_Entrance)). Cách khắc phục: Tạo vùng nhớ đệm (cache) trong bộ nhớ chứa môđun

- Nếu khai báo sai cấu trúc Overlay thì hệ thống bị rối loạn

4. Cấu trúc môđun

- Biên tập riêng từng mô đun

- Tạo bảng quản lý mô đun để điều khiển thực hiện

- Đặc điểm:

 Tự động hồn tồn

 Khơng cần phân phối bộ nhớ liên tục

 Hiệu quả phụ thuộc vào cấu trúc ban đầu của CT nguồn  Dễ dàng sử dụng chung mô đun.

5. Cấu trúc phân trang

- CT biên tập nhƣ cấu trúc tuyến tính - Chia thành các phần bằng nhau – trang - Tạo bảng quản lý trang

- Đặc điểm:

 Tiết kiệm bộ nhớ

 Hiệu quả không phụ thuộc và cấu trúc ban đầu của CT nguồn

m0 m1 m2 m3 m0 m1 RAM p0 p1 p2 p3 p4 p5 p6 RAM p0 p2

6. Các tệp lệnh máy *.COM, *.EXE và nạp chƣơng trình vào trong PC

a. Tệp .COM

- Không chứa các lệnh  Call far địa chỉ  JMP far địa chỉ

- Đặc điểm: Khi nạp vào bộ nhớ thì lệnh đầu tiên sẽ đƣợc trao quyền ngay b. Tệp .EXE

- Đƣợc hình thành bởi các cấu trúc Overlay. - Chƣơng trình gồm nhiều đoạn.

- Đầu tệp (header) có đoạn ghi 32 bytes mô tả kiến trúc tệp và xác định đoạn điều khiển. - Cho phép 2 lệnh: Call far và JMP far

c. Nạp chƣơng trình vào bộ nhớ trong PC:

1 chƣơng trình ứng dụng đƣợc nạp vào bộ nhớ chiếm 3 phần liên tiếp nhau:

Heap Code Stack

- Khi nạp vào bộ nhớ, HĐH luôn tạo ra 1 khối nhớ PSP 256 bytes (khối tiền tố của chƣơng trình) chứa tham số về mơi trƣờng sử dụng tệp lệnh máy. Ví dụ cá tham số liên quan đến ngăn xếp các địa chỉ (stack) để kết nối chƣơng trình.

- Trong byte 2C và 2D của khối này sẽ trỏ đến 1 vùng nhớ vùng nhớ này chứa xâu kí tự kết thức là kí tự '\0'. Xâu này là tên tệp lệnh máy đƣợc nạp vào đoạn bộ nhớ trên.

Một phần của tài liệu Nguyen ly h diu hanh (Trang 31 - 35)

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

(52 trang)