1 .Vấn đề DeadLock
1.3 .Cỏc phương phỏp xử lớ bế tắc
Sử dụng một phương thức để ngăn ngừa hoặc trỏnh xa , đảm bảo rằng hệ thống khụng bao giờ đi vào trạng thỏi bế tắc
Cho phộp hệ thống đi vào trạng thỏi bế tắc rồi khụi phục lại
Bỏ qua vấn đề này và vờ như bế tắc khụng bao giờ xuất hiện trong hệ thống .Giải phỏp này được sử dụng hầu hờt cỏc hệ điều hành bao gồm cả UNIX
1. Safe State
Một trạng thỏi là an toàn nếu hệ thống cú thể phõn phối cỏc tài nguyờn cho mỗi tiến trỡnh mà vẫn trỏnh được bế tắc
Khi một tiến trỡnh yờu cầu một tài nguyờn cũn rỗi , hệ thống phải quyết định liệu phõn phối ngay lập tức cú làm cho hệ thống mất an toàn hay khụng ?
Hờ thống ở trạng thỏi an toàn nếu tồn tại chuỗi an toàn của tất cả tiến trỡnh
2. Giải thuật chủ nhà băng (Banker Algorithm)
Giải thuật cú thể được sử dụng trong hệ thống nhà băng để đảm bảo rằng nhà băng khụng bao giờ phõn phối quỏ số tiền khả dụng và luụn thỏa món mọi yờu cầu từ cỏc khỏch hàng
Tiến trỡnh mới :
o Phải khai bỏo số lượng tối đa cỏ thể của mỗi tài nguyờn mà nú cú thể cần đến.Số này cú thể vượt quỏ tổng tài nguyờn trong hệ thống
o Khi tiến trỡnh yờu cầu tài nguyờn,hệ thống phải xỏc định liệu sự phõn phối cú giữ hệ thống trong trạng thỏi an toàn khụng .Nếu cú dẫn đến phõn phối tài nguyờn , nếu khụng dẫn đến tiến trỡnh phải chờ .Đến khi cỏc tiến trỡnh khỏc giải phúng đủ tài nguyờn
Vớ dụ : giải thuật chủ nhà băng
Cho 5 tiến trỡnh và 3 loại tài nguyờn : A(10 cỏ thể) ,B(5 cỏ thể ) và C(7 cỏ thể )
Process Allocation Need Max Available Time
A B C A B C A B C A B C P0 3 3 2 T0 P1 0 1 0 7 4 3 7 5 3 10 5 7 T5 P2 2 0 0 1 2 2 3 2 2 5 3 2 T1 P3 3 0 2 6 0 0 9 0 2 10 4 7 T4 P4 2 1 1 0 1 1 2 2 2 7 4 3 T2 P5 0 0 2 4 3 1 4 3 3 7 4 5 T3 3. Phỏt hiện bế tắc
Nếu một hệ thống khụng thể thực hiện được việc ngăn ngừa hay trỏnh xa bế tắc thỡ bế tắc cú thể xuất hiện
Trong mụi trường này hệ thống phải cung cấp :
o Giải thuật phỏt hiện bế tắc
o Giải thuật phục hồi từ bế tắc
4. Phục hồi bế tắc
o Dừng tiến trỡnh
o Ưu tiờn trước tài nguyờn
5. Phương phỏp kết hợp xử lớ bế tắc
Kết hợp 3 phương phỏp cơ bản
o Ngăn ngừa
o Trỏnh khỏi
o Phỏt hiện
Tạo thành phương phỏp tối ưu đối với mỗi tài nguyờn trong hệ thống
Phõn chia cỏc tài nguyờn thành cỏc lớp theo thứ tự phõn cấp
Chƣơng 7: Quản lý bộ nhớ (Memory Management)
1. Khỏi niệm
a, Khụng gian địa chỉ logic (logical address space)
- Được tỏch riờng với địa chỉ khụng gian địa chỉ vật lý (physical address space) - Để quản lý bộ nhớ thớch hợp
- Đị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.
Logical address
- Được tạo ra bởi CPU , 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)
b, Địa chỉ logic và địa chỉ vật lý * Đị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.
- Khụng gian địa chỉ: Tập hợp tất cả cỏc địa chỉ logic được tạo bởi CPU tham chiếu đến một chương trỡnh.
- Đị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).
- 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.
* Trong lược đồ MMU:
+ Giỏ trị trong thanh ghi định vị (relocation register)
+ Được cộng với tất cả địa chỉ được sinh ra bởi tiến trỡnh của người dựng. Tại thời điểm nú được gửi tới bộ nhớ.
* Đị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.
- Khụng gian địa chỉ là 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.
- 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ú.
- Đị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ỉ lụgic trong khụng gian địa chỉ lụgic được gọi là khụng gian địa chỉ vật lý.
c, Dynamic Loading – Tải động
- Chương trỡnh (routine) chỉ được nạp vào bộ nhớ khi nú được gọi. - Ưu điểm:
+ Sử dụng khụng gian bộ nhớ tốt hơn.
+ Tiến trỡnh khụng dựng đến thỡ khụng bao giờ đựơc nạp
+ Hữu ớch trong trường hợp: số lượng lớn mó cần xử lý hiếm khi xuất hiện. - Đặc điểm:
+ Khụng yờu cầu sự hỗ trợ đặc biệt từ hệ điều hành + Được thực hiện thụng qua thiết kế chương trỡnh d, Dynamic Linking – Liờn kết động
- Liờn kết động là loại liờn kết thu thập tất cả thụng tin cần thiết để gọi hàm trong thời gian chạy. Việc liờn kết hoón lại đến khi execution time.
- Ứng dụng:
Liờn kết động: Đặc biệt hữu dụng đối với cỏc thư viện chương trỡnh, nhất là trong việc cập nhật thư viện
Vớ dụ: Sửa lỗi e, Cơ chế overlays
- Theo cơ chế này chỉ giữ trong bộ nhớ, những lệnh và giữ 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 cỏc chương trỡnh
- Sử dụng khi tiến trỡnh cú dung lượng lớn hơn bộ nhớ được cấp phỏt cho nú. - Cỏc cơ chế này rất hữu dụng khi kớch thước một process lớn hơn khụng gian bộ nhớ cấp cho process đú
- Cơ chế này được điều khiển bởi người sử dụng (thụng qua sự hỗ trợ của cỏc thư viện lập trỡnh) chứ khụng cần sự hỗ trợ của hệ điều hành.
g, Swapping - Một tiến trỡnh:
+ Cú thể tạm thời được hoỏn đổi ra khỏi bộ nhớ tới backing store + Và được đưa trở lại bộ nhớ để thực hiện tiếp.
- Backing store:
+ Thiết bị nhớ thứ cấp đủ lớn (đĩa từ)
Để cung cấp bản sao của tất cả hỡnh ảnh bộ nhớ cho tất cả người sử
dụng.
Phải cung cấp sự truy nhập trực tiếp tới cỏc hỡnh ảnh bộ nhớ này .
- Roll out, roll in + Biến thể hoỏn đổi:
Được sử dụng cho giải thuật lập trỡnh dựa trờn mức ưu tiờn (priority
Tiến trỡnh cú mức ưu tiờn thấp hơn bị thay ra để tiến trỡnh cú mức ưu tiờn cao hơn cú thể được nạp và thực hiện.
Hỡnh . Minh họa cơ chế Swapping f, Sự phõn mảng – Fragmention
External Fragmentation
- Tổng khụng gian bộ nhớ thực tế đủ đỏp ứng yờu cầu, nhưng nú khụng nằm kề nhau.
Internal Fragmentation
- Bộ nhớ được phõn phối cú thể lớn hơn khụng đỏng kể so với bộ nhớ được yờu cầu.
- Sự khỏc biệt kớch thước này là bộ nhớ bờn trong một phõn vựng, nhưng khụng được sử dụng.
Làm giảm external Fagmentation
- Bằng cỏch
+ Nộn lại (Compation):
Di chuyển cỏc nội dung bộ nhớ để đặt tất cả cỏc vựng nhớ tự do lại với nhau thành một khối lớn.
Kết khối chỉ cú thể tiến hành nếu: Sự tỏi định vị là động, và nú được thực hiện trong execution time.