câu hỏi chương 7
5 posters
Trang 1 trong tổng số 1 trang
câu hỏi chương 7
Mình mở chủ đề này mong là các bạn sẽ cùng mình soạn ra câu hỏi của chương 7 để học nhé.
Câu 1: Những lý do đồng bộ hóa công việc của tiến trình. VD minh họa .
Lý do:
- Đảm bảo tính nhất quán của tài nguyên dùng chung.
- Tránh được hiện tượng Deadlock (Hiện tượng kẹt tiến trình) .
VD: một trường học chỉ có 1 phòng lab (tài nguyên dùng chung) , lớp có giờ học trước thì được vào phòng lab học, các lớp còn lại phải chờ đến khi lớp học trước đó hết giờ mới được vào phòng lab .
Mong các bạn nào có vd hay hơn cho mình tham khảo,
Câu 1: Những lý do đồng bộ hóa công việc của tiến trình. VD minh họa .
Lý do:
- Đảm bảo tính nhất quán của tài nguyên dùng chung.
- Tránh được hiện tượng Deadlock (Hiện tượng kẹt tiến trình) .
VD: một trường học chỉ có 1 phòng lab (tài nguyên dùng chung) , lớp có giờ học trước thì được vào phòng lab học, các lớp còn lại phải chờ đến khi lớp học trước đó hết giờ mới được vào phòng lab .
Mong các bạn nào có vd hay hơn cho mình tham khảo,
TruongThiMinhNgoc57(102C)- Tổng số bài gửi : 90
Join date : 17/02/2011
Đến từ : TPHCM
Câu 2:Định nghĩa đèn hiệu với 2 tác nguyên Wait và Signal.
Định nghĩa đèn hiệu với 2 tác nguyên Wait và Signal.
Giải:
- Đèn hiệu là phương tiện đồng bộ hoá được E.W. Dijkstra đề xuất năm 1965.
- Đèn hiệu được mô tả bằng một biến kiểu nguyên với 2 tác nguyên là Wait (Chờ) và Signal (Báo hiệu):
typedef int semaphore; // Định nghĩa kiểu Đèn hiệu
wait (semaphore S)
{
while ( S <= 0 ); // Chờ bận nếu S<=0
S --; // Giảm S đi 1
}
signal (semaphore S)
{
S ++; // Tăng S lên 1
}
- Việc kiểm tra S <= 0 và giảm S (trong Wait) hoặc tăng S (trong Signal) phải được thực hiện trọn vẹn (không xảy ra ngắt trong thời gian thi hành), do đó Wait và Signal được gọi là các tác nguyên (Atomic Operations).
Giải:
- Đèn hiệu là phương tiện đồng bộ hoá được E.W. Dijkstra đề xuất năm 1965.
- Đèn hiệu được mô tả bằng một biến kiểu nguyên với 2 tác nguyên là Wait (Chờ) và Signal (Báo hiệu):
typedef int semaphore; // Định nghĩa kiểu Đèn hiệu
wait (semaphore S)
{
while ( S <= 0 ); // Chờ bận nếu S<=0
S --; // Giảm S đi 1
}
signal (semaphore S)
{
S ++; // Tăng S lên 1
}
- Việc kiểm tra S <= 0 và giảm S (trong Wait) hoặc tăng S (trong Signal) phải được thực hiện trọn vẹn (không xảy ra ngắt trong thời gian thi hành), do đó Wait và Signal được gọi là các tác nguyên (Atomic Operations).
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Câu 3: Cấu trúc mã của tiến trình tương tranh.
Cấu trúc mã của tiến trình tương tranh.
Giải:
while (1)
{
Remainder section
Entry section
Critical section
Exit section
Remainder section
}
Giải:
while (1)
{
Remainder section
Entry section
Critical section
Exit section
Remainder section
}
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Câu 4: Sử dụng Đèn hiệu nhị phân Mutex để đảm bảo tính loại trừ lẫn nhau
Sử dụng Đèn hiệu nhị phân Mutex để đảm bảo tính loại trừ lẫn nhau.
Giải:
typedef int semaphore;
semaphore mutex = 1; // Binary Semaphore
while (1)
{
remainder section
wait (mutex);
critical section
signal (mutex);
remainder section
}
Giải:
typedef int semaphore;
semaphore mutex = 1; // Binary Semaphore
while (1)
{
remainder section
wait (mutex);
critical section
signal (mutex);
remainder section
}
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Câu 5: Sử dụng Đèn hiệu Synch để đồng bộ 2 tiến trình.
Sử dụng Đèn hiệu Synch để đồng bộ 2 tiến trình.
Giải:
Xét hai process: P1 và P2
Yêu cầu: lệnh S1 trong P1 cần được thực thi trước lệnh S2 trong P2
Định nghĩa semaphore “synch” dùng đồng bộ
Khởi động semaphore:
synch.value= 0
Để đồng bộ hoạt động theo yêu cầu, P1 phải định nghĩa như sau:
S1;
signal(synch);
Và P2 định nghĩa như sau:
wait(synch);
S2;
Giải:
Xét hai process: P1 và P2
Yêu cầu: lệnh S1 trong P1 cần được thực thi trước lệnh S2 trong P2
Định nghĩa semaphore “synch” dùng đồng bộ
Khởi động semaphore:
synch.value= 0
Để đồng bộ hoạt động theo yêu cầu, P1 phải định nghĩa như sau:
S1;
signal(synch);
Và P2 định nghĩa như sau:
wait(synch);
S2;
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Câu 6:Thực thi Đèn hiệu có hàng chờ.
Thực thi Đèn hiệu có hàng chờ.
Giải:
- Với tác nguyên Wait có vòng lặp vô tận kiểm tra biến đếm S có nhỏ hơn 0 hay không, điều đó làm cho các tiến trình có thể tự khóa mình (Block Itseft) và chuyển sang trạng thái waiting, sau đó xếp vào hàng chờ của đèn hiệu. Trình điếu phối CPU có thể chọn tiến trình khác trong hàng chờ Ready để thực hiện.
- Khi một tiến trình nào đó thực hiện lệnh Signal(S), một tiến trình P nào đó đang chờ tại S được lựa chọn và đánh thức bằng lệnh WakeUp(P) để chuyển P từ trạng thái Waiting sang trạng thái Ready. Lúc này trình điều phối có thể cho P thực thi ngay hay không còn tuỳ thuộc vào thuật giải cụ thể.
Giải:
- Với tác nguyên Wait có vòng lặp vô tận kiểm tra biến đếm S có nhỏ hơn 0 hay không, điều đó làm cho các tiến trình có thể tự khóa mình (Block Itseft) và chuyển sang trạng thái waiting, sau đó xếp vào hàng chờ của đèn hiệu. Trình điếu phối CPU có thể chọn tiến trình khác trong hàng chờ Ready để thực hiện.
- Khi một tiến trình nào đó thực hiện lệnh Signal(S), một tiến trình P nào đó đang chờ tại S được lựa chọn và đánh thức bằng lệnh WakeUp(P) để chuyển P từ trạng thái Waiting sang trạng thái Ready. Lúc này trình điều phối có thể cho P thực thi ngay hay không còn tuỳ thuộc vào thuật giải cụ thể.
trandinhnghia- Tổng số bài gửi : 47
Join date : 16/04/2009
Câu 5: Thực thi bài toán SX-TT được đồng bộ hóa bằng 3 đèn hiệu semFull, semEmpty và Mutex.
Tiến trình sản xuất (Producer) tạo ra dòng thông tin để tiến trình tiêu thụ (Consumer) sử dụng.
- Ví dụ: Compiler và Assembler vừa là nhà sản xuất vừa là nhà tiêu thụ. Compiler tạo ra mã dùng cho Assembler, tiếp theo Assembler sản sinh mã máy làm đầu vào cho Loader hoặc Linkage Editor.
- Phát biểu bài toán: Bộ nhớ đệm Buffer bao gồm một số hữu hạn các khoang chứa (Items). Producer lần lượt đưa các sản phẩm S1, S2,…vào các khoang của Buffer. Consumer lấy sản phẩm ra theo đúng thứ tự. Công việc của các tiến trình phải đồng bộ với nhau: không đưa ra sản phẩm khi hết chỗ trống, không lấy được sản phẩm khi chưa có.
- Thuật giải đồng bộ hoá bằng 3 đèn hiệu: semFull (quản lý số sản phẩm có trong bộ đệm, giá trị ban đầu bằng 0), semEmpty (quản lý số khoang còn trống, giá trị ban đầu bằng số khoang của bộ đệm) và Mutex (đảm bảo tính loại trừ tương hỗ, nghĩa là mỗi thời điểm chỉ có 1 tiến trình sản xuất hay tiêu thụ được truy cập/cập nhật tài nguyên dùng chung, giá trị ban đầu bằng 1).
o Thuật giải cho Producer:
wait(semEmpty);
wait(Mutex);
// Đưa sản phẩm vào Buffer
..........................
signal(semFull);
signal(Mutex);
o Thuật giải cho Consumer:
wait(semFull);
wait(Mutex);
// Lấy sản phẩm từ Buffer
..........................
signal(semEmpty);
signal(Mutex);
- Ví dụ: Compiler và Assembler vừa là nhà sản xuất vừa là nhà tiêu thụ. Compiler tạo ra mã dùng cho Assembler, tiếp theo Assembler sản sinh mã máy làm đầu vào cho Loader hoặc Linkage Editor.
- Phát biểu bài toán: Bộ nhớ đệm Buffer bao gồm một số hữu hạn các khoang chứa (Items). Producer lần lượt đưa các sản phẩm S1, S2,…vào các khoang của Buffer. Consumer lấy sản phẩm ra theo đúng thứ tự. Công việc của các tiến trình phải đồng bộ với nhau: không đưa ra sản phẩm khi hết chỗ trống, không lấy được sản phẩm khi chưa có.
- Thuật giải đồng bộ hoá bằng 3 đèn hiệu: semFull (quản lý số sản phẩm có trong bộ đệm, giá trị ban đầu bằng 0), semEmpty (quản lý số khoang còn trống, giá trị ban đầu bằng số khoang của bộ đệm) và Mutex (đảm bảo tính loại trừ tương hỗ, nghĩa là mỗi thời điểm chỉ có 1 tiến trình sản xuất hay tiêu thụ được truy cập/cập nhật tài nguyên dùng chung, giá trị ban đầu bằng 1).
o Thuật giải cho Producer:
wait(semEmpty);
wait(Mutex);
// Đưa sản phẩm vào Buffer
..........................
signal(semFull);
signal(Mutex);
o Thuật giải cho Consumer:
wait(semFull);
wait(Mutex);
// Lấy sản phẩm từ Buffer
..........................
signal(semEmpty);
signal(Mutex);
TruongThiMinhNgoc57(102C)- Tổng số bài gửi : 90
Join date : 17/02/2011
Đến từ : TPHCM
Re: câu hỏi chương 7
Để có thể hiểu hơn các bạn có thể tham khảm tại đâyTruongThiMinhNgoc57(102C) đã viết:Mình mở chủ đề này mong là các bạn sẽ cùng mình soạn ra câu hỏi của chương 7 để học nhé.
Câu 1: Những lý do đồng bộ hóa công việc của tiến trình. VD minh họa .
Lý do:
- Đảm bảo tính nhất quán của tài nguyên dùng chung.
- Tránh được hiện tượng Deadlock (Hiện tượng kẹt tiến trình) .
VD: một trường học chỉ có 1 phòng lab (tài nguyên dùng chung) , lớp có giờ học trước thì được vào phòng lab học, các lớp còn lại phải chờ đến khi lớp học trước đó hết giờ mới được vào phòng lab .
Mong các bạn nào có vd hay hơn cho mình tham khảo,
lavansan(102c)- Tổng số bài gửi : 11
Join date : 17/02/2011
Age : 36
Đến từ : Bình Định
Re: câu hỏi chương 7
Thanks bạn nha. Mình đã đọc qua và thấy cũng dễ hiểu. Thông tin hay.lavansan(102c) đã viết:Để có thể hiểu hơn các bạn có thể tham khảm tại đâyTruongThiMinhNgoc57(102C) đã viết:Mình mở chủ đề này mong là các bạn sẽ cùng mình soạn ra câu hỏi của chương 7 để học nhé.
Câu 1: Những lý do đồng bộ hóa công việc của tiến trình. VD minh họa .
Lý do:
- Đảm bảo tính nhất quán của tài nguyên dùng chung.
- Tránh được hiện tượng Deadlock (Hiện tượng kẹt tiến trình) .
VD: một trường học chỉ có 1 phòng lab (tài nguyên dùng chung) , lớp có giờ học trước thì được vào phòng lab học, các lớp còn lại phải chờ đến khi lớp học trước đó hết giờ mới được vào phòng lab .
Mong các bạn nào có vd hay hơn cho mình tham khảo,
nguyenthingoan (i92c)- Tổng số bài gửi : 39
Join date : 16/02/2011
Giúp với!
Câu 2: Khái niệm đoạn tương tranh và loại trừ lẫn nhau(hay loại trừ tương hỗ )?
Cần ví dụ loại trừ lẫn nhau(hay loại trừ tương hỗ ) mọi người giúp với cám ơn.
Cần ví dụ loại trừ lẫn nhau(hay loại trừ tương hỗ ) mọi người giúp với cám ơn.
trantanphat102C- Tổng số bài gửi : 29
Join date : 13/03/2011
Similar topics
» Thảo luận Bài 1
» Chương 7: Thiết kế chương trình
» Tại sao phải làm lại những chương trình chat trong khi đã có rất nhiều chương trình chat miễn phí???
» Thảo luận Bài 1
» Thảo luận Bài 1
» Chương 7: Thiết kế chương trình
» Tại sao phải làm lại những chương trình chat trong khi đã có rất nhiều chương trình chat miễn phí???
» Thảo luận Bài 1
» Thảo luận Bài 1
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết