2012-08-24 9 views
6

Tôi có một câu hỏi liên quan đến lượng tử thời gian cho các quy trình và luồng trong cửa sổ và linux.Lượng tử thời gian cho mỗi quy trình trên mỗi sợi

Tôi biết hệ điều hành nói chung cung cấp lượng thời gian cố định cho mỗi luồng. (Tôi biết thay đổi lượng tử thời gian tùy thuộc vào các chủ đề nền trước hoặc nền. Cũng có thể thay đổi tùy theo mức độ ưu tiên của quy trình.)

Có lượng tử thời gian cố định cho mỗi quá trình không? Ví dụ: Nếu hệ điều hành cho 36 lượng tử thời gian cho mỗi quá trình và nếu một quá trình có 2 luồng thì mỗi luồng sẽ nhận được 18 lượng tử. Nếu số lượng chủ đề trở thành 3 thì mỗi luồng sẽ nhận được 12.

Tuy nhiên, nếu một lượng tử cố định cho mỗi quá trình không tồn tại và hệ điều hành sẽ xác định lượng tử trên mỗi luồng (Không phụ thuộc vào quy trình gốc) thì tôi có thể thực hiện quy trình của tôi hiệu quả hơn bằng cách sinh ra nhiều chủ đề (Giả sử tôi không có hai mutex/semaphores trong mã của tôi.)

Tôi có một ứng dụng chạy trên cả hai hệ điều hành (Windows và Linux). Vì vậy, tôi yêu cầu nó theo nghĩa chung.

Cảm ơn

+0

Thuật ngữ khủng khiếp này 'lượng tử' đến từ đâu? 99,99% của tất cả các chủ đề không bao giờ chạy cho bất cứ điều gì tiếp cận khoảng thời gian lập lịch hẹn giờ OS trước khi bị chặn trên I/O, một chủ đề khác hoặc một số cuộc gọi hệ thống khác. Tôi nghĩ 'quanta' được cho là không thể phân chia được? Thuật ngữ ngu ngốc gây ra những ấn tượng gây hiểu nhầm! –

+0

Bạn có thể muốn kiểm tra điều này: http://support.microsoft.com/kb/259025 –

+0

smith - M $, tôi cũng nên đoán ... –

Trả lời

1

Trên linux từ các chủ đề và quy trình phối cảnh lập lịch là tương đương. Vì vậy, nếu một quá trình sinh ra hai luồng, mỗi luồng sẽ nhận được 36 lượng tử. Mặc dù tôi muốn nghe điều này từ một người có độ tin cậy cao hơn tôi để xác nhận.

+1

Windows cũng vậy. Trình lên lịch đề cập đến các luồng, chứ không phải các tiến trình. –

+0

@Harry: Trong trường hợp đó, một quá trình có thể ăn cắp nhiều thời gian hơn bằng cách có nhiều luồng. Tuyên bố này có đúng không? –

+0

Có, mặc dù gọi nó là "ăn cắp" có vẻ hơi lạ. :-) –