Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Обеспечение сохранности файловой системы



Монтирование/демонтирование файловой системы: Монтирование файловой системы - это объединение отдельных файловых систем (размещённых на носители информации независимо) в единую файловую систему, представляющую собой дерево. Монтирование заключается в логическом соединении файловой системы с доступным каталогом. Чаще всего до монтирования такие каталоги пустые. Команда для монтирования:

mount <имя устройства> <имя каталога>

Первое имя - это имя специального устройства, которое содержит том файловой системы; второе имя - имя каталога, к которому будет подключена данная файловая система. Например, для дискеты:

mount /dev/fd0./floppy

Для монтирования только на чтение используется ключ -r. Команда mount без аргументов выводит в стандартный вывод имена смонтированных файловых систем. Обычно, после начальной загрузки система содержит лишь файлы корневой файловой системы, и на следующих шагах к ней подмонтируются различные файловые системы. Демонтирование файловой системы (обратная команда):

unmount <имя файловой системы>

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

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

Получение информации о свободном пространстве на диске: команда df. Пример:

df /dev/rk1

/tmp on /dev/rk1 343 blocks 180 inodes

Расшифровка результатов: файловая система смонтирована в каталог /tmp и имеет 343 свободных блока и 180 свободных дескрипторов файла.

Замечание: в команде df в качестве параметров могут быть заданы имя каталога или имя файловой системы. Если без параметров: df суммирует всё свободное пространство всех смонтированных дисков.

В каждой системе вырабатываются рекомендации по уровню свободного объёма дисковой памяти.

Перенос файловой системы: в зависимости от версии UNIX. Основная проблема в перекодировке информации. Восстановление файловой системы осуществляется с помощью команды fsck (восстановление - сложная работа, требующая высокой квалификации работника).

4) Восстановление файловой системы:

Замечание: единственный способ восстановления потерянного файла - из резервной копии.

Причины создания резервной копии: возможность разрушения (потери) данных; исчерпание места на диске. Архивы - на ленте. Для записи файлов на ленту необходимо знать имя приборного файла накопителя на магнитной ленте (типичное имя: /dev/rmt/0m). Для создания резервной копии файлов используются следующие команды:

tar <ключ> [f имя приборного файла] [файл]

cpio

Команда tar:

Пример 1 (создание архивного файла):

$tar -cvf /dev/rmt/0m myfile

Пример 2 (читается таблица содержимого архива):

$tar -tvf /dev/rmt/0m

Пример 3 (считывание файла из архива):

$tar -xvf /dev/rmt/0m myfile

Расшифровка значений ключей: c - создать новый архивный файл; x - считать файлы из архива; t - считать таблицу содержимого архива; r - файлы записываются в конец архива; u - файлы записываются в архив, если они созданы заново или модифицированы; v - на экран выводятся имена файлов при архивировании или восстановлении.

Замечание: файл-приёмник, куда записывается архив, не должен быть приборным файлом.

Команда cpio:

Восстановление из архива, причём архив читается со стандартного вывода:

cpio -o [cvx]

Команда обеспечивает генерацию (создание) архива, при этом список файлов читается со стандартного ввода, а сам архив пишется на стандартный вывод:

cpio -i [cdmtuvx]

Значение ключей:

· o - создание резервной копии; чтение из стандартного ввода и копирование файла в стандартный вывод

· i - восстановление резервной копии; чтение из стандартного ввода и восстановление данных на диске.

· c - пишется заголовок в формате ASCII.

· d - создаётся в нужном виде структура каталога.

· t - выводится таблица, описывающая содержимое архива.

· u - осуществляется безусловное восстановление (перезапись содержимого).

· v - выводится список скопированных файлов

· x - обрабатываются специальные приборные файлы.

Создание резервной копии файлов текущего каталога (точка после find обозначает текущий каталог) -?:

$find. |cpio -ocv >/dev/rmt/0m

5) Ведение системного журнала:

При работе системы администратор обязан следить за памятью и числом процессов в системе ( 300 00)

Системный журнал расположен в файле /usr/adm/wtmp. В него заносится информация о входе пользователей в систему и о выполняемых командах. Периодически этот файл администратор очищает.

8. Средства и способы обеспечения многопользовательского режима в операционных системах.

для этого в UNIX имеется:

Файловая система

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

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

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

9. Понятие процесса. Управление процессами в операционной системе UNIX.

(ОС, Лекция 15.09.2003)

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

Управление процессами входит в основные функции ядра ОС (создание и уничтожение процессов, переключение процессов). Процесс является базовым понятием в ОС UNIX - в ней реализован принцип разделения времени: управление процессами в соответствии с механизмами Time Slicing и наличием активных терминалов в системе (?).

Понятие процесса неотделимо от понятия ресурса. Ресурс - это любой объект, который может быть распределён и использован процессом в соответствии с алгоритмом этого процесса.

К ресурсам относятся:

1. аппаратура (устройства, память, линии связи и т.п.);

2. структуры данных и процедуры;

3. сообщения.

Выделяют 2 категории ресурсов системы:

· SR-ресурсы (повторно используемые ресурсы). После освобождения процессами возвращаются в систему в неизменном виде и, следовательно, могут использоваться повторно. Примеры:

o все аппаратные ресурсы;

o неизменяемые структуры данных;

o неизменяемые, реентерабельные (реентерабельность - один из экземпляров процедуры может одновременно использоваться в разных точках).

· CR-ресурсы. (потребляемые ресурсы; в систему не возвращаются). Пример:

o изменяемые структуры данных

o все сообщения и сигналы

По отношению к потребляемым ресурсам процесс может выступать:

· как производитель

· как потребитель

Пример: выборка сигнала (производитель) —> приём сигнала (процесс-потребитель).

Взаимодействие процесса производителя и процесса-потребителя требует их синхронизации.

Управление процессами:

Управление процессами осуществляется в соответствии с диаграммой состояния процесса, которая представляется следующим графом:

Любое событие (ожидание) - это ожидание ресурса.

Приостановка - внешнее вмешательство.

Управление процессами в операционной системе UNIX:

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

Для управления процессами система при порождении процесса присваивает ему уникальный номер - идентификатор процесса (PID), который представляет собой положительное число в диапазоне 0 - 30000.

Процессы описываются структурами ядра (список описателей всех процессов):

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

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

Команды управления процессами в UNIX:

ps - команда для вывода информации об имеющихся процессах

kill <pid> - выгрузка процесса

Управление процессами в системе Unix. (Лекция 03.03.2004):

Понятие процесса двойственно:

1. Управляющая программ, команда и пр.

2. структура данных, хранится в ядре и содержит сведения, необходимые для выполнения процесса.

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

ps [elf]

$ps

pid tty time command

1324 ttyp2 0:00 sh

1387 ttyp2 0:00 ps

Замечание.

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

$ps –ef

UID PID PPID C STIME TTY TYME COMMAND

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

Различают процессы.

1. Оперативные процессы – запускаются последовательно и, как правило, реализуют последовательность выполняемых с данного терминала команд. Время ЦП делится между всеми активными процессами в соответствии с их приоритетами: каждому процессу выделяется определённый квант времени и частота и частота выделения этих квантов соответствует приоритету.

2. Фоновые процессы – используются для выполнения тех программ, которые не должны быть жестко связаны с терминалом данного пользователя (вычислительные задачи и т.д.). Для запуска процесса в фоновом режиме в конце соответствующей командной строки указывается “&”.

Например:

$grep user *> grep.out &

[1] 194

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

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

Когда команда переводится shell-ом в фоновый режим, shell будет сообщать номер задания и идентификатор процесса, если в команде set была установлена опция monitor. Номер задания [] идентифицирует фоновый процесс в рамках данного сеанса, а идентификатор процесса указывает уникальный номер процесса среди всех процессов системы Unix.

Примечание:

Так так команда, выполняемая в фоновом режиме, отсоединяется от клавиатуры её нельзя прервать обычным образом с помощью <ctrl-D>. Такие команды могут быть прекращены с помощью команды kill или выходом из системы.

Для выдачи информации о выполняемых в данном сеансе заданиях служит команда jpbs. (выводится список).

Команды:

fg [%номер] – переводит задание с указанным номером номером в оперативный режим

bg [%номер] – переводит задание с указанным номером номером в фоновый режим

В некоторых случаях требуется продолжать фоновый процесс после выхода пользователя из системы. Для этих целей в командной строке выполняется префиксная команда nohup.

nohup <команда> &

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

Если при использовании nohup стандартный вывод не был перенаправлен, то команда nohup автоматически перенаправляет вывод в файл nohup. out в этот же файл помещается и стандартный протокол stderr, stdout.

В системе Unix имеется возможность управлят приоритетами процессов. Процесс с более низким приоритетом получает ресурсы системы реже, чем процесс с высоким приоритетом.

Для управления приоритетами используется префиксная команда nice.

nice [-N] <командная строка>

где N – целое число от 1 до 19. По умолчанию базовый приоритет процессов равен 10.

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

Приоритеты процессов могут быть определены с помощью команды: ps –l

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

В системе Unix невозможно полностью уничтожить процесс. В большинстве систем Unix по команде kill процесс выполняет требование самоуничтожиться. По умолчанию kill посылает указанному процессу сигнал TERM, т.е. уничтожаются процессы, которые не перехватывают или игнорируют сигналы. Наибольшую гарантию, что процесс действительно уничтожится обеспечивает сигнал kill -9 PID.

Всего существует более двух десятков сигналов их имена и количество зависит от реализации Unix.

Команда kill –l выводит на экран терминала имя каждого сигнала, реализованного в данной версии ОС.

Примеры сигналов:

HUP - сигнал разрыва линии

INT - прерывание

QUIT - выход

TRAP - трассировка прерывания

KILL - уничтожение процесса

USR1 - определяемый пользователем сигнал 1

USR2 - определяемый пользователем сигнал 2

IO - сигнал асинхронного ввода/вывода

STOP - сигнал останова (не может быть перехвачен или проигнорирован)

10. Понятие программного канала. Средства управления программными каналами.

Программные каналы

При работе конвейера у всех его команд должен быть единый порождающий процесс, что не всегда удобно, так как это не позволяет обмениваться данными программам различных пользователей. Для этого служат FIFO-файлы (программные каналы). Должен быть создан до начала работы с ним с помощью mknod. На FIFO-файл распространяются все правила установки прав доступа для обычных файлов.

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





Дата публикования: 2014-11-29; Прочитано: 224 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.016 с)...