Round-robin planowanie: zezwalać na wielokrotne wyświetlanie procesu?

9

W harmonogramie z okrągłym robinem wielokrotne dodawanie procesu do listy procesów jest tanim sposobem na nadanie mu wyższego priorytetu.

Zastanawiam się, jak praktyczne może być to podejście. Jakie korzyści ma w porównaniu z innymi technikami, takimi jak wydłużenie czasu procesu (korzyść: krótszy czas przełączania) lub utrzymanie osobnej listy procesów o wysokim priorytecie. W szczególności, w jaki sposób wielokrotne notowanie procesu wpływa na uczciwość i reaktywność?

(Z ćwiczenia 2.16 w Systemach operacyjnych Andrew Tanenbauma : Projektowanie i wdrożenie, wydanie pierwsze).

Gilles „SO- przestań być zły”
źródło
Tannenbaum napisał wiele książek. Prawdopodobnie masz na myśli systemy operacyjne .
Dave Clarke
@DaveClarke Tak, dziękuję za zwrócenie na to uwagi. (I właściwie wszystko, co tu mam, to tłumaczenie, ale nie sądzę, że brakuje w nim jakiejkolwiek części tekstu.)
Gilles „SO- przestańcie być źli”

Odpowiedzi:

4

Zaletą tego podejścia jest to, że szeregowanie w trybie okrężnym jest bardzo wydajne, więc nie trzeba polegać na bardziej złożonym harmonogramie, który kradłby cykle. Wprowadzenie dłuższych przedziałów czasowych dla procesów o wyższym priorytecie zmniejszyłoby reakcję innych wątków i utrudniłoby systemowi operacyjnemu wejście w interakcję z przerwaniem i tak dalej. Utrzymanie osobnych list procesów wymagałoby znacznie bardziej złożonego harmonogramu, który byłby droższy pod względem cykli. Nie rozumiem jednak, w jaki sposób pojawiłby się problem z uczciwością. Myślę, że problem polega na tym, że ziarnistość jest dość jasna: procesy mogą mieć tylko wielokrotności całkowite podstawowego przedziału czasu.

Jednym z minusów jest to, że usunięcie procesu byłoby bardziej kosztowne, ponieważ każde wystąpienie procesu musiałoby być usuwane z kolejki. Być może można to jednak zrobić leniwie.

Dave Clarke
źródło
2

Wielokrotne dodanie zadania do kolejki szeregowania z wykorzystaniem algorytmu round-robin stwarza problem z zapewnieniem, że wpisy pozostaną w rozsądnym stopniu rozdzielone. Łatwo to zapewnić, jeśli system nie pozwala na dynamiczne tworzenie lub usuwanie zadań, ale ogólnie nie jest to możliwe.

Oprócz bardziej złożonego procesu usuwania elementów z kolejki, ewentualne przekrzywienie wpisów procesu w kolejce spowoduje niezrównoważone zachowanie, które łatwiej jest zrównoważyć z wieloma poziomami priorytetów.

Pekka
źródło
Czy chęć posiadania priorytetów nie przeciwwskazuje do uczciwości?
Raphael