45033 (Операционные системы), страница 7

2016-07-31СтудИзба

Описание файла

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

Онлайн просмотр документа "45033"

Текст 7 страницы из документа "45033"

Лекция №10

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

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

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

Мы также говорили о том, что кроме низкоуровнего ввода/вывода, с которым связаны функции, обеспечивающие системные вызовы (open, read, write и т.д.), существуют высокоуровневые средства доступа - это стандартная библиотека ввода/вывода stdio.h, подключение которой позволяет использовать для организации обменов еще один уровень буферизации (это оптимизация обращений к системным вызовам), который ассоциирован с процессом, т.е. буферизация происходит за счет ресурсов процесса. Мы оценивали, что хорошо, что плохо. Очевидно, что буферизация сокращает количество обменов с медленным внешним устройством, и чем больше таких уровней, тем меньше происходит обменов. Однако плохо то, что за счет буферизации снижается надежность системы. Например, при неожиданном для системы выключении питания, все буфера теряют информацию. Момент обращения к обмену далек от реального обмена, и поэтому возможны неприятные ситуации. Но, несмотря на эти недостатки, опыт показывает, что фатальные потери информации происходят крайне редко.

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

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

Атрибуты файлов

Мы с вами говорили об организации пользователей системы; она имеет иерархическую трехуровневую структуру.

Любой пользователь принадлежит к группе. В соответствии с иерархией пользователей, определена иерархия защиты файлов и прав пользователей. Определено понятие владельца файла. Изначально владельцем файла является пользователь (а точнее, процесс пользователя), создавший этот файл. Атрибут «владелец файла» может быть изменен командой changeown. Каждый файл имеет атрибуты защиты, связанные с иерархией. Есть права доступа к некоторым действиям файла со стороны владельца файла. Это права на чтение, на запись, на исполнение. У каждого файла, кроме прав, связанных с уровнем пользователя, имеются права, связанные с уровнем группы. Это права для всех пользователей группы, к которой принадлежит владелец файла, за исключением его самого (т.е. права владельца и его группы различны). Третья категория защиты - все остальные. Это те права, которые имеют все пользователи системы, за исключением владельца и его группы. В системе имеется команда изменения прав доступа changemode.

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

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

Предположим, есть исполняемый файл с именем file, и он работает каким-то образом с файлом file2, в котором находится конфиденциальная информация. Предположим, file корректирует file2, в котором находится информация обо всех зарегистрированных пользователях и, в частности, file может менять пароль пользователя в системе. Если я запущу file от своего имени, то могут возникнуть две ситуации: либо я не смогу работать с file2, в котором есть учетная информация о пользователях, потому что он закрыт для всех остальных; либо он открыт для всех, тогда нет никакой защиты. В этом случае работает s-бит. Суть его работы заключается в следующем. Владельцем исходного файла является пользователь ROOT. Предположим, этот файл захотел запустить пользователь с именем MASH. Если MASH запускает этот файл и нет s-бита, то получается, что владельцем файла является ROOT, а владельцем процесса стал MASH. В этом случае, файлы, которые недоступны пользователю MASH, будут недоступны и его процессу, и MASH не сможет изменить свой пароль в системе. S-бит позволяет продлить права владельца (ROOT) файла на владельца (MASH) процесса (запущенного из этого файла), и на время сеанса работы процесса ему будут доступны все те файлы, которые были доступны владельцу файла (ROOT).

Следующий вопрос: как интерпретируются права доступа к каталогам (поскольку каталоги также являются файлами)? Разрешение на чтение из каталога означает, что разрешен вход в каталог и открытие файлов из этого каталога. Разрешение на запись предоставляет возможность создавать и уничтожать файлы в этом каталоге. Разрешение на исполнение - это возможность поиска в данном каталоге (например, с помощью команды ls).

Файловая система с точки зрения пользователя.

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

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

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

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

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

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

3. В этом же каталоге находятся команды, которые позволяют изменять пароли пользователя (исполняемый файл passwd), позволяют «примонтировать» к файловой системе локальные файловые системы и отбазировать эти же локальные системы, позволяют запускать процесс тестирования и коррекции файловой системы. Этот процесс проверяет файловую систему по некоторому набору признаков, например, множество свободных файлов должно при объединении с множеством занятых файлов давать все множество файлов. И так далее.

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

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

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

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

Также, здесь имеется подкаталог BIN (/USR/BIN), в котором размещаются администратором системы дополнительные «домотканные» команды, потому что их размещение в каталоге /BIN считается некорректным.

Подкаталог INCLUDE. Вы помните, как выглядит строка include . Эта строка дает команду препроцессору Си взять файл из каталога /USR/INCLUDE. Этот каталог имеет свои подкаталоги, и для нас интересен подкаталог SYS (/USR/INCLUDE/SYS). В нем находятся include-файлы, ассоциированные с системными возможностями, в частности signal.h - это перечисление тех сигналов, которыми могут обмениваться два процесса.

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее