Professional Documents
Culture Documents
File Goc 778435
File Goc 778435
com
5 6
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
7 8
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
25 26
Cấu trúc HĐH: Đơn giản Cấu trúc HĐH: Phân tầng
z Thuật ngữ: Simple approach z Thuật ngữ: Layered apparoach
z Ví dụ MS-DOS. (tương tự: UNIX thời gian
đầu) Chương trình ứng dụng
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
31 32
33 34
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
1 2
5 6
…..
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Hàng chờ lập lịch Hàng chờ lập lịch tiến trình
z Thuật ngữ: Queue Hàng chờ sẵn
sàng thực hiện CPU
z Các tiến trình chưa được phân phối sử dụng
CPU sẽ được đưa vào hàng chờ (queue) Vào/ra Hàng chờ vào/ra Yêu cầu vào/ra
9
Ngắt xuất hiện Chờ ngắt 10
Phân loại các bộ lập lịch Minh họa bộ lập lịch trung hạn
z Bộ lập lịch dài hạn (long-term scheduler)
swap in Các tiến trình swap out
z Thường dùng trong các hệ xử lý theo lô đang thực hiện
z Đưa tiến trình từ spool vào bộ nhớ trong dở bị swap out
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
15 16
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Minh họa tiến trình cha và con Kết thúc tiến trình
Tiến trình
cha gọi z Một tiến trình kết thúc khi:
create-process Tiến trình con z Thực hiện xong và gọi hàm hệ thống exit (kết
thúc bình thường)
z Gọi đến hàm abort hoặc kill (kết thúc bất thường
khi có lỗi hoặc có sự kiện)
z Bị hệ thống hoặc tiến trình cha áp dụng hàm
abort hoặc kill do:
Có thể gọi hoặc z Sử dụng quá quota tài nguyên
không gọi wait để Gọi exit để kết thúc
z Tiến trình con không còn cần thiết
chờ/không chờ
z Khi tiến trình cha đã kết thúc (trong một số HĐH)
tiến trình con kết thúc
19 20
Minh họa tiến trình trong UNIX Hợp tác giữa các tiến trình
#include <stdio.h>
main() z Các tiến trình có thể hoạt động độc lập hoặc
{ hợp tác với nhau
int pid=fork(); /* Tạo tiến trình mới bằng hàm fork() */
z Các tiến trình cần hợp tác khi:
if (pid<0) { perror(“Cannot create process”); return(-1); }
else if (pid==0) { /* Tiến trình con */ z Sử dụng chung thông tin
execlp(); z Thực hiện một số nhiệm vụ chung
} z Tăng tốc độ tính toán
else { /* Tiến trình cha */
wait(NULL); /* Nếu không có lệnh này tiến trình cha thực hiện z …
“song song” với tiến trình con */ z Để hợp tác các tiến trình, cần có các cơ chế
printf(“Child completed\n”); truyền thông/liên lạc giữa các tiến trình
return(0);
}
(Interprocess communication – IPC)
21 22
}
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Truyền thông trực tiếp Minh họa truyền thông trực tiếp
z Hai toán tử z Mỗi kết nối được thiết
z send(P, msg): Gửi msg đến tiến trình P lập cho một cặp tiến
P2
trình duy nhất P1
z receive(Q, msg): Nhận msg từ tiến trình Q P3
z Mỗi tiến trình chỉ cần
z Cải tiến: biết tên/số hiệu của tiến
z send(P, msg): Gửi msg đến tiến trình P trình kia là truyền thông
z receive(id, msg): Nhận msg từ bất kỳ tiến trình được P6
nào z Tồn tại duy nhất một
kết nối giữa một cặp P5 P4
tiến trình
25 26
Truyền thông gián tiếp Minh họa truyền thông gián tiếp
z Các thông điệp được gửi và nhận qua các z Hai tiến trình có kết nối
hộp thư (mailbox) hoặc qua các cổng (port) nếu sử dụng chung một
P2
hộp thư P1
z Hai toán tử: P3
z Một kết nối có thể sử
z send(A, msg): Gửi msg đến hộp thư A dụng cho nhiều tiến Hộp
thư
z receive(B, msg): Nhận msg từ hộp thư B trình (>=2) A Hộp
thư
z Minh họa: Topo mạng hình sao z Nhiều kết nối có thể tồn P6 B
tại giữa một cặp tiến
trình (nếu sử dụng các P5 P4
hộp thư khác nhau)
27 28
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
31 32
Bài tập
z Hãy viết chương trình minh họa cho các cơ
chế truyền thông non-blocking, blocking
z Hãy viết chương trình minh họa các cơ chế
truyền thông điệp sử dụng buffer có độ dài n
trong hai trường hợp: n>0 và n=0
z Chú ý: Để làm hai bài tập trên cần sử dụng
hai tiến trình; có thể thực hiện bài tập với
UNIX/Linux hoặc Windows
35
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
1 2
Tại sao phải lập lịch CPU? Hàng chờ lập lịch tiến trình
z Số lượng NSD, số lượng tiến trình luôn lớn Hàng chờ sẵn
CPU
sàng thực hiện
hơn số lượng CPU của máy tính rất nhiều
z Tại một thời điểm, chỉ có duy nhất một tiến Vào/ra Hàng chờ vào/ra Yêu cầu vào/ra
CPU-burst và IO-burst
z Trong suốt thời gian tồn tại trong hệ thống,
tiến trình được xem như thực hiện hai loại Microsoft
Office
công việc chính: Outlook
CPU-burst Adobe
z Khi tiến trình ở trạng thái running: Sử dụng CPU Photoshop
(thuật ngữ: CPU-burst) CPU-burst
z Khi tiến trình thực hiện các thao tác vào ra: Sử
dụng thiết bị vào/ra (thuật ngữ: I/O burst)
5 6
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Hai loại tiến trình chính Bộ lập lịch ra hoạt động khi…
z Căn cứ theo cách sử dụng CPU của tiến 1. Một tiến trình chuyển từ trạng thái running
trình, có hai loại tiến trình: sang waiting
z Tiến trình loại CPU-bound: Tiến trình có một hoặc 2. Một tiến trình chuyển từ trạng thái running
nhiều phiên sử dụng CPU dài sang ready
z Tiến trình loại I/O-bound: Tiến trình có nhiều
3. Một tiến trình chuyển từ trạng thái waiting
phiên sử dụng CPU ngắn (tức là thời gian vào ra
nhiều) sang ready
4. Một tiến trình kết thúc
7 8
11 12
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Các tiêu chí đánh giá lập lịch Các tiêu chí đánh giá lập lịch
z Khả năng tận dụng CPU (CPU utilization): z Thời gian hoàn thành (turnaround time):
Thể hiện qua tải CPU – là một số từ 0% đến z tturnaround = to-ti với ti là thời điểm tiến trình vào hệ
100%. thống, to là thời điểm tiến trình ra khỏi hệ thống
z Trong thực tế các hệ thống thường có tải từ 40% (kết thúc thực hiện)
(tải thấp) đến 90% (tải cao) z Như vậy tturnaround là tổng: thời gian tải vào bộ nhớ,
thời gian thực hiện, thời gian vào ra, thời gian
z Thông lượng (throughput): Là số lượng các
nằm trong hàng chờ…
tiến trình hoàn thành trong một đơn vị thời
gian
13 14
Các tiêu chí đánh giá lập lịch Các tiêu chí đánh giá lập lịch
z Thời gian chờ (waiting time): Là tổng thời z Thời gian đáp ứng (response time): Là
gian tiến trình phải nằm trong hàng chờ khoảng thời gian từ khi tiến trình nhận được
ready (twaiting) một yêu cầu cho đến khi bắt đầu đáp ứng
z Các thuật toán lập lịch CPU không có ảnh hưởng yêu cầu đó
đến tổng thời gian thực hiện một tiến trình mà chỉ z tres = tr – ts, trong đó tr là thời điểm nhận yêu
có ảnh hưởng đến thời gian chờ của một tiến
cầu, ts là thời điểm bắt đầu đáp ứng yêu cầu
trình trong hàng chờ ready
z Thời gian chờ trung bình (average waiting time):
taveragewaiting=twaiting / n, n là số lượng tiến trình trong
hàng chờ
15 16
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Tiến trình con Tạo một tiến z Giả sử P là tiến trình “lớn” có chu kỳ sử dụng CPU trong 40ms
thực hiện trình con và vào ra trong 50ms
z Q1, Q2, Q3 là 3 tiến trình “nhỏ” có chu kỳ sử dụng CPU trong
10ms và vào ra trong 10ms
Ngắt xuất hiện Chờ ngắt 23
z Thứ tự xếp hàng: P, Q1, Q2, Q3 24
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Lập lịch với hàng chờ đa mức Lập lịch với hàng chờ đa mức
có phản hồi có phản hồi
z Thuật ngữ: Multilevel feedback-queue z Cách thực hiện:
scheduling z Độ dài phiên sử dụng CPU và thời gian đã nằm
z Thuật toán lập lịch kiểu này nhằm khắc phục trong hàng chờ là tiêu chuẩn chuyển tiến trình
giữa các hàng chờ
nhược điểm không mềm dẻo của lập lịch với
hàng chờ đa mức z Tiến trình chiếm nhiều thời gian CPU sẽ bị
chuyển xuống hàng chờ có độ ưu tiên thấp
z Ý tưởng chính: Cho phép tiến trình chuyển từ z Tiến trình nằm lâu trong hàng chờ sẽ được
hàng chờ này sang hàng chờ khác, trong khi chuyển lên hàng chờ có độ ưu tiên cao hơn
lập lịch với hàng chờ đa mức không cho phép
điều này
37 38
39 40
41 42
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
1 2
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Khái niệm về đoạn mã găng (2) Khái niệm về đoạn mã găng (3)
z Đặc điểm quan trọng mà hệ n tiến trình này z Cấu trúc chung của Pi để thực hiện đoạn mã
cần có là: Khi một tiến trình Pi thực hiện đoạn găng CSi.
mã CSi thì không có tiến trình Pj nào khác do {
được phép thực hiện CSj Xin phép (ENTRYi) thực hiện CSi; // Entry section
z Mỗi tiến trình Pi phải “xin phép” (entry Thực hiện CSi;
section) trước khi thực hiện CSi và thông báo Thông báo (EXITi) đã thực hiện xong CSi; // Exit section
(exit section) cho các tiến trình khác sau khi Phần mã lệnh khác (REMAINi); // Remainder section
thực hiện xong CSi. } while (TRUE);
9 10
Khái niệm về đoạn mã găng (4) Giải pháp cho đoạn mã găng
z Viết lại cấu trúc chung của đoạn mã găng: z Giải pháp cho đoạn mã găng cần thỏa mãn 3
điều kiện:
do {
z Loại trừ lẫn nhau (mutual exclusion): Nếu Pi đang
ENTRYi; // Entry section thực hiện CSi thì Pj không thể thực hiện CSj ∀j≠i.
Thực hiện CSi; // Critical section z Tiến triển (progress): Nếu không có tiến trình Pi nào
EXITi; // Exit section thực hiện CSi và có m tiến trình Pj1, Pj2, ..., Pjm muốn
thực hiện CSj1, CSj2, ..., CSjm thì chỉ có các tiến trình
REMAINi; // Remainder section không thực hiện REMAINjk (k=1,...,m) mới được xem
} while (TRUE); xét thực hiện CSjk.
z Chờ có giới hạn (bounded waiting): sau khi một tiến
trình Pi có yêu cầu vào CSi và trước khi yêu cầu đó
11
được chấp nhận, số lần các tiến trình Pj (với j≠i) được
12
phép thực hiện CSj phải bị giới hạn.
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Ví dụ: giải pháp của Peterson Ví dụ: giải pháp của Peterson
z Giả sử có 2 tiến trình P0 và P1 với hai đoạn z Mã lệnh của Pi:
mã găng tương ứng CS0 và CS1 do {
z Sử dụng một biến nguyên turn với giá trị khởi flag[i] = TRUE;
tạo 0 hoặc 1 và mảng boolean flag[2] turn = j;
z turn có giá trị i có nghĩa là Pi được phép thực while (flag[j] && turn == j) ;
hiện CSi (i=0,1) CSi;
z nếu flag[i] là TRUE thì tiến trình Pi đã sẵn flag[j] = FALSE;
sàng để thực hiện CSi REMAINi;
} while (1);
13 14
15 16
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
19 20
Cài đặt semaphore theo cấu trúc Cài đặt semaphore theo cấu trúc
z Khắc phục chờ bận: Chuyển vòng lặp chờ void wait(semaphore *S) void signal(semaphore *S)
thành việc sử dụng toán tử block (tạm dừng) { {
z Để khôi phục thực hiện từ block, ta có toán tử S->value--; S->value++;
wakeup if (S->value<0) { if (S->value<=0) {
z Khi đó để cài đặt, ta có cấu trúc dữ liệu mới Thêm tiến trình gọi Xóa một tiến trình P
cho semaphore: toán tử vào s->L; ra khỏi s->L;
typedef struct { block(); wakeup(P);
int value; // Giá trị của semaphore } }
struct process *L; // Danh sách tiến trình chờ... } }
} semaphore; 23 24
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
25 26
Bài toán vùng đệm có giới hạn Bài toán vùng đệm có giới hạn
z Đã xét ở ví dụ đầu tiên (the bounded-buffer Tiến trình ghi P: Tiến trình đọc Q:
problem) do { do {
z Ta sử dụng 3 semaphore tên là full, empty và wait(empty); wait(full);
mutex để giải quyết bài toán này wait(mutex); wait(mutex);
z Khởi tạo: // Ghi một phần tử mới // Đọc một phần tử ra
z full: Số lượng phần tử buffer đã có dữ liệu (0) // vào buffer // khỏi buffer
z empty: Số lượng phần tử buffer chưa có dữ liệu (n) signal(mutex); signal(mutex);
z mutex: 1 (Chưa có tiến trình nào thực hiện đoạn signal(full); signal(empty);
mã găng) } while (TRUE); } while (TRUE);
27 28
Bài toán tiến trình đọc - ghi Bài toán tiến trình đọc-ghi số 1
z Thuật ngữ: the reader-writer problem z Sử dụng các semaphore với giá trị khởi tạo:
z Tình huống: Nhiều tiến trình cùng thao tác trên một cơ wrt (1), mutex (1)
sở dữ liệu trong đó
z Sử dụng biến rcount (khởi tạo 0) để đếm số
z Một vài tiến trình chỉ đọc dữ liệu (ký hiệu: reader)
z Một số tiến trình vừa đọc vừa ghi (ký hiệu: writer)
lượng reader đang đọc dữ liệu
z Khi có đọc/ghi đồng thời của nhiều tiến trình trên cùng z wrt: Đảm bảo loại trừ lẫn nhau khi writer ghi
một cơ sở dữ liệu, có 2 bài toán: z mutex: Đảm bảo loại trữ lẫn nhau khi cập
z Bài toán 1: reader không phải chờ, trừ khi writer đã được phép nhật biến rcount
ghi vào CSDL (hay các reader không loại trừ lẫn nhau khi đọc)
z Bài toán 2: Khi writer đã sẵn sàng ghi, nó sẽ được ghi trong
thời gian sớm nhất (nói cách khác khi writer đã sẵn sàng,
không cho phép các reader đọc dữ liệu) 29 30
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bài toán tiến trình đọc-ghi số 1 Bữa ăn tối của các triết gia
z Tiến trình writer Pw: z Tiến trình reader Pr: z Thuật ngữ: the dining-
do { do { philosophers problem
wait(wrt); wait(mutex); z Có 5 triết gia, 5 chiếc
// Thao tác ghi đang được rcount++; đũa, 5 bát cơm và một
// thực hiện if (rcount==1) wait(wrt); âu cơm bố trí như hình
signal(wrt); signal(mutex); vẽ
while (TRUE); // Thực hiện phép đọc z Đây là bài toán cổ điển
wait(mutex);
và là ví dụ minh họa
cho một lớp nhiều bài
rcount--;
toán tương tranh
if (rcount==0) signal(wrt); (concurrency): Nhiều
signal(mutex); tiến trình khai thác
} while (TRUE); 31
nhiều tài nguyên chung 32
Bữa ăn tối của các triết gia Giải pháp cho bài toán Bữa ăn...
z Mã lệnh của triết gia i:
z Các triết gia chỉ làm 2 việc: Ăn và suy nghĩ z Biểu diễn 5 chiếc đũa qua
mảng semaphore: do {
z Suy nghĩ: Không ảnh hưởng đến các triết gia khác,
semaphore chopstick[5]; wait(chopstick[i]);
đũa, bát và âu cơm
các semaphore được khởi tạo wait(chopstick[(i+1)%5];
z Để ăn: Mỗi triết gia phải có đủ 2 chiếc đũa gần nhất ở giá trị 1 // Ăn...
bên phải và bên trái mình; chỉ được lấy 1 chiếc đũa z Mã lệnh của triết gia như hình signal(chopstick[i]);
một lần và không được phép lấy đũa từ tay triết gia bên
signal(chopstick[(i+1)%5];
khác z Mã lệnh này có thể gây bế tắc
// Suy nghĩ...
(deadlock) nếu cả 5 triết gia
z Khi ăn xong: Triết gia bỏ cả hai chiếc đũa xuống bàn } while (TRUE);
đều lấy được 1 chiếc đũa và
và tiếp tục suy nghĩ chờ để lấy chiếc còn lại nhưng
không bao giờ lấy được!!
33 34
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Ví dụ hạn chế của semaphore (1) Ví dụ hạn chế của semaphore (2)
z Xét ví dụ về đoạn mã găng: z Xét ví dụ về đoạn mã găng:
z Mã đúng: z Mã sai: z Mã đúng: z Mã sai:
... ... ... ...
wait(mutex); signal(mutex); wait(mutex); wait(mutex);
// Đoạn mã găng // Đoạn mã găng // Đoạn mã găng // Đoạn mã găng
signal(mutex); wait(mutex); signal(mutex); wait(mutex);
... ... ... ...
z Đoạn mã sai này gây ra z Đoạn mã sai này gây ra
vi phạm điều kiện loại bế tắc
trữ lẫn nhau 37 38
Ví dụ hạn chế của semaphore (3) Ví dụ hạn chế của semaphore (4)
z Nếu người lập trình quên các toán tử wait() z Tiến trình P1 z Tiến trình P2
hoặc signal() trong trong các đoạn mã găng, ... ...
hoặc cả hai thì có thể gây ra: wait(S); wait(Q);
z Bế tắc wait(Q); wait(S);
z Vi phạm điều kiện loại trừ lẫn nhau ... ...
signal(S); signal(Q);
signal(Q); signal(S);
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bài toán Ăn tối.. với monitor Monitor của bài toán Ăn tối...
z Giải quyết bài toán Ăn tối của các triết gia với monitor dp {
monitor để không xảy ra bế tắc khi hai triết gia ngồi enum {thinking, hungry, eating} state[5];
cạnh nhau cùng lấy đũa để ăn
condition self[5];
z Trạng thái của các triết gia:
void pickup(int i) {
enum {thinking, hungry, eating} state[5];
state[i] = hungry;
z Triết gia i chỉ có thể ăn nếu cả hai người ngồi cạnh
ông ta không ăn: test(i);
(state[(i+4)%5]!=eating) and (state[(i+1)%5]!=eating) if (state[i] != eating) self[i].wait();
z Khi triết gia i không đủ điều kiện để ăn: cần có biến }
condition: condition self[5]; }
53 54
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Monitor của bài toán Ăn tối... Monitor của bài toán Ăn tối...
void putdown(int i) { void test(int i) {
state[i] = thinking; if ((state[(i+4)%5] != eating) &&
test((i+4)%5); (state[i] == hungry) &&
test((i+1)%5); (state[(i+1)%5] != eating)) {
} state[i] = eating;
initialization_code() { self[i].signal();
for (int i=0;i<5;i++) state[i] = thinking; }
} }
55 56
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
1 2
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
7 8
9 10
11 12
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Đồ thị cấp phát tài nguyên Đồ thị cấp phát tài nguyên
z Thuật ngữ: Resource allocation graph z Cung có hướng từ tiến trình Pi đến tài
z Để mô tả một cách chính xác bế tắc, chúng nguyên Rj, ký hiệu là Pi→Rj có ý nghĩa: Tiến
ta sử dụng đồ thị có hướng gọi là “đồ thị cấp trình Pi yêu cầu một thể hiện của Ri. Ta gọi
phát tài nguyên” G=(V, E) với V là tập đỉnh, E Pi→Rj là cung yêu cầu (request edge)
là tập cung z Cung có hướng từ tài nguyên Rj đến tiến
z E được chia thành hai tập con P={P0, P1, ..., trình Pi ký hiệu là Rj→Pi có ý nghĩa: Một thể
Pn} là tập các tiến trình trong hệ thống và R= hiện của tài nguyên Rj đã được cấp phát cho
{R0, R1, ..., Rm} là tập các loại tài nguyên tiến trình Pi. Ta gọi Rj→Pi là cung cấp phát
trong hệ thống thỏa mãn P∪R=E và P∩R= ∅ (asignment edge)
13 14
Đồ thị cấp phát tài nguyên Đồ thị cấp phát tài nguyên
z Ký hiệu hình vẽ: z Nếu không có chu trình trong đồ thị cấp phát
z Pi là hình tròn tài nguyên: Không có bế tắc. Nếu có chu
z Rj là các hình chữ nhật với mỗi chấm bên trong là
trình: Có thể xảy ra bế tắc.
số lượng các thể hiện của tài nguyên z Nếu trong một chu trình trong đồ thị cấp phát
tài nguyên, mỗi loại tài nguyên chỉ có đúng
z Minh họa đồ thị cấp phát tài nguyên:
một thể hiện: Bế tắc đã xảy ra (Điều kiện cần
R1 R2
và đủ)
z Nếu trong một chu trình trong đồ thị cấp phát
P1 P2 P3
tài nguyên một số tài nguyên có nhiều hơn
một thể hiện: Có thể xảy ra bế tắc (Điều kiện
R3 R4
15 cần nhưng không đủ) 16
P1 P2 P3 R2
17
P4 18
R3 R4
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Giới thiệu
Ngăn chặn bế tắc
Ngăn chặn bế tắc (deadlock prevention) là
(Deadlock prevention) z
phương pháp xử lý bế tắc, không cho nó xảy
ra bằng cách làm cho ít nhất một điều kiện
cần của bế tắc là C1, C2, C3 hoặc C4 không
được thỏa mãn (không xảy ra)
z Ngăn chặn bế tắc theo phương pháp này có
tính chất tĩnh (statically)
21 22
Ngăn chặn “loại trừ lẫn nhau” Ngăn chặn “giữ và chờ”
z C1 (Loại trừ lẫn nhau): là điều kiện bắt buộc z C2 (Giữ và chờ): Có thể làm cho C2 không
cho các tài nguyên không sử dụng chung xảy ra bằng cách đảm bảo:
được → Khó làm cho C1 không xảy ra vì các z Một tiến trình luôn yêu cầu cấ phát tài nguyên chỉ
hệ thống luôn có các tài nguyên không thể sử khi nó không chiếm giữ bất kỳ một tài nguyên
dụng chung được nào, hoặc
z Một tiến trình chỉ thực hiện khi nó được cấp phát
toàn bộ các tài nguyên cần thiết
23 24
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Chứng minh giải pháp ngăn Ưu nhược điểm của ngăn chặn
chặn chờ vòng giải pháp bế tắc
z Sử dụng chứng minh phản chứng z Ưu điểm: ngăn chặn bế tắc (deadlock
z Giả sử giải pháp ngăn chặn gây ra chờ vòng prevention) là phương pháp tránh được bế
{P0, P1, ..., Pn} trong đó Pi chờ tài nguyên Ri tắc bằng cách làm cho điều kiện cần không
bị chiếm giữ bởi P(i+1) mod n được thỏa mãn
z Vì Pi+1 đang chiếm giữ Ri và yêu cầu Ri+1, do z Nhược điểm:
đó f(Ri)<f(R(i+1) mod n) ∀i, có nghĩa là ta có: z Giảm khả năng tận dụng tài nguyên và giảm
z f(R0)<f(R1)<f(R2)<..<f(Rn)<f(R0) thông lượng của hệ thống
z Mâu thuẫn! → Giải pháp được chứng minh z Không mềm dẻo
29 30
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Giới thiệu
Tránh bế tắc
Tránh bế tắc là phương pháp sử dụng thêm
(Deadlock avoidance) z
các thông tin về phương thức yêu cầu cấp
phát tài nguyên để ra quyết định cấp phát tài
nguyên sao cho bế tắc không xảy ra.
z Có nhiều thuật toán theo hướng này
z Thuật toán đơn giản nhất và hiệu quả nhất là:
Mỗi tiến trình P đăng ký số thể hiện của mỗi
loại tài nguyên mà P sẽ sử dụng. Khi đó hệ
thống sẽ có đủ thông tin để xây dựng thuật
31 toán cấp phát không gây ra bế tắc 32
35 36
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Thuật toán đồ thị cấp phát tài Thuật toán đồ thị cấp phát tài
nguyên nguyên
z Giả sử các tài nguyên chỉ có 1 thể hiện z Chú ý rằng các tài nguyên phải được thông
z Sử dụng đồ thị cấp phát tài nguyên như ở báo trước khi tiến trình thực hiện
slide 16 và thêm một loại cung nữa là cung z Các cung báo trước sẽ phải có trên đồ thị
báo trước (claim) cấp phát tài nguyên
z Cung báo trước Pi→Rj chỉ ra rằng Pi có thể z Tuy nhiên có thể giảm nhẹ điều kiện: cung
yêu cầu cấp phát tài nguyên Rj, được biểu thông báo Pi→Rj được thêm vào đồ thị nếu
diễn trên đồ thị bằng các đường nét đứt tất cả các cung gắn với Pi đều là cung thông
z Khi tiến trình Pi yêu cầu cấp phát tài nguyên báo
Rj, đường nét đứt trở thành đường nét liền
39 40
z Chúng ta kiểm tra bằng cách sử dụng thuật phát R2, vì nếu cấp phát R1
toán phát hiện chu trình trong đồ thị: Nếu có ta sẽ có chu trình trong
n tiến trình trong hệ thống, thuật toán phát đồ thị và gây ra chờ vòng R2
hiện chu trình có độ phức tạp tính toán O(n2) → Hệ thống ở trạng thái
không an toàn P1 P2
z Nếu không có chu trình: Cấp phát->trạng thái
an toàn, ngược lại: Trạng thái không an toàn
41 42
R2
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Thuật toán trạng thái an toàn Thuật toán yêu cầu tài nguyên
1. Khởi tạo Work=Available và Finish[i]=false 1. Nếu Request[i]≤Need[i], chuyển đến bước 2
∀i=1..n Ngược lại thông báo lỗi (không có tài nguyên rỗi)
2. Tìm i sao cho Finish[i]==false và Need[i]≤Work 2. Nếu Request[i]≤Available, chuyển đến bước 3.
Nếu không tìm được i, chuyển đến bước 4 Ngược lại Pi phải chờ vì không có tài nguyên
3. Work=Work+Allocation[i], Finish[i]=true 3. Nếu việc thay đổi trạng thái giả định sau đây:
Available=Availalble-Request[i]
Chuyển đến bước 2 Allocation=Allocation+Request[i]
4. Nếu Finish[i]==true ∀i thì hệ thống ở trạng thái Need[i]=Need[i]-Request[i]
an toàn đưa hệ thống vào trạng thái an toàn thì cấp phát tài
z Độ phức tạp tính toán của thuật toán trạng thái nguyên cho Pi, ngược lại Pi phải chờ Request[i] và
an toàn: O(m.n2) 47
trạng thái của hệ thống được khôi phục như cũ 48
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Ví dụ banker Ví dụ banker
zXét một hệ thống các tiến trình và tài nguyên z Hệ thống hiện đang ở trạng thái an toàn
như sau: z Thứ tự <P1,P3,P4,P2,P0> thỏa mãn tiêu chuẩn
Allocation Max Available Need an toàn
A B C A B C A B C A B C z Giả sử P1 có yêu cầu: Request[1]=(1,0,2)
P0 0 1 0 7 5 3 3 3 2 7 4 3
z Để quyết định xem có cấp phát tài nguyên
P1 2 0 0 3 2 2 1 2 2 theo yêu cầu này không, trước hết ta kiểm tra
P2 3 0 2 9 0 2 6 0 0 Request[1]≤Available: (1,0,2)<(3,3,2): Đúng
P3 2 1 1 2 2 2 0 1 1 z Giả sử yêu cầu này được cấp phát, khi đó
P4 0 0 2 4 3 3 4 3 1 trạng thái giả định của hệ thống là:
49 50
Ví dụ banker Ví dụ banker
Allocation Need Available z Tuy nhiên, nếu hệ thống ở trạng thái sau thì
A B C A B C A B C z Yêu cầu (3,3,0) của P4 không thể cấp phát ngay
P0 0 1 0 7 4 3 3 3 2 vì các tài nguyên không rỗi
P1 3 0 2 0 2 0 z Yêu cầu (0,2,0) của P0 cũng không thể cấp phát
P2 3 0 2 6 0 0 ngay vì mặc dù các tài nguyên rỗi nhưng việc
cấp phát sẽ làm cho hệ thống rơi vào trạng thái
P3 2 1 1 0 1 1
không an toàn
P4 0 0 2 4 3 1
z Bài tập: Thực hiện kiểm tra và quyết định
z Thực hiện thuật toán trạng thái an toàn và thấy rằng
thứ tự <P1,P3,P4,P0,P2>. Do đó có thể cấp phát tài cấp phát hai yêu cầu trên
nguyên cho P1 ngay.
51 52
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Tài nguyên có nhiều thể hiện Sử dụng thuật toán phát hiện
1. Giả sử Work và Finish là các vector m và n thành z Tần suất sử dụng phụ thuộc:
phần. Khởi tạo Work=Available. Với mỗi i=0..n-1 gán
Finish[i]=false nếu Allocation[i]≠0, ngược lại gán z Tần suất xảy ra bế tắc
Finish[i]=true z Bao nhiêu tiến trình bị ảnh hưởng bởi bế tắc?
2. Tìm i sao cho Finish[i]==false và Request[i]≤Work. Nếu z Sử dụng thuật toán phát hiện:
không tìm thấy i, chuyển đến bước 4
z Định kỳ: Có thể có nhiều chu trình trong đồ thị,
3. Work=Work+Allocation, Finish[i]=true; chuyển đến không biết được tiến trình/request nào gây ra bế
bước 2
tắc
4. Nếu Finish[i]==false với 0≤i≤n-1 thì hệ thống đang bị
bế tắc (và tiến trình Pi đang bế tắc). z Khi có yêu cầu cấp phát tài nguyên: Tốn tài
z Độ phức tạp tính toán của thuật toán: O(m.n2) nguyên CPU
57 58
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
1 2
Chuyển đổi địa chỉ Không gian địa chỉ logic (ảo)
và địa chỉ vật lý (địa chỉ thật)
Có 3 cách chuyển đổi địa chỉ lệnh và dữ liệu của chương trình vào bộ nhớ:
z Khi dịch chương trình (compile-time): Sinh mã z Để quản lý bộ nhớ một cách hoàn chỉnh, cần
có địa chỉ cố định; phải dịch lại nếu cần thay đổi có hai cách nhìn địa chỉ khác nhau:
địa chỉ. z Địa chỉ logic (Logical address) – sinh bởi CPU;
z Khi nạp chương trình (load-time): Phải sinh còn gọi là địa chỉ ảo (virtual address).
mã có thể định vị lại nếu như địa chỉ bộ nhớ z Địa chỉ vật lý (Physical address); còn gọi là địa chỉ
không được biết ở thời điểm dịch chương trình thật – sinh bởi đơn vị quản lý bộ nhớ
z Khi thực hiện chương trình (execution-time): z Địa chỉ thật và ảo giống nhau trong lược đồ
Ánh xạ địa chỉ khi chương trình được thực hiện ánh xạ địa chỉ “compile-time” và “load-time”
nếu như tiến trình có thể chuyển giữa các và khác nhau trong “execution-time”.
segment bộ nhớ. Cần có hỗ trợ từ phần cứng (ví 5 6
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
7 8
Overlays Ví dụ về overlays
z Chỉ lưu trong bộ nhớ các phần lệnh và dữ
liệu phải sử dụng trong suốt quá trình thực
hiện
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Minh họa thanh ghi relocation, limit Cấp phát liên tục (tiếp): MFT
z Bộ nhớ được chia thành các khối với cỡ cố
định, mỗi tiến trình được cấp phát một khối
z Khi tiến trình kết thúc, khối bộ nhớ đã cấp
phát cho tiến trình được giải phóng để cấp
phát cho tiến trình khác
z Mức độ đa chương trình bị hạn chế bởi các
khối
z Cỡ của tiến trình bị hạn chế bởi cỡ của khối
z Các HĐH/máy tính sử dụng MFT: IBM/360
17 18
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Cấp phát liên tục (tiếp): MVT Các chiến lược cấp phát
z Cấp phát MVT z First-fit: Cấp phát khối nhớ đầu tiên thỏa
z Hole – khối bộ nhớ rỗi; các khối rỗi với kích cỡ khác mãn điều kiện.
nhau rải rác trong bộ nhớ z Best-fit: Cấp phát khối nhớ bé nhất thỏa
z Một tiến trình sẽ được cấp phát một khối bộ nhớ đủ mãn điều kiện: Phải duyệt toàn bộ danh sách
lớn để thực hiện khối nhớ
z HĐH có thông tin về các khối đã cấp phát và khối rỗi
z Worst-fit: Cấp phát khối nhớ lớn nhất thỏa
HĐH HĐH HĐH HĐH
mãn điều kiện: Phải duyệt toàn bộ danh sách
Tiến trình 5 Tiến trình 5 Tiến trình 5 Tiến trình 5
z Chia bộ nhớ ảo thành các khối cùng cỡ gọi là trang (page) z Địa chỉ ảo có m bit, sử dụng m-n bit cao làm số hiệu
z HĐH có danh sách các frame rỗi trang và n bit thấp làm offset
z Để thực hiện một chương trình cỡ n trang, cần tìm n frame z Không có phân mảnh ngoài, có phân mảnh trong:
rỗi để nạp chương trình z Giảm cỡ trang→Giảm phân mảnh trong→Giảm hiệu năng
z Tăng cỡ trang→Tăng hiệu suất→Tăng phân mảnh trong
z Có một bảng trang để ánh xạ trang→frame
z Bảng trang: chung trong HĐH, mỗi tiến trình có một copy 23 24
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
25 26
Cỡ của
một trang
là 4 bytes
27 28
Trước cấp phát Sau cấp phát
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
37 38
10 10 12
z Một kỹ thuật đơn giản nhất là bảng trang hai trong đó p1 là chỉ số đến bảng trang ngoài, p2 là chỉ
cấp. Có thể có bảng trang hai, ba, bốn cấp số đến trang (thực sự) ở bảng trang ngoài
39 40
41 42
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Phân đoạn
Phân đoạn
z Phương thức quản lý bộ nhớ cho phép NSD “nhìn”
(Segmentation) bộ nhớ một cách dễ dàng dưới góc độ lập trình
z 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
47
stack, // Ngăn xếp 48
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
4
1
3 2
4
49 Không gian địa chỉ của NSD Không gian bộ nhớ vật lý 50
51 52
Kiến trúc phân đoạn (tiếp) Kiến trúc phân đoạn (tiếp)
z Định vị lại (relocation) z Bảo vệ bộ nhớ:Mỗi phân đoạn có:
z Động z Bit kiểm tra = 0 ⇒ phân đoạn không hợp lệ
z Sử dụng bảng phân đoạn z read/write/execute privileges
z Dùng chung (sharing) z Protection bits associated with segments;
z Có các phân đoạn dùng chung code sharing occurs at segment level.
z Sử dụng cùng một số hiệu phân đoạn (segment z Do phân đoạn có cỡ biến đổi → Gặp vấn đề
number) tương tự trong cấp phát bộ nhớ liên tục
z Cấp phát (allocation) z Kết hợp phân đoạn với phân trang để tăng
z first fit/best fit hiệu quả sử dụng bộ nhớ, dễ cấp phát hơn
z Phân mảnh ngoài 53
(ví dụ: MULTICS, Intel 386) 54
9
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
55 56
Tóm tắt
z Địa chỉ logic (ảo)/Địa chỉ vật lý (thật)
z Các phương án ánh xạ địa chỉ của chương trình
vào bộ nhớ
z Cấp phát bộ nhớ liên tục, phân mảnh, các chiến
lược cấp phát first-fit, best-fit, worst-fit
z Phân trang
z Trang, frame
z Bảng trang, bảng trang phân cấp, bảng trang ngược
z Phân đoạn, bảng phân đoạn
57
10
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bộ nhớ ảo
Nguyên lý hệ điều hành (Virtual Memory)
Nguyễn Hải Châu Yêu cầu phân trang
Khoa Công nghệ thông tin Tạo tiến trình
Trường Đại học Công nghệ Thay thế trang
Cấp phát frame
Thrashing
1 2
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Nếu không có frame rỗi? Hiệu năng của yêu cầu trang
z Thực hiện thay thế trang – swap out một số z Tỷ lệ page-fault là p: 0 ≤ p ≤ 1.0
trang đang ở trong bộ nhớ nhưng hiện tại z nếu p = 0: Không có page-fault
không được sử dụng z nếu p = 1, mọi yêu cầu truy cập đến trang đều
z Thuật toán nào tốt? gây ra page-fault
z Hiệu năng: Cần một thuật toán có ít page-fault nhất z Effective Access Time (EAT)
để hạn chế vào/ra
EAT = (1 – p) x memory access
z Nhiều trang có thể được đưa vào bộ nhớ tại + p (page fault overhead
cùng một thời điểm.
+ [swap page out ]
z Thuật toán thay thế trang: FIFO, Optimal,
LRU, LRU-approximation 11
+ swap page in 12
+ restart overhead)
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
21 22
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
1 4
2 6 page-fault
3
4 5
25 26
3 5 4
z Cài đặt sử dụng biến đếm 4 3
z Mỗi trang có một biến đếm; mỗi khi trang được truy
cập, gán giá trị đồng hồ thời gian cho biến đếm.
z Khi một cần phải thay thế trang, căn cứ vào giá trị
27 các biến đếm của trang: Cần tìm kiếm trong danh 28
29 30
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
31 32
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
39 40
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
45 46
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Giao diện
Nguyên lý hệ điều hành hệ thống tệp
Nguyễn Hải Châu Khái niệm tệp
Khoa Công nghệ thông tin Các phương pháp truy cập
Trường Đại học Công nghệ Cấu trúc thư mục
Nối hệ thống tệp
Dùng chung tệp
1 Bảo vệ 2
3 4
11
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Kiểu tệp, tên và phần mở rộng Các phương pháp truy cập
z Truy cập tuần tự
read next
write next
reset
no read after last write
(rewrite)
z Truy cập trực tiếp
read n
write n
position to n
read next
write next
rewrite n
9 n = relative block number 10
Tệp truy cập tuần tự Mô phỏng truy cập tuần tự và trực tiếp
11 12
22
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
z Thư mục và
tệp đều nằm Thư mục
trên đĩa
z Backup của
thư mục và F1 F2 F4
F3
đĩa có thể nằm Fn
trên băng từ
13 14
Tệp
Các toán tử trên thư mục Cần tổ chức thư mục để đạt được:
z Tìm một tệp z Tính hiệu quả: tìm thấy một tệp nhanh chóng
z Tạo một tệp z Tên tệp mang lại sự tiện lợi cho người dùng
z Xóa một tệp z Hai NSD có thể đặt cùng tên cho hai tệp khác nhau
z Liệt kê nội dung thư mục z Một tệp có thể có nhiều tên khác nhau
z Đổi tên một tệp z Nhóm tệp: Các tệp có thể được nhóm lại dựa
trên thuộc tính (ví dụ nhóm các tệp chương
z Duyệt toàn bộ hệ thống tệp
trình nguồn Java, nhóm các tệp thực hiện
được...)
17 18
33
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Thư mục cấu trúc cây Thư mục cấu trúc cây (tiếp)
z Tìm kiếm hiệu quả
21 22
44
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Thư mục đồ thị tổng quát (tiếp) Kết nối (mount) hệ thống tệp
z Làm cách nào để đảm bảo không có chu z Một hệ thống tệp phải được mount trước khi
trình? có thể truy cập tới (sử dụng)
z Chỉ có phép link tới tệp, không cho link đến thư z Một tệp được mount tại điểm kết nối (mount
mục
point)
z “Dọn dẹp” hệ thống tệp (garbage collection)
z Mỗi khi có link mới, thực hiện thuật toán phát hiện
chu trình
27 28
29 30
55
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
31 32
66
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
77
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
5 6
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bảng vector ngắt của BXL Intel Truy cập bộ nhớ trực tiếp
z Thuật ngữ: Direct memory access (DMA)
z Được sử dụng để tránh lập trình vào/ra với
dung lượng dữ liệu lớn
9 10
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Cấu trúc vào ra của nhân Đặc tính các thiết bị vào/ra
13 14
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
23 24
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Cấu trúc dữ liệu của nhân Cấu trúc vào/ra trong nhân UNIX
z Nhân giữ các thông tin trạng thái cho các thành
phần của hệ vào/ra, bao gồm bảng các mở tệp, kết
nối mạng, trạng thái các thiết bị character
z Nhiều cấu trúc dữ liệu phức tạp để lưu vết các vùng
đệm, cấp phát bộ nhớ, các khối nhớ rỗi...
25 26
Chuyển đổi yêu cầu vào/ra Thực hiện một yêu cầu vào/ra
thành thao tác phần cứng
z Giả sử một tiến trình đọc tệp từ đĩa cứng.
Các bước thực hiện như sau:
z Xác định thiết bị chứa tệp
z Biến đổi tên tệp thành dạng biểu diễn của tệp trên
thiết bị
z Đọc dữ liệu (vật lý) từ đĩa vào vùng đệm
z Cho phép tiến trình được đọc dữ liệu từ vùng
đệm
z Trả lại điều khiển cho tiến trình
27 28
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
31 32
35
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
FCFS (First come first serve) SSTF: Shortest seek time first
Tổng số bước di chuyển của đầu đọc là: 640 cylinder.
z Yêu cầu có seek time nhỏ nhất tính từ vị trí
hiện tại của đầu đọc
z Lập lịch SSTF là một dạng của lập lịch SJF
có thể gây ra một số yêu cầu không bao giờ
được phục vụ (starvation)
z Ví dụ minh họa: Tổng số bước di chuyển của
đầu đọc là 236 cylinder.
Ví dụ SSTF SCAN
z Đầu đọc của đĩa di chuyển từ một phía (ví dụ
bên ngoài hoặc bên trong đĩa) sang phía kia
để phục vụ các yêu cầu đọc, sau đó di
chuyển ngược lại... quá trình này lặp đi lặp lại
z Phương thức hoạt động tương tự thang máy
nên thuật toán này còn được gọi là thuật toán
thang máy (elevator algorithm)
z Ví dụ minh họa: Đầu đọc phải dịch chuyển
208 cylinder.
Ví dụ SCAN C-SCAN
z Đầu đọc chuyển từ một phía (trong/ngoài)
sang phía kia và phục vụ các yêu cầu. Khi
sang đến phía kia, đầu đọc quay trở lại
nhưng trong khi quay trở lại không phục vụ
yêu cầu nào.
z C-SCAN xem các cylinders như một danh
sách vòng
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Ví dụ C-SCAN C-LOOK
z Là một trường hợp của C-SCAN
z C-SCAN: Đầu đọc chuyển giữa cylinder 0 và
n (cynlinder cuối)
z C-LOOK: Đầu đọc chuyển giữa cmin và cmax
trong đó cmin là cynlinder có số thứ tự nhỏ
nhất trong số các yêu cầu; cmax là cynlinder
có số thứ tự nhỏ nhất trong số các yêu cầu
z C-LOOK giảm quãng đường di chuyển của
đầu đọc so với C-SCAN
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
z Có 6 mức RAID.
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Giá 1MB DRAM từ 1981 đến 2000 Giá 1MB đĩa cứng từ 1981 đến 2000
7
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
8
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Bảo vệ
HĐH gồm một tập các đối tượng, đối tượng:
Bảo vệ z
phần cứng hoặc phần mềm
z Mỗi đối tượng có một tên duy nhất và có thể
Mục đích bảo vệ truy cập đến thông qua một số toán tử (hàm
Các miền bảo vệ hệ thống)
Ma trận truy cập z Bảo vệ: Đảm bảo mỗi đối tượng được truy
Cài đặt ma trận truy cập cập đúng cách và chỉ bởi các tiến trình được
phép
Hủy bỏ quyền truy cập
1
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Ma trận truy cập với các miền Ma trận truy cập với quyền
được xem như các đối tượng truy cập Copy
2
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
3
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
4
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
Kiểm soát
z Cần kiểm soát: z Các tệp dữ liệu hệ thống được bảo vệ không
z Mật khẩu ngắn và dễ đoán (ví dụ abc123) đúng cách
z Các chương trình có setuid và chưa được xác thực z Các phần tử “nguy hiểm” trong PATH (ví dụ
Trojan horse)
z Các chương trình chưa được xác thực trong các
thư mục hệ thống z Kiểm tra các chương trình hệ thống có bị thay đổi
hay không thông qua checksum, MD5...
z Các tiến trình thực hiện quá lâu
z Các thư mục được bảo vệ không đúng cách
5
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
6
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com