Chào các bạn! Vì nhiều lý do từ nay Truyen2U chính thức đổi tên là Truyen247.Pro. Mong các bạn tiếp tục ủng hộ truy cập tên miền mới này nhé! Mãi yêu... ♥

Code nsx-ntd

I. Triết gia ăn cơm

semaphore chopstick[5] = {1,1,1,1,1,1};

void Philosopher(int i){ //tiến trình P(i)

for(;;){ //lặp vô hạn

Wait(chopstick[i]); //lấy đũa bên trái

Wait(chopstick[(i+1)%5]); //lấy đũa bên phải

<Ăn cơm>

Signal(chopstick[(i+1)%5]);

Signal(chopstick[i]);

<Suy nghĩ>

}

}

void main(){

// chạy đồng thời 5 tiến trình

StartProcess(Philosopher(0));

...

StartProcess(Philosopher (4));

}

II.Bài toán người sản xuất người tiêu dùng

Const int N; // kích thước bộ đệm Semaphore empty = 0;

Semaphore lock = 1; Semaphore full = N

Void producer () {

for (; ;) {

<sản xuất>

wait (full);

wail (lock);

<thêm 1 sản phẩm vào bộ đệm>

signal (lock);

signal (empty);

}

}

Void consumer() {

for (; ;) {

wait (empty);

wail (lock);

<lấy 1 sản phẩm từ bộ đệm>

signal (lock);

signal (full);

<tiêu dùng>

}

}

Void main() {

startProcess(producer); startProcess(consumer);

}

Bạn đang đọc truyện trên: Truyen247.Pro

Tags: #melody