Понятие вычислительной системы и ее состав 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Понятие вычислительной системы и ее состав



Содержание:

 

1.5. ОС как постоянно функционирующее ядро. 13

2. Краткая история эволюции вычислительной системы. 14

2.1. Первый период – 1945 – 1955гг. Ламповые машины, ОС – нет. 14

2.2. Второй период-1955-начало 60-х годов. Компьютер на основе транзисторов, пакетная ОС. 15

2.3. Третий период-начало 60-х годов-1980г. Компьютеры на основе интегральных микросхем, первые многозадачные ОС. 16

2.4. Четвертый период с 1980 и до настоящего времени. ПК, классические, сетевые и распределенные системы. 20

3. Функции ОС.. 22

4. Классификация ОС.. 23

5. Критерии оценки ОС.. 26

5.1. Надежность. 26

5.2. Эффективность. 27

5.3. Удобство. 28

5.4. Масштабируемость. 28

5.5. Способность к развитию.. 29

5.6. Мобильность. 30

6. Основные понятия концепции ОС.. 31

6.1. Системные вызовы.. 31

6.2. Прерывания. 32

6.3. Исключительные ситуации. 32

7. Структура операционных систем. 34

7.1. Ядро. 35

7.2. Интерфейс пользователя. 35

7.3. Командный интерфейс. 35

7.4. Визуальный интерфейс. 37

7.5. Интерфейс прикладных программ. 41

7.6. Интерфейс внешних устройств. Драйверы.. 42

7.7. Взаимодействие с внешними устройствами. 44

8. Архитектурные особенности ОС.. 45

8.1. Монолитное ядро. 45

8.2. Многоуровневые системы.. 46

8.3. Виртуальная машина. 47

8.4. Микроядерная архитектура. 48

8.5. Смешанные системы.. 49

9. Процессы.. 50

9.1. Состояние процесса. 50

10. Операции над процессами и связанные с ними понятия. 52

10.1. Набор операций. 52

10.2. Блок управления процессами и контекст процесса. 53

10.3. Одноразовые операции. 54

10.4. Многоразовые операции. 56

10.5. Переключение контекста. 58

11. Планирование процессов. 58

11.1. Уровни планирования процессов. 58

11.2. Критерии планирования и требования к алгоритму. 59

11.3. Параметры планирования. 60

11.4. Вытесняющие и невытесняющие планирование. 61

11.5. Алгоритмы планирования. 62

11.5.1. First come first served. 62

11.5.2. Round Robin. 63

11.5.3. Shortest-Job-First 64

12. Кооперация процессов и основные аспекты ее логической организации. 65

12.1. Взаимодействующие процессы. 65

12.2. Основные аспекты организации совместной работы процесса. 66

2. Логическая организация механизма передачи информации. К ней относятся: 66

12.3. Средства связи: однонаправленные и двунаправленные. 68

12.4. Надежность средств связи. 69

12.5. Завершение связи. 70

13. Нити исполнения. 70

13.1. Состояние процесса. 73

14. Тупики. 74

14.1. Условия возникновения тупиков. 76

14.2. Основные направления борьбы с тупиками. 77

14.3. Предотвращение тупиков за счет нарушения условия возникновения тупиков 79

14.4. Восстановление после тупиков. 82

15. Организация памяти компьютера. 82

15.1. Оперативная память (ОЗУ). 83

15.2. КЭШ-память процессора. 83

15.3. BIOS – постоянная память (ПЗУ). 83

15.4. CMOS – полупостоянная память. 83

15.5. Электронные диски. 84

15.6. Магнитные диски. 84

15.7. Логические диски. 84

15.8. Жесткий диск. 84

15.9. Flash-накопители. 85

16. Файловая система. 86

16.1. Характеристика файлов. 86

16.2. Каталоги. 88

16.3. Размещение файлов. 90

16.4. Общая модель файловой системы.. 95

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

17. Основные составные части ОС.. 100

18. Сетевые операционные системы.. 102

18.1. Структура и компоненты сетевой операционной системы.. 102

18.2. Сетевые службы.. 107

19. Защитные механизмы ОС.. 109

19.1. Понятие безопасности. 109

19.2. Понятие угрозы. Классификация угроз. 110

19.3. Идентификация и аутентификация. 112

19.4. Пароль. 113

19.5. Шифрование. 114

19.6. Авторизация. 115

19.7. Политика безопасности UNIX. 115

20. Компьютерные вирусы.. 121

20.1. Классификация вирусов. 122

20.2. “Невидимые” и самомодифицирующиеся вирусы.. 128

20.3. Основные методы защиты от компьютерных вирусов. 130


Определения операционной системы

Понятие вычислительной системы и ее состав

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

Структура вычислительной системы.

Вычислительная система (ВС) - взаимосвязанная совокупность аппаратных средств вычислительной техники и программного обеспечения, предназначенная для обработки информации.

ВС состоит

1. техническое обеспечение (Hardware): память, процессор, монитор, диски, устройства, объединяющее магистральные соединения – шина.

2. программное обеспечение, которое делится следующим образом:

ОС как менеджер ресурсов.

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

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

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

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

Функции ОС

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

Управление устройствами. Имеются в виду все периферийные устройства, подключаемые к компьютеру, – клавиатура, монитор, принтеры, диски и т.п.

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

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

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

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

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

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

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

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

Классификация ОС

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

По назначению.

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

· Системы реального времени. Этот важный класс систем предназначен для работы в контуре управления объектами (такими, как летательные аппараты, технологические установки, автомобили, сложная бытовая техника и т.п.). Из подобного назначения вытекают жесткие требования к надежности и эффективности системы. Должно быть обеспечено точное планирование действий системы во времени (управляющие сигналы должны выдаваться в заданные моменты времени, а не просто «по возможности быстро»). Особый подкласс составляют системы, встроенные в оборудование. Такие системы годами могут выполнять фиксированный набор программ, не требуя вмешательства человека-оператора на более глубоком уровне, чем нажатие кнопки «Вкл.».

Иногда выделяют также такой класс ОС, как системы с «нежестким» реальным временем. Это такие системы, которые не могут гарантировать точное соблюдение временных соотношений, но «очень стараются», т.е. содержат средства для приоритетного выполнения заданий, критичных по времени. Такой системе нельзя доверить управление ракетой, но она вполне справится с демонстрацией видеофильма. Выделение подобных систем в отдельный класс имеет скорее рекламное значение, позволяя таким системам, как Windows NT и некоторые версии UNIX, тоже называть себя «системами реального времени».

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

По характеру взаимодействия с пользователем.

· Пакетные ОС, обрабатывающие заранее подготовленные задания.

· Диалоговые ОС, выполняющие команды пользователя в интерактивном режиме. Красивое слово «интерактивный» означает постоянное взаимодействие системы с пользователем.

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

· Встроенные ОС, не взаимодействующие с пользователем.

По числу одновременно выполняемых задач.

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

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

По числу пользователей.

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

· Многопользовательские ОС. Их важной компонентой являются средства защиты данных и процессов каждого пользователя, основанные на понятии владельца ресурса и на точном указании прав доступа, предоставленных каждому пользователю системы.

По аппаратурной основе.

· Однопроцессорные ОС. В данном курсе будут рассматриваться только они.

· Многопроцессорные ОС. В задачи такой системы входит, помимо прочего, эффективное распределение выполняемых заданий по процессорам и организация согласованной работы всех процессоров.

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

· Распределенные ОС. Их отличие от сетевых заключается в том, что распределенная система, используя ресурсы локальной сети, представляет их пользователю как единую систему, не разделенную на отдельные машины.

Критерии оценки ОС

 

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

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

Надежность

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

Что понимается под надежностью ОС?

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

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

В-третьих, ОС не должна содержать собственных (внутренних) ошибок. Это требование редко бывает выполнимо в полном объеме (программисты давно сумели доказать своим заказчикам, что в любой большой программе всегда есть ошибки, и это в порядке вещей), однако следует хотя бы добиться, чтобы основные, часто используемые или наиболее ответственные части ОС были свободны от ошибок.

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

Эффективность

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

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

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

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

Удобство

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

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

Масштабируемость

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

Гарантией масштабируемости служит продуманная модульная структура системы, позволяющая в ходе установки системы собирать и настраивать нужную конфигурацию. Возможен и другой подход, когда под общим названием объединяются, по сути, разные системы, обеспечивающие в разумных пределах программную совместимость. Примером могут служить версии Windows NT/2000/XP, Windows 95/98 и Windows CE.

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

Способность к развитию

Чтобы сложная программа имела шансы просуществовать долго, в нее изначально должны быть заложены возможности для будущего развития.

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

Важным требованием к развитию ОС является совместимость версий снизу вверх, означающая возможность безболезненного перехода от старой версии к новой, без потери ранее наработанных прикладных программ и без необходимости резкой смены всех навыков пользователя. Обратная совместимость – сверху вниз – как правило, не гарантируется, поскольку в ходе развития система приобретает новые возможности, не реализованные в старых версиях. Программа из Windows 3.1 будет нормально работать и в Windows XP; наоборот – вряд ли.

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

Совместимость версий – благо для пользователя, однако на практике она часто приводит к консервации давно отживших свой век особенностей или же просто неудачных решений, принятых в ранней версии системы. В документации подобные архаизмы помечаются как «устаревшие» (obsolete), но полного отказа от них, как правило, не происходит (а вдруг где-то еще работает прикладная программа, написанная двадцать лет назад с использованием именно этих средств?).

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

Мобильность

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

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

С другой стороны, история системного программирования усеяна останками замечательных, эффективных и удобных, но немобильных ОС, которые вымерли вместе с процессорами, для которых они предназначались. В то же время мобильная система UNIX продолжает процветать четвертый десяток лет, намного пережив те компьютеры, для которых она первоначально создавалась. Примерно 5-10% исходных текстов UNIX написаны на языка ассемблера и должны переписываться заново при переносе на новую архитектуру. Остальная часть системы написана на C и практически не требует изменений при переносе.

Некоторым компромиссом являются многоплатформенные ОС (например, Windows NT), изначально спроектированные для использования на нескольких аппаратных платформах, но не гарантирующие возможность переноса на новые, не предусмотренные заранее архитектуры.

Основные понятия концепции ОС

Системные вызовы

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

Прерывания

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

Исключительные ситуации

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

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

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

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

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

Ядро

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

Интерфейс пользователя

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

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

Командный интерфейс

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

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

<команда> - <ключ1> - <ключ2>… <параметр1> <параметр2>…

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

Например, рассмотрим команду языка операционной системы MS-DOS:

Dir *.txt /p /o: n

Эта команда требует от ОС вывести на стандартное устройство отображения (обычно терминал) содержимое текущего каталога (об этом говорит имя команды – dir). При этом должны быть выведены имена только тех файлов, имя которых подходит под маску «*.txt» (параметр «*.txt»), то есть содержащие любую последовательность символов, которая заканчивается на «.txt». необходимо делать паузу после вывода каждого полного экрана текста (этот режим задает ключ «/p»). При выводе необходимо сортировать файлы по именам (ключ «/o: n»). Здесь, как очевидно из описания, «dir» - название команды, «*.txt» - параметр, а «/p» «/o:n» - ключи.  

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

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

Визуальный интерфейс

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

Пользователь отдает команды ОС путем манипулирования предоставленным ему набором образов с помощью манипуляторов и клавиатуры. Например, каталог на диске часто отображен в виде экранного окна, в котором файлы отображены как иконки либо надписи. Предположим, что нужно скопировать файл «1.txt» из каталога «/home/user/work» в каталог «/home/user/archive». Для этого пользователь, вместо того, чтобы писать команду вида:

cp /home/user/work/1.txt /home/user/archive/

 может просто открыть на экран два окна, одно из которых соответствует каталогу  «/home/user/work», другое – каталогу «/home/user/archive», и мышью перетащить надпись «1.txt» из первого окна во второе. Для пользователя-непрофессионала такое действие гораздо проще и естественнее, чем написание малопонятной команды.

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

Важно понимать, что тип интерфейса определяется сущностью способа взаимодействия пользователя с системой, а не используемыми изобразительными средствами. Вовсе не обязательно визуальный интерфейс использует устройство отображения, работающее в графическом режиме. Визуальный интерфейс может быть как текстовым, при котором визуальные образы на экране формируются с помощью обычных текстовых символов, возможно, дополненных псевдографикой (типы интерфейса оболочек FAR, Norton Commander, DOS Navigator), так и графическим, при котором визуальные образы рисуются на экране в графическом режиме и могут иметь практически неограниченное разнообразие. Но на суть интерфейса это не оказывает решающего влияния, хотя, безусловно, графический интерфейс внешне обычно выглядит намного привлекательнее.

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

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



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 53; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.234.83 (0.072 с.)