Khi đọc các file âm thanh hay đọc từ Soundcard làm sao đảm bảo vấn đề thời gian thực (real-time)?

Khi đọc các file âm thanh hay đọc từ Soundcard làm sao đảm bảo vấn đề thời gian thực (real-time), trong Windows luôn bị gián đoạn do tính đa nhiệm. Có thể dùng Interrupt trong Windows được không?
luong ngoc quyen
luong ngoc quyen
Trả lời 15 năm trước
Không phải HĐH nào hỗ trợ đa nhiệm (multi-process) thì không hỗ trợ real-time. Đây là 2 tính chất độc lập nhau của HĐH. Đúng là Windows mà chúng ta đang dùng không hỗ trợ real-time, tuy nhiên những ứng dụng record/play âm thanh/video thường không đòi hỏi mức độ real-time khắc khe nên Windows vẫn có thể giải quyết được. Bằng chứng là có rất nhiều ứng dụng record/play audio/video chạy rất tốt trên nền Windows. Nếu muốn 1 process hay 1 thread nào đó chiếm dụng nhiều thời gian CPU để giải quyết kịp thời 1 chức năng nào đó, ta có thể gọi các hàm API của Windows như SetPriorityClass(), SetThreadPriority(),... để thiết lập quyền ưu tiên cho process hay thread đó. Windows cung cấp 32 cấp độ quyền ưu tiên cho 1 thread nào đó, thread có quyền 0 kém ưu tiên nhất, còn thread có quyền 31 được ưu tiên nhất (thường được gọi là quyền ưu tiên real-time). Để biết chi tiết về các hàm API liên quan đến thiết lập quyền ưu tiên cho process hay thread, bạn tham khảo thông tin liên quan trong MSDN của Microsoft.