Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Приоритет и значение nice

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

Непосредственно установить внутренний приоритет невозможно, но можно установить так называемое значение nice, которое существенно влияет на внутренний приори­тет. Кроме того, внутренний приоритет зависит от того, сколько времени центрального процессора уже использовал процесс и от времени ожидания своей очереди на выполнение.

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

Если пользователь не предпринимает особых мер, то вновь созданный процесс наследует приоритет своего родительского процесса. Владелец процесса может увеличить зна­чение nice, но не может уменьшить его. Это не дает возможности процессам с низким приоритетом производить на свет "высокоприоритетных детей". Но привилегированный пользователь имеет полную свободу в установке значений nice.

Для создания нового процесса существующий процесс копирует самого себя с помощью системного вызова fork (ветвь - отсюда "ветвление процессов"), который создает копию исходного процесса, идентичную родителю (например, у них идентичные копии первоначального ОЗУ), но имеются следующие отличия:

• у нового процесса свой РID;

• PРID нового процесса равен РID родителя;

• учетная информация нового процесса обнулена;

• у нового процесса имеется свой собственный экземпляр дескрипторов файлов.

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

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

Когда система загружается, ядро самостоятельно создает несколько процессов. Наиболее важный из них - процесс init, PID которого всегда равен 1. Этот процесс отвечает за вызов shell для выполнения сценариев запуска (если они есть). Все процессы, кроме тех, которые создает ядро, являются потомками init.

Процесс init играет важную роль и в управлении процессами. Когда процесс завершается, он вызывает подпрограмму _exit, чтобы уведомить ядро о своей готовности "уме­реть". В качестве параметра подпрограмме _exit передается код завершения - целое число, указывающее на причину завершения процесса (нулевой код завершения означает, что процесс был "успешным").

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

Этот механизм работает нормально, если родительский процесс завершается позже порожденных им процессов и добросовестно вызывает wait для того, чтобы все процессы-зомби умерли. Если же родительский процесс умирает первым, то ядро понимает, что вызова wait не последует, и передает всех зомби процессу init. Тот обязан принять эти процессы и выполнить wait. Иногда init срабатывает некорректно, и зомби остаются в системе.

В ОС UNIX определено свыше тридцати различных видов сигналов. Сигнал - это способ сообщить процессу: "Произошло какое-то событие, поэтому брось делать то, что де­лаешь, и займись этим событием".

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

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

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

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

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

Пять основных состояний процесса перечислены в таблице 6.

 

 

Состояние   Смысл
Выполнимый процесс можно выполнять
Ожидающий процесс ждет выделения какого-либо ресурса
Свопированный процесс отсутствует в памяти
Зомби процесс пытается умереть
Остановленный процесс приостановлен (не имеет разрешения на выполнение)

 

Таблица 6. Основные состояния процесса.

 

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

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

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

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

 

“ЗАБЛУДШИЕ" ПРОЦЕССЫ

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

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

Контрольные вопросы:

1. Каковы функции ядра UNIX?

2. Какие существуют режимы выполнения процесса?

3. Что такое образ программы?

4. Какие функции у процесса Init?

5. Какие основные состояния у процесса?

6. Как создается новый процесс?

7. Что такое интерактивный процесс?

8. Какие функции у командной оболочки?

Лекция 17

ФАЙЛОВАЯ СИСТЕМА.

Файловая система - структура, с помощью которой ядро ОС организует и представляет пользователям ресурсы памяти системы. Ресурсы памяти включают память на различ­ного рода носителях информации (жесткие диски, гибкие диски, магнитные ленты и CD-ROM). Ядро объединяет эти ресурсы в единую иерархическую структуру, которая начи­нается в каталоге "/" и разветвляется, охватывая произвольное число подкаталогов. Ката­лог самого верхнего уровня называется корневым. Цепочка имен каталогов, через которые необходимо пройти для доступа к заданному файлу вместе с именем этого файла называ­ется путевым именем. Путевые имена могут быть абсолютными или относительными. Относительные имена интерпретируются, начиная с текущего каталога.

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

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

Если на машине имеются дополнительные файловые системы, они могут быть смонтированы (mounted) и размонтированы (unmounted) по желанию. Ключевые момен­ты, которые необходимо знать и помнить, следующие:

1. Корневая файловая система никогда не может быть

 

размонтирована.

2. Файловая система не может быть размонтирована пока ее используют.

3. Поврежденная система не может монтироваться.

Когда инсталлируется Unix, решается вопрос о том, какой тип файловой системы требуется исполь­зовать. Его можно выбрать из некоторого количества типов. Наиболее популярные из них описаны далее в этой главе. Все они содержат три неизменных компонента:

1. superblock. Содержит информацию о файловой системе и ее физических данных.

2. inode list. Список индексных дескрипторов.

3. data blocks. Блоки данных.

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

1. Уникальный номер индексного дескриптора, который увеличивается всякий раз, когда создается новый файл или каталог. Исторически сложилось, что номера 0 и 1 отводятся для специальных целей, а корневой индексный дескриптор начинается с цифры 2.

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

2. Двузначный номер, описывающий тип элемента:

1 — именованный канал.

2 — специальный файл символьного устройства.
04 — каталог.

06 — специальный файл блочного устройства.

10 — обычный файл.

12 — символическая связь.

14 — гнездо (socket).

3. Полномочия. Представляют собой четыре цифры, первая из которых показывает, установлен ли специальный режим (1=бит задержки, 2=SGID, 4=SUID), и остальные три разрешают/запрещают операции Чтение, Запись и Выполнение.

4. Текущий физический размер файла.

5. Количество связей элемента.

6. Владелец файла (часто в числовой форме — информация, возвращаемая командой id).

7. Группа, владеющая файлом (тоже часто в числовом виде).

8. Времена создания, модификации и доступа. Эта информация отражается в листинге каталога, по

ней команда find осуществляет поиск в соответствии с заданным критерием.

9. Текущий физический адрес нахождения файла.

Эти девять пунктов составляют индексный дескриптор, но в зависимости от производителя Unix мо­гут существовать еще некоторые компоненты. Чтобы увидеть поставленную дилером комплектацию, сле­дует посмотреть файл: /usr/include/sys/inode.h.

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

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

Когда вводится имя файла, то UNIX вы­полняет следующую последовательность шагов:

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

находит введенное имя в этой таблице;

отмечает соответствующий индексный дескриптор,

использует индексный дескриптор для поиска файла на диске;

5. в соответствии с выполняемой командой работает с данными в этом файле (чтение, запись и т.д.).

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

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

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

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

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

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

В ОС UNIX существует восемь типов файлов:

• обычные файлы;

• каталоги;

• байт-ориентированные файлы устройств;

• блок-ориентированные файлы устройств;

• доменные гнезда UNIX;

• именованные каналы (FIFO);

• жесткие ссылки;

• символические ссылки.

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

Байт-ориентированные и блок ориентированные файлы устройств. Файлы устройств позволяют UNIX-программам взаимодействовать с аппаратными средствами и периферийными устройствами системы. При конфигурировании ядра к нему "привязываются" те модули, которые "знают", как взаимодействовать с каждым из устройств системы. За всю

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

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

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

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

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

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

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

Несмотря на то, что другие процессы "видят" файлы гнезд как элементы каталога, процессы, не участвующие в соединении, не могут осуществлять над файлами гнезд операции чтения и записи. Доменные гнезда UNIX создаются системным вызовом socket.

Именованные каналы (АТТ) - как и доменные гнезда (UNIX) обеспечивают взаимодействие двух несвязанных процессов, выполняемых на одной машине.

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

Жесткие ссылки. Ссылка - это скорее не тип файла, а его дополнительное имя. У каждого файла имеется как минимум одна ссылка. Как правило, это имя, под которым он был создан. Добавлением ссылки создается псевдоним файла.

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

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

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

Атрибутов принадлежности файла - три. Во-первых, каждый файл имеет своего владельца (owner). Это, как правило - пользователь, создавший его или скопировавший. Во-вторых, файл принадлежит группе пользователей (group) - причем не обязательно к одной из тех, в которые входит его владелец. И, наконец, все прочие пользователи (other), т. е. не являющиеся ни хозяином файла, ни членами группы, к которой файл приписан, также имеют некоторое отношение к данному файлу (и, соответственно, могут иметь некоторые права на него). Атрибутов доступа - также три: право на чтение (read), право на изменение (write) и право на исполнение (execute).

Наиболее важно различие в атрибутах доступа к обычным (regular) файлам и каталогам (directory). Так, право чтения обычного файла означает возмож­ность просмотра его с помощью команд типа cat, more, less, текстовых ре­дакторов или специализированных прикладных пакетов. Кроме того, обла­датель права на чтение может скопировать файл в тот каталог, где он наделен правами записи (изменения). Право на изменение позволяет изменить содержание файла, но не удалить, переместить или переименовать его - для этих операций требуется право изменения не файла, а каталога, в который он входит. В то же время отсутствие права на изменение данного файла не ме­шает его копированию - ведь при этом содержание исходного файла не претерпевает никаких изменений, т. к. создается новый файл, наследующий атрибуты не источника, а пользователя, запустившего процесс копирования. Право на исполнение имеет смысл только для файлов исполняемых, т.е. откомпилированных бинарных программ и сценариев

оболочки.

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

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

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

Файлы в UNIX организованы в виде файловых систем. Это пони­мается в трех различных значениях:

· как часть ядра, которая управляет файлами - в этом смысле говорят о файловой системе (или подсистеме) ядра, наряду с системами (подсистемами) управления процессами и ввода/вывода;

· как физический способ организации хранения информации на

· диске (или ином накопителе) - при этом речь может идти о файловой системе FFS (Fast File System - файловая система FreeBSD, ext2fs (файловая сис­тема Linux), FAT16/FAT32 (файловая система DOS/Windows) и т. д.;

· как логическая иерархия файлов и каталогов, в которую они организованы.

Структура каталогов в UNIX-системе имеет иерархическую (древовидную) организацию, в основании которой ле­жит корневой каталог. В качестве подкаталогов его выступают:

/bin - каталог для исполняемых (иначе называемых двоичными, или би­нарными, binary) файлов общего назначения; здесь помещаются оболоч­ки командной строки, общие команды управления файлами и их архива­ции, традиционные текстовые редакторы типа vi и т.д.; именно каталог /bin в первую очередь просматривается на предмет поиска вве­денной с клавиатуры команды;

/boot - содержит файлы, отвечающие за загрузку системы;

/cdrom - по умолчанию это точка для монтирования файловой системы соответствующего носителя;

/dev - каталог для файлов устройств;

/dist - каталог, в который монтируется дистрибутивный CD-ROM при вызове программы sysinstall (и только в этом случае - обычная точка монтирования CD-ROM, как уже говорилось, - /cdrom);

/etc - каталог для конфигурационных файлов общего пользования;

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

/mnt - каталог для монтирования сменных накопителей (вроде дискет, Zip-дисков и т. д.) или временно подключаемых файловых систем (например, FAT-раздела диска);

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

/ргос - виртуальная файловая система для чтения информации о про­цессах;

/root - аналог каталога $НОМЕ для суперпользователя; по умолчанию закрыт для просмотра всеми, кроме администратора;

/sbin - содержит бинарные исполняемые файлы, используемые для сис­темного администрирования;

/stand - близкий по назначению каталог, файлы из которого, однако, доступны для исполнения, только будучи вызваны в явном виде, с указа­нием полного пути;

/sys - символическая ссылка на каталог /usr/src/sys, содержащий исход­ные тексты ядра системы;

/tmp - включает в себя всякого рода временные файлы - в частности, те, которые образуются при перекомпиляции ядра или полной пересбор­ке системы;

/usr - каталог для прикладных пользовательских программ со всеми их компонентами - исполняемыми, конфигурационными и разделяемыми файлами (/usr/bin, /usr/etc и /usr/share соответственно), библиотеками (/usr/lib) и т. д.;

/usr/local - подкаталог, имеющий самостоятельное значение; именно него устанавливается все дополнительное программное обеспечение из коллекции пакетов или системы портов, включая их исполняемые файлы (/usr/local/bin), документацию (/usr/local/doc, /user/local/info, /usr/local/man) библиотеки (/usr/local/lib), разделяемые файлы (/user/local/share);

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

Каталоги /tmp, /usr, /var (а иногда и /usr/local) часто выделяются в само­стоятельные файловые системы, расположенные в отдельных дисковых раз­делах (partitions). Как отдельную файловую систему имеет смысл распола­гать и каталог /home.

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

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

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

Контрольные вопросы:

1. Что такое индексные дескрипторы?

2. Что такое superblock?

3. Что такое inode list?

4. Какие существуют типы файлов?

5. Какие функции выполняют sockets?

 

6. Какие атрибуты принадлежности и доступа у файлов?

7. Что такое жесткая и символическая ссылки?

8. Можно ли размонтировать корневую файловую систему?

 

 


[1]

Если - длина сообщения, то оно занимает канал на время плюс время передачи по каналу(скорость света). Таким образом и - это среднее время обслуживания сообщения каналом.

в (2) - это здесь, так как и то, и другое – это среднее время обслуживания.

 

<== предыдущая лекция | следующая лекция ==>
Распределение памяти | В строительстве
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 326; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.093 сек.