Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Современная архитектура файловой системы

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

Новая файловая система имеет многоуровневую структуру (рис. 4.15), на верхнем уровне которой располагается так называемый переключатель файловых систем (в Windows 95, например, такой переключатель называется устанавливаемым диспетчером файловой системы - installable filesystem manager, IFS). Он обеспечивает интерфейс между запросами приложения и конкретной файловой системой, к которой обращается это приложение. Переключатель файловых систем преобразует запросы в формат, воспринимаемый следующим уровнем – уровнем файловых систем.

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

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

Современные концепции и технологии проектирования операционных систем

Требования, предъявляемые к ОС нового поколения

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

- Расширяемость (возможность вносить дополнения и изменения, не нарушая целостности системы);

- Переносимость (совместимость с разнотипными аппаратными платформами);

- Надежность и отказоустойчивость (защита как от внутренних, так и от внешних ошибок, сбоев и отказов);

- Совместимость (ОС должна иметь средства для выполнения прикладных программ, написанных для других операционных систем и, кроме того, пользовательский интерфейс должен быть совместим с существующими системами и стандартами);

- Безопасность (защита ресурсов от несанкционированного доступа);

- Производительность (максимально возможное быстродействие и временя реакции).

Пользовательский интерфейс

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

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

В настоящее время оформилось два принципиально различных подхода к организации пользовательского интерфейса. Первый, исторически более ранний подход состоит в предоставлении пользователю командного языка, в котором запуск программ оформлен в виде отдельных команд. Этот подход известен как интерфейс командной строки (Command Line Interface – CLI).

Альтернативный подход состоит в символическом изображении доступных действий в виде картинок – икон (icons) на экране и предоставлении пользователю возможности выбирать действия при помощи мыши или другого координатного устройства ввода. Этот подход известен как графический пользовательский интерфейс (Graphical User Interface – GUI).

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

Интерфейс CLI

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

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

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

Удачно спроектированные искусственные языки удобны и для ЭВМ: интерпретаторы полнофункциональных командных языков обходятся десятками (или сотнями) килобайт оперативной памяти и обеспечивают очень высокую скорость и эффективность использования ресурсов системы. Поэтому синтетический язык как средство человеко-машинного общения является наилучшим и наиболее естественным выбором для обеих сторон.

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

Современные интерактивные командные процессоры решают практически все проблемы командных языков предыдущих поколений:

- исправление опечаток в командах и набор последовательностей одинаковых или похожих команд;

- набор длинных имен файлов, каталогов и других объектов облегчается автоматическим дополнением имен;

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

Важными преимуществом хороших командных языков по сравнению с GUI является их алгоритмическая полнота: в GUI пользователь ограничен теми возможностями, для которых разработчик программы нарисовал иконки или разработал пункты в меню. Командные же языки могут использоваться для решения любых алгоритмизуемых задач.

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

Интерфейс GUI

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

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

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

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

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

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

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

Последнее изменение этой страницы: 2016-07-23

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...