Принципы реализации многозадачности
Действительно, если процесс обращается к операционной системе за услугами ввода-вывода, выполнение процесса обычно не может быть продолжено немедленно после обращения к операционной системе. Например, при обращении к файлу необходимо дождаться позиционирования головок дискового накопителя, при обращении к клавиатуре — пока пользователь нажмет клавишу. Крайне нерационально в такой ситуации… Читать ещё >
Принципы реализации многозадачности (реферат, курсовая, диплом, контрольная)
Многозадачность — это способность операционной системы выполнять более одного процесса одновременно.
Существует два принципиально отличающихся способа организации многозадачности в операционных системах: корпоративная многозадачность, и вытесняющая многозадачность. Рассмотрим оба подхода по порядку.
Корпоративная многозадачность Очевидно, что если в компьютере один процессор, то реально может выполняться только один процесс, все остальные процессы, даже если они находятся в памяти и готовы к исполнению, будут приостановлены. Многозадачная операционная система создает иллюзию одновременного выполнения всех запущенных процессов, поочередно выполняя небольшие фрагменты каждого. Другими словами, запущенные процессы поочередно используют ресурс процессора в режиме разделения времени. Заметим здесь, что наряду с пользовательскими процессами, операционная система должна запустить свои собственные процессы, предназначенные для планирования выполнения пользовательских процессов и для поддержания пользовательского интерфейса. При этом процессы операционной системы будут конкурировать за процессор и другие ресурсы наряду с пользовательскими процессами.
С другой стороны, рассматривая выполнение программы (см. выражение (1)), мы отметили, что следующая инструкция для выполнения определяется самой же исполняемой программой. Это означает, что нельзя прервать выполнение процесса, пока сам исполняющийся процесс не передаст управление другому процессу. Тогда для организации многозадачности может быть предложен следующий подход:
- — получив управление, процесс выполняет некоторое количество инструкций своей программы, после чего добровольно передает управление процессу-планировщику операционной системы;
- — планировщик, получив управление, выбирает один из процессов, готовых к исполнению, и передает ему управление.
Рассмотренный подход организации многозадачности известен как корпоративная многозадачность. Корпоративную многозадачность еще называют согласующей или невытесняющей многозадачностью.
Так как пользовательский процесс сам определяет момент вызова планировщика и, следовательно, момент передачи управления другому процессу, то говорят, что в операционной системе с корпоративной многозадачностью функции планировщика распределены между операционной системой и пользовательскими процессами.
Исполнение процессов в режиме корпоративной многозадачности схематически показано на следующем рисунке (Рисунок 3).
Рисунок 3 Работа в режиме корпоративной многозадачности.
Пользовательские процессы в ходе своей работы неизбежно обращаются к операционной системе за услугами ввода-вывода, для синхронизации выполнения с другими процессами или за другим системным сервисом. В таких случаях говорят, что процесс инициировал системный вызов.
Для повышения эффективности использования центрального процессора, системные вызовы реализованы в операционной системе так, что всякий раз при завершении системного вызова, процесс-планировщик вызывается автоматически (см. Рисунок 3).
Действительно, если процесс обращается к операционной системе за услугами ввода-вывода, выполнение процесса обычно не может быть продолжено немедленно после обращения к операционной системе. Например, при обращении к файлу необходимо дождаться позиционирования головок дискового накопителя, при обращении к клавиатуре — пока пользователь нажмет клавишу. Крайне нерационально в такой ситуации останавливать центральный процессор и ждать завершения ввода-вывода. Гораздо более целесообразно передать управление другому процессу, готовому к немедленному выполнению.