Интерфейс который реализуется операционной системой. Файлы и файловая система

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

Командный язык и командный процессор

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

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

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

    командами установки локального окружения;

    параметрами программы;

    командами установки глобального окружения.

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

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

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

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

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

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

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

Командные файлы и язык процедур

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

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

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

Полноэкранный интерфейс

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

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

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

Главное изменение в облике интерфейса - иконика - представление объектов (файлов) в виде миниатюрных графических изображений - пиктограмм (icon). Помимо чисто внешних изменений иконика породила возможность манипулировать объектами через манипулирование их изображениями. Широкое распространение получила техника перемещения/копирования файлов, именуемая транспортировкой. Дальнейшее развитие графика интерфейсов получает в объектно-ориентированном интерфейсе.

Объектно-ориентированный интерфейс

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

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

По типу пользовательского интерфейса различают текстовые (линейные), графические и речевые операционные системы.

Пользовательским интерфейсом называется набор приемов взаимодействия пользователя с приложением. Пользовательский интерфейс включает общение пользователя с приложением и язык общения.

Текстовые ОС

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

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

Графические ОС

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

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

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

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

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

Речевые ОС

В случае SILK-интерфейса (от англ. speech – речь, image – образ, language – язык, knowledge – знание) – на экране по речевой команде происходит перемещение от одних поисковых образов к другим.

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

Функции ОС, интерфейс пользователя.

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

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

Операционная система (ОС)

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

*.sys - системные файлы

*.bak - страховочный файл

Независимо от версий, работу DOS обеспечивают следующие 3 компонента:

1. базовая система ввода-вывода (BIOS) (или RIOS). Записанная в ПЗУ программа поставляется производителями ЭВМ и выполняет функцию обеспечения нормального функционирования: проверка комплектности, тестирование различных устройств ПК, инициали­зация загрузки DOS и ряд других функций. Эта программа не явля­ется файлом и фактически не входит в состав QOS;

2. ядро DOS содержит в виде скрытых файлов: блок первоначальной загрузки (bootstrap), располагаемый в первом секторе системного диска (считываемый с помощью BIOS) и обеспечивающий загрузку в память машины операционной системы - IO. SYS (или IBM), так называемую базовую систему ввода-вывода с программным обслуживанием периферийных устройств (расширение и исправление BIOS), а также файл MS DOS. SYS (IBM), содержащий программы управления файлами, памя­тью, запуском программ и т. д. Этот файл иногда называется модулем управления прерываниями, поскольку обращение к программным средствам (функциям DOS) из программы пользователя осуществляется с помощью программных прерываний;

3. файл, или командный процессор (интерпретатор), в функции которого входит прием, проверка команд, вводимых пользователем с клавиатуры, и их выполнение. Существует 3 категории команд DOS - резидентные или внутренние, постоянно находящиеся в ОП, полурезидентные, которые могут (по мере необходимости) «затираться» прикладными программами, и внешние, вызываемые по мере необходимости из внешней памяти.

Команды MS DOS бывают двух типов:

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

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

Работа с файлами

Создание текстовых файлов copy con имя_файла . После ввода этой команды нужно будет поочередно вводить строки файла. В конце каждой строки надо щелкать клавишей Enter. А после ввода последней - одновременно нажать Ctrl и Z, а затем Enter.

Удаление файлов del (путь) имя_файла. Путь прописывается только тогда, когда удаляемый файл находится в другом каталоге.

Переименование файлов ren (путь)имя_файла1 имя_файла2. Имя_файла1 - имя файла, который вы хотите переименовать, имя_файла2 - новое имя файла, которое будет ему присвоено после выполнения команды.

Копирование файлов copy имя_файла (путь)имя_файла1.

Copy games. txt games копировать файл games. txt в подкаталог GAMES текущего диска.

Работа с каталогами

Команда смены текущего диска A: - переход на диск А.

Просмотр каталога dir (путь) (имя_файла) (/p) (/w).

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

Параметр /p задает вывод информации в поэкранном режиме, с задержкой до тех пор, пока пользователь не щелкнет по какой-либо клавише. Это удобно для больших каталогов, /w - задает вывод информации только об именах файлов в каталоге по пять имен в строке.

Изменение текущего каталога cd путь.

Создание каталога md путь.

Удаление каталога rd путь.

Примеры:
dir
- вывести оглавление текущего каталога;
dir*.exe - вывести сведения о всех файлах с расширением. exe из текущего каталога;
dir a: - вывести оглавление корневого каталога диска а:.
cd games - переход в каталог GAMES текущего диска;
cd.. - переход в предыдущий каталог;
cd - переход в корневой каталог текущего диска.
rd games - удаление подкаталога GAMES в текущем каталоге;
ВНИМАНИЕ! УДАЛИТЬ МОЖНО ТОЛЬКО ПУСТОЙ КАТАЛОГ!

Командная строка

Это строка, которую вы увидите на экране после загрузки MS DOS. Она называется еще приглашением DOS и имеет вид, например, такой

C:\> ,

здесь C: - имя диска; > - символ приглашения, после которого мерцает курсор, указывая место, куда надо ввести команду.

Другие команды.
Date - вывод информации о дате с возможностью настройки.
Time - вывод информации о времени с возможностью настройки.
Verify on - включить режим проверки записи на диск.
Verify of - выключить режим проверки записи на диск.
Verify - вывести информацию о том, включен ли режим проверки записи на диск.
Path - определяет порядок поиска наиболее часто запускаемых программ.
Ver - показывает версию операционной системы.
Cls - производит очистку экрана.
Label - выводит информацию о метке диска с возможностью её изменения.

Структура и общие принципы построения программы в Turbo Pascal. Алфавит. Константы. Переменные.

Общая структура программ на языке Паскаль

Программы на Паскале имеют такой общий вид:

Program Имя программы

Раздел описаний

Раздел операторов

Слова PROGRAM, BEGIN и END выделяют 2 части программы: раздел описаний и раздел операторов. Такая структура обязательна. Любой объект, используемый в программе, должен быть учтен в разделе описаний.

Программа, написанная по правилам стандартного языка Паскаль, должна иметь в своем полном варианте следующую структуру:

Program имя программы;

Uses Список используемых модулей

Label Список меток из основного блока программы

Const Определение констант программы

Type Описание типов

Var Описание переменных

Procedure Текст процедуры

Function Текст функции

Основной блок программы

(раздел операторов)

Синтаксис и семантика

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

Алфавит языка

Алфавит - это совокупность допустимых в языке символов. Алфавит Турбо Паскаль включает следующий набор основных символов:

    строчные и прописные латинские буквы: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z; a b c d e f g h i j k l m n o p q r s t u v w x y z; пробел подчеркивание: _ арабские цифры: 8 9 знаки операций: + - * / = <> < > <= >= := @ ограничители: . , " () { } (* *) .. : ; спецификаторы: ^ # $ служебные (зарезервированные) слова:

· ABSOLUTE EXPORTS LIBRARY SET

· ASSEMBLER EXTERNAL MOD SHL

· AND FAR NAME SHR

· ARRAY FILE NIL STRING

· ASM FOR NEAR THEN

· ASSEMBLER FORWARD NOT TO

· BEGIN FUNCTION OBJECT TYPE

· CASE GOTO OF UNIT

· CONST IF OR UNTIL

· CONSTRUCTOR IMPLEMENTATION PACKED USES

· DESTRUCTOR IN PRIVATE VAR

· DIV INDEX PROCEDURE VIRTUAL

· DO INHERITED PROGRAM WHILE

· DOWNTO INLINE PUBLIC WITH

· ELSE INTERFACE RECORD XOR

· END INTERRUPT REPEAT

· EXPORT LABEL RESIDENT

Элементарные конструкции

Элементарные конструкции языка Паскаль включают в себя имена, числа и строки.

Имена (идентификаторы) называют элементы языка - константы, метки, типы, переменные, процедуры, функции, модули, объекты.

Идентификатор в Турбо Паскале может включать в себя:

3. символ подчеркивания.

Строчные и прописные буквы не. Цифра не может стоять на первом месте в идентификаторе, а символ подчеркивания может находиться в любой позиции (например, name1 и name2item являются допустимыми идентификаторами, а 5name - нет; _name, name_, name_item - тоже допустимые названия). Длина идентификатора может быть любой, но значимыми являются только первые 63 символа. В качестве имен не допускается использовать служебные слова.

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

1. пробел и табуляцию;

2. перевод строки;

3. комментарий.

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

40. Основные принципы построения операционных систем

Архитектура системы - ее структура и основные принципы построения.

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

1. Принцип модульности

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

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

Во всех операционных системах можно выделить:

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

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

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

Это необходимо по причинам:

1) позволяет существенно повысить надежность выполнения вычислений.

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

3. Принцип виртуализации

Сейчас используется практически в любой операционной системе.

Виртуализация ресурсов позволяет:

Организовать разделение тех ресурсов между вычислительными процессами, которые не должны разделяться;

Абстрагироваться от конкретных ресурсов, обобщить их свойства и работать с некоторой абстракцией.

Проявления концепции виртуальности:

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

Единообразная по логике работы память достаточного для выполнения приложений объема.

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

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

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

3) независимость программ от внешних устройств – связь программ с конкретными устройствами производится не в процессе создания программы, а в период планирования ее исполнения. Этот принцип позволяет одинаково осуществлять операции управления внешними устройствами независимо от их конкретных физических характеристик.

4. Принцип мобильности

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

Сложности:

1) архитектуры разных процессоров могут сильно различаться.

2) для ОС важной является не только архитектура центрального процессора, но и архитектура компьютера в целом.

Для обеспечения мобильности был создан стандарт на интерфейс прикладного программирования, названный POSIX (Portable Operating System Interface for Computer Environments - интерфейс прикладного программирования для переносимых операционных систем). ? Платой за универсальность, прежде всего, является потеря производительности, поэтому ряд разработчиков идут на отказ от принципа мобильности, поскольку не всегда следование этому принципу экономически оправдано.

5. Принцип совместимости

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

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

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

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

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

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

6. Принцип генерируемоемости

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

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

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

7. Принцип открытости

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

Этот принцип иногда трактуют как расширяемость системы.

К открытым операционным системам прежде всего следует отнести UNIX-системы.

8. Принцип обеспечения безопасности вычислений

Правила безопасности определяют свойства:

Защита ресурсов одного пользователя от других,

Установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов. ? Для обеспечения защиты информации от несанкционированного доступа чаще всего используется механизм учетных записей. Он предполагает проведение аутентификации и aвторизации пользователя.

Во многих современных операционных системах гарантируется степень безопасности данных, соответствующая уровню С2 в системе стандартов США.

Основы стандартов в области безопасности были заложены «Критериями оценки надежных компьютерных систем» (Оранжевая Книга).

Иерархия уровней безопасности, приведенная в Оранжевой Книге, помечает низший уровень безопасности как D, а высший – как А:

В класс D попадают системы, оценка которых выявила их несоответствие требованиям всех других классов.

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

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

Уровень А требует в дополнение ко всем требованиям уровня В выполнения доказательства соответствия системы требованиям безопасности.

42. Микроядерные и макроядерные операционные системы

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

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

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

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

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

Для большинства микроядерных операционных систем основой архитектуры выступает технология микроядра Mach.

Микроядро обеспечивает только пять типов сервисов:

Управление виртуальной памятью;

Поддержка заданий и потоков;

Взаимодействие между процессами;

Управление поддержкой ввода-вывода и прерываниями;

Сервисы хоста и процессора.

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

Проблемы монолитных операционных систем:

Опасность возникновения конфликта между различными частями ядра;

Сложность подключения к ядру новых драйверов.

Очень плодотворным оказался подход, основанный на модели клиент-сервер.

Микроядерные операционные системы в полной мере используют модель клиент-сервер.

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

43. Требования к операционным системам реального времени

Требования к системе реального времени (СРВ):

Ограничение времени отклика;

Одновременность обработки.

Различают системы «мягкого» и «жесткого» реального времени.

Система считается жесткой, если «нарушение временных ограничений недопустимо», и мягкой, если «нарушение времени ограничений нежелательно».

43.Основные требования к ОСРВ:

1. Мультипрограммность и мультизадачность

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

2. Приоритеты задач

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

3. Наследование приоритетов

Комбинация приоритетов потоков и разделение ресурсов между ними приводит проблеме инверсии приоритетов.

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

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

4. Сихронизация процессов и задач

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

5. Предсказуемость

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

Время от момента прерывания до момента запуска задачи;

Максимальное время выполнения каждого системного вызова;

Максимальное время маскирования прерываний драйверами и супервизорными модулями операционной системы. 44. Интерфейсы операционных систем

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

Управление процессами:

Запуск, приостанов и снятие задачи с выполнения;

Задание или изменение приоритета задачи;

Взаимодействие задач между собой;

Вызов удаленных процедур (RPC).

Управление памятью:

Запрос на выделение блока памяти;

Освобождение памяти;

Изменение параметров блока памяти;

Отображение файлов на память (имеется не во всех системах).

Управление вводом-выводом:

Запрос на управление виртуальными устройствами;

Файловые операции.

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

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

В последние годы большую популярность получили графические интерфейсы (GUI), в которых задействованы соответствующие манипуляторы типа мышь или трекбол. Указание курсором на объект и щелчок или двойной щелчок на соответствующей кнопке мыши приводит к каким-либо действиям. Такая интерфейсная подсистема транслирует «команды» пользователя в обращения к операционной системе.

Управление GUI является частным случаем задачи управления вводом-выводом и не относится к функциям ядра операционной системы.

Интерфейс прикладного программирования API разделяют на следующие направления:

API как интерфейс высокого уровня, принадлежащий к библиотекам RTL;

API прикладных и системных программ, входящих в поставку операционной системы;

Прочие интерфейсы API.

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

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

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

Варианты реализации API:

Реализация на уровне модулей операционной системы;

Реализация на уровне системы программирования;

Реализация на уровне внешней библиотеки процедур и функций.

Интерфейс POSIX ? POSIX- это стандарт, описывающий системные интерфейсы для открытых операционных систем, в том числе оболочки, утилиты и инструментарии.

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

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

POSIX представляет собой множество стандартов POSIX.1 – POSIX.12.

Интерфейс операционной системы

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

Интерфейс командной строки применялся до 1990-х гг. в операционной системе персональных компьютеров MS-DOS (англ. Microsoft Disk Operation System – дисковая операционная система). Взаимодействие с системой осуществлялось подачей команд с клавиатуры в виде алфавитно-цифровой последовательности в строку на экране. Операционная система преобразовывала такие команды в операции, выполняемые компьютером. Команды и имена файлов надо было помнить и точно вписывать. Персональный компьютер, хотя и стоял на столе, еще не мог использоваться непрограммистами.

В конце 1970-х гг. исследования компании Xerox показали, что удобной формой ввода и представления информации является наглядный и понятный язык картинок. Объекты (файлы, устройства, команды, программы) целесообразно представлять в виде легко угадываемых графических образов, манипуляции с которыми должны быть похожи на совершаемые людьми с аналогичными материальными объектами, опираться на естественность усвоения графической информации человеком. Впервые графический интерфейс применила компания Apple в операционной системе Macintosh. Затем компания Microsoft использовала его в операционных системах Windows.

Графический интерфейс пользователя (Graphical User Interface, GUI) – графическая среда, организующая взаимодействие пользователя с вычислительной системой через визуальные элементы управления па экране: окна, списки, кнопки, гиперссылки, значки и др.

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

  • прямоугольные перемещаемые области на экране (окна) стали своеобразным "устройством" ввода или вывода информации в открытую программу и сообщения;
  • меню и панели кнопок дают выбор подачи команд;
  • значки (рисунки-миниатюры) представляют файлы, папки, устройства;
  • указатель на экране (курсор) – символ (стрелка, вертикальная палочка и др.) перемещается по экрану, чтобы выделять объекты и давать команды;

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

Дальнейшее изложение ориентировано на операционную систему Windows.

Файлы и файловая система

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

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

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

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

В современных операционных системах разрешены длинные имена файлов – до 256 символов. Но в имени файла запрещены знаки < >: | “ ? * / , которые используются в записи команд. Компьютер при работе с файлами и папками не различает в имени прописные и строчные буквы.

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

Имя файла, как правило, имеет расширение, или тип. Расширение имени файла – последовательность символов для идентификации типа файла . Расширение отделяется точкой от имени файла и обычно состоит из трех-четырех символов (английских букв). Так, в имени файла академия.txt расширением является txt, после расширения точка не ставится. Допустима запись имени и расширения прописными и строчными буквами. Широко применяемыми расширениями имен файлов являются следующие:

doc (англ, document) – документы с форматированием текста, в частности созданные программой Word;

txt – файлы простого текста, в которых шрифт и абзацы имеют одинаковый вид, не форматируются, нет рисунков; в частности, это файлы, созданные стандартной программой Блокнот;

ехе – файл программы (англ, executable – исполняемый). Операционная система при попытке удаления файла с расширением ехе предупреждает, что файл является программой и без него не все будет работать; mp3, wav – звуковые файлы; avi – аудио- и видеофайлы; htm, html – файлы веб-страниц Интернета; gif, jpg, bmp, tiff – графические файлы с рисунками; dll – "динамическая библиотека", файл с частью программы, загружаемый в память, когда появляется необходимость в этой части;

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

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

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

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

Есть файлы, имеющие одинаковое имя, но отличающиеся расширением: например, winrar.exe – программа архивации (сжатия) файлов, winrar.hlp – файл справки к программе, winrar.cnt – файл содержания справки.

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

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

Примеры шаблонов имен файлов:

  • *.* – обозначает все файлы;
  • *.txt – шаблон для файлов, имеющих одинаковое расширение имени txt;
  • Протокол*.doc – шаблон, которому соответствуют файлы с одинаковым началом имени "протокол" и расширением doc. Например: протокол.doc, протокол2.бос, Протокол допроca.doc, Протокол заседания.doc и Протокол разногласий.doc;
  • дело??.doc – шаблон для файлов, имя которых имеет одинаковое начало "дело", потом два любых символа и расширение doc. Например: дело3l.doc, дело_8.dос, но не подходят файлы дело.doc, дело 306.doc и дело_235.dос.

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

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

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

Дерево файлов (дерево каталогов) – структура каталогов, подкаталогов и файлов на диске, указывающая расположение файлов в каталогах и подкаталогах, подкаталогов в каталогах. Логическая подчиненность графически изображается деревом с одной вершиной, называемой корневым каталогом, или папкой диска, и ветвлением (рис. 4.3, а). В каждую точку ветвления входит только одна ветвь от "родительской" папки (каталога), а выходить могут несколько в нижестоящие папки ("дочерние", подчиненные каталоги). Из папки можно выходить на уровень вверх – в вышестоящую папку. У общей группы файлов и папок есть только один вышестоящий (родительский) каталог, в котором они записаны. При переходе к подчиненным папкам вниз ветви только расходятся и никогда не пересекаются.

ОС с графическим интерфейсом, такая как Windows, показывает папку в дереве каталогов значком в виде канцелярской папки (рис. 4.3,6), а открывает как окно со значками и именами вложенных файлов и других папок.

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

Рис. 4.3.

а – дерево каталогов (без файлов); б – Проводник Windows (папки с вложенными подпапками распахиваются значком)

ку диска и обозначаемого одной английской буквой с двоеточием (например, диск D:, а корневая папка D:), и идет вниз по дереву каталогов с перечислением имен вложенных папок через косую черту – (обратный слеш). Жесткие диски имеют имена С:, D: (если их два), имя компакт-диска задается следующей латинской буквой – Е:. Буквы А и В выделены флоппи-дисководам (А: и В:).

Полное имя файла (в Windows) – запись имени файла и расширения с предшествующим путем к файлу в виде последовательности имен каталогов, разделенных косой чертой. Например, имя D:ПисьмаМоскваМэрияЗаявление.dос означает, что от папки диска D:, пройдя папки Письма, Москва, Мэрия (см. рис. 4.3, б) можно увидеть и открыть файл Заявление.doc. Файл должен иметь уникальное название в своей папке, хотя бы одним символом отличающееся от имен других файлов папки.

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

Файловая система – часть операционной системы, обеспечивающая запись и чтение файлов на дисковых носителях. Она определяет логическую структуру при сохранении данных в файлах на диске, именование (идентификацию) и сопутствующие данные файла (управление доступом к файлам). В операционных системах Microsoft применяются файловые системы FAT и NTFS (New Technology File System).

Файловая система FAT получила название от метода, применяемого для организации файлов, – таблица размещения файлов (File Allocation Table, FAT). Таблица размещения файлов создается при форматировании диска и находится на нем в строго определенном месте. По строению ЕАТ аналогична оглавлению книги, операционная система использует ее для поиска файлов и определения их местоположения на магнитном диске.

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

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

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

А – архивный файл (archive). Признак того, что файл подлежит внесению в резервный архив, т.е. создан или изменялся и программа резервирования должна поместить его на носитель (ленту стримера или сетевой диск).

R – только чтение (read only). Файл не подлежит редактированию. Некоторые текстовые редакторы снимают атрибут R и правят файл без предупреждения.

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

S – системный файл (system) – принадлежит операционной системе, удалять и изменять этот атрибут не рекомендуется, а в современных операционных системах – это не просто.

При попытках изменения и удаления файлов с атрибутами R, Н, S система предупреждает пользователя о важном свойстве файла. Отобразить, установить и снять атрибуты файла можно в программе управления файлами, например файловом менеджере Total Commander.

Свойства файла в папке операционной системы Windows выводит соответствующая команда (см. пример отображения свойств файла на рис. 4.4).

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

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

Рис. 4.4.

нии атрибутов файла. Операции выполняются командами операционной системы с помощью мыши и выбора в меню.

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

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

Перемещение папки производит изменение соответствующих записей о папке диска.

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

Переименование файла и каталога (папки) изменяет запись имени.

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

Просмотр содержимого файла. Открыть файл для просмотра можно, как правило, с помощью той программы, в которой он создан. Но программы-просмотрщики показывают содержимое файла, хотя и не позволяют редактировать, изменять. Некоторые файлы можно открывать и другими программами. Например, текстовые файлы, созданные в простых редакторах WordPad, Блокнот, можно открывать в редакторе Word. Веб-документы Интернета открываются в программах- обозревателях, которые их не создавали.

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

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

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

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

  • Термин "расширение" η информатике используется в смысле увеличения, дополнения возможности, и не только имени файла, но и устройств, объектов, сервисов поиска и др.