Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



 

Уровни ввода-вывода

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

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

Алгоритм:

1. Драйвер начинает операцию ввод-вывод.

2. Драйвер блокирует сам себя,

3. - выполнив на семафоре процедуру down

4. - выполнив на переменной состояния процедуру wait

5. - выполнив на сообщении процедуру receive

6. Происходит прерывание

7. Обработчик прерываний начинает работу

8. Обработчик прерываний может разблокировать драйвер (например, выполнив на семафоре процедуру up)

 


Логическое расположение драйверов устройств

 

На самом деле обмен данными между контроллерами и драйверами идет по шине. Драйвера должны взаимодействовать с ОС через стандартные интерфейсы.

Стандартные интерфейсы, которые должны поддерживать драйвера:

· Для блочных устройств

· Для символьных устройств

Раньше для установки ядра приходилось перекомпилировать ядра системы.

Сейчас в основном ОС загружают драйверы. Некоторые драйверы могут быть загружены в горячем режиме.

Функции, которые выполняют драйвера:

· обработка запросов чтения или записи

· инициализация устройства

· управление энергопотреблением устройства

· прогрев устройства (сканера)

· включение устройства или запуска двигателя

Независимое от устройств программное обеспечение ввода-вывода

Функции независимого от устройств программного обеспечения ввода-вывода:

· Единообразный интерфейс для драйверов устройств,

· Буферизация

· Сообщения об ошибках

· Захват и освобождение выделенных устройств (блокирование)

· Размер блока, не зависящий от устройств

Единообразный интерфейс для драйверов устройств

Кроме интерфейса, в него также входят проблемы,

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

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

Буферизация

Рассмотрим несколько примеров буферизации.

 

 

a) Не буферизованный ввод - после ввода каждого символа происходит прерывание

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

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

d) Двойная буферизация в ядре - если один буфер заполнен, и пока он выгружается, символы пишутся во второй буфер.

Сообщения об ошибках

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

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

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

Независимый от устройств размер блока

Размер блока должен быть одинаковый для верхних уровней, и не зависеть от устройств (размеров секторов на диске).

Программное обеспечение ввода-вывода пространства пользователя

Функции этого обеспечения:

· Обращение к системным вызовам ввода-вывода (через библиотечные процедуры).

· Форматный ввод-вывод (меняют формат, например, в ASCII)

· Спулинг (для выделенных устройств) - создается процесс (например, демон печати) и каталог спулера.

Обобщение уровней и функций ввода-вывода

 

Уровни и основные функции системы ввода-вывода

 


Билет № 23 Состав ОС: внутренние (встроенные) и внешние (программы-утилиты) команды: История операционных систем

История ОС

Первые (1945-1955г.г.) компьютеры работали без операционных систем, как правило, на них работала одна программа.

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

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

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

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

В это время была разработана многопользовательская система MULTICS, которая должна была обеспечивать одновременную работу сотни пользователей.

В это время также стали бурно развиваться мини-компьютеры (первый был выпущен в 1961г.), на которые была перенесена система MULTICS. Эта работа в дальнейшем развилась в систему UNIX.

Появилось много разновидностей несовместимых UNIX, основные из них были System V и BSD. Чтобы было возможно писать программы, работающие в любой системе UNIX, был разработан стандарт POSIX. Стандарт POSIX определяет минимальный интерфейс системного вызова, который должны поддерживать системы UNUX.

В 1974г. был выпущен центральный процессор Intel 8080, для него была создана операционная система CP/M. В 1977г. она была переработана для других процессоров, например Zilog Z80.

В начале 80-х была разработана система MS-DOS, и стала основной системой для микрокомпьютеров.

В 80-х годах стало возможным реализовать графический интерфейс пользователя (GUI - Graphical User Interface), теория которого была разработана еще в 60-е годы. Первой реализовала GUI корпорация Macintosh.

С 1985 года стала выпускаться Windows, в то время она была графической оболочкой к MS-DOS вплоть до 1995г., когда вышла Windows 95.

Уже тогда было ясно, что DOS с ее ограничениями по памяти и по возможностям файловой системы не может воспользоваться вычислительной мощностью появляющихся компьютеров. Поэтому IBM и Microsoft начинали совместно разрабатывать операционную систему OS/2. Она должна была поддерживать вытесняющую многозадачность, виртуальную память, графический пользовательский интерфейс, виртуальную машину для выполнения DOS-приложений. Первая версия вышла 1987г.

В дальнейшем Microsoft отошла от разработки OS/2, и стала разрабатывать Windows NT. Первая версия вышла в 1993г.

В середине 80-х стали бурно развиваться сети персональных компьютеров, работающие под управлением сетевых или распределенных операционных систем.

Состав ОС

Утилиты ОС

Внешние команды (утилиты) содержаться на дисках в виде отдельных файлов, и поэтому командный интерпретатор должен для выполнения такой команды сначала найти ее на диске, ориентируясь на имя команды, совпадающее с именем программного файла. Эти программы выполняют действия обслуживающего характера, например, форматирование дискет, проверку дисков и т.д. и находятся обычно в каталоге DOS или в подкаталоге COMMAND каталога WINDOWS. Остановимся более подробно на утилитах обслуживания жесткого диска.

1. Разбиение физического диска на несколько логических (FDISK).

На фирме-изготовителе жестких дисков выполняют предварительную проверку поверхности диска на наличие сбойных участков, так называемое низкоуровневое форматирование (Low Level Format). В дальнейшем пользователь при необходимости создания нескольких логических дисков на одном физическом диске (для разграничения доступа различных пользователей, при использовании различных операционных систем, для повышения степени защищенности компьютера от вирусов, при отсутствии программ поддержки больших дисков) разбивает диск на несколько логических разделов (partitions), один из которых является глобальным, а остальные - локальными.

2. Форматирование дисков (FORMAT в DOS и WINDOWS и SFORMAT в Norton Utilites).

Различают форматирование низкого и высокого уровня.

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

При форматировании высокого уровня производится определение на диске двух областей: системной (System) и области данных (Data). В системной области заносятся: Master Boot Record (MBR - Главная загрузочная запись, у дискет отсутствует), Boot Record (BR - Загрузочная запись), две копии File Allocation Table (FAT - Таблица размещения файлов), Root Directory (корневой каталог). Также производится тестирование поверхности диска. Сбойные (например, размагниченные) участки отмечаются в FAT.

При форматировании гибких дисков (дискет) и низкоуровневое и высокоуровневое форматирование проводится одновременно.

Внутренние команды

Внутренние команды наиболее часто используются и поэтому содержатся непосредственно в самом командном интерпретаторе - файле COMMAND.COM и выполняются немедленно. К внутренним командам DOS относятся:

CLS - очистка экрана,

DATE - установка текущей даты,

TIME - установка текущего времени,

DIR - вывод оглавления каталога,

VER - вывод на экран установленной версии DOS,

CD - смена каталога,

COPY - копирование файлов,

DEL - удаление файлов,

REN - переименование файлов,

TYPE - вывод на экран содержимого файла,

VERIFY - проверка правильности операций ввода/вывода информации на дисках,

REM - вводит комментарий в командной строке.

Исполняемые файлы типа COM не требуют настройки адресов после их загрузки в ОЗУ, а программы типа EXE при загрузке с диска в ОЗУ нужно настроить по месту размещения, то есть задать соответствующие адреса сегментов.

При загрузке в ОЗУ командный процессор распадается на две области: резидентную, которая располагается вслед за модулями ОС, и нерезидентную, которая располагается на старших адресах ОЗУ. Резидентная часть содержит подпрограммы стандартной обработки прерываний с десятичными номерами 34 - 36 - теми, которые разработчик прикладной системы может переопределить по-своему. Здесь же находится программа подзагрузки нерезидентной части в ОЗУ. Кроме того, в состав резидентной части входит подпрограмма инициализации, которая обрабатывает файл AUTOEXEC.BAT при запуске машины в MS DOS и файл WIN.INI при запуске машины в WINDOWS. Нерезидентная часть включает программу обработки команд ОС, поступающих с терминала или из командных файлов. В нерезидентную часть входит загрузчик внешних программ, задачей которого является чтение очередной программы с диска в оперативную память, настройка адресов и переход на ее исполнение. Поскольку нерезидентная часть командного процессора располагается на старших адресах оперативной памяти, любая прикладная программа, загружаемая на младшие адреса, может частично или полностью занять и " затереть" эту область памяти. По окончании такой программы управление всегда возвращается в резидентную часть командного процессора, который в этом случае пытается восстановить затертую нерезидентную часть, загружая ее с системного диска.

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

Загружаемые модулем COMMAND.COM пользовательские (прикладные) программы и программы-оболочки (типа NORTON COMMANDER, DOS NAVIGATOR или PC TOOLS), обеспечивающие более удобный и наглядный способ общения с ПК, выполняют все необходимые графические, текстовые и расчетные работы, а также реализуют утилиты MS DOS, WINDOWS или Нортона.

Файлы IO.SYS, MSDOS.SYS и COMMAND.COM, программа-загрузчик ОС Boot Record и BIOS, входящие в базовое программное обеспечение (операционную систему) ПК, составляют минимально необходимый набор программ для работы компьютера. Диск, который содержит набор этих программ (за исключением BIOS, которая " вшита" в микросхему на Материнской плате), называется загрузочным или системным. С такого диска можно запустить (загрузить) компьютер в случае выхода из строя жесткого диска с операционной системой.

 


Поделиться:



Последнее изменение этой страницы: 2020-02-16; Просмотров: 196; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.037 с.)
Главная | Случайная страница | Обратная связь