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

DỀ CƯƠNG ÔN TẬP 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 (158.81 KB, 16 trang )

DỀ CƯƠNG Ô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

function, (Các hàm)

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


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à “load-time” 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 đượckí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 non-preemptive

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ớ<chứa tối đa 512 địa chỉ đến các 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ó



×