Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
75-99.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
243.43 Кб
Скачать

99. Характеристика та функції багатозадачного режиму роботи ос.

Основні функції багатозадачних та багатокористувацьких операційних систем.

10.1. 1.Многозадачные ОС позволяют работать одновременно с 255 заданиями. Многопользовательские ОС позволяют работать одновременно с 255 терминалами. К многозадачным ОС для рабочих станций относятся Windows 95/98/2000/XP/Linux и т. д. а также серверные системы для управления системами , такие как Windows NT, Windows 2000 Server, Windows 2003 Server. Многозадачные ОС рабочих станций созданые для персональных компьютеров имеют дружественный, интуитивный интерфейс. Таким образом, основное предназначение многозадачной ОС – позволять одновременное выполнение нескольких пользовательских приложений и не позволять им мешать друг другу. Кроме этого, ОС должна обеспечивать некоторое удобство программирования, иначе она вряд ли будет пользоваться успехом.

Разберём по пунктам:

1). «Позволять одновременное выполнение нескольких пользовательских приложений» это:

- поддерживать запуск нескольких приложений;

- незаметно для приложений переключать процессор с одной задачи на другую.

2).«Не позволять им мешать друг другу»:

- приложения могут использовать только ту часть оперативной памяти, которую им разрешает ОС. За исключением особых случаев, пересечения доступных разным приложениям частей не происходит;

- приложения не должны иметь прямого доступа к прерываниям;

- приложения не должны иметь прямого доступа к портам ввода-вывода, так как если несколько приложений попытаются одновременно работать с одним устройством (например, COM-портом), скорее всего, они могут мешать работе устройству и друг другу.

Основыаясь на приведеном выше:

1). Очевидно, что многозадачные ОС должны иметь доступ и к портам, и к памяти, и к прерываниям, иначе они не смогут работать.

2) Вытекает, что отделение кода ОС от кода пользовательских приложений, позволяет возможность предоставления коду ОС дополнительных привилегий.

«Удобство программирования»:

1). Наличие многозадачности должно быть прозрачно для программиста в том смысле, что если программисту не требуется взаимодействовать с другими задачами, он не должен слишком сильно беспокоиться об их существовании.

2). Современным приложениям требуется много памяти. Система обеспечивает их совмесное выполнение.

3).Наличие системных вызовов, позволяющих приложениям пользоваться услугами ОС.

10.1. 2. Функции многозадачных ОС.

Наиболее общими функциями ОС является:

управление заданиями;

распределение памяти;

управление обменом;

управление данными;

реакция на регулярные ситуации;

управление обрабатывающими программами.

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

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

Управление данными заключается в организации на запоминающих устройствах внешних каталогизированных систем (файловых систем).

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

10.1.3. Для ОС имеет место следующая классификация многозадачности:

1).Процесс (в оригинале process) - наиболее важный с точки зрения многозадачности объект ОС. В WIN32, как известно, адресное пространство изолировано для каждого процесса. Выполнение программы возможно только в пределах отведенного ей адресного пространства (при использовании документированных функций). Диспетчеризацию процессов выполняет ОС. Для создания процессов используется функция CreateProcess. Принудительное завершение процесса производится функцией ExitProcess;

2).Потоки (более точным переводом с английского слова threads будет - нити, но поскольку в русской литературе принято называть эти объекты потоками - будем также использовать этот термин) боле "легкие", чем процессы. Они не имеют своего адресного пространства. Все что у них индивидуально - стек (thread local storage (TLS). Процесс может иметь несколько потоков. Более того, процесс должен иметь, по крайней мере, один поток. Если закрывается последний поток - закрывается и процесс. Диспетчеризацию потоков выполняет также ОС. Функция для создания потоков CreateThread. Поток может завершится самостоятельно, посредством вызова функции ExitThread или завершен извне. Завершение последнего потока вызовет завершение процесса;

3).Волокна (в оригинале - fibers). Являются наиболее простыми из этих трех объектов с точки зрения ОС, однако, наиболее сложными для программиста. Они могут быть преобразованы из потоков или созданы самостоятельно. Их диспетчеризацию придется выполнять вручную. TLS также придется выделять самостоятельно. Волокна могут быть преобразованы из потоков вызовом функции ConvertThreadToFiber или созданы самостоятельно посредством вызова функции CreateFiber. Удаление волокон производится вызовом функции DeleteFiber.

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

Итак, окончательно сформулируем список основных требований к многозадачным ОС. Многозадачные ОС должны обеспечивать:

1).Отделение кода ОС от кода пользовательских приложений, предоставление коду ОС дополнительных привилегий.

2).Незаметное для приложений переключение процессора с одной задачи на другую.

3). Каждое приложение своим защищённым адресным пространством, (желательно большим). Для того, чтобы приложения не имели возможности обратиться за его пределы и тем самым нарушить работу ОС или других приложений.

4). Поддержку ОЗУ большого объёма.

5). Поддержку виртуальной пам'яти.

6). Поддержку страничной адресации (иначе память фрагментируется и сложно обеспечить многократную загрузку-выгрузку различных приложений).

7). Поддержку механизма системных вызовов, позволяющий обращаться только к тем функциям, которые разрешает вызывать ОС. Системные механизмы (такие как прерывания, порты ввода-вывода, управление памятью) недоступны приложениям напрямую. При желании, приложение может обратиться к ним через системные вызовы.