Announcement

Collapse
No announcement yet.

[Hỏi] Bài Tập Đồng Bộ Hóa Với Semaphore Hệ Điều Hành

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 15520607
    replied
    em cũng đang thắc mắc như anh ???

    Leave a comment:


  • 15520528
    replied
    Originally posted by 10520273 View Post
    Hình như cái này có nghĩa là B không đợi quá 10 lần.
    mấy bạn cho mình hỏi, trên kia là bài giải luôn phải không?
    thầy yêu cầu code phải biên dịch được trên linux.

    Leave a comment:


  • 10520273
    replied
    Hình như cái này có nghĩa là B không đợi quá 10 lần.

    Leave a comment:


  • 08520229
    replied
    mình nghĩ cái này là : mặc xác thằng Na tăng lên bao nhiêu, chỉ cần Nb<Na<Nb+10 thì nó vẫn được phép chay , nếu không thì nó sẽ bị block :happy:

    Leave a comment:


  • [Hỏi] Bài Tập Đồng Bộ Hóa Với Semaphore Hệ Điều Hành

    Mình đang ôn Hệ Điều Hành tới Semaphore thì gặp bài tập này. Anh em nào vào giải thích giùm mình với.
    Đề : Xét 2 tiến trình A,B
    Proces A
    {
    while(1)
    Na=Na+1;
    }
    Process B
    {
    while(1)
    Nb=Nb+1;
    }
    Đồng bộ hóa 2 tiến trình trên dùng Semaphore, sao cho tại mọi thời điểm bất kì : Nb<Na<=Nb+10.

    Đây là bài giải :
    Code:
    Process A
    {
        while(1) {
          Wait(S21);
          Na=Na+1;
          Signal(S12);
        }
    }
    Process B
    {
       while(1) {
         Wait(S12);
         Nb=Nb+1;
         Signal(S21);
       }
    }
    Khởi tạo: S21= 10; S12=0;
    Mình không hiểu rõ lắm ở chỗ.
    1> Process A thực hiện trước Process B 10 lần . Sau đó thì trình tự thực hiên là: A->B->A->B.... luân phiên
    2>Process A thực hiện trước Process B 10 lần sau. Sau đó Process B thực hiện 10. Rồi lặp lại A 10 lần-> B 10 lần->A 10 lần....... luân phiên
    Vậy thì hiểu theo ý 1 hay ý 2 là đúng ? Mình nghĩ là ý 2 nhưng không chắc lắm nên hỏi anh em. Anh em nào giải thích giùm mình với. Thank trước:nose:
    Last edited by 11520207; 30-12-2012, 12:09.

LHQC

Collapse
Working...
X