Управление файлами и внешними устройствами кратко

Обновлено: 07.07.2024

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

аппаратные – процессоры, память, внешние устройства;

информационные – данные и программы.

4.2. Основные функциональные компоненты ОС автономного компьютера

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

по типам локальных ресурсов, которыми управляет ОС; соответствующие подсистемы – подсистемы управления ресурсами ;

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

Основные подсистемы управления ресурсами – это подсистемы:

управления файлами и внешними устройствами.

Общие для всех ресурсов – это подсистемы:

прикладного программного и пользовательского интерфейсов;

защиты данных и администрирования.

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

Эта подсистема – важнейшая часть ОС.

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

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

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

обеспечивает процессы необходимыми системными ресурсами;

поддерживает синхронизацию процессов;

обеспечивает взаимодействие процессов.

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

отслеживание свободной и занятой памяти;

выделение памяти процессам и ее освобождение при завершении процесса;

защита памяти процесса;

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

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

 Управление файлами и внешними устройствами

Управление файлами и внешними устройствами осуществляется совместной работой двух подсистем – файловой системы и подсистемы ввода-вывода .

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

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

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

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

 Интерфейс прикладного программирования и пользовательский интерфейс

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

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

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

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

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

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

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

Функции WinAPI находятся в системных загружаемых библиотеках, таких как system32.dll, kernel32.dll, user32.dll, gdi32.dll и др. (каталог g:\WINDOWS\system32). Эти библиотеки используются самой ОС, поэтому они всегда находятся в памяти. Каждое приложение должно самостоятельно подключать библиотеки, содержащие необходимые ему функции.

Описания функций WinAPI на языке Си можно посмотреть через меню Пуск/Программы/Borland Delphi 7/Help/MS SDK Help Files/Win32 Developer’s References.

Рассмотрим пример использования функции WinAPI CreateWindowEx (создание экземпляра окна) в Delphi-программе из лабораторной работы № 3. Фрагмент описания этой функции:


В Delphi-программе присутствует строка подключения внешнего модуля windows, содержащего необходимые описания типов и самой функции:

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

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

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

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

Драйвер -(англ. drive — управлять, вести) программа, управляющая конкретной моделью внешнего устройства и учиты­вающая все его особенности. Он может управлять единствен­ной моделью устройства, например, каким-либо конкретным модемом, или же группой устройств определенного типа. Для пользователя очень важно, чтобы ОС включа­ла как можно больше разнообразных драйверов, так как это гарантирует возмож­ность подключения к компьютеру большого числа внешних устройств различ­ных производителей. От этого зависит успех ОС на рынке (в этом одна из причин низкой популярности OS/2).

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

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

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

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

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




Драйвер -(англ. drive — управлять, вести) программа, управляющая конкретной моделью внешнего устройства и учиты­вающая все его особенности. Он может управлять единствен­ной моделью устройства, например, каким-либо конкретным модемом, или же группой устройств определенного типа. Для пользователя очень важно, чтобы ОС включа­ла как можно больше разнообразных драйверов, так как это гарантирует возмож­ность подключения к компьютеру большого числа внешних устройств различ­ных производителей. От этого зависит успех ОС на рынке (в этом одна из причин низкой популярности OS/2).

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

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

Содержание

Введение………………………………………………………………………3
Задачи ОС по управлению файлами и устройствами……………………. 4
Организация параллельной работы устройств ввода-вывода и
процессора………………………………………………………………….…5
Разделение устройств и данных между процессами……………………….6
Поддержка широкого спектра драйверов и простота включения нового
драйвера в систему………………………………………………………. …7
Цели и задачи файловой системы………………………………………. …8
Типы файлов……………………………………………………………….….9
Атрибуты файлов…………………………………………………………. 10
Логическая организация файла……………………………………………..11
Заключение…………………………………………………………………..12
Список используемой литературы……………

Вложенные файлы: 1 файл

Доклад на тему управление устройствами.docx

Файловая система (ФС) — это часть операционной системы, включающая:

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

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

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

    1. Именование файлов;
    2. Программный интерфейс для приложений;
    3. Отображения логической модели файловой системы на физическую

    организацию хранилища данных;

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

    Обычные файлы, или просто файлы, содержат информацию произвольного характера, которую заносит в них пользователь или которая образуется в результате работы системных и пользовательских программ. Большинство современных операционных систем (например, UNIX, Windows, OS/2) никак не ограничивает и не контролирует содержимое и структуру обычного файла. Содержание обычного файла определяется приложением, которое с ним работает. Например, текстовый редактор создает текстовые файлы, состоящие из строк символов, представленных в каком-либо коде. Это могут быть документы, исходные тексты программ и т. п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют коды символов, они часто имеют сложную внутреннюю структуру, например исполняемый код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов — их собственные исполняемые файлы.

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

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

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

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

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

    Логическая организация файла

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

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

    Модель файла, в соответствии с которой содержимое файла представляется неструктурированной последовательностью (потоком) байт, стала популярной вместе с ОС UNIX, а теперь она широко используется в большинстве современных ОС, в том числе в MS-DOS, Windows NT/2000, NetWare. Неструктурированная модель файла позволяет легко организовать разделение файла между несколькими приложениями: разные приложения могут по-своему структурировать и интерпретировать данные, содержащиеся в файле.

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

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

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

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

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

    Основная идея использования внешней памяти состоит в следующем. ОС делит память на блоки фиксированного размера, например, 4096 байт. Файл, обычно представляющий собой неструктурированную последовательность однобайтовых записей, хранится в виде последовательности блоков (не обязательно смежных); каждый блок хранит целое число записей. В некоторых ОС (MS-DOS) адреса блоков, содержащих данные файла, могут быть организованы в связный список и вынесены в отдельную таблицу в памяти. В других ОС (Unix) адреса блоков данных файла хранятся в отдельном блоке внешней памяти (так называемом индексе или индексном узле). Этот прием, называемый индексацией, является наиболее распространенным для приложений, требующих произвольного доступа к записям файлов. Индекс файла состоит из списка элементов, каждый из которых содержит номер блока в файле и сведения о местоположении данного блока. Считывание очередного байта осуществляется с так называемой текущей позиции, которая характеризуется смещением от начала файла. Зная размер блока, легко вычислить номер блока, содержащего текущую позицию. Адрес же нужного блока диска можно затем извлечь из индекса файла. Базовой операцией, выполняемой по отношению к файлу, является чтение блока с диска и перенос его в буфер, находящийся в основной памяти.

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

    Перечислим основные функции файловой системы.

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

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

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

    4. Обеспечение защиты от несанкционированного доступа.

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

    6. Обеспечение высокой производительности.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Функции WinAPI находятся в системных загружаемых библиотеках, таких как system32.dll, kernel32.dll, user32.dll, gdi32.dll и др. (каталог g:\WINDOWS\system32). Эти библиотеки используются самой ОС, поэтому они всегда находятся в памяти. Каждое приложение должно самостоятельно подключать библиотеки, содер­жащие необходимые ему функции.

    Описания функций WinAPI на языке Си можно посмотреть через меню Пуск/Про- граммы/Borland Delphi 7/Help/MS SDK Help Files/Win32 Developer's References.

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

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

    - командный язык для работы с терминалом; команды вводятся по одной с терми­нала либо их последовательность считывается из командного файла и выполняются командным интерпретатором (разновидности Unix в их исходном варианте);

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

    - Защита данных и администрирование

    Безопасность данных обеспечивается:

    - средствами отказоустойчивости ОС (защита от сбоев и отказов аппаратуры и ошибок программного обеспечения);

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

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

    Рассмотрим функциональные компоненты сетевой ОС

    Читайте также: