КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лекция 8. Принципы обработки прерываний
(2часа)
Большинство изменений в ОС происходит в результате прерываний, которые вызывают процессы в ОС. Можно сказать, что программы обработки прерываний представляют собой движущую силу, обеспечивающую функционирование всех систем. Иногда говорят, что ОС является управляемой по прерываниям. Прерывания (аппаратные) – это сигналы, при поступлении которых нормальная последовательность выполнения программы может быть прервана, при этом система запоминает информацию, необходимую для возобновления работы прерванной программы, и передает управление подпрограмме обработки прерывания. По завершению обработки, как правило, управление возвращается прерванной программе. Все прерывания можно разделить на три основных типа: 1) аппаратные прерывания от периферийных устройств; 2) внутренние аппаратные прерывания; 3) программные прерывания. В подавляющем большинстве ОС обработку всех прерываний берет на себя сама система, способная повлиять на функционирование всех системных и прикладных программ. Поскольку типы и разновидности прерываний весьма многообразны и каждый из них требует особой обработки, большинство процессоров поддерживает векторные прерывания. Это означает, что каждая разновидность прерывания имеет свой номер, и этот номер используется как индекс в массиве, хранящем адреса ISR для всех прерываний. При возникновении прерывания аппаратура компьютера по номеру прерывания определяет адрес подпрограммы обработки и вызывает ее. Для того чтобы некоторые наиболее ответственные участки системных программ выполнялись без прерываний, система имеет возможность временно запретить прием большинства прерываний. Такой запрет должен устанавливаться лишь на короткие интервалы времени, не более нескольких миллисекунд. Программные прерывания вызываются выполнением специальной команды, но обрабатываются так же, как остальные типы прерываний. По сути, команда программного прерывания представляет собой особый случай вызова подпрограммы, но при этом вместо адреса подпрограммы указывается номер прерывания, обработчик которого должен быть вызван. В большинстве современных ОС программные прерывания используются для перехода из режима пользователя в режим ядра при вызове системных функций из прикладной программы. Одним из важнейших источников прерываний являются периферийные устройства. Как правило, устройство генерирует сигнал прерывания в одном из двух случаев: - при переходе в состояние готовности; - при возникновении ошибки выполнения операции. Состояние готовности – это такое состояние устройства, в котором оно готово принять и выполнить команды от процессора. Для устройства ввода готовность означает наличие в устройстве данных, которые могут быть переданы в процессор (например, клавиатура переходит в состояние «Готово» при нажатии клавиши и возвращается в состояние «Не готово», когда код нажатой клавиши считан в процессор). Для устройства вывода готовность – это возможность принять от процессора данные, которые следует вывести. Например, матричный принтер принимает символы, которые нужно напечатать, в свой внутренний буфер. Если буфер полон, принтер переходит в состояние «Не готово» до тех пор, пока часть символов будет напечатана и в буфере освободится место. Дисковый накопитель при начале выполнения новой операции чтения или записи на диск переходит в состояние «Не готово», а после завершения операции возвращается в состояние «Готово». В любом из этих случаев переход в состояние «Готово» – это повод для устройства напомнить о себе процессору. Для этого и служит сигнал прерывания. Ошибка операции также требует вмешательства системы или пользователя. Например, при ошибке отсутствия бумаги в лотке принтера система должна оповестить об этом пользователя; при ошибке чтения с диска либо система, либо пользователь должен решить, что делать: повторить операцию, завершить программу или продолжить выполнение. Не каждое устройство генерирует прерывания. Например, монитор ПК не выдает прерываний: он «всегда готов», т.е. всегда может принять данные для отображения, и он «никогда не ошибается», точнее сказать, его неисправность обнаруживается «на глаз».
Механизмы обмена данными
Когда драйверу необходимо удовлетворить запрос, он начинает инициацию с подготовки устройства. Существует три механизма перемещения данных из компьютера к периферийным устройствам. Это механизмы поллинга, прямого доступа в память и прерываний. Первый из них (поллинг) основан на периодической проверке состояния регистров периферийных устройств на выполнение запросов, стоящих в очереди буфера. Если устройство готово выполнить запрос, то драйвер выполняет его и инициализирует следующий запрос из очереди. Поллинг является самым простым, но и самым медленным механизмом и предназначен для таких устройств, как гибкие диски и модемы. Следующим механизмом является прямой доступ в память. В этом случае драйвером инициализируется прямой канал между физической памятью компьютера и периферийным устройством. Передача информации осуществляется без использования центрального процессора, который до окончания операции передачи данных в это время может выполнять другую задачу. Когда DMA передача закончена, на процессор посылается прерывание. Это прерывание переключает процессор на выполнение завершающих операций в режиме DМА. Третьим механизмом для организации обмена устройств с ОС является механизм прерываний. Когда некоторому периферийному устройству необходимо обменяться данными или сообщить о6 изменении своего состояния (например, нажатие клавиши клавиатуры или кнопки мыши), это устройство посылает специальный сигнал, называемый прерыванием на центральный процессор. Сигнал прерывания должен вызвать приостановку выполнения текущего процесса и переключить процессор на выполнение операции обслуживания устройства, которое послало этот сигнал. Если в процессоре разрешена обработка прерываний, то происходит запуск специальной программой обработки прерываний. По окончании работы этой программы управление передается прерванному процессу. Если в момент поступления прерывания обработка прерываний запрещена, то этот сигнал прерываний может быть потерян. Вообще говоря, процессор имеет только один уровень прерывания. Для того, чтобы можно было обрабатывать прерывания от множества устройств, в компьютере имеется специальное устройство - контроллер прерываний, который имеет несколько входов и один выход, соединенный с входом прерываний процессора. Существует два механизма работы контроллера прерываний: поллинговый и приоритетный. Поллинговый механизм аналогичен поллинговому механизму работы с устройствами. Устройство подает сигнал прерывания на контроллер, а контроллер циклически проверяет все свои входы на наличие поступивших сигналов прерываний. Прерывания обрабатываются по мере их поступлений. При приоритетном механизме обработки прерываний каждый вход контроллера прерываний имеет свой приоритет. Устройства, подключенные к входу контроллера с более высоким приоритетом, будут прерывать работу устройств с более низким приоритетом для выполнения своих функций. Когда контроллер прерываний не может удовлетворить все запросы на прерывания в некоторый промежуток времени, он начинает строить свою собственную очередь. Эта очередь будет выполняться в согласовании с работой планировщика. Кроме того, выполнение этой очереди будет более приоритетно по сравнению с выполнением других процессов. Суммируя, можно сказать, что драйверы скрывают детали управления периферийными устройствами и обеспечивают передачу данных. Буферный кэш помогает улучшить производительность системы путем размещения в нем фрагмента информации физической памяти. Прерывания - процесс, выполняемый ЦП, для прерывания работы программы в связи с необходимостью срочного выполнения действий либо по обработке исключения, либо обработке запросов, поступающих от внешней аппаратуры. Различают два вида прерываний: внутреннее и внешнее. К внутренним относят особые случаи, возникающие в процессе выполнения программы, специальные команды прерывания. Внутренние прерывания не могут быть запрещены или замаскированы и поступают в ЦП по линии НМП (немаскируемые прерывания). Внешние прерывания (аппаратные прерывания, маскируемые прерывания) поступают посредством контроллера прерываний по линии IN (interrupt). Обработка внешних прерываний может быть запрещена. При возникновении внутреннего или внешнего прерывания процессор сохраняет в стеке прерываемого приложения адреса команды, которая должна была бы быть исполнена если бы не возникло прерывание, регистр флагов. После завершения выполнения процедуры из стека извлекаются адреса невыполненной команды и ЦП продолжает выполнение прерванной команды. Любая операционная система должна быть построена так, чтобы разрешать таким устройствам, как диски, сетевые устройства, таймер асинхронно прерывать работу центрального процессора. При получении сигнала прерывания ядро операционной системы сохраняет сове текущее состояние, образ выполняемого процесса, устанавливает причину прерывания и обрабатывает прерывание. После того, как прерывание будет обработано ядром, прерванный контекст восстановится и работа продолжится так, как будто ничего не случилось. Устройствам обычно приписываются приоритеты в соответствии с очередностью обработки прерываний. В процессе обработки прерываний ядро учитывает их приоритеты и блокирует обслуживание прерывания с низким приоритетом во время обработки прерывания с более высоким приоритетом. Особые ситуации (разновидности прерываний) связаны с возникновением незапланированных событий, вызванных процессом, таких как недопустимая адресация, использование привилегированных команд, деление на ноль. Они отличаются от прерываний тем что, вызываются событиями, внешними по отношению к процессу. Особые ситуации возникают прямо "посредине" выполнения команды, и система, обработав особую ситуацию, пытается перезапустить команду. Считается, что прерывания возникают между выполнением двух команд, при этом система после обработки прерывания продолжает выполнение процесса, начиная со следующей команды. Для обработки прерываний и особых ситуаций в системе Unix используется один и тот же механизм. Обработка прерываний. Вход в ядро ОС обычно осуществляется по прерываниям. Когда ядро реагирует на данное прерывание, оно запрещает другие прерывания. После определения причины данного прерывания ядро передает его обработку специальному системному процессу, предназначаемому для работы с прерываниями данного типа. Схемы прерываний (типы): I) Прерывания по вызову супервизора. Инициатор прерывания – работающий процессор. II) Прерывания ввода/вывода. Инициируются аппаратурой ввода/вывода (завершается выполнение ввода/вывода, совершается ошибка, устройство переходит из одного состояния в другое). III) Внешние. Причины: истечение кванта времени (от таймера), нажатие пользователем клавиши прерывания на пульте управления, прием сигнала прерывания от другого процессора в мультипроцессорной системе. IV) По рестартам. Когда на пульте управления нажимается кнопка рестарта или когда от другого процессора в мультипроцессорной системе поступает команда рестарта. V) По ошибке программы. VI) По ошибке машины. Аппаратные ошибки: по питанию, испорченные области на диске. Для обработки каждого из этих типов прерываний предусмотрены программы, называемые обработчиками прерываний. Когда происходит прерывание, ОС запоминает состояние прерванного процесса и передает управление соответствующему обработчику прерываний. Когда обработка прерывания завершается, ЦП начинает обслуживать либо тот процесс, который выполнялся во время прерывания, либо готовый процесс с наивысшим прерыванием. Процессы называются параллельными, если они существуют одновременно. Параллельные процессы называются асинхронными, если они работают совершенно независимо друг от друга. Каждый процесс, обращающийся к общим ресурсам, исключает для всех других процессов возможность одновременного с ним обращения к этим ресурсам. Это называется взаимоисключением процессов. Вопросы для самоконтроля
1. В чем заключается механизм прерывания? 2. Назовите три основных типа прерывания. Охарактеризуйте их. 3. Механизмы обмена данными. Поллинг, прямой доступ в память и прерывания. 4. Для чего существует контроллер прерываний? 5. В чем сущность двух механизмов работы контроллера прерываний? 6. Виды прерываний в ОС. 7. Как осуществляется обработка прерываний в ОС? 8. Что такое обработчики прерываний? Лекция 9. Интерфейс пользователя. Разновидности интерфейсов (4 часа)
Интерфейс - совокупность технических, программных и методических (протоколов, правил, соглашений) средств сопряжения в вычислительной системе пользователей с устройствами и программами, а также устройств с другими устройствами и программами. Интерфейс - это способ (стандарт) взаимодействия между объектами. Интерфейс в техническом смысле слова задаёт параметры, процедуры и характеристики взаимодействия объектов. Различают: Интерфейс пользователя - набор методов взаимодействия компьютерной программы и пользователя этой программы. Программный интерфейс - набор методов для взаимодействия между программами. Физический интерфейс - способ взаимодействия физических устройств. Чаще всего речь идёт о компьютерных портах. Пользовательский интерфейс - это совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером. Основу такого взаимодействия составляют диалоги. Под диалогом в данном случае понимают регламентированный обмен информацией между человеком и компьютером, осуществляемый в реальном масштабе времени и направленный на совместное решение конкретной задачи. Каждый диалог состоит из отдельных процессов ввода / вывода, которые физически обеспечивают связь пользователя и компьютера. Обмен информацией осуществляется передачей сообщения.
Рис.9.1. Взаимодействие пользователя с компьютером В основном пользователь генерирует сообщения следующих типов: - запрос информации - запрос помощи - запрос операции или функции - ввод или изменение информации В ответ пользователь получает подсказки или справки; информационные сообщения, требующие ответа; приказы, требующие действия; сообщения об ошибках и другую информацию. Интерфейс пользователя компьютерного приложения включает: - средства отображения информации, отображаемую информацию, форматы и коды; - командные режимы, язык "пользователь - интерфейс"; - устройства и технологии ввода данных; - диалоги, взаимодействие и транзакции между пользователем и компьютером, обратную связь с пользователем; - поддержку принятия решений в конкретной предметной области; - порядок использования программы и документацию на неё. Пользовательский интерфейс (ПИ) часто понимают только как внешний вид программы. Однако на деле пользователь воспринимает через него всю программу в целом, а значит, такое понимание является слишком узким. В действительности ПИ объединяет в себе все элементы и компоненты программы, которые способны оказывать влияние на взаимодействие пользователя с программным обеспечением (ПО). Это не только экран, который видит пользователь. К этим элементам относятся: - набор задач пользователя, которые он решает при помощи системы; - используемая системой метафора (например, рабочий стол в MS Windows); - элементы управления системой; - навигация между блоками системы; - визуальный (и не только) дизайн экранов программы; - средства отображения информации, отображаемая информация и форматы; - устройства и технологии ввода данных; - диалоги, взаимодействие и транзакции между пользователем и компьютером; - обратная связь с пользователем; - поддержка принятия решений в конкретной предметной области; - порядок использования программы и документация на нее. Виды интерфейсов Современными видами интерфейсов являются: 1) Командный интерфейс. Командный интерфейс называется так по тому, что в этом виде интерфейса человек подает "команды" компьютеру, а компьютер их выполняет и выдает результат человеку. Командный интерфейс реализован в виде пакетной технологии и технологии командной строки. 2) WIMP - интерфейс (Window - окно, Image - образ, Menu - меню, Pointer - указатель). Характерной особенностью этого вида интерфейса является то, что диалог с пользователем ведется не с помощью команд, а с помощью графических образов - меню, окон, других элементов. Хотя и в этом интерфейсе подаются команды машине, но это делается "опосредственно", через графические образы. Этот вид интерфейса реализован на двух уровнях технологий: простой графический интерфейс и "чистый" WIMP - интерфейс. 3) SILK - интерфейс (Speech - речь, Image - образ, Language - язык, Knowlege - знание). Этот вид интерфейса наиболее приближен к обычной, человеческой форме общения. В рамках этого интерфейса идет обычный "разговор" человека и компьютера. При этом компьютер находит для себя команды, анализируя человеческую речь и находя в ней ключевые фразы. Результат выполнения команд он также преобразует в понятную человеку форму. Этот вид интерфейса наиболее требователен к аппаратным ресурсам компьютера, и поэтому его применяют в основном для военных целей. Командный интерфейс Пакетная технология. Исторически этот вид технологии появился первым. Она существовала уже на релейных машинах Зюса и Цюзе (Германия, 1937 год). Идея ее проста: на вход компьютера подается последовательность символов, в которых по определенным правилам указывается последовательность запущенных на выполнение программ. После выполнения очередной программы запускается следующая и т.д. Машина по определенным правилам находит для себя команды и данные. В качестве этой последовательности может выступать, например, перфолента, стопка перфокарт, последовательность нажатия клавиш электрической пишущей машинки (типа CONSUL). Машина также выдает свои сообщения на перфоратор, алфавитно-цифровое печатающее устройство (АЦПУ), ленту пишущей машинки. Такая машина представляет собой "черный ящик" (точнее "белый шкаф"), в который постоянно подается информация и которая также постоянно "информирует" мир о своем состоянии (см. рисунок 9.2)
Рис.9.2. Вид большой ЭВМ серии ЕС ЭВМ Технология командной строки. При этой технологии в качестве единственного способа ввода информации от человека к компьютеру служит клавиатура, а компьютер выводит информацию человеку с помощью алфавитно-цифрового дисплея (монитора). Эту комбинацию (монитор + клавиатура) стали называть терминалом, или консолью. Команды набираются в командной строке. Командная строка представляет собой символ приглашения и мигающий прямоугольник - курсор. При нажатии клавиши на месте курсора появляются символы, а сам курсор смещается вправо. Это очень похоже на набор команды на пишущей машинке. Однако, в отличие от нее, буквы отображаются на дисплее, а не на бумаге, и неправильно набранный символ можно стереть. Команда заканчивается нажатием клавиши Enter. После этого осуществляется переход в начало следующей строки. Именно с этой позиции компьютер выдает на монитор результаты своей работы. Затем процесс повторяется. Технология командной строки уже работала на монохромных алфавитно-цифровых дисплеях. Поскольку вводить позволялось только буквы, цифры и знаки препинания, то технические характеристики дисплея были не существенны. В качестве монитора можно было использовать телевизионный приемник и даже трубку осциллографа. Обе эти технологии реализуются в виде командного интерфейса - машине подаются на вход команды, а она как бы "отвечает" на них. Преобладающим видом файлов при работе с командным интерфейсом стали текстовые файлы - их и только их можно было создать при помощи клавиатуры. На время наиболее широкого использования интерфейса командной строки приходится появление операционной системы UNIX и появление первых восьмиразрядных персональных компьютеров с многоплатформенной операционной системой CP / M. Графический интерфейс Как и когда появился графический интерфейс? Его идея зародилась в середине 70-х годов, когда в исследовательском центре Xerox Palo Alto Research Center (PARC) была разработана концепция визуального интерфейса. Предпосылкой графического интерфейса явилось уменьшение времени реакции компьютера на команду, увеличение объема оперативной памяти, а также развитие технической базы компьютеров. Аппаратным основанием концепции, конечно же, явилось появление алфавитно-цифровых дисплеев на компьютерах, причем на этих дисплеях уже имелись такие эффекты, как "мерцание" символов, инверсия цвета (смена начертания белых символов на черном фоне обратным, то есть черных символов на белом фоне), подчеркивание символов. Эти эффекты распространились не на весь экран, а только на один или более символов. Следующим шагом явилось создание цветного дисплея, позволяющего выводить, вместе с этими эффектами, символы в 16 цветах на фоне с палитрой (то есть цветовым набором) из 8 цветов. После появления графических дисплеев, с возможностью вывода любых графических изображений в виде множества точек на экране различного цвета, фантазии в использовании экрана вообще не стало границ! Первая система с графическим интерфейсом 8010 Star Information System группы PARC, таким образом, появилась за четыре месяца до выхода в свет первого компьютера фирмы IBM в 1981 году. Первоначально визуальный интерфейс использовался только в программах. Постепенно он стал переходить и на операционные системы, используемых сначала на компьютерах Atari и Apple Macintosh, а затем и на IBM - совместимых компьютерах. С более раннего времени, и под влиянием также и этих концепций, проходил процесс по унификации в использовании клавиатуры и мыши прикладными программами. Слияние этих двух тенденций и привело к созданию того пользовательского интерфейса, с помощью которого, при минимальных затратах времени и средств на переучивание персонала, можно работать с любыми программным продуктом. Описание этого интерфейса, общего для всех приложений и операционных систем, и посвящена данная часть. Простой графический интерфейс На первом этапе графический интерфейс очень походил на технологию командной строки. Отличия от технологии командной строки заключались в следующим: 1. При отображении символов допускалось выделение части символов цветом, инверсным изображением, подчеркиванием и мерцанием. Благодаря этому повысилась выразительность изображения. 2. В зависимости от конкретной реализации графического интерфейса курсор может представляться не только мерцающим прямоугольником, но и некоторой областью, охватывающей несколько символов и даже часть экрана. Эта выделенная область отличается от других, невыделенных частей (обычно цветом). 3. Нажатие клавиши Enter не всегда приводит к выполнению команды и переходу к следующей строке. Реакция на нажатие любой клавиши во многом зависит от того, в какой части экрана находился курсор. 4. Кроме клавиши Enter, на клавиатуре все чаще стали использоваться "серые" клавиши управления курсором. 5. Уже в этой редакции графического интерфейса стали использоваться манипуляторы (типа мыши, трекбола и т.п. - см. рис.3) Они позволяли быстро выделять нужную часть экрана и перемещать курсор. Рис.9.3. Манипуляторы Подводя итоги, можно привести следующие отличительные особенности этого интерфейса. 1) Выделение областей экрана. 2) Переопределение клавиш клавиатуры в зависимости от контекста. 3) Использование манипуляторов и серых клавиш клавиатуры для управления курсором. 4) Широкое использование цветных мониторов. Появление этого типа интерфейса совпадает с широким распространением операционной системы MS-DOS. Именно она внедрила этот интерфейс в массы, благодаря чему 80-е годы прошли под знаком совершенствования этого типа интерфейса, улучшения характеристик отображения символов и других параметров монитора. Типичным примером использования этого вида интерфейса является файловая оболочка Nortron Commander (о файловых оболочках смотри ниже) и текстовый редактор Multi-Edit. А текстовые редакторы Лексикон, ChiWriter и текстовый процессор Microsoft Word for Dos являются примером, как этот интерфейс превзошел сам себя. WIMP - интерфейс Вторым этапом в развитии графического интерфейса стал "чистый" интерфейс WIMP, Этот подвид интерфейса характеризуется следующими особенностями. 1. Вся работа с программами, файлами и документами происходит в окнах - определенных очерченных рамкой частях экрана. 2. Все программы, файлы, документы, устройства и другие объекты представляются в виде значков - иконок. При открытии иконки превращаются в окна. 3. Все действия с объектами осуществляются с помощью меню. Хотя меню появилось на первом этапе становления графического интерфейса, оно не имело в нем главенствующего значения, а служило лишь дополнением к командной строке. В чистом WIMP - интерфейсе меню становится основным элементом управления. 4. Широкое использование манипуляторов для указания на объекты. Манипулятор перестает быть просто игрушкой - дополнением к клавиатуре, а становится основным элементом управления. С помощью манипулятора УКАЗЫВАЮТ на любую область экрана, окна или иконки, ВЫДЕЛЯЮТ ее, а уже потом через меню или с использованием других технологий осуществляют управление ими. Следует отметить, что WIMP требует для своей реализации цветной растровый дисплей с высоким разрешением и манипулятор. Также программы, ориентированные на этот вид интерфейса, предъявляют повышенные требования к производительности компьютера, объему его памяти, пропускной способности шины и т.п. Однако этот вид интерфейса наиболее прост в усвоении и интуитивно понятен. Поэтому сейчас WIMP - интерфейс стал стандартом де-факто. Ярким примером программ с графическим интерфейсом является операционная система Microsoft Windows. Типы интерфейсов Интерфейсы пользователя бывают двух типов: 1) процедурно-ориентированные: примитивные, меню со свободной навигацией 2) объектно-ориентированные: прямого манипулирования. Процедурно-ориентированный интерфейс использует традиционную модель взаимодействия с пользователем, основанную на понятиях "процедура" и "операция". В рамках этой модели программное обеспечение предоставляет пользователю возможность выполнения некоторых действий, для которых пользователь определяет соответствие данных и следствием выполнения которых является получение желаемого результата. Объектно-ориентированные интерфейсы используют модель взаимодействия с пользователем, ориентированную на манипулирование объектами предметной области. В рамках этой модели пользователю предоставляется возможность напрямую взаимодействовать с каждым объектом и инициировать выполнение операций, в процессе которых взаимодействуют несколько объектов. Задача пользователя формулируется как целенаправленное изменение некоторого объекта. Объект понимается в широком смысле слова - модель БД, системы и т.д. Объектно-ориентированный интерфейс предполагает, что взаимодействие с пользователем осуществляется посредством выбора и перемещения пиктограмм соответствующей объектно-ориентированной области. Различают однодокументные (SDI) и многодокументные (MDI) интерфейсы. Процедурно-ориентированные интерфейсы: 1) Обеспечивают пользователю функции, необходимые для выполнения задач; 2) Акцент делается на задачи; 3) Пиктограммы представляют приложения, окна или операции; 4) Содержание папок и справочников отражается с помощью таблицы-списка. Объектно-ориентированные интерфейсы: 1) Обеспечивает пользователю возможность взаимодействия с объектами; 2) Акцент делается на входные данные и результаты; 3) Пиктограммы представляют объекты; 4) Папки и справочники являются визуальными контейнерами объектов. Примитивным называется интерфейс, который организует взаимодействие с пользователем и используется в консольном режиме. Единственное отклонение от последовательного процесса, который обеспечивается данными, заключается в организации цикла для обработки нескольких наборов данных. Интерфейс Меню. В отличие от примитивного интерфейса, позволяет пользователю выбирать операцию из специального списка, выводимого ему программой. Эти интерфейсы предполагают реализацию множества сценариев работы, последовательность действий в которых определяется пользователями. Древовидная организация меню предполагает строго ограниченную реализацию. При этом возможны два варианта организации меню: - каждое окно меню занимает весь экран - на экране одновременно присутствуют несколько разноуровневых меню (Windows). В условиях ограниченной навигации, независимо от варианта реализации, поиск пункта более чем двух уровневого меню оказывается довольно сложной задачей. Интерфейс со свободной навигацией (графический интерфейс). Поддерживает концепцию интерактивного взаимодействия с ПО, визуальную обратную связь с пользователем и возможность прямого манипулирования объектом (кнопки, индикаторы, строки состояния). В отличие от интерфейса Меню, интерфейс со свободной навигацией обеспечивает возможность осуществления любых допустимых в конкретном состоянии операций, доступ к которым возможен через различные интерфейсные компоненты ("горячие" клавиши). Интерфейс со свободной навигацией реализуется с использованием событийного программирования, что предполагает применение визуальных средств разработки (посредством сообщений). Вопросы для самоконтроля
1. Понятие интерфейса. 2. Что такое интерфейс пользователя, программный интерфейс, физический интерфейс и пользовательский интерфейс? 3. Современные виды интерфейсов: Командный интерфейс, WIMP – интерфейс, SILK – интерфейс. 4. Типы интерфейсов. 5. Что относится к процедурно-ориентированным интерфейсам? 6. Что относится к объектно-ориентированным интерфейсам?
Лекция 10. Разделение доступа к данным в ОС (2 часа) С каждым файлом в ОС связана пара идентификаторов — пользовательский и групповой. Файл наследует эти идентификаторы от эффективных идентификаторов процесса, создавшего данный файл. Процесс, эффективный пользовательский ID которого совпадает с пользовательским ID файла, считается владельцем данного файла. Каждому пользователю и группе, в которую он входит, присвоены уникальные целочисленные ID. Входя в систему, пользователь сообщает ей свое имя, по которому определяется его ID и права доступа. Вызывая команды, пользователь тем самым порождает процессы, которые наследуют его права, UID и GID. Права процессов при доступе к файлу хранятся в атрибутах защиты файла. Проверка прав происходит, когда процесс пытается открыть файл для чтения или записи, выполнить его. В отличие от обычной ОС, ЗОС регулирует доступ к системным ресурсам исходя из соображений не только возможности их совместного использования конкурирующими приложениями, но и исходя из принятой в данной конкретной ЗОС политики безопасности (ПБ). ПБ – это конкретные наборы правил, на основании которых делается вывод о предоставлении доступа субъекта к объекту, сведены в различные модели безопасности (МБ). Рис. 10.1 Защищенная ОС Разработка специального слоя в ЗОС, являющимся соединительным звеном между конкретной реализацией архитектуры ОС и абстрактной ПБ. Данный слой мог бы обеспечить четкий интерфейс между этими двумя уровнями ЗОС, гарантирующий адекватное внедрение любой ПБ (см. рис.10.2). Очевидно, что разработка интерфейса возможна только тогда, когда можно четко определить набор функций, выполняемый каждой из сторон. Для выделения данного набора обратимся сначала к стороне ОС. Исходя из основного предназначения ОС следует, что она должна предоставить возможность работы с различными ресурсами системы. В общем случае над ресурсом можно определить четыре действия: чтение данных; запись данных; чтение параметров; установка параметров. Рис.10.2 Промежуточный интерфейсный слой между абстрактной ПБ и ОС в ЗОС Набор параметров ресурса зависит от его природы. Ресурсы с одинаковым набором параметров будем называть ресурсами одного типа. В любой ОС существует модуль, отвечающий за взаимодействие с ресурсами определенного типа (будем называть такой модуль сервером ресурса). Сервер ресурса – сущность, тесно связанная с ресурсом, поскольку именно свойства ресурса определяют возможность его совместного использования. Будем предполагать, что все ресурсы одного типа представлены в системе одним сервером. Таким образом, на уровне обычной ОС доступ к ресурсам осуществляется через соответствующие сервера, которые, зная специфику своих ресурсов, обеспечивают их корректное использование различными субъектами (см. рис. 10.3). Рис. 10.3 Сервер ресурсов На данном уровне речь идет только о таком совместном использовании ресурсов, при котором информация, заключенная в них, не разрушается. При этом для сервера не имеет значения, какие именно субъекты используют ресурс в данный момент, важно только – в каких режимах. Таким образом, ОС должна предоставить набор серверов ресурсов, каждый из которых должен позволять совершать над ресурсами своего типа описанные ранее действия. Кроме них сервер добавляет действия над ресурсом, связанные с организацией его совместного использования. Это захват (или открытие) и освобождение (или закрытие) ресурса. При захвате ресурса субъект сообщает серверу, в каком режиме он собирается использовать ресурс для того, чтобы сервер мог определить, совместим ли данный режим с режимами, в которых ресурс уже используется другими субъектами. Соответственно, при освобождении ресурса субъект сообщает серверу, что больше не претендует на использование данного ресурса. Кроме поддержки совместного использования ресурса на сервер ложится обязанность по его созданию и уничтожению. Данные функции естественно возложить на сервер ресурса, поскольку именно он «знает» все его особенности, кроме того, очевидно, что их нельзя возложить на сам ресурс. В итоге сервер ресурса предоставляет субъекту восемь интерфейсных функций работы с ресурсом: чтение данных; запись данных; чтение параметров; установка параметров; открытие; закрытие; создание; уничтожение. Четкое определение функций сервера ресурса необходимо для того, чтобы можно было конкретизировать, какие именно действия над ресурсами может регулировать уровень ПБ, что делает возможным более предметный подход к разработке или адаптации МБ для ЗОС.
Вопросы для самоконтроля
1. Что такое пользовательский и групповой идентификатор? 2. Где хранятся права процессов? 3. Что такое политика безопасности и как можно её осуществить?
Дата добавления: 2014-11-16; Просмотров: 5139; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |