Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций ОС.docx
Скачиваний:
57
Добавлен:
14.04.2019
Размер:
17.75 Mб
Скачать

Тема 1.3. Функции, выполняемые операционной системой.

  1. Функции операционных систем

  2. Система прерываний

  3. Защита памяти.

  4. Виртуа́льная па́мять

  5. Управление данными

  6. Фа́йловая систе́ма

  7. Графи́ческий интерфе́йс по́льзователя

  8. Утили́та

  9. Дра́йвер

  10. Технология Plug-and-Play

  11. Мультимедиа

Функции операционных систем

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

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

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

− обеспечивать работу с устройствами долговременной памяти, такими как магнитные диски, оптические диски, флэш-память и т. д.,

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

− предоставлять некоторый пользовательский интерфейс (слово некоторый здесь сказано не случайно — часть систем ограничивается командной строкой, в то время как другие на 90% состоят из интерфейсной подсистемы).

Существуют ОС, функции которых этим и исчерпываются. Одна из хорошо известных систем такого типа — дисковая операционная система MS DOS.

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

− параллельное (или псевдопараллельное, если машина имеет только один процессор) исполнение нескольких задач,

− организацию взаимодействия задач друг с другом,

− организацию межмашинного взаимодействия и разделения ресурсов,

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

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

Система прерываний

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

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

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

Для того чтобы ЦП, выполняя свою работу, имел возможность реагировать на события, происходящие вне его зоны внимания, наступления которых он “не ожидает”, существует система прерываний ЭВМ.

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

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

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

Рис. 1.3.1. Выполнение прерывания в компьютере: tр - время реакции процессора на запрос прерывания; tс - время сохранения состояния прерываемой программы и вызова обработчика прерывания; tв - время восстановления прерванной программы

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

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

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

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

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

Время реакции определяется для запроса с наивысшим приоритетом.

Глубина прерывания – максимальное число программ, которые могут прерывать друг друга. Глубина прерывания обычно совпадает с числом уровней приоритетов, распознаваемых системой прерываний. Работа системы прерываний при различной глубине прерываний (n) представлена на рис. 1.3.2. Здесь предполагается, что с увеличением номера запроса прерывания увеличивается его приоритет.

Рис. 1.3.2. Работа системы прерываний при различной глубине прерываний

Без учета времени реакции, а также времени запоминания и времени восстановления:

t11+t12=t1,

t21+t22=t2.

Прерывания делятся на аппаратные и программные.

Аппаратные прерывания используются для организации взаимодействия с внешними устройствами. Запросы аппаратных прерываний поступают на специальные входы микропроцессора. Они бывают:

  • маскируемые, которые могут быть замаскированы программными средствами компьютера;

  • немаскируемые, запрос от которых таким образом замаскирован быть не может.

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

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

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

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

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

  • определение наиболее приоритетного незамаскированного запроса на прерывание (если одновременно поступило несколько запросов);

  • определение типа выбранного запроса;

  • сохранение текущего состояния счетчика команд и регистра флагов;

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

  • выполнение программы - обработчика прерывания;

  • восстановление сохраненных значений счетчика команд и регистра флагов прерванной программы;

  • продолжение выполнения прерванной программы.

Этапы 1-4 выполняются аппаратными средствами ЭВМ автоматически при появлении запроса прерывания. Этап 6 также выполняется аппаратно по команде возврата из обработчика прерывания.

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

Распознавание наличия сигналов запроса прерывания и определение наиболее приоритетного из них может проводиться различными методами. Рассмотрим один из них.

Цепочечная однотактная система определения приоритета запроса прерывания

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

Данная схема используется для анализа запросов аппаратных прерываний. Приоритет запросов прерываний (ЗПi) уменьшается с уменьшением номера запроса. В тот момент, когда компьютер должен определить наличие и приоритет внешнего аппаратного прерывания (обычно после окончания выполнения каждой команды), процессор выдает сигнал опроса. Если на входе ЗП3 присутствует сигнал высокого уровня (есть запрос), то на элементе 11 формируется общий сигнал наличия запроса прерывания и дальнейшее прохождение сигнала опроса блокируется. Если ЗП3=0, то анализируется сигнал ЗП2 и так далее. На шифраторе (элемент 12) формируется номер поступившего запроса прерывания.

Этот номер передается в процессор лишь при наличии общего сигнала запроса прерывания.

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

Рис. 1.3.3. Схема определения номера наиболее приоритетного запроса прерывания

Микропроцессоры типа х86 имеют два входа запросов внешних аппаратных прерываний:

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

  • INT - маскируемое прерывание, запрос от которого можно программным образом замаскировать путем сброса флага IF в регистре флагов.

Рис. 1.3.4. Структура контроллера приоритетных прерываний

Единственный вход запроса маскируемых прерываний микропроцессора не позволяет подключить к нему напрямую сигналы запросов от большого числа различных внешних устройств, которые входят в состав современного компьютера: таймера, клавиатуры, "мыши", принтера, сетевой карты и т.д. Для их подключения к одному входу INT микропроцессора используется контроллер приоритетных прерываний (рис. 1.3.4). Его функции:

  • восприятие и фиксация запросов прерываний от внешних устройств;

  • определение незамаскированных запросов среди поступивших запросов;

  • проведение арбитража: выделение наиболее приоритетного запроса из незамаскированных запросов в соответствии с установленным механизмом назначения приоритетов;

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

  • передача в микропроцессор по шине данных типа прерывания, выбранного в процессе арбитража, для запуска соответствующей программы - обработчика прерывания; это действие выполняется по сигналу разрешения прерывания INTA от микропроцессора, который выдается в случае, если прерывания в регистре флагов микропроцессора не замаскированы (IF=1).

Переход к соответствующему обработчику прерывания осуществляется (в реальном режиме работы микропроцессора) посредством таблицы векторов прерываний. Эта таблица (рис. 1.3.5) располагается в самых младших адресах оперативной памяти, имеет объем 1 Кбайт и содержит значения сегментного регистра команд (CS) и указателя команд (IP) для 256 обработчиков прерываний.

Рис. 1.3.5. Структура таблицы векторов прерываний

Обращение к элементам таблицы осуществляется по 8-разрядному коду - типу прерывания (табл. 1.3.1).

Таблица 1.3.1.

Тип прерывания

Источник прерывания

0

Деление на 0

1

Пошаговый режим выполнения программы

2

Запрос по входу NMI

· · ·

 

8

Запрос по входу IRQ0 (системный таймер)

9

Запрос по входу IRQ1 (контроллер клавиатуры)

· · ·

 

11

Отсутствие сегмента в оперативной памяти

· · ·

 

255

Пользовательское прерывание

Различные источники задают тип прерывания по-разному:

  • программные прерывания вводят его изнутри процессора или содержат его в номере команды INT n;

  • аппаратные маскируемые прерывания вводят его от контроллера приоритетных прерываний по шине данных;

  • немаскируемому аппаратному прерыванию назначен тип 2.

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

Супервизор прерываний выполняет следующие действия:

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

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

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

- передает управление подпрограмме обработки прерывания.

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

- выбор готовой к выполнению задачи (в соответствии с дисциплиной обслуживания)

- восстановление контекста задачи;

- установка прежнего режима работы системы прерываний;

- передачу управления выбранной задаче.

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

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

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

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

Защита памяти.

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

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

  2. задается одно из следующих обращений к области памяти собственной программы:

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

  • разрешается только считывание;

  • разрешается обращение любого вида по адресу взятого только из счетчика команд;

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

Если нарушается защита памяти, использование программы приостанавливается и вырабатывается запрос прерывания по нарушению защиты памяти.

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

Виртуа́льная па́мять

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

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

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

Также существует термин swap (англ. swap, /swɔp/) также означающий виртуальную память (точнее способ её представления), или же означает подкачку данных с диска.

Применение механизма виртуальной памяти позволяет:

  • упростить адресацию памяти клиентским программным обеспечением;

  • рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);

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

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

Управление данными (англ. data management) — процесс, связанный с накоплением, организацией, запоминанием, обновлением, хранением данных и поиском информации.

К управлению да́нными относятся:

      • Анализ данных

      • Моделирование данных

      • Управление базами данных

      • Работа с хранилищами данных

      • Извлечение, преобразование и загрузка данных

      • Добыча данных

      • Обеспечение качества данных

      • Защита данных

      • Управление метаданными (репозиториями данных)

  • Архитектура данных

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

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

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

Существуют два класса методов, реализующих доступ к данным по ключу:

  • методы поиска по дереву,

  • методы хеширования.

Деревом называется конечное множество, состоящее из одного или более элементов, называемых узлами, таких, что:

  • между узлами имеет место отношение типа "исходный-порожденный";

  • есть только один узел, не имеющий исходного. Он называется корнем;

  • все узлы за исключением корня имеют только один исходный; каждый узел может иметь несколько порожденных;

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

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

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

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

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

Файловая система связывает носитель информации, с одной стороны, и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте или блоке флеш-памяти) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).

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

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

Иерархия каталогов

Практически всегда файлы на дисках объединяются в каталоги.

В простейшем случае все файлы на данном диске хранятся в одном каталоге. Такая одноуровневая схема использовалась в CP/M и первых версиях MS-DOS. Иерархическая файловая система со вложенными друг в друга каталогами впервые появилась в UNIX.

Каталоги на разных дисках могут образовывать несколько отдельных деревьев, как в DOS/Windows, или же объединяться в одно дерево, общее для всех дисков, как в UNIX-подобных системах.

На самом деле, в DOS/Windows системах также, как и в UNIX-подобных существует один корневой каталог со вложенными директориями, имеющими названия «c:», «d:» и т. д. В эти каталоги монтируются разделы жёсткого диска. То есть, c:\ — это всего лишь ссылка на file:///c:/. Однако, в отличие от UNIX-подобных файловых систем, в Windows запись в корневой каталог запрещена, как и просмотр его содержимого.

В UNIX существует только один корневой каталог, а все остальные файлы и каталоги вложены в него. Чтобы получить доступ к файлам и каталогам на каком-нибудь диске, необходимо примонтировать этот диск командой mount. Например, чтобы открыть файлы на CD, нужно, говоря простым языком, сказать операционной системе: «возьми файловую систему на этом компакт-диске и покажи её в каталоге /mnt/cdrom». Все файлы и каталоги, находящиеся на CD, появятся в этом каталоге /mnt/cdrom, который называется точкой монтирования (англ. mount point). В большинстве UNIX-подобных систем съёмные диски (дискеты и CD), флеш-накопители и другие внешние устройства хранения данных монтируют в каталог /mnt, /mount или /media. Unix и UNIX-подобные операционные системы также позволяет автоматически монтировать диски при загрузке операционной системы.

Классификация файловых систем

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

Для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2 и др. Поскольку доступ к дискам в разы медленнее, чем доступ к оперативной памяти, для прироста производительности во многих файловых системах применяется асинхронная запись изменений на диск. Для этого применяется либо журналирование, например в ext3, ReiserFS, JFS, NTFS, XFS, либо механизм soft updates и др. Журналирование широко распространено в Linux, применяется в NTFS. Soft updates — в BSD системах. Reiser4 не применяет журналирование, все операции в ней атомарны.

Для носителей с последовательным доступом (например, магнитные ленты): QIC и др.

Для оптических носителей — CD и DVD: ISO9660, ISO9690, HFS, UDF и др.

Виртуальные файловые системы: AEFS и др.

Сетевые файловые системы: NFS, CIFS, SSHFS, GmailFS и др.

Для флэш-памяти: YAFFS, ExtremeFFS.

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

Задачи файловой системы

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

  • именование файлов;

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

  • отображения логической модели файловой системы на физическую организацию хранилища данных;

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

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

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

Графи́ческий интерфе́йс по́льзователя

Графи́ческий интерфе́йс по́льзователя (ГИП), графический пользовательский интерфейс (ГПИ) (англ. Graphical user interface, GUI) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и тп.), представленные пользователю на дисплее, исполнены в виде графических изображений.

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

История

Впервые концепция ГИП была предложена учеными из исследовательской лаборатории Xerox PARC в 1970-х.

В 1973 году в лаборатории Xerox PARC собрали молодых людей, недовольных политикой США (войной во Вьетнаме) и дали свободу исследований. В результате на свет появляется концепция графического интерфейса WIMP (Windows, Icons, Menus, Point-n-Click).[1] В рамках этой концепции создаётся компьютер Alto.

В 1979 году Three Rivers Computer Company выпускает рабочую станцию PERQ, похожую по принципам построения на Alto. В 1981 Xerox выпускает продолжение Alto — Star.

Коммерческое воплощение концепция ГИП получила в продуктах корпорации Apple Computer. В операционной системе AmigaOS ГИП с многозадачностью был использован в 1985 году. В настоящее время ГИП является стандартной составляющей большинства доступных на рынке операционных систем и приложений.

Примеры систем, использующих ГИП: Mac OS, Solaris, GNU/Linux, Microsoft Windows, NeXTSTEP, OS/2, BeOS.

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

Можно выделить следующие виды ГИП:[источник не указан 121 день]

  • простой: типовые экранные формы и стандартные элементы интерфейса, обеспечиваемые самой подсистемой ГИП;

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

  • трёхмерный: на данный момент слабо классифицирован.

DWIM

Одним из требований к хорошему графическому интерфейсу программной системы является концепция «делай то, что я имею ввиду» или DWIM (англ. Do What I Mean). DWIM требует, чтобы система работала предсказуемо, чтобы пользователь заранее интуитивно понимал, какое действие выполнит программа после получения его команды.

Утили́та

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

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

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