Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Как и в сегментном способе распределения памяти, программа разбивается на логически законченные части — сегменты — и виртуальный адрес содержит указание на номер соответствующего сегмента. Вторая составляющая виртуального адреса — смещение относительно начала сегмента — в свою очередь может быть представлено состоящим из двух полей: виртуальной страницы и индекса. Другими словами, получается, что виртуальный адрес теперь состоит из трех компонентов: сегмента, страницы и индекса. Получение физического адреса и извлечение из памяти необходимого элемента для этого способа иллюстрирует рис.
Из рисунка сразу видно, что этот способ организации виртуальной памяти вносит еще большую задержку доступа к памяти. Необходимо сначала вычислить адрес дескриптора сегмента и прочитать его, затем определить адрес элемента таблицы страниц этого сегмента и извлечь из памяти необходимый элемент и уже только после этого можно к номеру физической страницы приписать номер ячейки в странице (индекс). Задержка доступа к искомой ячейке получается, по крайней мере, в три раза больше, чем при простой прямой адресации. Чтобы избежать этой неприятности, вводится кэширование, причем кэш, как правило, строится по ассоциативному принципу. Другими словами, просмотры двух таблиц в памяти могут быть заменены одним обращением к ассоциативной памяти.
Оценим достоинства сегментно-страничного способа. Разбиение программы на сегменты позволяет размещать сегменты в памяти целиком. Сегменты разбиты на страницы, все страницы сегмента загружаются в память. Это позволяет сократить число обращений к отсутствующим страницам, поскольку вероятность выхода за пределы сегмента меньше вероятности выхода за пределы страницы. Страницы исполняемого сегмента находятся в памяти, но при этом они могут находиться не рядом друг с другом, а «россыпью», поскольку диспетчер памяти манипулирует страницами. Наличие сегментов облегчает разделение программных модулей между параллельными процессами. Возможна и динамическая компоновка задачи. А выделение памяти страницами позволяет минимизировать фрагментацию.
Т е м а 1.8 Управление данными.
Организация управления данными. Методы доступа. Файловые системы. Управление ресурсами. Графический интерфейс операционных систем. http://www.electriz.ru
Управление данными — важнейший компонент операционной системы, так как осуществляет связь вычислительной системы с «окружающей средой»: реализует запросы на ввод-вывод, исходящие как от программы пользователя, так и от программы операционной системы.
Основные функции управления данными.
Управление данными предназначено для выполнения следующих функций:
o централизованного осуществления операций ввода-вывода (операций обмена) с использованием внешних (периферийных) устройств;
o обеспечения хранения данных на устройствах внешней памяти;
o обеспечения различных способов организации и идентификации данных;
o каталогизации данных, позволяющей осуществлять их поиск используя лишь символическое имя без указания местонахождения;
o автоматического распределения памяти на томах прямого доступа;
o автоматического поиска данных по их символическому имени;
o обеспечения независимости программ от характеристик данных, которые они обрабатывают, и типов используемых внешних устройств;
o обеспечения различных методов доступа к данным в зависимости от их организации и логического уровня способа доступа.
Централизованное выполнение операций ввода-вывода создает возможности для организации мультипрограммной обработки данных и оптимизации операций обмена с внешними устройствами. Это позволяет сократить продолжительность простоев центрального процессора и время выполнения заданий, увеличить эффективность использования внешних устройств. Автоматизация процессов обмена информацией позволяет свести до минимума потребность в ручном вмешательстве оператора и в значительной степени упростить процесс разработки и отладки программ.
Все функции управления данными, перечисленные выше, можно разделить на два вида:
1. управление процессами ввода-вывода в вычислительной системе;
2. организация данных, хранимых в вычислительной системе. Эта функция имеет отношение только к данным, хранимым на внешних запоминающих устройствах (НМД и НМЛ).
Оба вида функций реализуются через операции ввода-вывода, поэтому организация ввода-вывода является основой управления данными.
Архитектура современных ЭВМ рассчитана на аппаратно-программную организацию операций ввода-вывода, которая предполагает функционирование аппаратных средств ввода-вывода под управлением управляющей программы. Аппаратная часть организации ввода-вывода основана на реализации этих операций в специализированных устройствах, называемых каналами ввода-вывода, либо в специализированных ЭВМ (в зависимости от объема функций, выполняемых этими устройствами).
Важной особенностью этих устройств является то, что они функционируют параллельно и асинхронно с центральными устройствами. Синхронизация работы центральных устройств и устройств ввода-вывода осуществляется при запуске и завершении операций в устройстве.
Запуск устройств ввода-вывода осуществляется по специальным командам, выдаваемым управляющей программой центрального процессора. При завершении операции ввода-вывода устройства выдают управляющей программе центрального процессора сигнал прерывания. В процессе функционирования устройство ввода-вывода действует в соответствии с собственной программой.
В разд. 17.4 будут описаны периферийные устройства и способы непосредственного программирования работы этих устройств. Однако на самом деле крайне редко приходится программировать на таком низком уровне. Вместо этого для организации различного рода обменов между памятью и периферийными устройствами, а также для создания и ведения наборов данных различной организации используются специальные системные программы, носящие название методов доступа. Команда ввода-вывода, использующая методы доступа, представляет собой обращение к некоторому набору системных программ, называемых супервизором ввода-вывода. Сами операции ввода-вывода выполняются уже непосредственно супервизором ввода-вывода с использованием связанных с ним подпрограмм. Фактически это означает, что при использовании методов доступа исчезает необходимость заботиться о конкретных деталях, связанных с выполнением операций ввода-вывода, об этом заботятся сами методы доступа.
В каждой операционной системе предусмотрено несколько методов доступа. Выбор какого-либо конкретного метода зависит от самой операционной системы, от организации обрабатываемого набора данных и, наконец, от требуемого способа буферизации.
Рис. 17.5. (а) Простая буферизация задерживает выполнение программы до заполнения буфера, (б) Применение нескольких буферов обеспечивает совмещение выполнения программы и передачи данных.
Буферы. Буферами называются области памяти, предназначенные для размещения введенной с периферийного устройства информации или информации, подготовленной для вывода на периферийное устройство. В наиболее часто встречающемся случае вместе с запросом на ввод задается адрес буфера. Супервизор ввода-вывода выполняет непосредственный ввод блока с некоторого устройства в буфер. Если же мы хотим произвести вывод, то нам самим нужно позаботиться о соответствующем содержимом буфера. Когда данные подготовлены, посылается запрос на выполнение вывода, снабженный адресом буфера; сам вывод осуществляется уже непосредственно системой.
На рис. 17.6,а изображена последовательность событий, происходящих при периодическом запросе ввода в единственный буфер. Ввод запрашивается программой пользователя. Поскольку, скорее всего, работа программы пользователя не может быть продолжена до окончания обмена, супервизор временно приостанавливает ее выполнение до окончания обмена.
Выполнение операций ввода-вывода даже самыми быстрыми устройствами проходит относительно медленно, за это время процессор обычно может выполнить тысячи операций. Таким образом, использование всего лишь одного буфера значительно замедляет выполнение программы. Однако не надо думать, что, пока проходит ввод-вывод, процессор не в состоянии выполнять какие-либо иные операции. Как мы увидим в разд. 17.4, ЭВМ Систем 360 и 370 допускают одновременную работу процессора и периферийных устройств. В таких случаях говорят о совмещении выполнения операций ввода-вывода с выполнением обычных команд программы.
Возможность подобного совмещения можно удачно использовать, производя обмены, например, с двумя буферами. Пример такого использования изображен на рис. 17.5,6. При последовательной обработке супервизор организует ввод информации в том порядке, в котором она находится в файле. Таким образом, система фактически может, «предвидя» следующие запросы, заполнять буфер еще до получения заказа на ввод. Фактически, если обработка данных производится программой пользователя не быстрее, чем система может заполнять и освобождать буферы, то использование сразу нескольких буферов позволяет свести до минимума потери, возникающие в связи с необходимостью выполнения операций ввода-вывода. Использование нескольких буферов также позволяет увеличить общую скорость вывода информации.
Однако лишь при последовательной обработке данных использование нескольких буферов может дать выигрыш во времени. Если обработка данных производится в произвольной, случайной последовательности, то, что мы назвали «предвидением» системы, теряет смысл.
Каждая операционная система предусматривает наличие нескольких методов доступа. Степень необходимого участия программиста в решении многих вопросов, связанных с использованием буферов, в большой степени зависит от применяемого метода доступа. Некоторые методы доступа позволяют пользователям вообще не заботиться о буферах, выполняя всю необходимую работу автоматически. В других случаях управление буферами может целиком возлагаться на пользователя. Существуют и методы, предоставляющие пользователю выбор относительно того, пользоваться услугами системы для управления буферами или нет.
Методы доступа системы DOS. Все методы доступа Дисковой операционной системы предполагают полуавтоматическое управление буферизацией. Для обеспечения возможности работы системы необходимо зарезервировать внутри своей программы одну или две буферных области. Если работа производится с двумя буферными областями, то выполнение всех операций ввода-вывода при работе с последовательными файлами производится системой еще до получения реальных запросов. Пользователь может заказать блокирование данных при выводе и разблокирование при вводе. В системе DOS возможны следующие способы организации наборов данных: последовательный, индексно-последовательный и прямой. Основными методами доступа системы DOS являются:
- Последовательный метод доступа (SAM)
- Индексно-последовательный метод доступа (ISAM)
- Прямой метод доступа (DAM)
Таблица 17.1 Некоторые методы доступа системы OS
Наименование | Мнемоника | Функции |
Queued Sequential Access Method | QSAM | Последовательная организация данных, способ доступа с очередями |
Basic Sequential Access Method | BSAM | Последовательная организация данных, базисный способ доступа |
Queued Indexed Sequential Access Method | QISAM | Создание и последовательная обработка индексно-последовательных файлов |
Basic Indexed Sequential Access Method | BISAM | Произвольная обработка индексно-последовательных файлов |
BasicPartitioned Access Method | BPAM | Создание и обработка библиотечных наборов данных |
BasicDirect Access Method | BDAM | Обработка файлов с прямой организацией |
TelecommunicationsAccess Method | TCAM | Взаимодействие с удаленными терминалами |
Методы доступа системы OS. Методы доступа операционной системы OS распадаются на два класса: базисные методы доступа и методы доступа с очередями. Методы доступа с очередями обеспечивают полностью автоматическое управление буферизацией. Система сама заботится о ведении буферных областей. Система же производит блокирование и разблокирование записей. Методы доступа с очередями используются при обработке последовательных и индексно-последовательных файлов. Эти методы позволяют достичь максимальной эффективности обработки при минимуме требований, предъявляемых к программе пользователя.
По сравнению с методами с очередями базисные методы доступа являются гораздо более примитивными. Тем не менее, они позволяют достичь большей гибкости работы с данными. Часть обязанностей по управлению буферизацией теперь возлагается на пользователя, кроме того, на пользователя возлагается и разблокирование записей. Базисные методы доступа используются в основном, когда приходится иметь дело с непоследовательной обработкой наборов данных. Список наиболее употребительных методов доступа системы OS приведен в табл. 17.1.
В своем рассмотрении мы лишь слегка затронули вопросы, связанные со структурами данных и предоставляемыми операционной системой возможностями выполнения операций ввода-вывода. Тем не менее, этого материала достаточно для того, чтобы приступить к обсуждению использования методов доступа при программировании ввода-вывода. В дальнейшем нас будут интересовать лишь последовательные методы доступа с очередями систем OS и DOS. Несмотря на то, что принцип использования последовательного метода доступа с очередями является общим для двух изучаемых нами систем, конкретные детали все-таки достаточно сильно различаются. Целесообразно рассмотреть лишь материал, связанный с программированием ввода-вывода в вашей конкретной системе. После этого, однако, вы можете просмотреть и другой раздел с целью знакомства со сходными моментами в работе с двумя системами. http://itteach.ru/vvod-i-vivod/strukturi-dannich/metodi-dostupa
Управление ресурсами. Операционная система не только предоставляет пользователям и программистам удобный интерфейс к аппаратным средствам компьютера, но и является механизмом, распределяющим ресурсы компьютера.
К числу основных ресурсов современных вычислительных систем могут быть отнесены такие ресурсы, как процессоры, основная память, таймеры, наборы данных, диски, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессорами. Процесс (задача) представляет собой базовые понятие большинства современных ОС и часто кратко определяется как программа в стадии выполнения. Программа - это статический объект, представляющий собой файл с кодами и данными. Процесс - это динамический объект, который возникает в операционной системе после того, как пользователь или сама операционная система решает "запустить программу на выполнение", то есть создать новую единицу вычислительной работы. Например, ОС может создать процесс в ответ на команду пользователя run prg1. exe, где prg1. exe - это время файла, в котором хранится код программы.
Во многих современных ОС для обозначения минимальной единицы работы ОС используют термин " нить", или "поток", при этом изменяется суть термина "процесс".
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является назначением операционной системы.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
- планирование ресурса - то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделятся частями) следует выделить данный ресурс;
- удовлетворение запросов на ресурсы;
- отслеживание состояния и учет использования ресурса - то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
- разрешение конфликтов между процессами.
Для решения этих общих задач управления ресурсами разные ОС используют различные алгоритмы, особенности которых в конечном счете и определяют облик ОС в целом, включая характеристики производительности, область применения и даже пользовательский интерфейс. Например, применяемый алгоритм управления процессором в значительной степени определяет, может ли ОС использоваться как система разделения времени, система пакетной обработки или система реального времени. http://www.bgsha.com/ru/learning/course/print.php?COURSE_ID=7&LESSON_ID=391
Т е м а 1.9 Подключение внешних устройств
Утилиты. Драйверы. Инструментальные системы. Архитектура и реализация технологии Plug and Play. Средства мультимедиа.
Утилиты - это специализированные программы, предназначенные для обслуживания и оптимизации работы системы, программы-помощники, решающие задачи, с которыми сама оперативная система справиться не в состоянии. Большинство утилит предназначено для обслуживания файловой системы и дисков. Некоторые утилиты используются для ведения архивов данных, а специальные антивирусные программы обеспечивают защиту системы от компьютерных вирусов. Утилиты - необходимая компонента инструментария программиста любого уровня и, в первую очередь, прикладного. Первоначально слово "утилита" отождествлялось с простыми маленькими программами. Но сегодняшние утилиты часто занимают десятки мегабайт и по сложности не уступают некоторым офисным пакетам. И выполнять они могут уже не одну-две операции, как раньше, а значительно больше...
Дата публикования: 2014-11-04; Прочитано: 1316 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!