Современные операционные системы

Современные операционные системы
Процессы и потоки  Недостаток решения

Недостаток решения

Чтобы предотвратить такую ситуацию, программу можно слегка изменить: когда писатель находится в состоянии ожидания, то вновь прибывающий читатель не получает немедленного доступа, а приостанавливает свою работу и встает в очередь за писателем. При этом писатель должен переждать окончания работы тех читателей, которые были активны при его прибытии, и не должен пережидать тех читателей, которые прибывают уже после него. Недостаток этого решения заключается в снижении производительности за счет меньших показателей параллельности в работе. Куртуа и др. (Courtois et al, 1971) представили решение, дающее приоритет писателям. Подробности этого решения можно узнать из их статьи.

Недостаток решения читать полное описание.


Процессы и потоки  Исследования, посвященные процессам и потокам

Исследования, посвященные процессам и потокам

В главе 1 мы рассмотрели ряд текущих исследований, посвященных структуре операционных систем. В этой и последующих главах мы рассмотрим более узконаправленные исследования, начинающиеся с процессов. Со временем станет понятно, что некоторые предметы исследований по сравнению с другими более разработаны. Большинство исследований обычно направлены на изучение новых тем и не относятся к темам, которые исследуются уже не один десяток лет.

Исследования, посвященные процессам и потокам читать полное описание.


Процессы и потоки  Сгладить влияние прерываний

Сгладить влияние прерываний

Чтобы сгладить влияние прерываний, операционные системы предоставляют концептуальную модель, состоящую из параллельно запускаемых последовательных процессов. Процессы могут создаваться и уничтожаться в динамическом режиме. У каждого процесса есть свое собственное адресное пространство.

Некоторым приложениям выгодно в рамках одного процесса иметь несколько потоков управления. Эти потоки имеют независимое планирование, и каждый из них имеет свой собственный стек, но все потоки, принадлежащие одному процессу, используют общее адресное пространство. Потоки могут быть реализованы в пространстве пользователя или в пространстве ядра.

Сгладить влияние прерываний читать полное описание.


Процессы и потоки  Эффективность использования центрального процессора

Эффективность использования центрального процессора

Чтобы повысить эффективность использования центрального процессора мы можем установить значение кванта времени равным, скажем, 100 мс. Теперь теряется всего 1% времени. Но посмотрим, что получится на серверной системе, если к ней поступит за очень короткий отрезок времени 50 запросов, имеющих широкий разброс в степени востребованности центрального процессора. В список готовых к запуску процессов будет помещено 50 процессов. Если центральный процессор простаивает, первый из них будет запущен немедленно, второй не сможет запуститься, пока не истекут 100 мс, и т. д. Если предположить, что все процессы полностью воспользуются своими квантами времени, то самый невезучий последний процесс может пребывать в ожидании в течение 5 с, прежде чем получит шанс на запуск.

Эффективность использования центрального процессора читать полное описание.


Процессы и потоки  Поведение процесса

Поведение процесса

На рис. 2.19 показано, что практически у всех процессов чередуются пики вычислительной активности с запросами (дискового) ввода-вывода. Обычно центральный процессор некоторое время работает без остановок, затем происходит системный вызов для чтения данных из файла или для их записи в файл. Когда системный вызов завершается, центральный процессор возобновляет вычисления до тех пор, пока ему не понадобятся дополнительные данные или не потребуется записать дополнительные данные на диск и т. д. Следует заметить, что некоторые операции ввода-вывода считаются вычислениями. Например, когда центральный процессор копирует биты в видеопамять, чтобы обновить изображение на экране, то он занимается вычислением, а не вводом-выводом, поскольку при этом задействован он сам. В этом смысле ввод-вывод происходит в том случае, когда процесс входит в заблокированное состояние, ожидая, пока внешнее устройство завершит свою работу.

Поведение процесса читать полное описание.