Многозадачность является важнейшим свойством ОС. Для поддержки этого свойства ОС определяет и оформляет для себя те внутренние единицы работы, между которыми и будет разделяться процессор и другие ресурсы компьютера. Эти внутренние единицы работы в разных ОС носят разные названия - задача, задача, процесс, нить. В некоторых случаях сущности, которые обозначаются этими понятиями, принципиально отличаются друг от друга.
Говоря о процессах, мы отмечали, что операционная система поддерживает их обособленность: у каждого процесса есть свое виртуальное адресное пространство, каждого процесса назначаются свои ресурсы - файлы, окна, семафоры и т.д. Такая обособленность нужна для того, чтобы защитить один процесс от другого, поскольку они, совместно используя все ресурсы машины, конкурируют из друг другое. В общем случае процессы принадлежат разным пользователям, которые разделяют один компьютер, и ОС берет на себя роль арбитра в спорах процессов за ресурсы.
При мультипрограммировании повышается пропускная способность системы, но отдельный процесс никогда не может быть выполнен быстрее, чем если бы он выполнялся в однопрограммном режиме (всякая низменность ресурсов замедляет работу одного из участников за счет дополнительных затрат времени на ожидание освобождения ресурса). Однако задача, решаемая в рамках одного процесса, может иметь внутренний параллелизм, который в принципе позволяет ускорить ее решение. Например, в ходе выполнения задачи происходит обращения к внешнему устройству, и на время этой операции можно не блокировать целиком выполнения процесса, а продолжить вычисление по другой " ветви" процесса.
Для этих целей современные ОС предлагают использовать сравнительно новый механизм многонитевой обработка (multithreading). При этом вводится новое понятие "нить" (thread), а понятие "процесс" в значительной степени меняет содержание.
Мультипрограммирование теперь реализуется на уровне нитей, и задача, оформленная в виде нескольких нитей в рамках одного процесса, может быть выполненная быстрее за счет псевдопараллельного (или параллельного в мультипроцессорной системе) выполнение ее отдельных частей. Например, если электронная таблица была разработана с учетом возможностей многонитевой обработка, то пользователь может пригласить перерасчет свое рабочего письма и одновременно продолжать заполнять таблицу. Особенно эффективно можно использовать многонитевость для выполнения распределенных приложений, например, многонитевый сервер может параллельно выполнять запросы сразу нескольких клиентов.
Нити, которые относятся к одного процесса, не настолько изолированный друг от вторая, как процессы в традиционной многозадачной системе, между ними легко организовать тесное взаимодействие. Действительно, в отличие от процессов, которые принадлежат разным, вообще говоря, что конкурируют приложениям, все нити одного процесса всегда принадлежат одному приложению, поэтому программист, который пишет это приложение, может заранее продумать работу множества нитей процесса таким образом, чтобы они могли взаимодействовать, а не бороться за ресурсы.
В традиционных ОС понятие "нить" тождественно понятию "процесс". В действительности часто бывает желательно иметь несколько нитей, которые разделяют единое адресное пространство, но выполняющихся квазипараллельно, благодаря чему нити становятся подобный процессам (за исключением что разделяется адресного пространства).
Возможно стоит прочитать:
- Две группы пользователей
- Пользователи системы также не оставались в стороне.
- Экран разделов
- Область SEO Settings
- Обзорный список
- Меню
- Алгоритмы взаимного исключения
- Физическая организация и адрес файла
- Списки намерений
- Настройка существующего меню
- Пиктограмма Move, copy
- Корпоративные ОС
- Множества страниц
- Нити
- Одноранговые сетевые ОС и ОС с выделенными серверами
- Особенности методов построения
- Перевод пунктов меню
- Четыре модели организации связи доменов
- Использование магистрального протокола
- Реализации справочных систем
- Сетевой пакет DCE фирмы OSF
- Проблемы взаимодействия операционных систем в гетерогенных сетях
- Стандарт Opendoc
- Управление локальными ресурсами
- Выполнения подпрограмм
- Инсталляция Joomla!
- Шаг 7: завершение
- Загрузка Хаммпп
- Клиентская и серверная часта
- Рабочий поток
- Алгоритмы взаимного исключения
- Физическая организация и адрес файла
- Списки намерений
- Корпоративные ОС
- Множества страниц
- Нити
- Одноранговые сетевые ОС и ОС с выделенными серверами
- Особенности методов построения
- Четыре модели организации связи доменов
- Использование магистрального протокола
- Реализации справочных систем
- Сетевой пакет DCE фирмы OSF
- Проблемы взаимодействия операционных систем в гетерогенных сетях
- Стандарт Opendoc
- Управление локальными ресурсами
- Выполнения подпрограмм
- Joomla! — это целый мир!
- Привычки пользователей
- Диалоги
- Категория Описание
- Область Debug Settings
- Пиктограмма New
- Декоративные элементы
- Папки, флайеры, наклейки
- Алгоритмы взаимного исключения
- Физическая организация и адрес файла
- Кэширование диска
- Процессы и нити в распределенных системах
- Списки намерений
- Новый элемент
- Пиктограмма Trash
- Корпоративные ОС
- Нити
- Особенности методов построения
- Сетевые операционные системы
- Дерево каталогов в nds
- Множественные прикладные среды
- ООП эффективен
- Реализации справочных систем
- Страничное распределение
- Управление локальными ресурсами
- Вызов отдаленных процедур (RPC)
- ХАМРР для Windows
- Шаг 2: предустановочная проверка
- Контент и его термины
- Расширения и компоненты
- Алгоритмы взаимного исключения
- Физическая организация и адрес файла
- Кэширование диска
- Процессы и нити в распределенных системах
- Списки намерений
- Корпоративные ОС
- Нити
- Особенности методов построения
- Сетевые операционные системы
- Дерево каталогов в nds
- Множественные прикладные среды
- ООП эффективен
- Реализации справочных систем
- Страничное распределение
- Управление локальными ресурсами
- Вызов отдаленных процедур (RPC)
s#0