Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Расчетное задание / КМ2 / Ответы КМ2

.pdf
Скачиваний:
4
Добавлен:
16.05.2024
Размер:
17.54 Mб
Скачать

Запрос приложения к файлу

Переключатель файловых систем

ФС1 ФСn

Подсистема ОС вводавывода

Драйвера устройств ввода/вывода

Аппаратные средства

Рис.4. Архитектура использования разных ФС в рамках одной ОС.

3.4.Управление устройствами ввода­вывода в компьютерной

системе

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

Данные устройства делятся на два типа: блок-ориентированные и байториентированные. В блок-ориентированных устройствах информация храниться в блоках фиксированного размера и с определенным адресом. Таким образом, мы легко можем получить доступ к произвольному блоку информации. Например, жесткие диски относятся к устройствам данного типа.

41

Байт-ориентированные устройства генерируют или потребляют последовательность байтов и они не являются адресуемыми. К ним относятся, например, принтеры, сетевые адаптеры.

Также надо помнить, что устройства ввода-вывода состоят из механической и электронной частей. Для оптимизации их работы ОС должна выполнять свои операции таким образом, чтобы минимизировать работу механической части. Интерфейс между устройством ввода-вывода осуществляет контроллер, который обеспечивает непосредственное управление устройством.

При организации взаимодействия ОС с устройствами ввода-вывода стремятся преследовать следующие основные положения.

1.Разделение работы программного обеспечения на несколько уровней, чтобы нижний уровень экранировал верхние от ненужной им информации об особенностях устройства.

2.Независимость верхних уровней программного обеспечения от управляемого устройства.

3.Размещение обработки ошибок как можно ближе к аппаратуре.

4.Использование синхронных и асинхронных передач. ОС выполняет операции вводавывода асинхронно, но для программиста они представляются в синхронном виде.

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

При работе ОС с устройствами ввода-вывода можно выделить 4 слоя – рис.5.

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

предоставление общего интерфейса к устройствам,

именование устройств,

защита устройств,

обеспечение независимого размера блока,

42

кэширование данных,

уведомление об ошибках,

предоставление и освобождение выделенных устройств,

и т.д.

При обращении к устройству ввода-вывода в программе, например, используя стандартную функцию write() для записи, при реальной работе программы мы должны ее преобразовать в соответствующие системные вызовы ОС. Для этого используются соответствующие библиотеки ОС, которые подсоединяются к программе на этапе связывания или link после компиляции.

приложение

библиотечные функции → системные вызовы

Обработка системных вызовов

Драйвера устройств

Обработка прерываний

Устройства ввода-вывода

Рис.5. Организация работы подсистемы ввода-вывода в ОС.

Контрольные вопросы:

1.Что такое процесс в ОС?

2.В каких состояниях может находиться процесс?

43

3.Как выполняются процессы с точки зрения квантования времени и с точки зрения использования приоритетов?

4.Как решаются проблемы синхронизации процессов в современных ОС?

5.Понятие «нитей». Для чего они используются?

6.Типы адресов в ОС.

7.Понятие виртуальной памяти.

8.Механизмы организации виртуальной памяти.

9.Что такое кэш-память?

10.На что влияет кэширование данных?

11.Что входит в понятие файловой системы?

12.Основные типы файлов.

13.Как осуществляется индексация дискового пространства.

14.Проблемы в работе файловой системы и пути их решения.

15.Какие моменты следует учитывать при организации взаимодействия ОС с устройствами ввода-вывода?

44

4. ОБЗОР ОСНОВНЫХ ОСОБЕННОСТЕЙ НЕКОТОРЫХ ОС

4.1.DOS

Обозначение DOS расшифровывается как дисковая операционная система. Она возникла в начале 80-х годов 20-го века как разработка фирмы Microsoft – MS-DOS для компьютеров типа IBM PC. Кроме данного варианта ОС также существует много других версий DOS: PC-DOS, DR-DOS, FreeDOS и т.д.

Хотя в настоящее время данная ОС достаточно устарела, однако есть несколько направлений, где она может быть использована. В первую очередь это относится к выполнению старых программ, изначально написанных для DOS. Как известно, семейство ОС MS Windows имеет ограниченную совместимость с DOS, и не все старые программы могут быть выполнены под ними. В частности те, которые используют прямой доступ к аппаратной части компьютерной системы или специфичные методы DOS по адресации памяти.

Другое направление, где DOS до сих пор разумно использовать, относится к различным системам управления реальными объектами и сбора информации, например, экспериментальной. Действительно, DOS является однозадачной системой и, следовательно, в процессе функционирования нашей программы какие либо ее прерывания со стороны других задач исключены, что делает DOS оптимальной системой для процессов реального времени.

Другое направление использования DOS касается системы проверки и настройки компьютера. Действительно, при возникновении ситуации, когда наша компьютерная система под управлением многозадачной ОС начинает вести себя нестабильно, мы должны в первую очередь понять причины такого поведения – проблемы оборудования или ОС. Т.к. DOS функционирует в самых ограниченных условиях, то загрузка с нее и старт различных программ проверки оборудования позволяет выделить возможные причины проблем. Так же может быть организованна и настройка компьютера, в частности разбиение жесткого диска и т.д.

При работе с DOS (далее будем рассматривать MS-DOS) в первую очередь выделим основные системные файлы. Это io.sys, который служит расширителем системы ввода - вывода BIOS. Далее идет msdos.sys, являющийся, в сущности, ядром ОС и

45

command.com – командный интерпретатор. Он служит для обработки команд пользователя.

В соответствии с данной последовательностью происходит и загрузка ОС. Вначале загружаются файлы io.sys и msdos.sys. Необходимо понимать, что они должны располагаться в четко установленных местах загрузочного диска. Далее проверяется наличие в корневом каталоге загрузочного диска файла config.sys, который позволяет настраивать работу некоторых компонент ОС – например, оперативной памяти, и подключать драйвера оборудования. Если данный файл отсутствует, то параметры загрузки ОС берутся по умолчанию. Далее загружается command.com. Затем проверяется наличие в корневом каталоге загрузочного диска файла autoexec.bat. Данный файл в свою очередь позволяет настроить работу командного интерпретатора. Если он отсутствует, то опять все параметры берутся по умолчанию. На этом загрузка ОС заканчивается. В состав DOS входят еще другие утилиты, например, для работы с диском. Однако минимальный набор файлов DOS позволяет создать загрузочный диск даже на гибком диске.

Архитектура использования ОП в DOS в упрощенном виде показана на рис.6. В первую очередь необходимо помнить, что процессоры, предназначенные изначально для DOS, могли напрямую адресовать только 1024К ОП. Далее в данном участке ОП выделяется основная память, где находится ядро ОС и работают программы пользователя. Выше до 1024К находится технический сегмент, куда отображается BIOS, видеопамять и т.д. Пользовательские программы в нормальном режиме там не размещаются. Выше 1024К находится 64 килобайтный сегмент - HMA (high memory area – область верхней памяти), в который путем задания соответствующих параметров в config.sys можно переместить часть ядра ОС и освободить основную память. Так же полезно помнить, что DOS является 16 разрядной и наибольший участок адресуемой памяти в программе –

64Кб.

При запуске программ в DOS наиболее частый вопрос возникает о том, как запустить программы с требованием по памяти больше чем 640К. Для решения данной проблемы в DOS используются расширители памяти. Существуют три основных версии – EMS, extended memory и DPMI. Последний является наиболее совершенным. Для их включения в config.sys указываются параметры dos=high,umb и загружается драйвер расширенной памяти. Обычно это himem.sys. Данные драйвера так же позволяют использовать 32-х разрядный режим работы программ в DOS.

46

64Мб

дополнительная

память

HMA – 64K

1024К

технический

сегмент

640К

основная память

Рис.6. Архитектура использования памяти в DOS.

4.2.Windows 3.1

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

Откликаясь на эти тенденции, фирма Microsoft выпустила первые версии системы Windows, из которых версия 3.1 имела чрезвычайный коммерческий успех. Необходимо сразу сказать, что Windows 3.1 в сущности не являлась самостоятельной ОС как таковой, а была лишь графической надстройкой над DOS. ОС была изначально 16 разрядной, но давала возможность выполнения 32-х разрядных программ. Архитектура ОС представлена

на рис.7.

47

4 Гб

Ядро ОС

Все прикладные программы

Win16 – Win32

1 Мб

Драйвера устройств реального времени

Рис.7. Архитектура использования памяти в Windows 3.1.

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

4.3.Windows 9x

Понимая данные проблемы, фирма Microsoft выпустила следующие версии ОС семейства Windows 9x. Это Windows 95, 98 и ME. Основное их отличие от Windows 3.1

это использование в ОС 32-х разрядных программ и большая надежность архитектуры. В 48

то же время ставилась задача обеспечить широкую совместимость с DOS и Windows 3.1, что обусловило сохранение определенной ненадежности работы ОС. Архитектура ОС представлена на рис 8.

4 Гб

компоненты ядра ОС

3 Гб

Прикладные программы Win16

Системные DLL

2 Гб

Прикладные

программы

Win32

4 Мб

Драйвера устройств реального времени

Рис.8. Архитектура использования памяти в Windows 9x.

Каждая программа Win32 видит свое виртуальное адресное пространство до 2 Гб. Таким образом, задачи защищены друг от друга. До 4 Мб пространство используется совместно всеми процессами для обеспечения совместимости с ранними ОС. В то же время любой процесс может испортить находящиеся здесь данные других процессов. В общем пространстве от 2 до 3 Гб находятся 16 – разрядные программы Win16 и 16 разрядные системные компоненты ОС. Таким образом, здесь также имеется возможность взаимодействия программ и потенциальная опасность для ОС. Компоненты ядра ОС в адресном пространстве от 3 до 4Гб также видны всем программам Win32 и доступны для записи.

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

49

наличием большого числа 16-ти разрядных системных компонент, что замедляло ее работу по сравнению с полностью 32-х разрядными ОС аналогами. В настоящее время ОС этого семейства еще можно встретить там, где эксплуатируются экспериментальные и другие устройства старого типа, имеющие интерфейс, настроенный на данный тип ОС. Так же необходимо отметить, что на компьютерных системах ограниченных параметров одни и те же приложения под ОС Windows 9x будут работать существенно быстрее, чем под OC семейства MS Windows NT.

4.4.OS/2

Внастоящее время данный тип ОС в России является достаточно экзотичным, однако в 90-х годах 20-го века данная ОС достаточно часто использовалась как платформа для научных вычислений. Мы рассмотрим здесь самые общие черты данной ОС по тем же причинам, что и у предыдущей ОС.

OS/2 начала разрабатываться совместно фирмами IBM и Microsoft в конце 80-х годов. Однако позже фирма Microsoft покинула проект ради платформы MS Windows. IBM продолжило разрабатывать ОС и после нескольких версий в начале 90-х была выпущена версия ОС 2.0 в 1992 году а затем 3.0, которые были существенно более развиты по сравнению с платформой MS Windows на тот день. В версии 2.0 32разрядность использовалась гораздо шире, чем в более поздней версии MS Windows 95 - за исключением видеосистемы все было 32-х разрядным. Использование виртуальных DOS-машин (VDM) позволяет запускать сразу несколько DOS- и Windows-задач. Для запуска программ Windows использовалась Win-OS/2, основанная на лицензированной IBM Windows 3.1. Использование виртуальных машин позволило изолировать Windows и DOS-задачи, в результате чего сбои в программах не препятствовали продолжению выполнения других программ. Были реализованы также такие механизмы межпрограммного взаимодействия, как динамический обмен данных (Dynamic Data Exchange) и буфер обмена. В OS/2 можно использовать специально разработанную для нее файловую систему HPFS. Данная система была призвана решить следующие проблемы файловой системы FAT: ограничения, налагаемые на размер файлов и дискового пространства; ограничение длины имени файла; фрагментация файлов, приводящая к снижению быстродействия системы и износу оборудования; непроизводительные затраты памяти, вызванные большими размерами кластеров;

50

Соседние файлы в папке КМ2