Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Основные понятия организации ввода/вывода в ОС




Главный принцип ввода/вывода – любые операции по управлению вводом/выводом объявляются привилегированными и могут выполняться только самой ОС.

Для обеспечения этого принципа в большинстве процессоров вводятся два режима:

- режим пользователя, выполнение команд ввода/вывода запрещено;

- режим супервизора, выполнение команд ввода/вывода разрешено.

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

Для ОС одним из основных видов ресурсов являются устройства ввода/вывода и обслуживающие их программы. ОС должны управлять устройствами и позволять параллельно выполняющимися задачам использовать различные устройства ввода/вывода.

Непосредственное обращение к внешним устройствам из пользовательских программ не разрешено по трем причинам:

- возможные конфликты при доступе к устройствам ввода/вывода;

- повышение эффективности использование этих ресурсов;

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

Компонента ОС, выполняющая ввод/вывод называется супервизором ввода/вывода. Основные задачи супервизора следующие:

- получение, проверка на корректность и выполнение запросов на ввод/вывод от прикладных задач и от модулей самой системы;

- планирование ввода/вывода: выполнение или постановка в очередь;

- передача управления драйверам;

- - передача сообщений об ошибках, если они появляются;

- передача сигнала о завершении операции ввода/вывода.

 

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

Можно сказать, что программы создаются для работы в некоторой заданной операционной среде. Например, можно создать программу для работы в среде DOS. Если такая программа все функции, связанные с операциями ввода-вывода и с запросами памяти, выполняет не сама, а за счет обращения к системным функциям DOS, то она будет (в абсолютном большинстве случаев) успешно выполняться и в MS DOS, и в PC DOS, и в Windows 9x, и в Windows 2000, и в OS/2, и даже в Linux.

Итак, параллельное существование терминов «операционная система» и «операционная среда» вызвано тем, что операционная система (в общем случае) может поддерживать несколько операционных сред. Почти все современные 32-разрядные операционные системы, созданные для персональных компьютеров, поддерживают по нескольку операционных сред.

Ооперационная система Windows XP позволяет выполнять помимо основных приложений, созданных с использованием Win32 API, 16-разрядные приложения для Windows 3.x, 16-разрядные DOS-приложения, 16-разрядные приложения для первой версии OS/2.

Программа, созданная непосредственно для Windows, не будет выполняться в Linux; однако если в операционной системе Linux организовать полноценную операционную среду Windows, то наша Windows-программа может быть выполнена.

 

Давайте попробуем ответить на вопрос: почему до сих пор нет операционной среды, которая удовлетворила если не всех пользователей, то хотя - бы большинство?

В общем-то, ответ очевиден - слишком уж сложна проблема. Найти для нее простое и изящное решение практически нереально. Потенциальная система-победитель должна быть:

ü внутренне логична;

ü удобна в употреблении рядовым пользователем;

ü легко расширяться для новых задач;

ü эффективно использовать ресурсы компьютера.

 

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

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

С точки зрения разработчиков возможные варианты следующие:

 

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

 

Сегодня для каждого из этих подходов существуют основанные на нем достаточно широко распространенные операционные среды.

Рассмотрим сначала первое предложение: построить логически стройную систему, для этого

подведем промежуточный итог - какими качествами должен обладать человек, чтобы он более или менее свободно мог пользоваться подобной средой:

 

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

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

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

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

 

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

 

Те, кто серьезно занимались разработкой пользовательского интерфейса, знают, что предугадать какой вариант окажется удобным, практически невозможно. Единственный эффективный способ - стоять за спиной испытуемых клиентов и замечать куда они пытаются тыкать пальцами или мышкой. Действия эти обычно вполне инстинктивны, и апеллировать к разуму тут бесполезно. Попытки демонстратора объяснить, что тыкать надо совсем в другое место, редко приводят к успеху. Самые внятные ответы, которые можно услышать: "А, по-моему, так было бы удобнее". Конечно, невозможно спроектировать систему так, чтобы любые, совершаемые наобум действия приводили к нужному эффекту, но требуется, чтобы, по крайней мере, последствия не ставили клиента в тупик и не уничтожали результатов его работы. Приходится смириться, что пользователю лень, неохота, а может быть и нет возможности разобраться в логике системы. Его желания, которые рынок воспринимает как требования, просты: достичь результата быстро и "на автомате". Наконец, его основная работа - клерка, секретарши, бухгалтера или юриста, требует хорошо развитой памяти, и ему, в отличие от математика, совсем несложно запомнить какие клавиши надо нажимать для получения желаемого эффекта.

 

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

 

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

 

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

Однако, игра стоит свеч: рынок обывателей на несколько порядков шире рынка любых профессиональных групп. Это позволяет привлечь к разработке гигантские ресурсы. Результат всем нам известен - например, наиболее распространенная сегодня операционная среда Misrosoft Windows - Windows 95 - Windows NT, ХР. В ней успешно и эффективно работают те самые юристы, бухгалтеры, секретарши и клерки.

 




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 2112; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.