You are on page 1of 20

Đề thi số 1 soạn dài thế làm s kịp mấy câu còn lại

1. Lời gọi hệ thống là gì. Các phương pháp truyền tham số giữa tiến trình và Hệ
điều hành.

Lời gọi hệ thống là tập lệnh do hệ điều hành cung cấp dùng để giao tiếp giữa
tiến trình của người dùng và hệ điều hành , lời gọi hệ thống còn gọi là ngắt . Các
lời gọi hệ thống có thể được chia thành các loại như là tập lệnh quản lý tiến
trình , tập lệnh quản lý tập tin , tập lệnh quản lý thiết bị , tập lệnh dùng để liên
lạc giữa các tiến trình . Mỗi lời gọi hệ thống có một số hiệu duy nhất dùng để
phân biệt lời gọi này với lời gọi khác . Các địa chỉ nơi chứa mã lệnh của các
ngắt (lời gọi hệ thống) được lưu trong một bảng gọi là bảng vector ngắt .
Khi tiến trình dùng lời gọi hệ thống , cần cung cấp tham số cho lời gọi hệ thống
. Có ba phương pháp mà tiến trình dùng để chuyển tham số cho hệ điều hành :
- Chuyển tham số vào thanh ghi
- Lưu trữ tham số trong một bảng trong bộ nhớ và ghi địa chỉ bảng vào thanh
ghi
- Lưu trữ tham số vào stack và tham số được lấy ra bởi hệ điều hành.

2 . Phân biệt địa chỉ logic và địa chỉ vật lý. Các cơ chế liên kết địa chỉ nào có
địa chỉ logic và địa chỉ vật lý giống nhau; cơ chế nào có địa chỉ logic và địa chỉ
vật lý khác nhau. Giải thích.

Tiêu chí Địa chỉ logic Địa chỉ vật lý


Định nghĩa là địa chỉ ảo do CPU tạo ra là một vị trí trong một đơn vị
bộ nhớ.
Không gian Tập hợp tất cả các địa chỉ logic Tập hợp tất cả các địa chỉ vật
địa chỉ được tạo bởi CPU tham chiếu đến lý được ánh xạ tới các địa chỉ
một chương trình logic tương ứng
Hiển thị Người dùng có thể xem địa chỉ Người dùng không bao giờ có
logic của một chương trình thể xem địa chỉ vật lý của
chương trình
Truy cập Người dùng sử dụng địa chỉ logic Người dùng không thể truy cập
để truy cập địa chỉ vật lý trực tiếp vào địa chỉ vật lý
Generation Địa chỉ logic được tạo bởi CPU Địa chỉ vật lý được tính bằng
MMU

Định nghĩa địa chỉ logic

Địa chỉ do CPU tạo ra trong khi chương trình đang chạy được gọi là địa chỉ
logic. Địa chỉ logic là ảo vì nó không tồn tại trên thực tế. Do đó, nó còn được
gọi là địa chỉ ảo. Địa chỉ này được sử dụng làm tham chiếu để truy cập vị trí bộ
nhớ vật lý. Tập hợp tất cả các địa chỉ logic được tạo ra bởi một phối cảnh
chương trình được gọi là Không gian địa chỉ logic.

Địa chỉ logic được ánh xạ tới địa chỉ vật lý tương ứng của nó bởi một thiết bị
phần cứng được gọi là Bộ quản lý bộ nhớ (MMU). Các phương pháp ràng buộc
địa chỉ được sử dụng bởi MMU tạo ra địa chỉ vật lý và logic giống hệt nhau
trong thời gian biên dịch và thời gian tải. Tuy nhiên, trong khi thời gian chạy,
các phương thức ràng buộc địa chỉ tạo ra địa chỉ vật lý và logic khác nhau.

Định nghĩa địa chỉ vật lý

Địa chỉ vật lý xác định một vị trí thực trong bộ nhớ. MMU tính toán địa chỉ vật
lý cho địa chỉ logic tương ứng. MMU cũng sử dụng địa chỉ vật lý tính toán địa
chỉ logic. Người dùng không bao giờ tương tác với địa chỉ thực. Thay vào đó,
địa chỉ vật lý được người dùng truy cập bằng địa chỉ logic tương ứng của nó.

Chương trình người dùng tạo ra địa chỉ logic và nghĩ rằng chương trình đang
chạy trong địa chỉ logic này. Nhưng chương trình cần bộ nhớ vật lý để thực thi.
Do đó, địa chỉ logic phải được ánh xạ tới địa chỉ vật lý trước khi chúng được sử
dụng.

Địa chỉ logic được ánh xạ tới địa chỉ vật lý bằng phần cứng gọi là Bộ quản lý bộ
nhớ. Tập hợp tất cả các địa chỉ vật lý tương ứng với các địa chỉ logic trong
không gian địa chỉ lôgic được gọi là Không gian địa chỉ vật lý.
Tổng kết

Địa chỉ logic là một tham chiếu được sử dụng để truy cập địa chỉ vật lý. Người
dùng có thể truy cập địa chỉ vật lý trong bộ nhớ bằng địa chỉ logic này.

Sự khác biệt chính giữa địa chỉ logic và vật lý trong hệ điều hành

1. Sự khác biệt cơ bản giữa địa chỉ logic và địa chỉ vật lý là địa chỉ logic
được tạo bởi CPU theo quan điểm của một chương trình. Mặt khác,
địa chỉ vật lý là một vị trí tồn tại trong đơn vị bộ nhớ.

2. Tập hợp tất cả các địa chỉ logic được tạo bởi CPU cho một chương
trình được gọi là Không gian địa chỉ logic. Tuy nhiên, tập hợp tất cả
các địa chỉ vật lý được ánh xạ tới các địa chỉ logic tương ứng được gọi
là Không gian địa chỉ vật lý.

3. Địa chỉ logic cũng được gọi là địa chỉ ảo vì địa chỉ logic không tồn tại
vật lý trong đơn vị bộ nhớ. Địa chỉ vật lý là một vị trí trong đơn vị bộ
nhớ có thể được truy cập vật lý.

4. Địa chỉ logic và địa chỉ vật lý giống hệt nhau được tạo bởi các phương
thức liên kết địa chỉ Compile-time và Load time.

5. Địa chỉ logic và địa chỉ vật lý được tạo trong khi phương thức liên kết
địa chỉ thời gian chạy khác nhau.

6. Địa chỉ logic được tạo bởi CPU trong khi chương trình đang chạy
trong khi đó, địa chỉ vật lý được tính bằng MMU (Đơn vị quản lý bộ
nhớ).

Bài LRU

Đề thi số 2

1 . Phân biệt chương trình và tiến trình . Mô tả các bước chuyển trạng thái của
tiến trình. Trong chế độ điều phối đơn mức với hệ thống đơn CPU, tại một thời
điểm có bao nhiêu hàng đợi waiting, ready, running; mối quan hệ giữa tài
nguyên và hàng đợi waiting .
2 . Trong đoạn găng có thể có nhiều tiến trình không. Cho ví dụ.

Đề thi số 3

1. Phân biệt luồng mức nhân và luồng mức người dùng.

Luồng mức người dùng Luồng mức nhân


- Do trình ứng dụng tự - Do hệ điều hành tạo ra
tạo và quản lý, hệ điều và quản lý
hành không biết về sự tồn - Hệ điều hành sẽ cung
tại của những luồng như cấp giao
vậy. diện lập trình bao gồm
- Để tạo ra luồng mức một số lời gọi hệ thống
người dùng, trình ứng mà trình ứng dụng có thể
dụng sử dụng thư viện do gọi để yêu cầu tạo/xóa
ngôn ngữ lập trình cung luồng và thay đổi tham số
cấp, ví dụ như khi lập liên quan tới quản lý
trình trên Java. Thư viện luồng. Hệ điều hành
hỗ trợ luồng thường bao Windows và Linux là hai
gồm các hàm tạo, xóa ví dụ trong việc hỗ trợ
luồng, đồng bộ luồng, luồng mức nhân như vậy.
thiết lập mức ưu tiên và - Ưu điểm chủ yếu là
điều độ luồng, hàm tạo khắc phục được các
liên lạc với luồng khác và nhược điểm của luồng
hàm cho phép lưu/khôi mức người dùng. Cụ thể
phục ngữ cảnh của luồng. là việc sử dụng luồng
- Ưu điểm mức nhân cho phép tăng
+ Thứ nhất, do luồng tính đáp ứng và khả năng
được tạo ra và quản lý thực hiện đồng thời của
trong không gian người các luồng trong cùng một
dùng nên việc tiến trình. Trên hệ thống
chuyển đổi luồng không với nhiều CPU, luồng
đòi hỏi phải chuyển sang mức nhân có thể được
chế độ nhân và do vậy cấp CPU khác nhau để
tiết kiệm thời thực hiện song song.
gian hơn. - Nhược điểm chủ yếu
+ Thứ hai, trình ứng dụng của luồng mức nhân so
có thể điều độ luồng theo với luồng mức người
đặc điểm riêng của mình, dùng là tốc độ. Việc tạo
không và chuyển luồng đòi hỏi
phụ thuộc vào phương thực hiện trong chế độ
thức điều độ của hệ điều nhân và do vậy cần một
hành. số thao tác để chuyển từ
+ Thứ ba, có thể sử dụng chế độ người dùng sang
luồng mức người dùng cả chế độ nhân và ngược lại.
trên những hệ điều hành
không hỗ
trợ đa luồng bằng cách bổ
sung thư viện luồng mà
các ứng dụng có thể dùng
chung.
- Nhược điểm:
+ Khi một luồng của tiến
trình gọi lời gọi hệ thống
và bị phong tỏa (tức là
phải đợi cho
tới khi thực hiện xong lời
gọi hệ thống), thì toàn bộ
tiến trình sẽ bị phong tỏa
và phải
đợi cho tới khi lời gọi hệ
thống thực hiện xong.
Như vậy, luồng mức
người dùng
không cho phép tận dụng
ưu điểm về tính đáp ứng
của mô hình đa luồng.
+ Cách tổ chức này
không cho phép tận dụng
kiến trúc nhiều CPU. Do
hệ điều hành
phân phối CPU cho cả
tiến trình chứ không phải
từng luồng cụ thể nên tất
cả các
luồng của tiến trình phải
chung nhau một CPU
thay vì thực hiện song
song trên nhiều
CPU khác nhau.
- Có một số thư viện hỗ
trợ luồng mức người
dùng được sử dụng trên
thực tế, trong đó có
- thể kể đến Green
threads cho hệ điều hành
Solaris và thư viện GNU
Portable threads.

Hiện tượng phân mành ngoài: Cùng với thời gian, việc phân chương động có
thể sinh ra trong bộ nhớ các vùng trống kích thước quá nhỏ và do vậy không thể
cấp phát tiếp cho bất kỳ tiến trình nào. Không gian mà các vùng trống này
chiếm do vậy bị bỏ phí.

Hiện tượng phân mành trong: Kích thước các chương có thể chọn bằng nhau
hoặc không bằng nhau. Việc chọn các chương kích thước bằng nhau mặc dù đơn
giản hơn một chút song rất không mềm dẻo. Tiến trình có kích thước lớn hơn
kích thước chương sẽ không thể tải vào chương và chạy được. Muốn cho
chương chứa được các tiến trình lớn, ta phải tăng kích thước của chương bằng
kích thước của tiến trình lớn nhất. Do mỗi tiến trình chiếm cả một chương, các
tiến trình nhỏ cũng được cung cấp và chiếm cả chương như một tiến trình lớn.
Phần bộ nhớ rất đáng kể còn lại của chương sẽ bị bỏ trống gây lãng phí bộ nhớ.

2. Khi một tiến trình trong đoạn găng, nó có thể ở trạng thái running khi mà
tiến trình đang chiếm CPU và thực hiện lệnh, còn trạng thái ready khi tiến trình
ở trạng thái sẵn sàng, được phân phối đủ tài nguyên cần thiết, đang chờ đến lượt
được thực hiện theo cơ chế lập lịch của hệ điều hành.

Đề thi số 4

Đề thi số 5

7. Trong giải thuật RR thời gian đợi của một tiến trình phụ thuộc vào hai
yếu tố cơ bản nào.

- Thời gian đợi của một tiến trình phụ thuộc vào thời gian lượng tử (time
quantum) và thời gian sử dụng CPU của tiến trình đó. Thời gian lượng tử càng
nhỏ thì thời gian hoàn thành trung bình càng lớn do đó dẫn đến thời gian chờ sẽ
tăng và ngược lại.

8. Một tiến trình ở trong đoạn găng có thể có những trạng thái nào. Giải
thích

- Một tiến trình đang trong đoạn găng có thể có các trạng thái Running hoặc
Ready. Bởi vì đoạn Găng sẽ quyết định chỉ có một tiến trình hợp lệ vào miền
Găng để thực hiện các lệnh trong miền này (tức là đang ở trạng thái Running),
còn lại các tiến trình khác phải chờ khi tiến trình ở trong miền Găng thực hiện
xong mới có thể thực hiện (tức là đang ở trạng thái Ready) và chúng không thể
vào trong miền găng gây xung đột trong quá trình xử lý.

13. Thao tác nguyên tử là gì. Test&Set() trong giải pháp Peterson có phải là
thao tác nguyên tử không.

- Thao tác đọc và ghi bộ nhớ là thao tác nguyên tử (atomic) và không thể bị xen
ngang giữa chừng.

- Ví dụ:
TSL (boolean &target) {

TSL = target;

target = TRUE;

- Test&Set() trong giải pháp Peterson là thao tác nguyên tử. Bởi vì, nguyên tắc
chung của giải pháp Test&Set là hai thao tác kiểm tra giá trị và thay đổi giá
trị cho một biến (một ô nhớ), hoặc các thao tác so sánh và hoán đổi giá trị hai
biến, được thực hiện trong cùng một lệnh máy và do vậy sẽ đảm bảo được
thực hiện cùng nhau mà không bị xen vào giữa. Đơn vị thực hiện không bị
xen vào giữa như vậy được gọi là thao tác nguyên tử (atomic). Ta sẽ gọi lệnh
như vậy là lệnh “kiểm tra và xác lập” Test_and_Set.

Đề thi số 6

Đề thi số 7, 9 ( cùng câu hỏi ) thấy có gì sai hay thiếu sót thì bổ sung nha
Câu 1: Trong một đoạn găng có thể có nhiều tiến trình ở trạng thái running
hay không, giải thích?

Trả lời: trong một đoạn găng không thể có nhiều tiến trình ở trạng thái running
vì sự thực hiện các đoạn găng là loại trừ lẫn nhau theo thời gian, nên để không
xảy ra mâu thuẫn truy xuất, cần đảm bảo tại một thời điểm chỉ có một tiến trình
được vào miền găng.

Vì Đoạn Găng sẽ quyết định chỉ cho một hợp lệ tiến trình vào miền Găng để
thực hiện các lệnh trong miền này (tức là đang ở trạng thái running ), còn lại các
tiến trình khác phải đợi khi tiến trình ở trong miền Găng hoàn thành mới có thể
thực hiện (tức là đang ở trạng thái Ready) và chúng tôi không thể vào miền
Găng gây xung đột trong quá trình xử lý .

Câu 2: Với giải pháp Test&Set của Peterson, khi một tiến trình trong đoạn
găng thì các tiến trình khác có thiết lập lại giá trị của clock không. Giải
thích ngắn gọn.

Trả lời: khi một tiến trình trong đoạn găng thì các tiến trình khác phải thiets lập
lại giá trị của clock để đảm bảo chỉ có một tiến trình đi vào miền găng.

Câu 5: Phân biệt địa chỉ logic và địa chỉ vật lý. Các cơ chế liên kết địa chỉ
nào có địa chỉ logic và địa chỉ vật lý giống nhau; cơ chế nào có địa chỉ logic
và địa chỉ vật lý khác nhau. Giải thích.

Trả lời:

Phân biệt địa chỉ Logic và địa chỉ vật lý:

Logical address – do CPU phát ra, còn gọi là địa chỉ ảo (virtual address)

Physical address – địa chỉ được nhận biết bởi đơn vị bộ nhớ (memory unit)
(địa chỉ thực sự của bộ nhớ).

Các cơ chế liên kết địa chỉ:


Các địa chỉ logic và vật lý là như nhau trong các cơ chế liên kết địa chỉ tại
thời điểm compile-time và load-time; chúng khác nhau trong cơ chế
execution-time bởi vì:

Với Compile sau khi biên dịch xong sẽ biết chính xác vị trí chương trình trong
bộ nhớ => Địa chỉ Logic = Địa chỉ vật lý

Với Loadtime khi tiến trình được nạp vị trí chính xác của nó trong bộ nhớ thì
tiến trình có vị trí không thay đổi => Địa chỉ Logic = Địa chỉ vật lý

Với Execute Time thì một khi tiến trình được thực hiện, tiến trình có thể nằm
tại các vị trí khác nhau trong bộ nhớ => Địa chỉ Logic khác địa chỉ vật lý

đề 7 câu 6
Đề thi số 8, 10 giống đề nha
1. Tại sao các frame vật lý có kích thước lại là lũy thừa của 2. Trong chế
độ phân trang bộ nhớ, cho kích thước 1 frame là 1MB, tính số bits dùng để
đánh địa chỉ offset (d) trong địa chỉ lôgic (p, d)

Kích thước của trang nhớ luôn là lũy thừa của 2 vì: Việc chuyển một địa chỉ
logic thành 2 phần riêng biệt là số hiệu trang (p) và độ dời (d) một các dễ dàng.
Bởi vì mỗi bit tượng trưng cho một số lũy thừa của 2, do đó khi tách thành 2
phần sẽ có kết quả là một lũy thừa của 2. Nếu không gian địa chỉ là 2m, kích
thước là 2n thì sẽ có 2(m - n) mục trong bảng trang, với (m – n) bits cao cho số hiệu
trang, n bits thấp cho độ dời trang.

Kích thước 1 frame = 1MB = 2^20 bytes

=> Số bits đánh địa chỉ offset = log(2^20) = 20 bits

2. Giải thích tại sao khi phân phối tài nguyên theo chuỗi an toàn thì không
xảy ra deadlock?

Giải thích: chuỗi an toàn là chuỗi tiến trình <P1, P2, …, Pn> với mỗi Pi, tài
nguyên yêu cầu có thể được cung cấp bởi tài nguyên khả dụng(chưa phân phối
cho tiến trình nào) hiện tại và các tài nguyên đang được giữ bởi Pj, với j<i.

Nếu tài nguyên Pi cần đang bị Pj giữ thì nó có thể đợi cho đến khi tất cả
các Pj kết thúc.

Khi Pj kết thúc, Pi có thể giành được các tài nguyên cần thiết, thực hiện,
rồi trả lại các tài nguyên đó và kết thúc.

Khi Pi kết thúc, P(i+1) có thể giành được tài nguyên cần thiết, ...

3. Tại một thời điểm cho trạng thái hệ thống như sau:

tiến trình thời gian đến tg thực hiện


p1 0 15
p2 2 10
p3 4 2
p4 5 5
p5 10 1

Tính thời gian hoàn thành trung bình của các tiến trình nếu hệ điều hành
sử dụng lập lịch SJF (Short Job First) không độc quyền.

bài làm

p1 p2 p3 p4 p5 p4 p2 p1

0 2 4 6 10 11 12 20 33

thoi gian hoan thanh:

p1: 33 - 0 = 33

p2: 20 -2 = 18

p3: 4 - 2 = 2

p4: 12 - 5 = 7

p5: 11 - 10 = 11

thoi gian hoang thanh trung binh: t = (33 + 18 + 2 + 7 + 11)/5 = 14.2

4.

5. Trong cơ chế phân đoạn bộ nhớ có xảy ra phân mành ngoài hay không.
Giải thích ngắn gọn.

(này là tự đọc r giải thích lại ấy, trên mạng nó nói chung chung quá :_))

Có phân mảnh ngoài khi vùng rỗi nhỏ hơn đoạn cần thiết

Phân mảnh ngoài xảy ra do việc nạp và rút các process trong bộ nhớ . Còn cơ chế phân đoạn
giúp chia cắt các process có dữ liệu lớn thành các đoạn nhỏ hơn
6. Giả sử có 10 tiến trình P1 → P10 đều muốn vào đoạn găng và ban đầu lock=true. Hỏi
có tiến trình nào (từ P 1 đến P 10) vào được đoạn găng không. Sau khi P10 gọi Test&Set()
thì lock được cập nhật mấy lần. Cho biết giá trị lock.

7. cho biết hệ thống có deadlock không

resource(2, 1, 1, 1, 1, 1)

Allocation(r1,r2,.. request(r1,...r6) available(r1,...r6)


.r6))
p1 (1,0,0,0,1,0) (0,1,0,0,0,0) (1,0,0,0,0,1)
p2 (0,1,0,0,0,0) (0,0,1,0,0,0)
p3 (0,0,1,0,0,0) (0,0,0,1,0,0)
p4 (0,0,0,1,0,0) (0,0,0,0,1,0)
p5 (0,0,0,0,0,0) (1,0,0,0,1,1)

work = (1,0,0,0,0,1)

finish(1)= false, finish(2)= false, finish(3)= false, finish(4)= false, finish(5)=


true

Do request[i] không nhỏ hơn hoặc bằng work và finish(i)=false (1<= i <= 5)_
=> Hệ thống trong trạng thái deadlock với p1,p2,p3,p4 bị deadlock

8.
đề chẵn:

Câu 1 (1.5 điểm)

Hệ điều hành (HĐH) là gì. Cho 5 ví dụ về các hệ thống không có HĐH và 5 ví


dụ về các hệ thống có HĐH.

* Hệ điều hành:
- Hệ điều hành là một bộ chương trình (mã nguồn và dữ liệu các tham số hệ
thống) đã được cài đặt sẵn có chức năng:
+ Điều phối, phân phối công việc cho các thành phần chức năng trong
máy tính;
+ Thỏa mãn tối đa yêu cầu người dùng;
+ đóng vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần
cứng máy tính, cung cấp một môi trường cho phép người sử dụng phát triển và
thực hiện các ứng dụng của họ một cách dễ dàng

- Một số hệ điều hành phổ biến: MS Dos, Windows, Ubuntu, Fedora, IOS,
Android,…..

Ví hệ thống không có hđh: máy giặt, hệ thống xí nghiệp, hệ thống cơ quan hành
chính quốc gia, hệ thống thông tin, hệ thống làm mát.

Ví dụ hệ thống có hđh: máy tính bàn, laptop, điện thoại, firewall, tivi...

Hệ thống nhúng sử dụng hệ điều hành thời gian thực

Windows xp, 7,8,10

MS DOS được sử dụng ở những năm 80

Ubuntu, fedora

Linux,ios,android
(không hiểu lắm, từ “hệ thống” )

Câu 2 (1. 5 điểm)

Khóa chết là gì. Cho sơ đồ phân phối tài nguyên như trong hình vẽ. Hệ thống có khóa
chết không. Giải thích.

- Deadlock(khóa chết - bế tắc):

+ Là hiện tượng một tiến trình chiếm hữu tài nguyên lâu dài làm
cho các tiến trình có nhu cầu sử dụng tài nguyên này luôn ở
trạng thái waiting

+ Một tiến trình deadlock là tiến trình đợi một sự kiện không bao
giờ xảy ra

- Deadlock có thể xảy ra nếu 4 điều kiện sau đồng thời tồn tại:

§ Ngăn chặn(loại trừ) lẫn nhau: tại một thời điểm, chỉ một tiến trình
có thể sử dụng một tài nguyên(chỉ một tiến trình trong đoạn
găng).

§ Giữ và đợi: một tiến trình đang giữ ít nhất một tài nguyên và đợi
để nhận được tài nguyên khác đang được giữ bởi tiến trình khác.

§ Không có ưu tiên(độc quyền): một tài nguyên chỉ có thể được tiến
trình (tự nguyện!) giải phóng khi nó đã hoàn thành công việc.

§ Chờ đợi vòng tròn: tồn tại một tập các tiến trình chờ đợi {P0, P1,
…, Pn, P0}

Câu 3 (1.5 điểm)

Trình bày lược đồ biên dịch địa chỉ trong kỹ thuật phân trang. Phân trang bộ nhớ có
xảy ra phân mành trong/ngoài không. Giải thích.
a. Lược đồ biên dịch địa chỉ:

Chuyển đổi địa chỉ: Mỗi địa chỉ phát sinh bởi CPU được chia thành hai phần:

- Số hiệu trang (p): sử dụng như chỉ mục đến phần tử tương ứng trong bảng
trang.

- Địa chỉ tương đối trong trang (d): kết hợp với địa chỉ bắt đầu của trang để tạo ra
địa chỉ vật lý mà trình quản lý bộ nhớ sử dụng.

- Kích thước của trang do phần cứng qui định. Để dễ phân tích địa chỉ ảo thành
số hiệu trang và địa chỉ tương đối, kích thước của một trang thông thường là một lũy
thừa của 2 (biến đổi trong phạm vi 512 bytes và 8192 bytes). Nếu kích thước của
không gian địa chỉ là 2m và kích thước trang là 2 n, thì m-n bits cao của địa chỉ ảo sẽ
biễu diễn số hiệu trang, và n bits thấp cho biết địa chỉ tương đối trong trang.

b. Phân mảnh hay không?

Kỹ thuật phân trang loại bỏ được hiện tượng phân mảnh ngoài: mỗi khung
trang đều có thể được cấp phát cho một tiến trình nào đó có yêu cầu. Tuy nhiên hiện
tượng phân mảnh trong vẫn có thể xảy ra khi kích thước của tiến trình không đúng
bằng bội số của kích thước một trang, khi đó, trang cuối cùng sẽ không được sử dụng
hết.

Câu 4 (1.5 điểm)

Trình bày ý tưởng của kỹ thuật Overlay. Chương trình gồm các mô-đun được tổ chức
như hình vẽ. Tính kích thước bộ nhớ khi sử dụng kỹ thuật Overlay.

Ý tưởng: chỉ giữ trong bộ nhớ những lệnh và dữ liệu cần đến tại mọi thời
điểm( thường là các module tải) -> giảm không gian nhớ liên tục dành cho
ctr

Cơ chế Overlay:

Cho phép tổ chức chương trình thành các đơn vị chương trình
(module):

Module luôn tồn tại trong quá trình thực hiện -> module chương trình
chính.

Quan hệ độc lập/phụ thuộc chỉ sự có mặt của 1 nhóm module trong bộ
nhớ đòi hỏi/không đòi hỏi sự có mặt của một nhóm module khác

=> Các module độc lập không cần thiết phải có mặt đồng thời trong bộ
nhớ

Cần đến khi tiến trình có dung lượng lớn hơn bộ nhớ được cấp phát cho nó.

* Ưu điểm – nhược điểm

- Ưu điểm:

+ cấu trúc Overlay có tính chất định vị động à cho phép sử dụng bộ
nhớ nhiều hơn phần bộ nhớ mà hệ thống dành cho ch.trình. Cấu trúc ch.trình
mang tính chất tĩnh, kg thay đổi trong tất cả các lần thực hiện chương trình
+ so vs cấu trúc động,cấu trúc Overlay đòi hỏi cung cấp thông tin
đơn giản, kg gắn cấu trúc vào chương trình nguồn

+ vs sơ đồ Overlay tốt và các module độ dài kg quá lớn thì hiệu


quả kg kém so vs cấu trúc động

- Nhược điểm: Hiệu quả tiết kiệm bộ nhớ phụ thuộc cách tổ chức, bố trí các
module chương trình.

You might also like