Tải bản đầy đủ (.docx) (19 trang)

ĐỀ CƯƠNG NGUYÊN LÝ HỆ ĐIỀU HÀNH ĐÁP ÁN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (163.49 KB, 19 trang )

ÔN TẬP NGUYÊN LÝ HỆ ĐIỀU HÀNH
Câu 1: Các khái niệm và ví dụ về HĐH, hệ song song, phân tán, hệ thời gian thực;
các loại 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 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,…..
* Hệ song song:
– Cho các hệ thống có nhiều CPU chia sẻ đường truyền, bộ nhớ, đồng hồ, thiết bị I/O…
– Các CPU làm việc phụ thuộc độc lập do phải chia sẻ tài nguyên
– So với hệ thống 1 CPU : Nhanh hơn; An toàn hơn ( 1 CPU hỏng kg ảnh hưởng tới all
hệ thống)”
- Phối hợp nhiều bộ xử lý nhằm giải quyết một vấn đề cho trước 1 cách nhanh nhất
- Ngoài các hệ thống tín chỉ có một bộ xử lý còn có các hệ thống có nhiều bộ xử lý cùng
chia xẻ hệ thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi.
- Thuận lợi của hệ thống xử lý song song:
+ Xử lý nhiều công việc cùng lúc thật sự
+Tăng độ tin cậy
- Trong hệ thống xử lý song song được thành hai loại:


+ Đa xử lý đối xứng
_ Mỗi bộ xử lý chạy một bản sao hệ điều hành.
_ Nhiều tiến trình có thể chạy cùng lúc mà không gây hỏng.
_ Hầu hết các thế hệ hệ điều hành đều hỗ trợ đa xử lý đối xứng
+ Đa xử lý không đối xứng


_ Mỗi bộ xử lý được gắn vào một công việc cụ thể; Bộ xử lý chủ lập lịch và cấp phát
công việc cho bộ xử lý phụ.
_ Phổ biến nhiều trong hệ thống cực kỳ lớn.
- Kiến trúc hệ thống đa bộ xử lý đối xứng:

* Hệ phân tán: ( Tập hợp các thiết bị tính riêng rẻ có thể giao tiếp với nhau)
- Trong hệ phân tán, mỗi bộ xử lý nói chung có chương trình làm việc riêng bán độc lập,
vì lợi ích chung nên cần phối hợp hành động vs nhau
- Hệ thống thực hiện phân tán việc tính toán giữa các bộ xử lý .
- Mỗi bộ xử lý có vùng nhớ riêng; các bộ xử lý truyền thông với nhau qua hệ thống mạng
tốc độ cao.
- Thuận lợi của hệ thống phân tán:
+ Chia xẻ tài nguyên
+ Tăng tốc độ tính toán
+ Đáng tin cậy


+ Truyền thông
- Trong hệ thống yêu cầu cơ sở hạ tầng về mạng. Mạng cục bộ (LAN) hoặc mạng diện
rộng (WAN), cũng có thể là hệ thống client-server hoặc peer-to-peer.
- Mô hình hệ thống Client- server:

* Hệ điều hành thời gian thực:
- Đảm bảo giải quyết bài toán (tiến trình) kg muộn hơn 1 thời điểm xác định
- Mỗi tiến trình đc gắn với một th.gian xác định phải hoàn thành gọi là DeadTime
- Hoàn thiện bài toán muộn hơn kg có ý nghĩa
- VD: giải quyết bào toán trong các lò phản ứng hạt nhân, game thời gian thực,…
* Phân loại HĐH:
- Hệ điều hành đơn chương trình
- Hệ điều hành đa chương trình

- Hệ điều hành thời gian thực
- Hệ song song
- Hệ phân tán
Câu 2: Bản chất tiến trình, luồng. Quá trình chuyển CPU giữa các tiến trình.
* Khái niệm tiến trình
- Việc thực hiện công việc đc mô tả thông qua cá chương trình;
- Khi ch.trình hoạt động, nó chuyển thành tiến trình; để thực hiện tiến trình cần:


+ đc cung caaos đầy đủ tài nguyên cần thiết;
+ Đc CPU tiếp nhận và thực hiện
- HĐH: điều phối và thực hiện các tiến trình cũng như phân phối tài nguyên cần thiết cho
tiến trình;
- một tiến trìn gồm:
+ Mã nguồn chương trình (code) (kg thay đổi)
+ Dữ liệu (data)
+ bộ đệm CT (Program Counter)
+ Ngăn xếp (Stack)
+ Giá trị ở các thanh ghi (Register values)
* Đặc điểm tiến trình
-I/O-bound process – Tiến trình hướng I/O:
+ Sử dụng nhiều th.gian thực hiện vào/ra hơn việc tính toán
+ Chiếm dụng CPU ngắn
+ cần chuyển ngữ cảnh thường xuyên khi bắt đầu và kết thúc I/O
- CPU-bound process – tiến trình hướng xử lý:
+ sử dụng nhiều th.gian cho việc tính toán hơn việc I/O
+ Chiếm dụng CPU dài
+ cũng cần chuyển ngữ cảnh thường xuyên để tránh trường hợp 1 tiến trình ngăn
chặn các tiến trình khác sử dụng CPU
- Tiến trình tương tác hay xử lý theo lô: các tiến trình chiếm dụng CPU trong khoảng tg

như nhau gọi là lượng tử th.gian(quantum)
- Độ ưu tiên tiến trình: Các tiến trình có thể đc phân cấp theo 1 số tiêu chuẩn đánh giá


- thời gian sử dụng CPU của tiến trình: Cần biêt th.gian đã sử dụng CPU của tiến trình để
tiến tành điều phối (lập lịch)
- thời gian còn lại tiến trình cần để hoàn tất: giảm nhiều th.gian chờ đợi trung bình của
tiến trình bằng cách cho các tiến trình cần ít tg nhất để hoàn tất đc thực hiện trước.
* Luồng – Threads
- Khái niệm: Một luồng là dòng xử lý cơ bản trong hệ thống. Mỗi luồng xử lý tuần tự
đoạn code của nó, sỡ hữu 1 con trỏ lệnh, tập các thanh ghi và một vùng nhớ stack riêng
- Phân biệt luồng và tiến trình:
+ luồng đc coi là mức thấp hơn của tiến trình, mỗi tiến trình có thể gồm nhiều
luồng
+ Hoạt động của các luồng giống như tiên trình nhưng các luồng cùng chia sẻ kg
gian địa chỉ chung, các tiến trình thì hoàn toàn độc lập.
- Khi máy tính có nhiều CPU, mỗi CPU có thể thực hiện các công việc khác nhau or các
luồng khác nhau cho cùng 1 công việc
- khi hệ thống chỉ có 1 CPU, mõi CPU có thể thực hiện luân phiên nhau, kg có luồng nào
chiếm ưu thế trong CPU
- luồng là hữu ích vì chúng loại trừ đc sự cần thiết phải để cho hệ điều hành liên tục tải
thông tin vào/ra bộ nhớ
- Mỗi luồng có thể tương tác với 1 phần riêng của hệ thống, như đĩa, I/O trên mạng or ng
dùng
- các luồng đc lập lịch để thực hiện vì một số luồng có thể chờ 1 biến cố nào đó xảy ra or
chờ kết thúc 1 công việc nào đó từ luồng khác
- luồng bao gồm:
+ mã luồng (thread ID)
+ bộ đếm chương trình (PC)



+ tập thanh ghi (register set)
+ stack
- các luồng trong 1 tiến trình chia sẻ vs nhau đoạn mã (code), đoạn dữ liệu (data) và các
tài nguyên hệ thống khác như các tệp mở, các tín hiệu

Câu 3: Các trạng thái tiến trình, quá trình chuyển trạng thái tiến trình.
* Các trạng thái tiến trình:
- Trạng thái của tiến trình tại một thời điểm xđ bởi hoạt động của tiến trình tại thời điểm
đó
- trong quá trình sống, tiến trình có thể thay đổi trạng thái do các nguyên nhân:
+ phải dừng hoạt động do hết th.gian
+ đợi 1 thao tác I/O hoàn tất
+ phải chờ 1 sự kiện xảy ra
- Tại 1 thời điểm, tiến trình có thể có một trong các trạng thái:
+ New: tiến trình đg đc tạo
+ running: tiến trình đg chiếm hữu CPU và thực hiện các lệnh
+ waiting: tiến trình đg chờ cũng đc cấp tài nguyên or chờ 1 sự kiện nào đó xuất
hiện để chuyển sang trạng thái sẵn sàng
+ ready: 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
+ terminated: tiến trình kết thúc. Nó kg biến mất cho đến khi 1 tiến trình khác đọc
đc trạng thái thoát của nó


* Hoạt động( quá trình chuyển trạng thái)
+ Tại 1 thời điểm, chỉ có 1 tiến trình có thể nhận trạng thái running. Trong khi đó,
nhiều tiến trình có thể ở trạng thái waiting hay ready
+ tiến trình ms tạo đc đưa vào hệ thống, đc cung cấp đủ tài nguyên ở trạng thái
ready ( chờ đc phân phối CPU để thực hiện)

+ Khi tiến trình đg thực hiện (running), nó có thể chuyển sang trạng thái:
_ Kết thúc( terminal) nếu thực hiện xong
_ Chờ (waiting) tiến trình yêu cầu 1 tài nguyên nhưng chưa đc đáp ứng vì
tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó; or tiến trình phải chờ 1 sự kiện or
thao tác nhập/xuất
_ Sẵn sàng (ready): khi xảy ra ngắt để chuyển CPU cho tiến trình có mức
ưu tiên cao hơn bộ điều phối cấp phát cho tiến trình một khoảng th.gian sử dụng CPU or
hết th.gian chiếm hữu CPU
+ Bộ điều phối chọn 1 tiến trình khác có trạng thái ready cho xử lý
+ tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát; hay sự kiện or
thao tác I/O tiến trình đg đợi (có trạng thái waiting) hoàn tất; tiến trình chuyển sang
ready.


Câu 4: Phân trang, phân đoạn
* Phân trang:
- Kg gian địa chỉ logic của 1 tiến trình có thể kg kề nhau; tiến trình đc phân phối bộ nhớ
vật lý bất kỳ lúc nào khi bộ nhớ sẵn có.
- Chia bộ nhớ vật lý thành những khối có kích thước cố định là lũy thừa của 2 (512 bytes
– 16Mb), đgl các frame (page vật lý)
- chia bộ nhớ logic (dành cho các tiến trình) thành các khối cùng kích thước – các page,
mỗi page có kích thước = 1 frame
- Luôn theo dõi all các frame còn trống
- để chạy 1 ch.trình có kích thước n pages, cần phải tìm n frames còn trống và nạp
chương trình
- thiết lập 1 bảng phân trang (page table) để biên dịch (translate) các địa chỉ logic thành
địa chỉ vật lý
- nội dung mỗi phần tử trong page table co biết chỉ số frame (địa chỉ cơ sở) của bộ nhớ
vật lý.
* Cách đánh địa chỉ theo trang

- địa chỉ đc đánh 1 cách phân cấp:
+ Số hiệu trang (Page number - p) – Được sử dụng làm chỉ số đến phần tử trong
bảng trang chứa địa chỉ cơ sở của các frame trong bộ nhớ vật lý
+ Offset trang (Page offset - d) – Địa chỉ tương đối trong trang. Kết hợp vs địa chỉ
cơ sở để xác định địa chỉ bộ nhớ vật lý đc gửi đến bộ nhớ.
- Địa chỉ ảo có m bit, sử dụng m-n bit cao làm số hiệu trang và n bít thấp làm Offset
- Kg có phân mảnh ngoài, có phân mảnh trong:
+ giản cỡ trang --> giảm phân mảnh trong  giảm hiệu năng


+ tăng cở trang  tăng hiệu suất  tăng phân mảnh trong
* Phân đoạn:
- Phương thức quản lý bộ nhớ cho phép NSD “nhìn” bộ nhớ một cách dễ dàng dưới góc
độ lập trình
- Một chương trình gồm nhiều phân đoạn, mỗi phân đoạn thể hiện dưới góc độ lập trình ở
dạng:
main program

(Chương trình chính)

function, (Các hàm)
method (Các phương thức)
object, (Các đối tượng, lớp)
local/global variables, (Các biến)
common block, (Các khối chung)
stack, (Ngăn xếp)
symbol table, arrays (Bảng ký hiệu, mảng)
- Kiến trúc phân đoạn:
+ địa chỉ logic gồm 2 thành phần: <segment-number, offset>
+ Segement table – ánh xạ địa chỉ vật lý 2 cấp, nội dung mỗi mục trong Sement

table gồm có:
_ Base: chứa địa chỉ vật lý đầu tiên của đoạn trong bộ nhớ
_ Limit : xác định độ dài của đoạn
+ Segment-table base register (STBR): trỏ tới vị trí của Segement table (bảng
ohaan đoạn) trong bộ nhớ
+ Segement-table length register (STLR): xác định số đoạn mà một chương trình
sử dụng


+ Segement number s là hợp lệ nếu s < STLR
+ Phân đoạn: các đoạn có kicks thước khác nhau ( khác vs phân trang)
+ định vị: Động. Được thực hiện bởi bẳng phân đoạn
+ phân phối bộ nhớ: Giải quyết bài toán phân phối bộ nhớ động. First Fit / Best
fit / Worst fit. Có sự phân mảnh ngoài.

Câu 5: Phân mảnh trong – Ngoài
- phân mảnh ngoài (external fragmentation): là hiện tượng khi kích thước kg gian nhớ
còn trống đủ để thỏa mãn yêu cầu cấp phát nhưng kg gian nhớ này lại kg liên tục. Hiện
tượng phân mảnh ngoài xảy ra khi bạn thường xuyên cấp phát vùng nhớ mới, sau đó xóa
đi những phân vùng cấp phát một cách kg thứ tự
- phân mảnh trong (internal fragmentation): là hiện tượng sẽ có vùng nhớ dư thừa khi ta
cấp phát 1 vùng nhớ hơi lớn hơn kích thước yêu cầu.
VD: cấp 1 khoảng trống 18,464 bytes cho 1 process yêu cầu 18,462 bytes
Hiện tượng phânmảnh nội thường xảy ra khi bộ nhớ thực hiện đc chia thành các khối
kích thước cố định ( fixed-sized block) và các process đc cấp pát theo đơn vị khối.

Câu 6: 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 kg gian nhớ liên tục dành cho ch.trình
- cơ chế Overlay

+ cho phép tổ chức ch.trình thành các đơn vị ch.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 1 nhóm module khác
+ các module độc lập kg 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 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 kieemk bộ nhớ phụ thuộc cách tổ chức, bố trí các module
chương trình.

Câu 7: Liên kết thư viện(liên kết động cho windows .dll)
Dynamic linking( Liên kết động):
- Quá trình link đến một module ngoài (external module) được thực hiện sau khi đã tạo
xong load module (i.e. file có thể thực thi, executable)
+ Ví dụ trong Windows: module ngoài là các file .DLL còn trong Unix, các module
ngoài là các file .so (shared library)
- Load module chứa các stub tham chiếu (refer) đến routine của external module.
+ Lúc thực thi, khi stub được thực thi lần đầu (do process gọi routine lần đầu), stub nạp
routine vào bộ nhớ, tự thay thế bằng địa chỉ của routine và routine được thực thi.
+ Các lần gọi routine sau sẽ xảy ra bình thường



- Stub cần sự hỗ trợ của OS (như kiểm tra xem routine đã được nạp vào bộ nhớ chưa).
* Ưu điểm của dynamic linking:
- Thông thường, external module là một thư viện cung cấp các tiện ích của OS. Các
chương trình thực thi có thể dùng các phiên bản khác nhau của external module mà
không cần sửa đổi, biên dịch lại.
- Chia sẻ mã (code sharing): một external module chỉ cần nạp vào bộ nhớ một lần. Các
process cần dùng external module này thì cùng chia sẻ đoạn mã của external module Þ
tiết kiệm không gian nhớ và đĩa.
- Phương pháp dynamic linking cần sự hỗ trợ của OS trong việc kiểm tra xem một thủ tục
nào đó có thể được chia sẻ giữa các process hay là phần mã của riêng một process (bởi vì
chỉ có OS mới có quyền thực hiện việc kiểm tra này).

Câu 8: bản chất địa chỉ vật lý,logic
- Để quản lý bộ nhớ một cách hoàn chỉnh, cần có hai cách nhìn địa chỉ khác nhau:
+ Địa chỉ logic (Logical address) – là một vị trí nhớ được diễn tả trong một
chương trình. . Mọi tham chiếu bộ nhớ trong mã lệnh chương trình được compiler tạo ra
đều là địa chỉ logic - sinh bởi CPU; còn gọi là địa chỉ ảo (virtual address).
+ Địa chỉ vật lý (Physical address): là một vị trí thực trong bộ nhớ chính. Địa chỉ
vật lý được chuyển từ địa chỉ logic khi trình biên dịch thức j hiện quá trình
linking/loading - còn gọi là địa chỉ thật – sinh bởi đơn vị quản lý bộ nhớ
- Địa chỉ thật và ảo giống nhau trong lược đồ ánh xạ địa chỉ “compile-time” và “loadtime” và khác nhau trong “execution-time”


Câu 9: Hoạt động quản lý tiến trình của OS
Câu 10: Lập lịch
- Lập lịch là một phép thực hiện phân bổ và gán quy trình thực thi các tác vụ cho bộ xử lý
sao cho mỗi tác vụ được thực hiện hoàn toàn.
- Có một số thông tin về tác vụ luôn phải quan tâm đối với bất kỳ bộ lập lịch thời gian

thực nào, bao gồm:
• Thời gian xuất hiện i a (arrival time): Khi sự kiện xảy ra và tác vụ tương ứng được
kích hoạt.
• Thời điểm bắt đầu thực thi i r (release time): Thời điểm sớm nhất khi việc xử lý đã
sẵn sàng và có thể bắt đầu.
• Thời điểm bắt đầu thực hiện i s (starting time): Là thời điểm mà tại đó tác vụ bắt
đầu việc thực hiện của mình.
• Thời gian tính toán/thực thi i c (Computation time): Là khoảng thời gian cần thiết
để bộ xử lý thực hiện xong nhiệm vụ của mình mà không bị ngắt.
• Thời điểm hoàn thành i f (finishing time): Là thời điểm mà tại đó tác vụ hoàn thành
việc thực hiện của mình.
• Thời gian rủi ro/ xấu nhất i w (worst case time): khoảng thời gian thực hiện lâu nhất
có thể xảy ra.
• Thời điểm kết thúc i d (due time): Thời điểm mà tác vụ phải hoàn thành.
* Các phương pháp lập lịch phổ biến: Tuỳ thuộc vào loại hình tác vụ, người ta ra hai
phương pháp lập lịch là có chu kỳ và không có chu kỳ.
- Lập lịch không ưu tiên(non‐ preemptive): Phương pháp này đảm bảo các tác vụ được
thực hiện hoàn thành mỗi khi thực thi
- Lập lịch ưu tiên(preemptive): Phương pháp này khắc phục nhược điểm của lập lịch nonpreemptive khi thời gian thực thi các tác vụ lâu . Các tác vụ sẽ được thực hiện và có thể
bị ngắt giữa chừng để phục vụ thực thi các tác vụ khác .thời gian đáp ứng cho các sự kiện
và tác vụ ngắn
- Lập lịch offline/tĩnh: Việc lập lịch được thực hiện dựa trên các hiểu biết hoặc dự báo về


các sự kiện tác vụ thực hiện trong hệ và được quyết định tại thời điểm thiết kế và được áp
dụng cố định trong suốt quá trình hoạt động của hệ thống
- Lập lịch online/động: Bộ xử lý thực hiện việc lập lịch trong quá trình thực thi dựa trên
cơ sở các thông tin hoạt động hiện hành của hệ thống Sơ đồ lập lịch là không xác định
trước và thay đổi động theo quá trình thực hiện
- Lập lịch tập trung hoặc phân tán: Việc lập lịch được thực hiện áp dụng cho các tác vụ

thực thi bởi một (tập trung) hoặc nhiều bộ xử lý (phân tán).
- Lập lịch Mono hay Multi‐ processor: Nhiệm vụ lập lịch và thực thi được đảm nhiệm bởi
một (mono) hoặc nhiều bộ vi xử lý (multi).
 Tính khả lập lịch: Một hệ thống với một tập các tác vụ và các điều kiện ràng buộc được
gọi là khả lập lịch nếu tồn tại ít nhất một cơ chế lịch trình thực hiện thoả mãn các tác vụ
và điều kiện ràng buộc đó.
Câu 11: Thao tác đơn vị
Câu 12: các giải pháp đồng bộ
* Giải pháp Busy waiting
- Giải pháp phần mềm:
+ Sử dụng các biến cờ hiệu (simaphore)
+ Sử dụng việc kiểm tra luân phiên
+ Giải pháp của Peterson
- Giải pháp có sự hỗ trợ phần cứng;
+ Cắm ngắt
+ Test & Set
* Giải pháp Sleep and Wakeup
- khác phục nhược điểm của các giải pháp Busy waiting bằng cách cho 1 tiến trình chưa
đủ điều kiện vào đoạn găng sang trạng thái waiting


+ tạm khóa tiến trình kg cho sử dụng CPU ngay vì tiến trình chỉ sử dụng CPU khi ở trạng
thái waiting
+ tiến trình chỉ có thể chuyển sang trạng thái running khi đang ở trạng thái ready (sẵn
sàng)
- Giải pháp:
+ HĐH sử dụng 2 thủ tục sleep và wakeup
_ sleep là 1 lời gọi hệ thống có tác dụng tạm dừng hoạt động của tiến trình (chuyển
sang trạng thái waiting) gọi nó và chờ đến khi đc 1 tiến trình khác <<Đánh thức>>
_ lời gọi hệ thống wakeup nhận 1 tham số duy nhất: tiến trình sẽ đc tái kích hoạt

(đặt về trạng thái ready)
+ ý tưởng
_ khi 1 tiến trình chưa đủ điều kiện vào đoạn găng, nó gọi sleep đẻ tự khóa đến khi
có 1 tiến trình khác gọi wakeup để igiair phóng cho nó
_ một tiến trình gọi wakeup khi ra khỏi miền găng để đánh thức 1 tiến trình đg
chờ, tạo cơ hội cho tiến trình này vào miền găng
- Các giải pháp phổ biến:
+ Simaphore (Dijktra đề xuất)
+ Monitors
+ Trao đổi thông điệp.
Câu 13: Khóa chết, RAG
* Khóa chết (Deadlock)
- Bốn điều kiện cần (necessary condition) để xảy ra deadlock
+ .Mutual exclusion: ít nhất một tài nguyên được giữ theo nonsharable mode (ví dụ:
printer; ví dụ sharable resource: read-only files).


+ .Hold and wait: một process đang giữ ít nhất một tài nguyên và đợi thêm tài nguyên do
quá trình khác đang giữ.
+ .No preemption: (= no resource preemption) tài nguyên không thể bị lấy lại, mà chỉ có
thể được trả lại từ process đang giữ tài nguyên đó khi khi nó muốn..
+ .Circular wait: tồn tại một tập {P0,…,Pn} các quá trình đang đợi sao cho :
P0 đợi một tài nguyên mà P1 đang giữ
P1 đợi một tài nguyên mà P2 đang giữ

Pn đợi một tài nguyên mà P0 đang giữ
* Các phương pháp giải quyết deadlock
Ba phương pháp
- Bảo đảm rằng hệ thống không rơi vào tình trạng deadlock bằng cách ngăn (preventing)
hoặc tránh (avoiding) deadlock.

Khác biệt
+Ngăn deadlock: không cho phép (ít nhất) một trong 4 điều kiện cần cho deadlock
+Tránh deadlock: các quá trình cần cung cấp thông tin về tài nguyên nó cần để hệ thống
cấp phát tài nguyên một cách thích hợp
- Cho phép hệ thống vào trạng thái deadlock, nhưng sau đó phát hiện deadlock và phục
hồi hệ thống.
- Bỏ qua mọi vấn đề, xem như deadlock không bao giờ xảy ra trong hệ thống.
+ Khá nhiều hệ điều hành sử dụng phương pháp này.
+Deadlock không được phát hiện, dẫn đến việc giảm hiệu suất của hệ thống. Cuối cùng,
hệ thống có thể ngưng hoạt động và phải được khởi động lại.
Câu 14: 3 kỹ thuật định vị (phân bổ - allocation) file trên ổ đĩa: liên tục, chỉ số, liên
kết.
* An allocation method refers to how disk blocks are allocated for files:
- Contiguous allocation( Định vị liên tục)


- Linked allocation( Định vị liên kết)
- Indexed allocation( Định vị chỉ số)
* Contiguous allocation( Định vị liên tục)
- Each file occupies(chiếm giữ) a set of contiguous blocks on the disk(tập liên tiếp các
khối).
- Simple – only starting location (block #) and length (number of blocks) are required
- Random access.
- Wasteful of space (dynamic storage-allocation problem)-lãng phí không gian nhớ: Có
thể còn rất nhiều vùng nhớ trống rời rạc nhưng mỗi vùng đều không đủ lưu trữ trọn vẹn
một file
- Files cannot grow
- Extent-Based Systems:
+ Many newer file systems (I.e. Veritas File System) use a modified contiguous
allocation scheme.

+ Extent-based file systems allocate disk blocks in extents.-Hệ thống file định vị trên disk
theo miền(khu vực - extent)
+ An extent is a contiguous block of disks. Extents are allocated for file allocation. A file
consists of one or more extents.
=> File gồm một tập các miền rời rạc, trên mỗi miền lại được tổ chức thành từng khối
liên tục
* Linked allocation( Định vị liên kết)
- Each file is a linked list of disk blocks: Blocks may be scattered(rải rác) anywhere on
the disk.


- Simple – need only starting address : Địa chỉ bắt đầu là con trỏ trỏ đến đầu danh sách
liên kết
- Free-space management system – no waste of space
- No random access
- Mapping
+ File-allocation table (FAT) – disk-space allocation used by MS- DOS and OS/2.
+ Truy cập bảng FAT => danh sách các khối của file
* Indexed allocation( Định vị chỉ số)
- Brings all pointers together(gắn với) into the index block : Mọi con trỏ gắn trong một
khối chỉ số xác định
+ Logical view:

- Need index table
- Random access
- Dynamic access without external fragmentation, but have overhead of index block.
- Mapping from logical to physical in a file of maximum size of 256K words and block
size of 512 words. We need only 1 block for index table.(Để ánh xạ 1 file có kích thước



tối đa là 256K từ nhớ với kích thước 1 khối là 512 từ nhớblock dữ liệu> chỉ cần 1 khối cho bảng chỉ số) . Vì 512 x 512 = 29 x 29 = 28 x 210 =
256K
- Mapping from logical to physical in a file of unbounded length (block size of 512
words). (Ánh xạ đến file có kích thước tùy ý)
- Linked scheme – Link blocks of index table (no limit on size).: Kích thước file tùy
thuộc vào kích thước bảng chỉ số của nó



×