Tải bản đầy đủ (.doc) (34 trang)

Tai lieu on cuoi ki HDH

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 (942.08 KB, 34 trang )

20/12/2010

Ôn thi cuối kì hệ điều hành

Vấn đề 1.

b7@2e

Quản lý process

I. Mô hình process:
a. Khái niệm process:

− Process là chương trình được thực thi:
 Được nạp vào bộ nhớ: mã chương trình, mã lệnh…….
 Có các thông tin trạng thái: thanh ghi PC, các thanh ghi,…
− Mỗi process thực thi trên một CPU ảo
− Hệ thống có nhiều process đồng thời:
 Đa chương - 1 CPU.
 Đa xử lý - nhiều CPU trên 1 máy.
 Phân bố - nhiều CPU trên nhiều máy.

b. Tổ chức thứ bậc các process:

− Tạo process mới : hệ điều hành thực hiện
 Tạo cấu trúc thông tin quản lý
 Cập nhật vùng nhớ, nạp chương trình
− Tình huống tạo process:
 Hệ điều hành tạo process mới.
 User yêu cầu tạo process mới.
 Process tạo process mới.


− Kết thúc process:
 Chủ động:

Kết thúc bình thường

Kết thúc có lỗi sai
 Bị động:

Bị kết thúc bởi yêu cầu của process khác

Kết thúc do lỗi nghiêm trọng (kết thúc bởi hệ điều hành)
 Thu hồi tài nguyên
− Quan hệ thứ bậc
 Parent-child (cha-con)

Process tạo: Parent process.

Process được tạo: Child process.
 Hiện thực:

UNIX : process group: khi cha bị hủy, con bị hủy theo

Windows: không có tổ chức thứ bậc, các process ngang hàng.

c. Các trạng thái của process:
1. Mô hình đơn giản:

Page 1 of 34



Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

2. Mô hình 3 trạng thái:
− Thực thi – Running:
 Đang thực thi (đang sử dụng CPU).
 Chỉ có 1 running process tại 1 thời điểm trên hệ thống đa chương.
− Sẵn sàng – Ready:

Sẵn sàng thực thi, tạm dừng chờ CPU.

Có nhiều ready process.

Được quản lý bằng ready queue.
− Bị chặn – Blocked:
 Không thể thực thi cho đến khi có biến cố xảy ra.
 Có nhiều blocked process.
 Được quản lý bằng blocked queue
2. Chuyển trạng thái:
− Running -> Blocked(1): chờ biến cố
− Running -> Ready (2): hết thời gian
− Ready - > Running (3): được thực thi
− Blocked -> Ready (4): biến cố xảy ra
Thời điểm chuyển trạng thái:
 Ngắt quãng thời gian – Clock Interrupt.
 Dùng để kiểm soát thời gian.
 Ngắt quãng thiết bị - I/O Interrupt.

 Liên quan đến thiết bị I/O.
 Lệnh gọi hệ thống, lỗi – System call, trap.
 Khi gọi system calls, hay khi có lỗi.
 Lỗi truy suất bộ nhớ (Memory Fault)
 System Call, trap
Bộ điều phối:(scheduler)

Page 2 of 34


Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

3. Mô hình 5 trạng thái:

− New: khối thông tin quản lý process đã được tạo. Process chưa được nạp vào bộ nhớ chính.
− Exit: process đã kết thúc, khối thông tin process vẫn được lưu trữ  cho phép rút trích.
− Chuyển trạng thái:
 NULL -> new
 New -> Ready : Khi số process nạp chưa vượt quá giới hạn.
 Running -> Exit : Process kết thúc xảy ra tương ứng với các tình huống chủ động.
4. Trạng thái trì hoãn (Suspend):
− Tiến trình không thực thi được chuyển tạm ra bộ nhớ ngoài -> đình hoãn.
− Dành bộ nhớ để nạp các tiến trình thực thi khác.
− Mô hình 1 trạng thái đình hoãn:

− Mô hình 2 trạng thái đình hoãn:






Blocked -> Blocked / Suspend.
 Không còn process sẵn sang.
 Còn Process sẵn sang nhưng cần thêm bộ nhớ.
Blocked/ Suspend -> Ready/Suspend
Ready/Suspend -> Ready
Page 3 of 34


Ôn thi cuối kì hệ điều hành




20/12/2010

b7@2e

 Không còn process ở trạng thái sẵn sàng
 Process ở trạng thái sẵn sàng/ đình hoãn có độ ưu tiên cao.
Ready -> Ready/Suspend
 Cần thêm bộ nhớ và process ở trạng thái sẵn sang có độ ưu tiên thấp hơn các process bị chặn.
Blocked/Suspend -> Blocked
 Kích thước bộ nhớ cho phép.
 Process ở trạng thái bị chặn/đình hoãn có độ ưu tiên cao hơn các process ở trạng thái sẵn
sang/đình hoãn.


II. Hiện thực process:

− Hệ điều hành tổ chức và quản lý các bảng:
 Bảng process – Process Tables
 Bảng bộ nhớ - Memory Tables
 Bảng File – File Tables
 Bảng xuất nhập – I/O Tables
 Memory table:
 Thông tin cấp phát bộ nhớ cho process
 Bộ nhớ chính
 Bộ nhớ phụ
 Các thuộc tính bảo vệ vùng nhớ dung chung
 Thông tin cần cho việc quản lý bộ nhớ ảo
 I/O table:
 Thông tin sử dụng thiết bị I/O
 Thiết bị khả dụng
 Thiết bị đã cấp phát
 Trạng thái hoạt động I/O
 Vị trí vùng nhớ chuyển dữ liệu
 File Table:
 Vị trí lưu trữ
 Trạng thái hiện hành
 Thuộc tính
 Hầu hết các thông tin được quản lý bởi hệ thống quản lý file.
− Cấu trúc các bảng phụ thuộc hệ điều hành
− Process trên bộ nhớ -> ảnh process (process image)
− Thông tin quản lý process:
 Danh hiệu (ID) cho phép xác định 1 process
 Trạng thái bộ xử lý:

+ Thanh ghi PC, thanh ghi flag
+ Các thanh ghi
 Thông tin điều khiển
+ Trạng thái process
+ Tài nguyên sử dụng (bộ nhớ, file, I/O)
+ Quyền truy xuất
+ Độ ưu tiên
+…
 PCB : Process Control Block
− Khối thông tin quản lý process
Page 4 of 34


Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

 Được tạo và quản lý bởi hệ điều hành
 Được tạo vào thời điểm tạo process
− Chứa các thông tin cần thiết để quản lý process
 Process ID
 Thông tin trạng thái CPU
 Thông tin điều khiển Process.
 Chuyển đổi ngữ cảnh: 2 công đoạn
 Công đoạn 1:
+ Lưu ngữ cảnh processor (nội dung các thanh ghi)
+ Cập nhật PCB của process đang thực thi
+ Đưa PCB vào hàng đợi thích hợp – sẵn sàng, bị chặn.

 Công đoạn 2:
+ Chọn process khác để thực thi
+ Cập nhật PCB của process được chọn
+ Cập nhật cấu trúc quản lý bộ nhớ
+ Khôi phục ngữ cảnh của process được chọn

III. Truyền thông giữa các process
a. Tương tác giữa các process

− Nhiều tiến trình thực hiện đồng thời
− Ba dạng tương tác giữa các tiến trình
 Các process độc lập
 Các process biết nhau gián tiếp (thông qua tài nguyên dùng chung)
 Các process biết nhau trực tiếp (các process thuộc về 1 phần mềm)
− Các process dùng chung tài nguyên. Việc dùng chung tài nguyên có thể dẫn đến tranh chấp

b. Tranh chấp tài nguyên

− Điều kiện dẫn đến tranh chấp:
 Hai hoặc nhiều process cùng truy suất tài nguyên dùng chung .
 Thứ tự truy xuất ảnh hưởng đến kết quả thực hiện của các process (truy xuất có cập nhật, sửa đổi)
− Khái niệm:
 Tài nguyên tranh chấp: tài nguyên dùng chung, thứ tự truy xuất khác nhau sẽ có kết quả khác
nhau
 Vùng tranh chấp: đoạn mã chương trình có dùng chung tài nguyên tranh chấp ( Phần chương trình
truy xuất tài nguyên tranh chấp).

b. Loại trừ tương hỗ (giải pháp giải quyết tranh chấp tài nguyên)
 Khái niệm:


− Giải pháp giải quyết triệt để vấn đề tranh chấp tài nguyên giữa các process:
− Khi có một process vào vùng tranh chấp thì tất cả các process khác phải ở ngoài vùng tranh chấp.

 Các vấn đề nảy sinh:
− Deadlock
− Starvation

 Các yêu cầu:
(1)
(2)
(3)
(4)

Tại một thời điểm chỉ có tối đa một process đang ở trong vùng tranh chấp.( Điều kiện tiên quyết).
Không có giả sử gì về tốc độ và số lượng CPU
Không có process nào ở ngoài vùng tranh chấp có thể ảnh hưởng đến process khác.
Không có process nào chờ vô hạn định.
Page 5 of 34


20/12/2010

Ôn thi cuối kì hệ điều hành

b7@2e

 Áp dụng:

− Nguyên tắc chung:
• Đi vào vùng tranh chấp. (enter_region())

 Kiểm tra điều kiện “được vào”
+ Thỏa: báo hiệu đã vào
+ Không thỏa: chờ
• Ra khỏi vùng tranh chấp (leave_region())
 Báo hiệu: “đã ra”
− Cấu trúc 1 process:
while(TRUE){
enter_region();
critical_region();
leave_region();
noncritical_region();
}

//kiểm tra điều kiện
//vùng tranh chấp
//thông báo trạng thái
//vùng không tranh chấp

 Cơ chế chờ:
Có 2 dạng chờ:
− Busy-Waiting
 Chờ bằng vòng lặp
 Lặp vòng kiểm tra điều kiện “được vào”.
 Dùng trong các giải pháp loại trừ tương hỗ.
 Bằng phần mềm
 Phần cứng hỗ trợ
− Sleep-Wakeup
 Chờ bằng trạng thái Blocked:
 Process chờ vào vùng tranh chấp -> chuyển sang trạng thía Blocked (sleep).
 Process ra khỏi vùng tranh chấp báo hiệu -> đánh thức process chờ.

 Giải pháp loại trừ tương hỗ có sự hỗ trợ của hệ điều hành

 Giải pháp:
 Phần mềm giải quyết loại trừ tương hỗ:


Giải thuật đơn giản:

P0
flag=0;
while(TRUE){
while(flag==0) flag=1; //vào
critical_region();
flag=0;
//ra
noncritical_region();
}




Giải




(chưa giải quyết được)
thuật luân phiên nghiêm ngặt: (Strict Alternation)
Giải quyết trường hợp 2 process (P0 và P1) và một tài nguyên
Hai process dùng một biến turn để xác định đến phiên process nào vào vùng tranh chấp

Khởi động turn = 0
P0

P1
Page 6 of 34


Ôn thi cuối kì hệ điều hành
20/12/2010
while(TRUE){
while(TRUE){
while(turn!=0);
while(turn!=1);
critical_region();
critical_region();
turn=1;
turn=0;
noncritical_region();
noncritical_region();
}
}

b7@2e






Xét hoạt động P0 (tương tự cho P1)

Hoạt động P0:
P0 kiểm tra biến turn:
P0 vào vùng tranh chấp nếu turn = 0
P0 chờ khi turn = 1
P0 gán turn = 1 khi rời vùng tranh chấp
 Hoạt động P0 với P1:
Giả sử P0 đến vòng while:
P1 ở ngoài vùng tranh chấp  turn = 0;  P0 vào vùng tranh chấp
P1 ở trong vùng tranh chấp  turn = 1;  P0 chờ
P1 cũng đến vòng while: do biến turn dùng chung nên chỉ có 1 process được vào vùng
tranh chấp, process kia chờ tại vòng while.
 Đánh giá giải thuật luân phiên nghiêm ngặt
 Đạt yêu cầu (1) và yêu cầu (4).
 Giả sử P0 vào vùng tranh chấp 100 lần/đơn_vị_thời_gian , P1 vào vùng tranh chấp 1
lần/đơn_vị_thời_gian: do luân phiên nghiêm ngặt nên P0 chỉ được vào vùng tranh chấp
1 lần/đơn_vị_thời_gian  không thỏa yêu cầu (2).
 Giả sử P1 có lỗi ngoài vùng tranh chấp: P0 dừng mãi mãi tại vòng while  không thỏa
yêu cầu (3).
Giải thuật Peterson:
 Xét trường hợp 2 process (P0 và P1) và một tài nguyên
 Hai process dùng chung:
 Biến turn: xác định đến phiên process nào vào vùng tranh chấp.
 Mảng boolean interested[2]: thể hiện process sẵn sàng vào vùng tranh chấp.
 Interested[0] : P0 sẵn sàng vào vùng tranh chấp.
 khởi động interested[0] = interested[1]=FALSE

#define FALSE 0
#define TRUE 1
#define N
2


//số process

int turn;
//đến phiên process nào
int interested[N];
//process sẵn sàng
void enter_region(int process)
{
int other;
//process còn lại
other = 1 - process;
interested[process] = TRUE;
//thể hiện process sẵn sàng
turn = process;
//đặt phiên
while (turn == process && interested[other] == TRUE);
}
void leave_region(int process)
{
interested[process] = FALSE;
//rời vùng tranh chấp
}

Page 7 of 34


20/12/2010

Ôn thi cuối kì hệ điều hành


b7@2e

 Phần cứng hỗ trợ giải quyết loại trừ tương hỗ:

TSL (Test Set Lock):
Đọc giá trị một từ nhớ vào một thanh ghi sau đó ghi giá trị khác 0 (thường là 1) vào từ nhớ.
Thao tác đọc và ghi nêu trên là trong cùng một lệnh – Thao tác đơn vị (atomic, primitive)
 Ứng dụng lệnh TSL trong loại trừ tương hỗ:
Giải quyết trường hợp n process.
n process dùng chung 1 biến flag, khợi động flag = 0.
enter_region:
TSL REGISTER,FLAG;|đưa FLAG vào thanh ghi và ghi giá trị 1 vào FLAG
CMP REGISTER,0;
|so sánh FLAG với 0
JNE ENTER_REGION; |khi FLAG!=0 thì tức là đã có process vào  lặp
RET;
|nếu FLAG==0  trở về hàm gọi (vào vùng tranh chấp)
leave_region:
MOVE FLAG,0;
RET;

|gán giá trị 0 vào FLAG
|trở về hàm gọi (vào vùng không tranh chấp)


CPMXCHG (IA32) – Compare and Exchange
Cú pháp: CMPXCHG DEST, SRC
Hoạt động: CMP accumulator(AL/AX/EAX) với toán hạng đích.Nếu bằng nhau thì toán hạng nguồn
sẽ được copy sang toán hạng đích. Còn không thì toán hạng đích sẽ được copy sang accumulator

IF accumulator = DEST
THEN
ZF  1
DEST  SRC
ELSE
ZF  0
accumulator  DEST
FI


SWAP:
Định nghĩa:
void Swap(boolean &a, boolean &b){
boolean temp = a;
a = b;
b = temp;
}

Swap thao tác trên nội dung của 2 từ; như chỉ thị TSL, nó được thực thi theo tính nguyên tử.
Hoạt động loại trừ tương hỗ: 1 biến luận lý toàn cục lock được khai báo và được khởi tạo là false.
Ngoài ra, mỗi quá trình cũng có 1 biến luận lý cục bộ key. Cấu trúc của quá trình Pi được hiển thị như
sau:
do{

}

key = true;
while (key == true) Swap(lock, key);
critical_region();
lock = false;

noncritical_region();

Page 8 of 34


20/12/2010

Ôn thi cuối kì hệ điều hành

b7@2e

 Hệ điều hành hỗ trợ (Semaphores)
a/ Khái niệm:
Semaphore là kỹ thuật do hệ điều hành hỗ trợ:

Xử lý loại trừ tương hỗ.

Đồng bộ giữa các process.
Dùng để báo hiệu (signaling).
Khi process chờ báo hiệu thì vào trong trạng thái blocked, không chờ bằng vòng lặp.
b/ Cấu trúc dữ liệu:
struct semaphore{
int count;
queueType queue;
}

c/ Tác vụ:
Ba tác vụ đơn vị:

Khởi động giá trị - init() ; (Semaphore nhận giá trị không âm.)


Giảm giá trị - down() / wait() / P() ; (Giảm giá trị semaphore 1 đơn vị.
Nếu semaphore âm thì process gọi thao tác down() sẽ bị blocked, và vào hàng đợi semaphore.)

Tăng giá trị - up() / signal() / V(); (Tăng giá trị semaphore 1 đơn vị.
Nếu semaphore không dương thì có 1 process trong hàng đợi semaphore được chuyển sang trạng thái
ready. )
void down(semaphore s){
s.count--;
if(s.count < 0){
đưa process vào s.queue;
block process;
}
}
void up(semaphores){
s.count++;
if(s.count <= 0){
lấy 1 process P ra khỏi s.queue;
đưa process P vào read queue;
}
}

d/ Áp dụng semaphores xử lý loại trừ tương hỗ:
Giải quyết trường hợp n process bằng cách dùng chung một semaphore s, khởi động s = 0.
while(TRUE) {
down(s);
//kiểm tra điều kiện
critical_region();
// vùng tranh chấp
up(s);

//thông báo trạng thái
noncritcal_region();
//vùng không tranh chấp
}
e/ Phân loại semaphores
• Couting semaphore (dạng đếm)còn gọi là general semaphore
• Binary Semaphore (dạng nhị phân), trị semaphore thuộc {0,1}
f/ Mutex
• Dạng hiện thực đơn giản của binary semaphore.
• Cấu trúc dữ liệu:
struct mutex
{
enum {zero, one} value;

Page 9 of 34


20/12/2010

Ôn thi cuối kì hệ điều hành

b7@2e

queueType queue;
}



Tác vụ:


void mutex_lock(mutex m)
{
if (m.value == 1)
m.value = 0
else
{
đưa process vào s.queue;
block process;
}
}
void mutex_unlock(mutex m)
{
if (m.queue.is_empty())
m.value = 1;
else
{
Lấy 1 process P ra khỏi s.queue;
Đưa process P vào read queue;
}
}



Áp dụng xử lý loại trừ tương hỗ
Các process sử dụng chung 1 biến mutex

while (TRUE)
{
mutex_lock(m);
critical_region();

mutex_unlock(m);
noncritcal_region();
}

//
//
//
//

kiểm tra điều kiện
vùng tranh chấp
thông báo trạng thái
vùng không tranh chấp

g/ Monitors
Module phần mềm có chức năng tương tự semaphore
Tính chất:
• Dữ liệu cục bộ chỉ có thể truy xuất được bởi các procedure của monitor.
• Process vào monitors bằng cách gọi procedure của monitor.
• Tại một thời điểm chỉ có tối đa một process đang vận hành trong monitors.

 Vấn đề đồng bộ


Bài toán Producer/Consumer
Nhận xét:
• Tổ chức buffer có dạng xoay vòng (circular buffer)
• Producer nhanh hơn: mất dữ liệu
• Consumer nhanh hơn: trùng dữ liệu
Giải quyết:

#define N 100
typedef int semaphore;
semaphore mutex = 1;

/* kích thước buffer */
/* kiểu semaphore */
/* mutex loại trừ tương hỗ */

Page 10 of 34


20/12/2010

Ôn thi cuối kì hệ điều hành
semaphore empty = N;
semaphore full = 0;

/* số phần tử trống */
/* số phần tử có dữ liệu */

void producer(void)
{
int item;

/* phần tử dữ liệu */

while (TRUE){
produce_item(&item);
down(&empty);
down(&mutex);

enter_item(item);
up(&mutex);
up(&full);
}

/*
/*
/*
/*
/*
/*

b7@2e

tạo dữ liệu */
giảm số phần tử trống */
vào vùng tranh chấp */
ghi dữ liệu */
rời vùng tranh chấp */
tăng số phần tử có dữ liệu */

}
void consumer(void)
{
int item;
while (TRUE){
down(&full);
down(&mutex);
remove_item(&item);
up(&mutex);

up(&empty);
consume_item(item);
}

/* giảm số phần tử có dữ liệu */
/* vào vùng tranh chấp */
/* loại bỏ dữ liệu */
/* rời vùng tranh chấp */
/* tăng số phần tử trống */
/* dùng item */

}










Bài toán Dining Philosophers
Có 5 triết gia ngồi quanh 1 bàn tròn.
Mỗi triết gia có 1 đĩa thức ăn, khi ăn cần 2 nĩa.
Hoạt động của triết gia: luân phiên giữa suy nghĩ và ăn
Khi triết gia đói: cần nĩa trái và nĩa phải đồng thời, nếu có 2 nĩa thì ăn.
Sau khi ăn thì trả 2 nĩa và típ tục suy nghĩ.
Nếu 5 triết gia đồng thời cầm nĩa trái, chờ nĩa phài : deadlock.
Nếu 5 triết gia đồng thời trả nĩa trái, suy nghĩ, đồng thời cầm nĩa phải: Starvation


#define N
5
#define LEFT
(i+N-1)%N
#define RIGHT
(i+1)%N
#define THINKING 0
#define HUNGRY
1
#define EATING
2
typedef int semaphore;
int state[N];
semaphore mutex = 1;
semaphore s[N];

//
//
//
//
//
//
//
//
//
//

tổng số triết gia
số thứ tự của triết gia bên trái

số thứ tự của triết gia bên phải
đang suy nghĩ
triết gia đói
đang ăn
semaphore
mảng chứa tình trạng của mỗi triết gia
khai báo mutex
mảng semaphore của mỗi triết gia

void philosopher(int i)
{
while (TRUE)
{
think();

// i: số thứ tự của triết gia từ 0 đến 4

Page 11 of 34


20/12/2010

Ôn thi cuối kì hệ điều hành
take_forks(i);
eat();
put_forks(i);
}

b7@2e


// lấy nĩa
// trả nĩa

}

void take_forks(int i)
{
down(&mutex);
state[i] = HUNGRY;
test(i);
up(&mutex);
down(&s[i]);
}
void put_forks(int i)
{
down(&mutex);
state[i] = THINKING;
test(LEFT);
test(RIGHT);
up(&mutex);
}

//
//
//
//
//

vào vùng tranh chấp
triết gia trong tình trạng đói

thử lấy 2 nĩa
rời vùng tranh chấp
block nếu ko đủ 2 nĩa

//
//
//
//
//

vào vùng tranh chấp
triết gia đã ngừng ăn
xem coi triết gia bên trái có ăn dc chưa
xem coi triết gia bên phải có ăn dc chưa
rời vùng tranh chấp

void test(i)
{
if (state[i] == HUNGRY && state[LEFT] != EATING && state[RIGHT] !=
EATING) {
state[i] = EATING;
up(&s[i]);
}
}


Bài toán Reader and Writer
 Reader: đọc dữ liệu từ nguồn.
 Writer: ghi dữ liệu vào nguồn
 Nhiều reader có thể cùng đọc dữ liệu. Tại 1 thời điểm reader và writer ko thể cùng thao tác trên

nguồn dữ liệu. Tại 1 thời điểm chỉ có 1 writer ghi dữ liệu.
typedef int semaphore;
semaphore mutex = 1;
semaphore db = 1;
int rc = 0;
void reader(void)
{
while (TRUE){
down(&mutex);
rc = rc + 1;
if (rc == 1) down(&db);
up(&mutex);
read_data_base();
down(&mutex);
rc = rc -1;
if (rc == 0) up(&db);
up(&mutex);
use_data_read();
}
}

// semaphore cho nguồn dữ liệu

//
//
//
//
//
//
//

//

thêm 1 reader
nếu là reader đầu tiên thì down
rời vùng tranh chấp
đọc dữ liệu
vào vùng tranh chấp
giảm 1 reader
nếu đây là reader cuối cùng
báo rời vùng tranh chấp

Page 12 of 34


Ôn thi cuối kì hệ điều hành
void writer(void)
{
while (TRUE){
think_up_data();
down(&db);
write_data_base();
up(&db);
}
}








20/12/2010

b7@2e

// vào nguồn dữ liệu
// ghi dữ liệu
//
rời nguồn dữ liệu

Bài toán Baber shop
Một cửa hiệu cắt tóc có một thợ, một ghế cắt tóc và N ghế cho khách đợi.
Nếu không có khách hàng, anh thợ cắt tóc sẽ ngồi vào ghế cắt tóc và ngủ thiếp đi.
Khi một khách hàng vào tiệm, anh ta phải đánh thức người thợ.
Nếu một khách hàng vào tiệm khi người thợ đang bận cắt tóc cho khách hàng khác, người mới
vào sẽ phải ngồi chờ nếu có ghế đợi trống, hoặc rời khỏi tiệm nếu đã có N người đợi.

#define CHAIR 5
typedef int semaphore;
semaphore custom=0;
semaphore baber=0;
semaphore mutex=1;
int waiting=0;
void baber(){
while(TRUE)
{
down customer(&customer);
down(&mutex);
waiting=-1;
up(&baber);

up(&mutex);
cut_hair();
}
}
void customer(){
while(TRUE)
{
down(&mutex);
if (waiting{
waiting+=1;
up(&customer);
up(&mutex);
down(&baber);
get-haircut();
}
else
up(&mutex);
}
}

IV. Điều phối
a/ Khái niệm:
Page 13 of 34


Ôn thi cuối kì hệ điều hành

20/12/2010


b7@2e

− Điều phối (scheduling):
 Xác định thời điểm và chọn process được thực thi
 Do bộ điều phối(scheduler) thực hiện
− Các dạng điều phối trên hệ thống đa chương (3 phân cấp điều phối):
 Thời gian dài:
 Xác định chương trình đưa vào hệ thống để thực thi
 Liên quan việc tạo process mới; kiểm soát bậc MultiPrograming
 Thời gian trung bình:
 Quyết định chuyển process sang trạng thái đình hoãn và ngừng lại.
 Liên quan việc đưa process vào và ra bộ nhớ.
 Thời gia ngắn:
 Chọn ready process để cho thực thi.
 Được gọi khi có các sự kiện:
+ Clock Interrupt
+ I/O interrupt
+ Operaing system call
+ Signal
− Các chiến lược điều phối:
⇒ Non-preemptive:
 Không dừng process đang thực thi.
 Một process đang thực thi sẽ thực thi cho đến khi kết thúc hoặc bị chặn
do chờ đợi I/O.
 Không phù hợp với hệ thống có tương tác
⇒ Preemptive:
 Process đang thực thi có thể bị tạm ngưng và chuyển sang trạng thái sẵn
sang.
 Ngăn cản các process độc chiếm CPU
 Phù hợp với hệ thống có tương tác.

− Bộ điều phối:
 Thành phần hệ điều hành.
 Thực hiện chức năng điều phối.
− Cơ chế chính sách điều phối:
 Tình huống:
Process có nhiều thread / process con.
Process biết mức độ quan trọng của các thread/process con.
 Cơ chế:
Kernel thực hiện giải thuật điều phối có thông số.
Cơ chế của Kernel cho phép qui định chính sách điều phối thông qua các thông số.
 Chính sách điều phối:
User process cung cấp thông số cho giải thuật điều phối.
Qui định chính sách điều phối.
− Tiêu chuẩn:
 Mọi hệ thống :
Cân bằng phải
Công bằng
 Hệ thống xử lí theo nhóm
Thông lượng cao
Thời gian thực hiện ngắn
Page 14 of 34


20/12/2010

Ôn thi cuối kì hệ điều hành

b7@2e

Hiệu quả sử dụng CPU cao

Hệ thống tương tác:
Thời gian đáp ứng ngắn
Thời gian đáp ứng phù hợp với tiêu chuẩn công việc.
b/ Mục tiêu điều phối:
− Thời gian đáp ứng
− Thông lượng
− Sử dụng CPU hiệu quả.
c/ Các phương pháp điều phối:
(1) Độ ưu tiên (Priorities).
(2) First – In – First – Out (FIFO).
(3) Round Robin (RR).
(4) Shortest Job First (SJF)
(5) Shortest Remaining Time (SRT).
(6) Multi-level Feedback Queues (MFQ).
Bài tập xem phần ôn giữa kì: OS.OnGiuaKi.doc
-------------------------------------------------------------------------------------------------------------------

Vấn đề 2.

Quản lý bộ nhớ

I. Quản lý bộ nhớ ảo:
1.

Khái niệm bộ nhớ ảo
− Bộ nhớ ảo (virtual memory) là kỹ thuật do hệ điều hành thực hiên với hỗ trợ của phần cứng.
 Phân biệt địa chỉ luận lý (địa chỉ ảo ) và địa chỉ vật lý.
− Chương trình được viết trên không gian địa chỉ ảo, là thông số của CPU và hệ điều hành.

CPU IA 32: 246bytes, Windows: 232bytes.


Khi thực thi, hệ điều hành nạp chương trình vào bộ nhớ, chuyển đổi địa
chỉ ảo thành địa chỉ vật lý, thực thi trên bộ nhớ vật lý.
2.
Đặc điểm
 Không gian địa chỉ ảo lớn hơn rất nhiều so với không gian địa chỉ vật lý.
 Chương trình có thể lớn hơn bộ nhớ.
 Phù hợp với hệ thống đa chương.
 Nạp từng phần chương trình
 Phần thực thi được nạp vào bộ nhớ
 Phần còn lại đặt trên đĩa.
 Cho phép dùng chung không gian địa chỉ giữa các process.
 Hỗ trợ liên kết động.
3.
Phân loại
 Bộ nhớ ảo dạng phân trang (paging).
 Bộ nhớ ảo dạng phân đoạn (segmentation).
 Bộ nhớ ảo dạng phân đoạn có phân trang (paged segmentation/ segmentation with paging).
4.
Bộ nhớ ảo dạng phân trang:
a/ Tổ chức phân trang:
− Không gian địa chỉ ảo chia thành các trang (page).
 Kích thước vài KB, vài MB.
− Không gian địa chỉ vật lý bao gồm các khung trang (page frame/ frame).
 Kích thước khung trang = kích thước trang.
 Chứa các trang.
Page 15 of 34


Ôn thi cuối kì hệ điều hành


20/12/2010

b7@2e

 Các trang của một process không cần ở trên các khung trang liên tục.
− Có bảng trang (page table) quản lý các trang.
 Mỗi process có một bảng trang.
b/ Bảng trang:
− Có N dòng, với N là số trang -> mỗi dòng tương ứng với 1 trang.
− Cấu trúc phần tử bảng trang:



Control bits: các bit điều khiển, phục vụ việc thay thế trang hiệu quả
 Bit R (referenced): R = 1 nếu trang đang có được truy xuất trên bộ nhớ.
 Bit M (modified): M = 1 nếu trang có được ghi trên bộ nhớ.
 Valid bit/ Present bit:
 Valid =0 nếu trang chưa có trên bộ nhớ.
 Valid = 1 nếu trang đang có trên bộ nhớ.
 Frame number(Frame #).
Số thứ tự khung trang đang chứa trang.
c/ Chuyển đổi địa chỉ:
− Chương trình được viết trong không gian đĩa chỉ ảo (luận lý) và được nạp từng phần và thực
thi trong không gian địa chỉ thực (vật lý). Cần có chương trình chuyển đổi địa chỉ ảo sang địa chỉ
thực cho mỗi thao tác truy xuất bộ nhớ
− MMU: thành phần của CPU thực hiện việc chuyển đổi địa chỉ ảo sang địa chỉ vật lý
− Vai trò bảng trang: chứa thông tin cần thiết cho việc chuyển đổi địa chỉ
− Hoạt động:


Địa chỉ ảo theo phân trang.
 Page Number: số thứ tự trang.
 Offset /Displacement: địa chỉ trong trang.

Địa chỉ vật lý.
 Page number: số thứ tự khung trang.
 Offset /Displacement: địa chỉ trong khung trang.

Truy xuất theo địa chỉ ảo:
 Tách page # và offset từ địa chỉ ảo.
 Chuyển page # thành frame # bằng cách truy xuất bảng trang.
A. Tìm phần tử quản lý trang.
B. Kiểm tra Valid bit.
1. Valid = 1:
a. Thay page# bằng frame#.
b. Truy xuất dữ liệu trên khung với vị trí offset.
2. Valid = 0 :lỗi trang.
a. Tìm trang trên đĩa.
Page 16 of 34


Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

b. Tìm 1 khung trống (có thề phải thay thế trang nếu khung đấy).
c. Sao chép trang vào khung trống.
d. Cập nhật bảng trang (valid =1, frame# mới).

e. Thực hiện truy xuất như bước 1.
Sơ đồ + bài tập xem OS.OnGiuaKi.doc
d/ Phí tổn
− Phí tổn thao tác truy xuất tăng do phải tham khảo bảng trang, để tính toán chuyển đổi dữ liệu.
kích thước bảng trang lớn  hao tổn bộ nhớ
− Khắc phục: giảm kích thước bảng trang
 Bảng trang đa cấp:
− Tổ chức theo nhiều cấp  giảm phí tổn bộ nhớ
− Chỉ bảng trang đang sử dụng mới được nạp vào bộ nhớ  giảm phí tổn bộ nhớ
Sơ đồ
 Bảng trang dạng bảng băm
− Thường đúng với không gian địa chỉ > 32 bit
− Số phần tử bảng trang << số trang
+ Chỉ số phần tử bảng trang tương ứng với các giá trị hàm
− Tổ chức lưu trữ thông tin trang
+ hashvalue = hash(pageAddress) : tính giả trị hàm băm
+ pagetable[hashvalue].add(pageinfo) : truy xuất
Sơ đồ
 Bảng trang nghịch đảo
− Số phần tử bằng số khung trang
+ Kích thước nhỏ
+ Chỉ cần 1 bảng trên hệ thống
+ Vị trí trong bảng là frame number
− Mỗi phần tử bao gồm:
+ Số thứ tự trang tương ứng
+ Thông tin về process đang sở hữu trang
− Truy xuất theo cơ chế hash
+ Có chuỗi liên kết (chain) giải quyết trường hợp có nhiều trang cũng như số
thứ tự trên bộ nhớ
Sơ đồ

− Tăng tốc độ truy xuất
− TLB (Translation Look aside Buffer)
+ Thành phần của CPU.
+ Dạng associative memory (truy xuất theo nội dung)
+ Lưu trữ (cache) các phần tử bảng trang vừa truy xuất
− Khi chuyển đổi địa chỉ, tìm địa chỉ, tìm phần tử quản lý trang trên TLB trước,
nếu không có thì tìm trên bảng trang
Sơ đồ
e/ Thay thế trang
− Tình huống:
+ Xảy ra lỗi trang và không còn khung trang trống
+ Thay thế trang, chọn trang chuyển ra bộ nhớ ngoài để có chỗ nạp trang yêu cầu
+ Việc chuyển hoặc (chép) trang ra bộ nhớ ngoài chỉ thật sự thực hiện khi trang đả bị sửa đổi
Page 17 of 34


Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

− Thuật giải: Các phương pháp thay thế trang:
◘ Optimal:

Chọn trang sẽ không được truy xuất khoảng thời gian xa nhất.

Không thực hiện được.

Dùng để đánh giá các phương pháp khác.

◘ FIFO:
− Chọn trang nạp vào bộ nhớ đầu tiên.
− Dùng hàng đợi quản lý thứ tự trang:

Khi nạp trang: đưa vào cuối hàng đợi.

Khi thay thế: chọn trang tại đầu hàng đợi.
◘ LRU (Least Recently Used):

Chọn trang đã không được thực hiện trong khoảng thời gian lớn nhất.

Hiện thực:

Dùng hàng đợi: khi có truy xuất trang thì đưa trang về cuối hàng đợi.

Dùng thêm một biến counter, lưu thời điểm truy xuất. Khi thay thế chọn trang có
counter nhỏ nhất.
◘ Second chance:

Cải tiến FIFO.

Khi cần thay thế, xét trang tại vị trí đầu hàng đợi:
 Nếu bit R = 0 thì thay thế trang.
 Nếu bit R = 1 thì đưa trang về cuối hàng đợi, xét trang tiếp theo cho đến
trang cho R = 0.
◘ Clock:

Tương tự Second chance.

Các trang được quản lý theo danh sách liên kết xoay vòng.

Có 1 con trỏ chỉ đến trang đầu tiên.
− Khi cần thay thế thì xét trang tại vị trí con trỏ.
Nếu bit R = 0 thì đưa thay thế trang, xoay con trỏ 1 đơn vị.
Nếu bit R = 1 thì xóa R = 0, xoay con trỏ 1 đơn vị, xét trang tiếp theo
cho đến trang cho R = 0.
Bài tập
f/ Một số vấn đề
− Chiến lược nạp:

Nạp theo yêu cầu(demand paging): nạp trang khi có lỗi trang.

Nạp trước (prepaging): nạp trước các trang của process theo một điều kiện
xác định
− Working set model:

Working set: tập hợp các trang process đang sử dụng

Hệ thống:
+
Ghi nhận working set của process
+
Nạp working set của process vào bộ nhớ trước khi process vận hành
 giảm page fault
− Chiến lược cấp phát

Cục bộ:
+
Kích thước bộ nhớ dành cho mỗi process là cố định
+
Chọn trang thay thế trong phạm vi các trang của process


Toàn cục:

Page 18 of 34


Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

− Dùng chung trang:

Tình huống: các process của cùng một chương trình, các chương trình sử
dụng cùng thư viện

Trang dùng chung:
+
Thường là trang chứa mã chương trình
+
Được nạp 1 lần
+
Dùng chung cho các process
+
Có cùng vị trí trong không gian địa chỉ ảo của các process

Trang dành riêng:
+
Chứa mã chương trình, dữ liệu

+
Được nạp riêng cho mỗi process
+
Có thể có vị trí khác nhau trong không gian địa chỉ ảo của mỗi process
− Tổ chức tách biệt không gian địa chỉ ảo các chương trình dùng chung.
5.
Bộ nhớ ảo dạng phân đoạn:
− Không gian bộ nhớ ảo:

Bao gồm các phân đoạn

Phân đoạn (segment), kích thước không cố định
− Hệ điều hành

Nạp phân đoạn, cấp phát vùng nhớ thích hợp

Quản lý bảng phân đoạn của mỗi process

Tổ chức phần đoạn theo tính chất
+
Để mởi rộng kích thước dữ liệu
+
Cho phép sửa đổi, biên dịch độc lập từng phần chương trình
+
Trên tổ chức dùng chung các phân đoạn
+
Cơ chế bảo vệ thiết lập theo phân đoạn
− Bảng phân đoạn

Cấu trúc phần tử:






Vị trí phân đoạn trong bộ nhớ
Kích thước
Bit hiện diện R
Bit sửa đổi M
Các bit điều khiển khác
Cấu trúc địa chỉ ảo



Sơ đồ chuyển địa chỉ

+
+
+
+

6.

Sơ đồ
Bộ nhớ ảo dạng phân đoạn có phân trang
− Kết hợp các ưu điểm của phân đoạn và phân trang.
− Tổ chức:

Bộ nhớ ảo bao gồm các đoạn.


Trong mỗi đoạn thực hiện phân trang.
− Cấu trúc địa chi ảo:
Page 19 of 34


Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

Sơ đồ
 MULTICS
− Segment descriptor

− Tổ chức quản lý: không gian địa chỉ ảo

218 phân đoạn

Kích thước tối đa của phân đoạn: 64k word (1 word = 36 bit)
Sơ đồ
 PENTIUM
− Đơn vị quản lý bộ nhớ (Memory Management Unit, MMU)
 Đơn vị phân đoạn, (đoạn đến 232 bytes)
 Đơn vị phân trang
− Các mô hình bộ nhớ
 Không phân đoạn, không phân trang
 Không phân đoạn, có phân trang
 Có phân đoạn, không phân trang
 Có phân đoạn, có phân trang

− Chuyển đỗi địa chỉ:
Địa chỉ ảo dạng phân đoạn:
 Selector – 16 bit.
 Offset – 32 bit.
Địa chỉ đoạn  Địa chỉ tuyến tính (linear address)  Địa chỉ vật lý

− Cấu trúc selector:
Page 20 of 34


Ôn thi cuối kì hệ điều hành



20/12/2010

b7@2e

GDT (Global Descriptor Table): dùng chung cho tất cả process. Đặc tả các phân đoạn hệ

thống.
 LDT (Local Descriptor Table): dành riêng cho mỗi process
 Privilege level: mức đặc quyền.
− Chuyển đổi địa chỉ đoạn -> địa chỉ tuyến tính:

− Chuyển đổi địa chỉ tuyến tính -> địa chỉ vật lý:

Page 21 of 34



Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

--------------------------------------------------------------------------------------------------------------------

Vấn đề III.

Quản lý xuất nhập (I/O)

I. Nguyên lý phần cứng xuất nhập:
1. Phân loại thiết bị xuất nhập:
− Block devices – Thiết bị dạng khối:
 Thông tin lưu theo khối, khối có địa chỉ.
 Đọc ghi theo từng khối độc lập.
 Ví dụ: đĩa từ.
− Charater devices – Thiết bị dạng ký tự.
 Thông tin truyền theo chuỗi ký tự.
 Không có địa chỉ.


Vd: bàn phím, card mạng, chuột…




Không là 2 dạng trên.
Vd: file system, clock…


− Abstract devices – Các thiết bị trừu tượng.

2. Thành phần mạch điều khiển:
− Thiết bị I/O gồm có 2 thành phần:
 Thành phần cơ khí.
 Thành phần điện -> mạch điều khiển.
Có thể điều khiển nhiều thiết bị.
− Nhiệm vụ mạch điều khiển:
 Chuyển đổi dữ liệu (bits, streams, blocks).
 Kiễm soát lỗi (nều cần thiết).
 Tồn tại trong kiến trúc hệ thống.
− Mạch điều khiển kết nối với I/O bus.
− Thiết bị nối với mạch điều khiển.
− Thông số:
 Địa chỉ (theo phương pháp xuất nhập).
 Tập lệnh điều khiển.
− Phần mềm điều khiển thiết bị thông qua mạch điều khiển với tập lệnh.
 Vd: FDC Floopy Disk Controller có các lệnh SEEK, READ, WRITE,…
3. Địa chỉ thiết bị I/O:
− Memory mapped I/O:
 Thiết bị và bộ nhớ dùng chung một không gian địa chỉ.
 Xuất nhập tương đương đọc ghi bộ nhớ.
 Không cần lệnh I/O.
− Isolated I/O
 Dùng không gian địa chỉ riêng.
Page 22 of 34


Ôn thi cuối kì hệ điều hành





20/12/2010

b7@2e

Cần tín hiệu điều khiển I/O riêng.
Cần các lệnh I/O.

4. Interrupt:
− Cần Interrupt Controller và Interrupt handler.
− Hoạt động: CPU yêu cầu xuất nhập. Thiết bị yêu cầu ngắt quãng (interrupt) khi sẵn sàng. Thực thi
chương trình xử lý ngắt.
− Thông số thiết bị:
 Địa chỉ I/O
 Yêu cầu ngắt (IRQ i).
5. DMA:
− Cần có DMA Controller.
− Hoạt động: CPU gởi yêu cầu xuất nhập cho DMAC. DMAC thực hiện trao đổi dữ liệu giữa bộ nhớ và
thiết bị. Khi kết thúc, DMAC gởi tín hiệu ngắt quãng cho CPU.
− Thông số thiết bị:
 Địa chỉ I/O
 Yêu cầu ngắt (IRQ i).
 Kênh DMA (DMA channel).

II. Tổ chức phần mềm xuất nhập

1. Xử lý ngắt quãng

− Process yêu cầu I/O bị blocked cho đến khi có ngắt quãng.
− Chương trình xử lý ngắt quãng thực thi, chuyên blocked process sang trạng thái ready
2. Chương trình điều khiển thiết bị
− Device driver chứa đoạn mã phụ thuộc từng loại thiết bị
− Device driver trao đổi dữ liệu với các thanh ghi trên mạch điều khiển, kiểm tra trạng thái thiết bị
− Ví dụ: Windows driver (Universal driver, Minidriver).
3. Phần mềm I/O cấp hệ điều hành
− Các hàm I/O chung cho các thiết bị, tạo giao diện thống nhất cho phần mềm cấp user
− Giải quyết các vấn đề:
 Đặt tên
 Bảo vệ
 Tổ chức buffer
 Báo lỗi
4. Phần mềm I/O cấp user
− Các yêu cầu I/O được gọi thông qua các hàm thư viện xuất nhập

III. Đĩa từ

1. Phần cứng đĩa từ:
− Cấu trúc mặt đĩa: track, sector
Page 23 of 34


Ôn thi cuối kì hệ điều hành

20/12/2010

b7@2e

− Đĩa từ : hard driver.

 Track, Sector, Cylinder…
 Đơn vị truy xuất: sector.
 Các bước truy xuất sector:
 Di chuyển hệ thống đầu từ đến Cylinder chứa sector – Seek time (mili sec).
 Chờ sector xoay đến vị trí đầu từ - Rotational latency (rpm).
 Truy xuất sector.
 Thông số tổng quát: tốc độ truy xuất (Data Transfer Rate) theo MB/sec.
− Mạch điều khiển đĩa: Disk Controller.
 Các chuẩn : SCSI, IDE.
− SCSI (Small Computer System Interface):
 Dạng I/O bus, điều khiển nhiều loại thiết bị: đĩa cứng, CDROM, scanner, máy in…
 Có thể đến 15 thiết bị/cáp.
− Chuẩn IDE (Integrated Drive Electronics):
 Còn gọi là ATA (AT Attachment)
 EIDE (Extended IDE ) -> ATA -2
 4 thiết bị.
 Điều khiển CDROM.
 Hỗ trợ LBA (Logical Block Addressing).
 ATA-4  Ultra ATA
ATA – 33/66/100..: tốc độ DMA là 33MHz.
− Chuẩn Serial ATA (SATA)
 Tốc độ cao, từ 150 MB/sec
 Chỉ điều khiển đĩa
 Dễ cài đặt
2. Các phương pháp điều phối đĩa từ:
− Có thể có nhiều yêu cầu truy xuất đĩa đồng thời.
 Cần chọn xử lý một yêu cầu tiếp theo.
− Xử lý yêu cầu: di chuyển hệ thống đầu từ  Điều phồi đĩa từ.
Các phương pháp điều phối đĩa từ:
− Random: chọn yêu cầu đáp ứng 1 cách ngẫu nhiên.

− Priority: đáp ứng yêu cầu theo độ ưu tiên của process yêu cầu. tối ưu hóa việc sử dụng đĩa và
đáp ứng 1 số mục tiêu khác. Công việc ngắn có thể có ưu tiên cao hơn, cho thời gian đáp ứng
tương đối tốt.
− FIFO: chọn yêu cầu có thứ tự xuất hiện các yêu cầu.
− SSF (Shortest Seek First): chọn đáp ứng yêu cầu sao cho khoảng di chuyển đầu từ so với vị trí
hiện tại là ngắn nhất (minimum seek time). Có thể dẫn đến starvation đối với các process yêu
cầu truy xuất trên các track ở biên
− SCAN – còn gọi là elevator algorithm:
 Hệ thống đầu từ di chuyển theo 1 hướng.
 Xử lý các yêu cầu theo hướng này.
 Nếu hết yêu cầu hay đến Cylinder cuối thì di chuyển theo hướng ngược lại.
− C-SCAN
 Hệ thống đầu từ chỉ di chuyển theo 1 hướng.
 Xử lý các yêu cầu theo hướng này.
 Nếu hết yêu cầu hay đến Cylinder cuối thì di chuyển nhanh vế phía Cylinder đầu tiên.
− Thực tế:

Page 24 of 34


Ôn thi cuối kì hệ điều hành




20/12/2010

b7@2e

Nếu số yêu cầu ít: dùng SSF.

Nếu số yêu cầu nhiều: dùng C-SCAN.

IV. RAID
1. Định nghĩa:
− RAID: Redundant array of independent disks
− Một đĩa luận lý từ nhiều đĩa vật lí
− Mục đích:
 Tăng hiệu suất đọc/ghi
 Tăng độ tin cậy  phát hiện lỗi sai và khôi phục
2. Mức (level)
− RAID level 1
 Tổ chức lưu trữ một script trên hai đĩa đối xứng  mirror
 Real-time backup
 Chi phí cao
 Dùng để lưu trữ phần mềm hệ thống và các dữ liệu quan trọng
− RAID level 2
 Strip kích thước nhỏ: byte, word
 Hai nhóm đĩa: nhóm chứa dữ liệu & nhóm chứa mã sửa sai (Hamming code)
 Mã sửa sai được tính toán cho mỗi bit dữ liệu trên các đĩa dữ liệu
− RAID level 3
 Strip kích thước nhỏ: byte, word
 1 đĩa chứa mã sửa sai: parity bit (bit chẵn, lẻ)
 Xác định parity bit:
XN-1(i) = XN-2(i) XN-3(i) … Xk(i) … X0(i)
− RAID level 4
 Strip kích thước lớn
 Parity strip:
XN-1(i) = XN-2(i) XN-3(i) … Xk(i) … X0(i)
 Vấn đề cập nhật
 Cập nhật strip k ( Xk(i)  Xk’(i) )

 Cập nhật parity strip
XN-1(i) = XN-1(i) Xk(i) Xk’(i)
 Chỉ có 1 đĩa chứa parity strip: bottleneck
− RAID level 5
 Số đĩa cứng yêu cầu : ít nhất 3 ổ đĩa
- Ưu điểm : sử dụng chuẩn Stripped cấp độ block kết hợp với parity , bảo vệ dữ liệu rất
tốt , đọc dữ liệu cao , phục hồi lại dữ liệu đơn giản khi gặp sự cố đơn giản
- Khuyết điểm : Bộ điều khiển cho RAID này khá phức tạp , tốc độ ghi chỉ cao hơn bình
thường một ít
- Chi phí dành cho RAID5 cũng khá cao
- Ứng dụng vào trong các server Mail , web , máy chủ game …
- Tổng dung lượng =dung lượng đĩa nhỏ nhất x (số đĩa cứng -1)
− RAID level 6
 Sử dụng đĩa dữ liệu độc lập và 2 hệ thống phân tán
- Số đĩa cứng yêu cầu : ít nhất 4 đĩa
- Ưu điểm là RAID level 6 này có độ an toàn ở mức cao nhất , giống như RAID level 5
nhưng nó lại khác ở chỗ là có cơ chế thực hiện 2 tính toán kiểm tra lỗi độc lập với nhau
nhằm tăng cường khả năng chịu lỗi , các dữ liệu được tách ra từ các khối block và được
Page 25 of 34


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×