Лекция 1 Введение в системное программное обеспечение
Скачать 0.9 Mb.
|
Лекция 3: Объекты ядра операционной системыПроцесс (информатика)Проце́сс — компьютерная программа, находящаяся в стадии выполнения на компьютерной системе, способной выполнять несколько компьютерных программ параллельно. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных и взаимодействующих действий, преобразующих входящие данные в исходящие. Компьютерная программа сама по себе это только пассивная совокупность инструкций, в то время как процесс - это непосредственное выполнение этих инструкций. Часто процессом называют выполняющуюся программу и все её элементы: адресное пространство, глобальные переменные, регистры, стек, открытые файлы и т.д. Создание процессаПростейшей операционной системе (например, внутри холодильника или автомата для продажи газированной воды) не требуется создание новых процессов, поскольку внутри них работает одна-единственная программа, запускаемая во время включения устройства. В более сложных системах надо создавать новые процессы. Обычно они создаются: - при запуске ОС, - при появлении запроса на создание процесса - происходит в случае, если работающий процесс создает новый процесс. Завершение процессаЗавершение процесса происходит как: - обычный выход - выход по исключению или ошибке ЛитератураЭ. Таненбаум, А. Вудхалл. «Операционные системы: Разработка и реализация.» — СПб.: 2006. — ISBN 5-469-00148-2 Э. Таненбаум. «Современные операционные системы. 2-е изд.» — СПб.: Питер, 2005. — 1038 с.: ил. ISBN 5-318-00299-4 ФайлФайл (англ. file — папка, скоросшиватель) — концепция в вычислительной технике: сущность, позволяющая получить доступ к какому-либо ресурсу вычислительной системы и обладающая рядом признаков: фиксированное имя (последовательность символов, число или что-то иное, однозначно характеризующее файл) определенное логическое представление и соответствующие ему операции чтения/записи Может быть любой — от последовательности бит до базы данных с произвольной организацией или любым промежуточным вариантом. Первому случаю соответствуют операции чтения/записи потока и/или массива (то есть последовательные или с доступом по индексу), второму — команды СУБД. Промежуточные варианты - чтение и разбор всевозможных форматов файлов. В отличие от переменной, файл (в частности, его имя) имеет смысл вне конкретной программы. Работа с файлами — по крайней мере, в «простейшем» представлении — реализуется средствами операционных систем, а до их появления реализовывалась их предшественниками — мониторами и библиотеками подпрограмм. Ресурсами, доступными через файлы, в принципе, может быть что угодно, представимое в цифровом виде. Чаще всего в их перечень входят: области данных (не обязательно на диске) устройства (как физические, так и виртуальные) потоки данных (в частности, вход или выход другого процесса) сетевые ресурсы объекты операционной системы Файлы первого типа исторически возникли первыми и распространены наиболее широко, поэтому часто «файлом» называют и область данных, соответствующую имени. Файловая системаПо мере развития вычислительной техники файлов в системах становилось все больше. Для удобства работы с ними их, как и другие данные, стали организовывать в структуры (тогда же появились символьные имена). Вначале это был простой массив, «привязанный» к конкретному носителю информации. В настоящее время наибольшее распространение получила древовидная организация с возможностью монтирования и вставки дополнительных связей (т. е. ссылок). Соответственно, имя файла приобрело характер пути к файлу: перечисление узлов дерева файловой системы, которые нужно пройти, чтобы до него добраться. Файл как объект API операционной системыОперационная система предоставляет приложениям набор функций и структур для работы с файлами. Возможности операционной системы накладывают дополнительные ограничения на ограничения файловой системы. С точки зрения API файл — объект, по отношению к которому могут быть применены функции этого API. На уровне API уже не существенно, существует ли файл как объект файловой системы или является, например, устройством ввода/вывода. Свойства файлаВ зависимости от файловой системы, файл может обладать различным набором свойств. Имя файлаВ большинстве файловых систем имя файла используется для указания к какому именно файлу производится обращение. В различных файловых системах ограничения на имя файла сильно различаются: В FAT16 и FAT12 размер имени файла ограничен 8 символами (3 символа расширения). В VFAT ограничение 255 байт. В FAT32, HPFS имя файла ограниченно 255 символами В NTFS имя ограничено 254 символами Unicode В ext2/ext3 ограничение 255 байт. Помимо ограничений файловой системы, интерфейсы операционной системы дополнительно ограничивают набор символов, который допустим при работе с файлами. Для MS-DOS в имени файла допустимы только заглавные буквы, цифры. Не допустим пробел, знак вопроса, звёздочка, символы больше/меньше, символ вертикальной черты.[1]. При вызове системных функций именами файлов в нижнем или смешанном регистре, они приводятся к верхнему регистру. Для Microsoft Windows в имени файла разрешены заглавные и строчные буквы, цифры, некоторые знаки препинания, пробел. Запрещены символы «>», «<», «|», «?», «*», «/», «\», «:», «"». Для GNU/Linux (с учётом возможности маскировки) разрешены все символы, кроме «/» и нулевого байта. Большинство операционных систем требуют уникальности имени файла в одном каталоге, хотя некоторые системы допускают файлы с одинаковыми именами (например, при работе с ленточными накопителями). Расширение имени файлаРасширение имени файла (часто расширение файла или расширение) как самостоятельный атрибут файла существовал в файловых системах FAT16, FAT12, и использовался для определения типа файла. В остальных файловых системах расширение — условность, часть имени, отделённая самой правой точкой в имени. АтрибутыВ некоторых файловых системах предусмотрены атрибуты (обычно это бинарное значение «да»/«нет», кодируемое одним битом). Практически атрибуты не влияют на возможность доступа к файлам, для этого в некоторых файловых системах существуют права доступа.
ВремяДля файла могут быть определены следующие временные метки: Время создания Время модификации Время последнего доступа Владелец и группа файлаВ некоторых файловых системах предусмотрено указание на владельца файла, и группу владельца. Права доступаВ некоторых файловых системах предусмотрена возможность для ограничения доступа пользователей к содержимому файла В UNIX-подобных операционных системах для файлов обычно выделяют три типа прав: Право на запись Право на чтение Право на выполнение Каждое право задаётся раздельно для владельца, для группы и для всех остальных. ACL позволяют расширить этот список. В операционных системах Windows NT при работе с файловой системой NTFS права доступа задаются явно для пользователей или групп (или наследуются от вышестоящих объектов). Права в себя включают: Право на чтение Право на запись Право на исполнение Право на удаление Право на смену атрибутов и владельца Право на создание, удаление подпапок (для папок) Право на чтение прав доступа Каждое право может быть задано как разрешением, так и запретом, запрет имеет больший приоритет, чем разрешение. Операции с файломУсловно можно выделить два типа операций с файлом - связанные с его открытием, и выполняющиеся без его открытия. Операции первого типа обычно служат для чтения/записи информации или подготовки к записи/чтению. Операции второго типа выполняются с файлом как с "объектом" файловой системы, в котором файл является мельчайшей единицей структурирования. Операции, связанные с открытием файлаВ зависимости от операционной системы те или иные операции могут отсутствовать. Обычно выделяют дополнительные сущности, связанные с работой с файлом: хэндлер файла, или дескриптор (описатель). При открытии файла (в случае, если это возможно), операционная система возвращает число (или указатель на структуру), с помощью которого выполняются все остальные файловые операции. По их завершению файл закрывается, а хэндлер теряет смысл. файловый указатель. Число, являющееся смещением относительно нулевого байта в файле. Обычно по этому адресу осуществляется чтение/запись, в случае, если вызов операции чтения/записи не предусматривает указание адреса. При выполнении операций чтения/записи файловый указатель смещается на число прочитанных (записанных) байт. Последовательный вызов операций чтения таким образом позволяет прочитать весь файл не заботясь о его размере. файловый буфер. Операционная система (и/или библиотека языка программирования) осуществляет кеширование файловых операций в специальном буфере (участке памяти). При закрытии файла буфер сбрасывается. режим доступа. В зависимости от потребностей программы, файл может быть открыт на чтение и/или запись. Кроме того, некоторые операционные системы (и/или библиотеки) предусматривают режим работы с текстовыми файлами. Режим обычно указывается при открытии файла. режим общего доступа. В случае многозадачной операционной системы возможна ситуация, когда несколько программ одновременно хотят открыть файл на запись и/или чтение. Для регуляции этого существуют режимы общего доступа, указывающие на возможность осуществления совместного доступа к файлу (например, файл в который прозводится запись может быть открыт для чтения другими программами - это стандартный режим работы log-файлов). Операции Открытие файла (обычно в качестве параметров передается имя файла, режим доступа и режим совместного доступа, а в качестве значения выступает файловый хэндлер или дескриптор), кроме того обычно имеется возможность в случае открытия на запись указать на то, должнен ли размер файла изменяться на нулевой. Закрытие файла. В качестве аргумента выступает значение, полученное при открытии файла. При закрытии все файловые буферы сбрасываются. Запись — в файл помещаются данные. Чтение — данные из файла помещаются в область памяти. Перемещение указателя — указатель перемещается на указанное число байт вперёд/назад или перемещается по указанному смещению относительно начала/конца. Не все файлы позволяют выполнение этой операции (например, файл на ленточном накопителе может не «уметь» перематываться назад). Сброс буферов — содержимое файловых буферов с незаписанной в файл информацией записывается. Используется обычно для указание на завершение записи логического блока (для сохранения данных в файле на случай сбоя). Получение текущего значения файлового указателя. Операции, не связанные с открытием файлаОперации, не требующие открытия файла оперируют с его «внешними» признаками — размером, именем, положением в дереве каталогов. При таких операциях невозможно получить доступ к содержимому файла, файл является минимальной единицей деления информации. В зависимости от файловой системы, носителя информации, операционной системой часть операций может быть недоступна. Список операций с файлами Удаление файла Переименование файла Копирование файла Перенос файла на другую файловую систему/носитель информации Создание симлинка или хардлинка Получение или изменение атрибутов файла Типы файловВ различных операционных системах и/или файловых системах могут быть реализованы различные типы файлов; так же может различаться реализация различных типов. «Обыкновенный файл» — файл, позволяющий операции чтения, записи, перемещения внутри файла Директория (англ. directory — алфавитный справочник, часто переводится как каталог) — файл, содержащий в себе записи о других файлах. Директории могут содержать записи о других директориях, образуя древовидную структуру. Жесткая ссылка (англ. hardlink, часто используется калька хардлинк) — в общем случае одна и та же область информации может иметь несколько имён, указывающих на одни и те же данные. В этом случае такие имена называют жесткими ссылками (хардлинками). В общем случае после создания хардлинка сказать кто «настоящий» файл а кто хардлинк невозможно, так как имена равноправны; а область данных существует до тех пор пока существует хотя бы одно из имён. Хардлинки возможны только на одном физическом носителе. Символьная ссылка (cимлинк, софтлинк) — файл, содержащий в себе ссылку на другой файл или директорию. Может ссылаться на любой элемент файловой системы, в том числе, и расположенный на другом физическом носителе. Примечания↑ http://support.microsoft.com/kb/100108/EN-US/ См. такжеСписок форматов файлов Файловая система Операционная система Файлообменные программы Атрибуты файла ACL Временный файл Текстовый файл Двоичный файл Разреженный файл Исполнимый модуль Заголовочный файл Файл регистрации Файл конфигурации README-файл Пакетный файл |