Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция ОС.doc
Скачиваний:
49
Добавлен:
01.05.2025
Размер:
16 Мб
Скачать
☆

Тема 1.2 Операционное окружение

Студент должен:

иметь представление:

  • об интерфейсе прикладного программирования;

знать:

  • понятие операционного окружения;

  • услуги, предоставляемые операционным окружением.

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

Понятие операционной среды

Среди пользователей компьютеров, а тем более в среде компьютерных "профессионалов" не стихают споры о том, какая машина, какой текстовый процессор, какая бухгалтерская система лучше. Машины и программы устаревают, уходят в историю, а споры продолжаются на новом материале. Характерная черта сегодняшнего дня - объединение всего комплекса программного обеспечения в единую операционную среду, и споры приобрели новую форму: какая операционная среда самая лучшая? Конкурентов осталось не так много, и от того, к какому заключению придет большинство людей, зависит судьба крупнейших мировых корпораций, а, может быть, и пути развития цивилизации.

Что же такое операционная среда?

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

Операционная среда - комплекс программного обеспечения, предоставляющего средства разработки и выполнения прикладных программ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Системных функций бывает много, они определяют те возможности, которые операционная система предоставляет выполняющимся программам. Такого рода системные запросы (вызовы системных операций, или функций) либо явно прописываются в тексте программы программистами, либо подставляются автоматически самой системой программирования на этапе трансляции исходного текста разрабатываемой программы. Каждая операционная система имеет свое множество системных функций; они вызываются соответствующим образом, по принятым в системе правилам. Совокупность системных вызовов и правил, по которым их следует использовать, как раз и определяет уже упомянутый нами интерфейс прикладного программирования (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, ХР. В ней успешно и эффективно работают те самые юристы, бухгалтеры, секретарши и клерки.

Третий подход.

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

Можно, конечно, возразить инженерам: задача операционной среды слишком сложна для вашего подхода. Но ведь современный самолет или космический корабль по уровню сложности навряд-ли уступает операционной среде на персоналке, а ресурсы зря не тратятся! Выходит, инженерный подход вполне имеет право на существование, правда, обладает одним существенным ограничением. Это ограничение - неуниверсальность, специализированность результата. Ведь никто не видел самолета, выходящего раз в неделю на боевое дежурство в качестве стратегического бомбардировщика, а в остальное время совершающего пассажирские рейсы на Багамы. Так и в области программирования, системы, использующие инженерный подход, хорошо решают только ограниченный класс задач.

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

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