Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО НГП / материалы для лекций.doc
Скачиваний:
46
Добавлен:
29.05.2015
Размер:
600.06 Кб
Скачать

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

Прикладное – главный вид ПО для обычного пользователя (>90% пользователей PC), но для специалистов главным видом ПО является системное.

Еще недавно (≥ 5 лет назад) системное ПО подразделялось на:

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

  2. Драйверы устройств компьютера;

  3. Программы - оболочки (NC, WN, Far) и операционные оболочки (Windows 3.1);

  4. Системные утилиты (NU);

  5. Программы управления локальной сетью (ЛС) типа Novell NetWare.

Сегодня произошло совмещение основных функций ОС, драйверов, оболочек, программ управления ЛС и операционных оболочек в едином программном комплексе, сохранившем название ОС, для ПЭВМ это: Windows NT/9х, (включая новые коммерческие версии: (XP/2000/ME)), LINUX (ОС из семейства UNIX), еще кое где сохранилась OS/2, Apple’s System (на новых Apple’s computers стоит Windows for Macintosh).

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

ОС для компьютера как хозяйка дома: количество ее обязанностей неисчислимо.

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

- интерфейс (взаимодействие) с пользователем;

- интерфейс с ВУ;

- управление ресурсами компьютера (ОП, файловой системой);

- запуск, надзор за работой, завершение прикладных программ.

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

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

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

Классификация ОС:

1. Однозадачные ОС. Под задачей принято понимать совокупность программ и данных, требующих для своей реализации ресурсов ЭВМ (ВУ, ОП, процессорное время). Если требуется обработать по тому же алгоритму (программе) другие данные, то надо создать другую задачу. Однозадачные ОС целиком сосредоточены на вышеописанных проблемах и применялись на сравнительно простых компьютерах. Пример однозадачных ОС: MS DOS.

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

ОС, работающие в режиме разделения времени подразделяются на:

  • Многозадачные однопользовательские системы (OS/2, Windows 95/98), в функции системы не входит защита ресурсов от других пользователей.

  • Многозадачные многопользовательские системы (Unix, Windows NT, OS/400). Здесь ОС должна обеспечить распределение ресурсов между пользователями и их учет, а также защиту программ и данных пользователя от доступа к ним других пользователей.

  • Гигаресурсные системы (VSE, VM, OS/390), являясь также многозадачными и многопользовательскими, отличаются от предыдущего класса тем, что ресурсы, управляемые ими, на несколько порядков большие. Их аппаратной платформой являются мэйнфреймы, в которых соотношение производительность/цена существенно выше, чем в компьютерах малой и средней мощности, но для того, чтобы это преимущество проявилось, производительность должна быть востребована в полном объеме. Поэтому в таких системах значительно больше внимания уделяется эффективности управления ресурсами.

3. ОС реального масштаба времени. Для систем реального времени характерно то, что они обеспечивают немедленную реакцию на предусмотренные события. Часто они работают со значительным недогрузом, так как для них важнее быть в состоянии постоянной готовности и быстро реагировать на предусмотренные события, чем просто быть занятыми большую часть времени. Работа в реальном масштабе времени означает, что поступающая в систему информация должна быть обработана в течение заданного интервала времени, с тем, чтобы результат был готов к моменту выдачи необходимых данных или управляющих воздействий. Работа в реальном масштабе времени характерна для систем управления. Примеры ОС реального времени: RT, QNX, Windows CE.

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

Иногда используется классификация ОС по решаемым задачам:

Пакетные – выполняют задания без непосредственного взаимодействия с пользователем или объектом;

Интерактивные – работают в режиме диалога с пользователем;

Серверные - работают в режиме диалога с компьютерами локальной сети (ЛС).

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

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

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

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

Программы начальной загрузки и генерации ОС осуществляют загрузку генератора ОС в «пустую» ОП и саму генерацию ОС.

Редактор связей объединяет отдельные объектные модули прикладных программ и создает новый объектный модуль или модуль, готовый к выполнению (загрузочный). Загрузчик осуществляет загрузку готовых к выполнению частей программ и их настройку по месту в ОП.

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

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

Введем еще два определения ОС, уже более профессиональные:

1. ОС есть набор программ, которые распределяют ресурсы процессам.

Это взгляд со стороны внутренней структуры системного ПО.

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

С точки зрения ОС процесс - это "юридическое лицо", которое получает в свое распоряжение ресурсы. Неточное, но интуитивно понятное определение процесса - "программа в стадии выполнения".

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

1. Однозадачные ос

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

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

Основные компоненты ОС

Дистрибутив MS-DOS состоит, в зависимости от версии, из одной или нескольких дискет. На них расположены файлы собственно ОС IO.SYS, MSDOS.SYS, командный процессор COMMAND.COM, файлы внешних команд ОС (FORMAT, FDISK и т.п.), драйверы и другие файлы.

Файл IO.SYS содержит расширение базовой системы ввода/вывода и является интерфейсом между ОС и BIOS. Расширение используется ОС для взаимодействия с аппаратурой компьютера и BIOS.

Файл MSDOS.SYS является в некотором смысле набором программ обработки прерываний, в частности прерывания INT 21H. Это тело ОС. Командный процессор COMMAND.COM предназначен для организации диалога с оператором. Он анализирует вводимые оператором команды и организует их выполнение. Так называемые внутренние команды (DIR, COPY и т.д.) обрабатываются именно командным процессором. Программист имеет возможность написать свой собственный командный процессор и подключить его вместо стандартного. Новый командный процессор должен выполнять все функции, которые раньше выполнял стандартный COMMAND.COM.

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

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

Файлы ОС выделяются своим особым расположением на диске (кроме COMMAND.COM) - эти файлы должны находиться в специально отведенном для них месте. Самый простой способ подготовки системной дискеты - использовать команду FORMAT с опцией /S, например:

FORMAT A: /S

В этом случае после форматирования на дискету будут перенесены файлы ОС. В MS DOS двоеточие является признаком имени диска.

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

Утилита FDISK предназначена для подготовки к работе жесткого диска. Она разбивает диск на участки, называемые разделами. На одном физическом диске могут быть разделы, принадлежащие разным ОС. Один из разделов - активный, ОС загружается из активного раздела.

Для MS-DOS утилита FDISK позволяет создать первичный и вторичный разделы. В первичном разделе располагается системный диск C:, с которого выполняется загрузка ОС, вторичный раздел может быть разделен на логические диски (D:, E:, F: и т.д.). Диски, располагающиеся во вторичном разделе, не могут быть системными.

Общая схема работы DOS

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

Рис.1. Функциональные связи программы для MS-DOS с программно-аппаратным обеспечением ПЭВМ

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

Чем выше уровень интерфейса прикладной программы и аппаратуры, тем меньше программа будет зависеть от особенностей аппаратуры.

Рассмотрим подсистемы MS DOS, начиная с файловой системы.

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

Файловая система работает с дисками через драйверы. Драйверы, в свою очередь, пользуются сервисом BIOS.

На уровне BIOS выполняются элементарные операции с диском, такие как чтение/запись секторов, форматирование и т.п. Этот низкий уровень доступен и прикладной программе, но обычно она пользуется функциями прерывания DOS, выполняющими все необходимые действия по обслуживанию каталогов и таблицы размещения файлов (File Allocation Table - FAT). Программы защиты от несанкционированного доступа или копирования вынуждены обращаться к средствам более низкого уровня, вызывая прерывания BIOS, или даже работать с контроллером дисковода через порты ввода/вывода.

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

Система управления памятью.

Эта подсистема DOS используется для распределения памяти запускаемым программам. DOS управляет памятью с помощью блоков MCB (Memory Control Block). Память разбивается на блоки; каждому блоку предшествует MCB, в котором записаны характеристики блока памяти. Для каждой вновь запускаемой программы DOS создает определенное количество блоков MCB. При освобождении памяти или при выполнении запросов на получение дополнительной памяти DOS также использует блоки MCB, проверяя при этом правильность их содержимого.

Все блоки MCB располагаются друг за другом. Адрес первого блока хранится в векторной таблице связи, CVT. Прикладная программа может заказать для себя дополнительные блоки памяти. Для этого она обращается к системе управления памятью, используя функции прерывания 21h DOS.

Система управления программами.

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

В MS-DOS существуют два формата выполняемых программ - .com и .exe. Способы запуска этих программ сильно различаются. Система управления программами автоматически распознает их и загружает в память по-разному.

Другая задача, решаемая системой управления программами - запуск программ из программ и загрузка программных перекрытий – "оверлеев". Если не все модули большого программного комплекса нужны одновременно, вы можете разбить комплекс на несколько частей. Это могут быть либо несколько отдельных программ, либо несколько оверлейных модулей.

Последняя функция системы управления программами - работа с резидентными программами. Если вам надо, чтобы после завершения своей работы программа осталась резидентной в памяти, вы, как и в случае завершения обычной программы, обращаетесь к системе управления программами через соответствующую функцию прерывания DOS 21h.

Система связи с драйверами устройств.

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

Для управления состоянием устройства ввода/вывода или состоянием драйвера используется специальная функция 44h прерывания DOS 21h. Эта функция предназначена для обмена управляющей информацией между прикладной программой и драйвером.

Система обработки ошибок.

Для кодирования ошибок, как правило, используется флаг переноса (CARRY, CF). Если после обращения к прерыванию DOS флаг переноса установлен в 1, произошла ошибка. Для анализа ошибки можно вызвать соответствующую функцию DOS, которая вернет уточняющую информацию об ошибке и предоставит рекомендации (разумеется, лишь в виде кодов, находящихся в регистрах процессора).

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

Служба времени.

Компьютер обычно оборудуется системными часами. Это могут быть КМОП-часы с питанием от аккумулятора, время которых сохраняется при выключении питания компьютера, или таймер, регулярно вырабатывающий прерывания. ОС ведет подсчет времени и хранит текущие показания часов и дату.

Программа может опросить часы, обратившись к DOS с запросом через одну из функций прерывания 21h, или установить новое состояние часов.

ОС содержит драйвер устройства CLOCK$. Прикладная программа может обратиться к этому устройству для чтения показания часов или для установки часов. Программа может использовать прерывания таймера и для выполнения каких-либо действий.

Ввод/вывод на консоль оператора.

Консоль оператора состоит из двух устройств - клавиатуры и дисплея. Эти два устройства обслуживаются одним драйвером - драйвером консоли CON. Т.е. можно считать, что в компьютере имеется устройство - консоль - с именем CON.

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

Другие подсистемы DOS.

DOS имеет набор драйверов для работы с печатающими устройствами и последовательными портами, которые обеспечивают прием/передачу символов и управление режимами работы устройств. Кроме того, для печати текста в фоновом режиме в состав дистрибуции DOS входит программа PRINT.COM. Эта практически единственная "мультизадачная" утилита ОС является примером стандартной резидентной программы. Она позволяет выполнять параллельно с печатью текста другую работу (например, редактирование другого текста).

Отметим драйверы электронного диска и кэш-памяти. Драйвер электронного диска называется RAMDRIVE.SYS. Этот драйвер организует в расширенной или в дополнительной памяти компьютера быстрый псевдо-диск. Можно организовать электронный диск и в основной памяти, но основной памяти всегда мало!

MS-DOS версий 4.01 и 5.0 имеет в своем составе систему управления дополнительной и расширенной памятью, которая реализуется драйвером HIMEM.SYS. Этот драйвер позволяет программам, составленным специальным образом, использовать расширенную или дополнительную память для хранения данных (но не для выполнения программ).

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

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

Другие устройства ввод/вывода (сканеры, плоттеры, стримеры и т.п.) также не поддерживаются DOS. Для этих устройств фирмы поставляют драйверы, которые надо подключить к ОС.

Соседние файлы в папке СПО НГП