- •«Национальный исследовательский ядерный университет «мифи»
- •Н.В. Куликова, е.Н. Петровская
- •XXI век. Общество и образование
- •Глава 1. Исторический экскурс
- •1.1. Отличительные особенности развития электронно-счетного машиностроения
- •1.2. Сферы применения эвм
- •1.3. Этические, правовые и социально-психологические проблемы внедрения эвм
- •2.2. Этапы развития математического обеспечения
- •Глава 2. Математическое обеспечение
- •2.1. Понятие математического обеспечения
- •2.3. Назначение и классификация программного
- •Контрольные вопросы
- •Глава 3. Операционная система
- •3.1. Понятие операционной системы
- •3.2. Типы операционных систем
- •3.2.1. Программное обеспечение системы реального
- •3.2.2. Операционная система пакетной обработки
- •3.2.3. Операционная система разделения времени
- •3.2.4. Системы общего назначения
- •3.3. Основные принципы проектирования
- •3.4. Управление вводом-выводом
- •Вопросы для самоконтроля
- •Глава 4. Схема функционирования операционной системы
- •4.1. Определение основных элементов
- •4.2. Структуры рабочих программ
- •4.3. Уровни операционной системы и виртуальность
- •Контрольные вопросы
- •Глава 5. Иерархическая операционная система
- •5.1. Понятие и структура иерархической операционной
- •5.2. Механизм планирования
- •5.3. Основные блоки операционной системы
- •5.4. Критическая область и синхронизация
- •5.5. Тупики
- •Контрольные вопросы
- •Глава 6. Формальная модель операционной системы
- •6.1. Понятие моделирования и типы моделей
- •6.2. Формальная модель операционной системы
- •6.3. Взаимосвязь процессов и ресурсов
- •6.4. Режимы мультирограммирования
- •Контрольные вопросы
- •Глава 7. Функциональность операционной системы при многозадачных режимах
- •7.1. Система запросов на основную память
- •7.2. Управление запросами
- •7.3. Управление подпулами
- •7.4. Организация управление задачами
- •Контрольные вопросы
- •Глава 8. Идеология совершенствования операционных систем (ос юникс)
- •8.1. Общие положения
- •8.2. Переадресация ввода-вывода
- •8.3. Файловая система ос юникс и ее структура
- •8.4. Ядро системы
- •8.5. Программные компоненты make и sccs
- •8.6. «Генеалогия» системы unix
- •Контрольные вопросы
- •Примерные варианты лабораторных работ по отдельным темам
- •Формат команды
- •Специализированные команды
- •Chkdsk диск:имя_файла.Расш /f /V
- •Перемещение по документу
- •1) Комбинации клавиш:
- •2) Вертикальная полоса прокрутки:
- •3) Кнопки навигатора:
- •Особенности linux
- •Операции с файлами и каталогами
- •Оболочки и команды linux
- •Движение по дереву каталогов
- •Просмотр содержимого каталогов
- •Перенос файлов
- •Уничтожение файлов и каталогов
- •Просмотр содержимого файлов
- •Экранная документация
- •Стандартный ввод и вывод
- •Печать файлов
- •Выход из системы
- •Литература
- •Содержание
- •Глава 1. Исторический экскурс
- •Глава 2. Математическое обеспечение
- •Глава 3. Операционная система
- •Глава 4. Схема функционирования операционной системы
- •Глава 5. Иерархическая операционная система
- •Глава 6. Формальная модель операционной системы
- •Глава 7. Функциональность операционной системы при многозадачных режимах
- •Глава 8. Идеология совершенствования операционных систем (ос юникс)
- •Глава 9. Примерные варианты лабораторных работ по отдельным темам
8.2. Переадресация ввода-вывода
В системе UNIX программа в период своего выполнения называется процессом. Если несколько пользователей одновременно запускают одну и ту же программу, то говорят о существовании одной программы, но нескольких процессов.
Основным устройством для организации взаимодействия пользователя и ЭВМ в системе UNIX является терминал. Для упрощения работы многие утилиты ОС UNIX используют терминал как стандартное устройство ввода-вывода. Стандартным считается устройство, по отношению к которому в программе применены принятые в ОС соглашения.
Несмотря на то, что стандартный ввод-вывод в UNIX закреплен за терминалом (рис. 8.1), SHELL обладает свойствами, позволяющими выполнять переадресацию стандартного ввода-вывода. Эти средства относятся к числу наиболее важных характеристик ЭВМ.
Рис. 8.1. Стандартный ввод-вывод
Символ > означает, что стандартный вывод команды направляется в файл, имя которого указывается в следующем слове (рис. 8.2)
Станд. ввод
Рис. 8.2. Переадресация вывода
Аналогично можно осуществить переадресацию и ввода (рис. 8.3). Стандартно программа вводит информацию с терминала, но можно ее читать и из обычного файла.
файл
Станд. вывод
Рис.8.3. Переадресация ввода
Можно осуществить одновременно переадресацию и ввода, и вывода (рис. 8.4).
Рис. 8.4. Переадресация ввода-вывода
Конвейер служит для объединения стандартного вывода одной программы со стандартным выводом другой. Конвейер и переадресация ввода-вывода − различные средства операционной системы. Если при переадресации информация читается или пишется в файл, то конвейер непосредственно соединяет вывод одной программы с вводом другой.
Конвейер − это соединяющее средство между стандартным выводом одной программы и стандартным вводом другой программы (рис. 8.5).
prog1|prog2
Рис. 8.5. Конвейер
В операционной системе ЮНИКС осуществляется и объединение переадресации ввода-вывода и конвейера.
prog1<file1| prog2>file2 осуществляет переадресацию ввода prog1 на файл file1, переадресацию вывода prog2 на файл file2 и соединяет вывод prog1 с вводом prog2 (рис. 8.6).
Рис. 8.6. Совмещение переадресации ввода-вывода с конвейером
Программа, считывающая данные со стандартного устройства ввода, выполняющая определенную обработку этих данных и записывающая результат в поток стандартного вывода, называется фильтром. Вертикальная черта |, используемая для переадресации вывода одной программы в UNIX как ввода другой, называется символом канала. Этот символ означает, что вывод одной программы должен использоваться в качестве входа другой, что позволяет обойтись без явного указания shell создать временный файл, а затем удалить его. Набор команд, соединенных символом канала называется конвейером и может содержать произвольное количество команд.
8.3. Файловая система ос юникс и ее структура
Организационная структура, в соответствии с которой файлы хранятся на запоминающем устройстве, называется файловой системой. Файловая система ОС UNIX разработана, в первую очередь, для удобства пользователя и упрощения доступа к данным. Отсюда возникла необходимость логической группировки файлов. Такие группы файлов в ОС UNIX получили название каталогов. Файловая система ОС UNIX имеет иерархическую структуру, ибо пользователь может иметь несколько каталогов, а число пользователей UNIX может достигать сотен. В многопользовательских системах возникает необходимость иметь средства для введения ограничений на доступ к файлам. Это приводит к целому ряду усложнений, а для многорежимных ОС − и к целой ступени лишних функций, что значительно усложняет работу всех систем коллективного пользования.
Одним из нововведений в рассматриваемой системе является схема, по которой каждое устройство ввода-вывода ассоциируется со специальным файлом. Доступ к любому устройству реализуется как обслуживание запроса дисковых файлов. Каждое устройство представляется в системе, по меньшей мере, одним специальным файлом. Длина имени файла ограничена четырнадцатью символами. Обычные файлы бывают двух типов: текстовые и двоичные. Текстовые файлы могут содержать только ASCII-коды, а двоичные могут иметь все 256 возможных значений для любого байта.
Файлы каталогов. Каталогами называются файлы, содержащие списки файлов. ОС UNIX обеспечивает существование системы каталогов. Программы пользователя могут читать файлы этого типа, но не в состоянии их изменить. Система гарантирует сохранность структуры каталогов. В каждый каталог могут входить обычные файлы, специальные файлы и поименованные конвейеры (FIFO). Каждый пользователь обладает каталогом, именуемым начальным. В вершине иерархии файловой системы располагается специальный каталог − корневой. Файловая структура операционной системы часто называется древовидной. Часть системы, которая ниже текущего каталога, называется текущим поддеревом. Для работы с поддеревьями в системе существует несколько специальных команд. Каталог, в котором пользователь находится в данный момент, называется текущим.
Полные имена файлов, начинающиеся с символа "/" и описывающие путь к файлу от корневого каталога, называются абсолютными. Остальные полные имена называются относительными, т.к. описывают путь, начинающийся с высшего текущего каталога.
Основной функцией иерархии файловой структуры является разделение пространства внешней памяти на поименованные участки. В одноуровневых файловых системах главной организующей структурой является каталог, содержащий всю информацию о файлах. Этот каталог спрятан от пользователя и защищен механизмом операционной системы. В иерархии ОС UNIX каталоги − это файлы, которые может читать любая программа. Но в них хранится не вся информация, а только имена файлов и некоторые числа, используемые ядром для доступа к внутренним структурам.
Скрытой частью файловой организации этой операционной системы является индексный дескриптор файла. Существует по одному дескриптору на каждый файл, и именно с ними работает файловая система. Индексный дескриптор описывает расположение файла, его длину, метод доступа, даты, связанные с историей скрытого файла, идентификатор владельца и другую информацию. Обычно пользователь не имеет дела с индексным дескриптором, пока индексная структура не нарушена и не нуждается в восстановлении (рис. 8.7).
Одним из важнейших свойств рассматриваемой файловой системы UNIX является возможность монтирования, т.е. всякая файловая система может быть прикреплена к общему дереву каталогов в любой его точке (рис. 8.8).
Можно монтировать свою файловую систему только для чтения, тогда и команде следует добавить соответствующую опцию.
Первый блок любой файловой структуры − это блок начальной загрузки. Если носитель допускает начальную загрузку, то этот блок содержит короткую программу загрузчика, которая читает более длинную, вторичную, загрузочную программу или само ядро системы. Конкретные детали начальной загрузки для различных версий и систем могут существенно отличаться. Если же файловая система не может служить резидентом операционной системы, то ее первый блок не используется.
Второй блок (суперблок) содержит заголовок файловой системы, состоящий из информации о размере файловой системы, числе индексных дескрипторов и о параметрах для списка свободных блоков. Ядру должны быть доступны суперблоки всех смонтированных файловых систем, так как находящаяся в них информация позволяет выполнить обращение к файлам и индексным дескрипторам.
Корневой каталог
Текущий каталог и текущее поддерево заштрихованы
Рис. 8.7 Иерархическая файловая система ЮНИКС (UNIX)
а)
б)
Рис. 8.8. Файловая система а) − перед монтированием, б) − после монтирования
Индексные дескрипторы хранятся в файловой системе во всех блоках, кроме первого. Разные по размеру файловые системы содержат разное число индексных дескрипторов (это число указано в суперблоке). Поскольку дескрипторы имеют фиксированный размер и пронумерованы последовательно от 0, любой из них может быть найден по номеру.
В некоторых операционных системах предполагается, что блоки файла размещаются последовательно, и тогда задаются номера начального и конечного блоков. Это неудобно, так как расширение файла ограничено двумя соседними, и возникает неизбежность потери дискового пространства из-за фрагментации. Применение в ЮНИКС (UNIX) списков блоков, занимаемых файлами, снимает проблему непрерывности файловых систем. Блоки файла могут быть физически разбросаны по диску, но логически они будут образовывать длинную цепочку, включающую весь набор данных. Ключом, защищающим весь набор файлов, служит список из 13 номеров блоков на диске, хранящихся в индексном дескрипторе.
Блок 0 |
Начальная загрузка |
Блок 1 |
Суперблок |
Блок 2 |
Индексные дескрипторы |
… |
|
Блок n |
|
Блок n+1 |
|
… |
|
Последний блок |
Рис. 8.9. Размещение файловой системы
Первые 10 номеров задают первые 10 блоков файла. Если данные файла умещаются в этих десяти блоках или не занимают их все, то только несколько элементов списка содержат дисковые адреса (рис. 8.9).
Например, если файлу достаточно 4-х блоков, то первые 4 элемента списка включают соответствующие адреса, а остальные 9 заполнены нулями. Если же длина данных превышает 10 блоков, первые 10 элементов списка ссылаются на блоки файла, а 11-ый блок − на блок, где размещается список следующих 128 блоков. Этот блок называется косвенным. Для файлов, длина которых больше 138 блоков (70656 байтов), 12-ый элемент списка содержит адрес блока, включающего адреса 128 косвенных блоков. Такой блок называют двойным косвенным.
Если же файл длиннее, чем 16522 блока (8459264 байта), то в 13-ом элементе списка находится адрес тройного косвенного блока. Тогда максимальная длина файла в ОС UNIX 2113674 блока (1082201088 байт). Это длина информации, которая может адресоваться в данной системе. И хотя выбор информации из больших файлов сложнее, чем из малых (из-за промежуточных обращений к косвенным блокам), система позволяет использовать огромные наборы данных. Как всякий файл, каталог определяется своим индексным дескриптором. Каталог состоит из элементов по 16 байтов каждый, из которых 14 служат для имени и 2 − для номера индексного дескриптора файла. С точки зрения ядра этой ОС траектория, задаваемая полным именем файла, представляет собой переходы между каталогами и индексными дескрипторами. Все вышесказанное иллюстрирует схема на рис. 8.10.
Рис. 8.10. Адресация блоков файла блоком указателей индексных дескрипторов
