Файл: Учебнометодическое пособие Томск 2016 2 удк 004. 451(075. 8) Ббк 32. 973. 2018. 2я73 к 754 Рецензенты.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.10.2023
Просмотров: 287
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
210 узла-сервера: 1) указатель на элемент в списке монтирования; 2) номер inode.
Пара этих чисел используется для указания требуемого файла в любом обраще- нии nfs-клиента к nfs-серверу. Например, если прикладной процесс в узле- клиенте выдал запрос на открытие файла, расположенного в узле-сервере, то, как и при открытии локального файла, в узле-клиенте создается vnode файла и делаются записи в системную файловую таблицу и в таблицу открытых фай- лов процесса. Что касается inode файла, то для его создания nfs-клиент по- сылает nfs-серверу сообщение с просьбой выполнить трансляцию имени тре- буемого файла. При этом в качестве имени файла nfs-клиент передает смещение относительно корня смонтированного поддерева, а в качестве имени корня поддерева передается указанная выше пара чисел.
Заметим, что при открытии файла по запросу удаленного клиента, nfs-сервер не делает никакие записи в системные таблицы, а ограничивается лишь выдачей vnode того файла, трансляцию имени которого запросил nfs-клиент. Содержимое двух полей этого vnodeиспользуется далее nfs-клиентом при выполнении всех системных вызовов, требующих выполне- ния информационного обмена с данным файлом (например, чтение файла). Не- смотря на то что программа прикладного процесса использует обычное логиче- ское имя (номер) файла, в протоколе общения между nfs-клиентом и nfs-сервером используется только указанное выше системное имя файла.
Этот же протокол регламентирует передачу в виде сообщений содержимого са- мого файла. При записи это содержимое передается от nfs-клиента к nfs- серверу. При чтении файла направление передачи будет, наоборот, от nfs- сервера к nfs-клиенту.
В заключение рассмотрим назначение дискового кэша (см. рис. 7.4). Как видно из этого рисунка, реальная ФС может взаимодействовать с управлением вводом-выводом не непосредственно, а через дисковый кэш – программный мо- дуль, включающий буфер для информационного обмена между устройствами
ВП (дисками) и областями оперативной памяти процессов, а также подпро- граммы для работы с этим буфером. Основная идея применения кэша заключа- ется в том, что его буфер содержит копии наиболее используемых секторов дисков. Поэтому вместо того чтобы с помощью подсистемы управления вво- дом-выводом выполнять чтение (запись) реальных секторов диска, реальная ФС выполняет с помощью подпрограмм кэша чтение (запись) тех элементов его буфера, которые соответствуют требуемым секторам диска.
211
Так как скорость переноса информации между ячейками ОП в тысячи раз превосходит скорость информационного обмена между диском и ОП, то при- менение кэша позволяет существенно повысить производительность любой ре- альной ФС (в том числе сетевой). Так как в среднем на 90% реальная ФС вы- полняет информационный обмен не с устройством ВП, а с кэшем, то увеличение производительности происходит примерно на порядок.
Существенным недостатком применения кэша является уменьшение надежности ФС из-за того, что текущее содержимое некоторых элементов кэша отличается от содержимого соответствующих секторов диска. Поэтому если в данный момент времени в ВС произойдет сбой, то фактическое содержимое информационных частей реальных ФС будет отличаться от их требуемого со- держимого.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Контрольные вопросы по главе 7
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
1. В чем отличия fat16 от fat32?
2. Какими основными особенностями обладает файловая система s5fs?
3. Опишите типовую логическую структуру жесткого диска.
4. Для чего служит дисковый кэш?
5. В чем отличие высокоуровневого и низкоуровневого форматирова- ния?
212
8 Лабораторный курс
Целью выполнения данного лабораторного курса является обучение сту- дентов использованию командного языка UNIX, то есть языка shell.
Лабораторный курс предназначен для выполнения в среде реальной
UNIX, установленной в учебном классе. При этом локальная сеть, объединяю- щая компьютеры класса, может находиться под управлением любой сетевой
ОС, поддерживающей протоколы связи с UNIX-системой, выполняемой на од- ном из компьютеров класса или вне его. При отсутствии такого класса допуска- ется выполнение лабораторных работ в среде локальных UNIX-систем.
Конечной отчетной формой для всех лабораторных работ является отчет, выполненный в текстовом редакторе в формате *.doc, *.docx или *.odt, с указа- нием на титульном листе выходных данных студента, описанием пунктов вы- полненной работы и выводами по итогам лабораторной работы. Отчет сдается на проверку в формате *.pdf.
Для лабораторных работ № 1 и 2 разбиения по вариантам нет, в лабора- торных работах № 3 и 4 выбор осуществляется по общим правилам с использо- ванием следующей формулы:
V = (N × K) div 100, где V – искомый номер варианта,
N – общее количество вариантов, div – целочисленное деление, при V = 0 выбирается максимальный вариант,
K – код варианта.
8.1 Лабораторная работа № 1. Первоначальное знакомство
с UNIX
8.1.1 Цель работы
Целью выполнения настоящей лабораторной работы является получение начальных навыков работы в среде UNIX: 1) знакомство с текстовым редакто- ром ed; 2) применение команд shell для работы с файлами; 3) использование в командах shell метасимволов и перенаправление ввода-вывода; 4) запуск
213 конвейеров программ; 5) применение в командах shellпеременных; 6) по- строение командных файлов; 7) изменение прав доступа к файлам.
8.1.2 Подготовка к выполнению работы
Перед началом выполнения данной работы обязательно следует изучить следующие вопросы из теоретической части пособия:
1) файлы с точки зрения пользователя (п. 2.2) – понятие файла; простое имя файла; каталоги; файловая структура системы; текущий каталог; относительное и абсолютное имена файла;
2) простые команды shell(утилиты) для работы с файловой структу- рой (пп. 2.3.2) – pwd; ls; cd; mkdir; rmdir; rm с флагом -r; cp с флагом -r;
3) простые команды shell (утилиты) для работы с файлами (пп. 2.3.3, пп. 2.3.4) – cat; cp; mv; rm;
4) команда вывода строки символов на экран echo (пп. 2.3.3);
5) использование метасимволов и перенаправление ввода-вывода
(пп. 2.5.2);
6) конвейеры программ (пп. 2.5.3);
7) переменные(пп. 2.5.4) – понятие переменной; способы задания значе- ний переменных (непосредственное задание строки символов; исполь- зование значения другой переменной; использование выходных дан- ных команды shell; применение команды ввода read); вывод переменных с помощью команды set; переменные окружения;
8) командные файлы (пп. 2.5.6) – понятие скрипта; способы запуска скрипта; вложенные скрипты; комментарии; позиционные параметры; инициализационный скрипт.profile;
9) защита файлов (п. 4.2) – типы пользователей; основные формы досту- па к файлу; права доступа; команда ls с флагом -l; команда chmod.
В процессе изучения перечисленных вопросов обязательно следует вы- полнить примеры, приведенные в пособии. Некоторые из этих примеров тре- буют предварительного создания вспомогательных текстовых файлов и (или) каталогов. Для этого можно использовать команды cat и mkdir.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Примечание. Допустим, что после включения терминала вы оказываетесь не в среде UNIX, а в среде другой операционной си-
214 стемы, позволяющей связываться с UNIX. Тогда прежде чем ввести команды по входу в UNIX, необходимо войти в исходную операци- онную систему, а затем ввести ее команду по запуску «терминала» в среде UNIX. При этом под «терминалом» понимается не аппарат- ное устройство, а псевдотерминал – программный процесс, связан- ный с UNIX.
Например, если ваш терминал находится в локальной сети, управляемой операционной системой семейства Windows, то вы сначала входите в эту систему под своим логическим именем, кото- рое зарегистрировано в этой локальной сети. Студентам ФДО имя пользователя и пароль выдаются по запросу, отправленному в элек- тронном курсе (подробнее в соответствующем элементе электрон- ного курса). После этого следует запустить программу putty(ее можно найти в свободном доступе в сети Интернет [10]), которая осуществляет запуск программного процесса, имитирующего тер- минал UNIX. Необходимо заполнить следующие поля: Host name
(or IP address): kcup.tusur.ru, Port: 22, Connection type: SSH, в настройках putty указать кодировку UTF-8 и нажать кнопку
Open. В дальнейшем действовать в терминале, как изложено выше, и помнить о том, что при вводе пароля введенные символы не отоб- ражаются на экране.
Возможно также выполнение лабораторных работ на локальной системе – для этого достаточно записать образ любого популярного дистрибутива Linux, например Ubuntu, на флеш-диск или CD и либо загрузиться в режиме LiveCD, либо установить дополнительную ОС на свой жесткий диск [11], либо установить выбранный дистрибутив Linux на виртуальную машину (например,
VirtualBox) локально.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
8.1.3 Текстовый редактор ed
Редактор ed ориентирован на построчное редактирование текстовой ин- формации. При этом под строкой понимается текст, введенный до нажатия кла- виши
215 весьма старый редактор, то простое имя файла не должно иметь длину более
14 символов. При этом, как и в любой команде UNIX, команда ed отделяется от параметра одним или несколькими пробелами. Пример:
· · · · · · · · · · · · · · · · · · · · · · · · · ·
Пример
· · · · · · · · · · · · · · · · · · · · · · · ·
UNIX
$ польз.
ed letter
?letter
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
В данном примере файл letter новый и в нем еще ничего нет. Поэтому в ответном сообщении редактора присутствует символ «?». Если бы мы задали имя уже существующего файла, то edсообщил бы длину редактируемого фай- ла в байтах. При этом последняя строка могла бы выглядеть, например, так: ed 1234
Допустим пока, что мы создали новый (пустой) файл. Для того чтобы по- местить в него текст, необходимо перейти в режим добавления. Это делается командой a редактора. Пример:
· · · · · · · · · · · · · · · · · · · · · · · · · ·
Пример
· · · · · · · · · · · · · · · · · · · · · · · · польз.
a
ответа нет; переход на новую строку польз.
This is a test to see if I am
Once I have completed it I shall find
.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Обратите внимание на точку в последней строке. Она представляет собой команду выхода из режима добавления. Другого способа выхода из этого ре- жима нет. Так как только одиночная точка в строке будет воспринята редакто- ром как команда, а не как часть вводимого текста.
После того как текст файла набран, его можно выводить на экран и редак- тировать. Для вывода файла используется команда p редактора. Вывод файла
216 можно выполнять построчно или в виде группы строк. Для построчного вывода редактору передается номер первой требуемой строки, в ответ на что edвыво- дит текст этой строки на экран. Далее вывод каждой следующей строки файла предваряется нажатием клавиши
· · · · · · · · · · · · · · · · · · · · · · · · · ·
Пример
· · · · · · · · · · · · · · · · · · · · · · · · польз.
1p
This is a test to see if I am польз.
entering text in the file “letter”. польз.
Once I have completed it I shall find польз.
that I have created 4 new lines польз.
?
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Символ «?» означает, что текст файла закончился.
Для вывода на экран группы строк в редактор передаются одновременно номер первой и номер последней выводимой строки файла, разделенные запя- той. При этом для обозначения последней строки файла можно использовать символ $. Пример:
· · · · · · · · · · · · · · · · · · · · · · · · · ·
Пример
· · · · · · · · · · · · · · · · · · · · · · · · польз.
1,$p
This is a test to see if I am entering text in the file “letter”.
Once I have completed it I shall find that I have created 4 new lines of data
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Для выполнения редактирования файла, во-первых, устанавливается тре- буемая текущая строка, а во-вторых, выполняется требуемая операция редак- тирования. Для установки требуемой текущей строки можно использовать по- строчный вывод текста. Получив на экране требуемую строку, следует ввести
217 одну из команд редактирования:
1 ... 15 16 17 18 19 20 21 22 23