Операционные системы. Учебное пособие-2
.pdfКоманда ps без параметров выводит информацию только об активных процессах, запущенных с данного терминала, в том числе и фоновых.
Для просмотра метрических характеристик больше подходит утилита top. Утилита ps предназначена в основном для просмотра идентификаторов процессов (PID), а также полных команд, посредством которых они были запущены. Кроме этого она работает быстрее и может использоваться в сценариях. Например, можно создать сценарий, извлекающий идентификатор определенного процесса и посылающий ему сигналы.
6.2. Управление процессами
Предположим, что неправильно написанная программа тормозит работу всей системы. Несложно установить идентификатор этого процесса с помощью утилит top или ps. Для остановки процесса используется команда kill. Синтаксис ее таков:
kill [-sig] <идентификатор процесса>, где
sig - номер сигнала. Sig = 15 означает программное (нормальное) завершение процесса, номер сигнала 9 - уничтожение процесса, а 1 - прерывание и перезапуск. По умолчанию sig = 9. Пользователь с низким приоритетом может прервать процессы, связанные только с его терминалом.
Программа kill не просто прерывает процессы. Она представляет собой сигнальный механизм, посредством которого процессы могут передавать команды друг другу.
Приоритет выполнения процесса можно поменять с помощью команды renice. Установить уровень приоритетности процесса на этапе его запуска можно с помощью команды nice. Приоритет процесса в FreeBSD представляет собой целое число в диапазоне от -20 до 20, причем наиболее высокое значение -20. Увеличение номера приоритета приводит к понижению приоритета, присвоенного процессу. Увеличить приоритет процесса может только администратор системы.
Примечание: в Linux номер приоритета находится в диапазоне от 0 до 39, где значение 0 представляет собой наивысший приоритет.
Примеры:
renice -5 1836 - команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным 5.
31
renice --5 1836 - команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным -5.
nice -10 ls -l установка номера приоритета, команде ls -l равным 10.
6.3. Запуск заданий по расписанию
В ОС Unix существует возможность запускать программы пользователя в указанное им время. Для этого используется программа cron (Command Run ON).
Сron является непрерывно работающим фоновым процессом (такие процессы в Unix называются демонами) и проверяет свои входные файлы (crontab-файлы) каждую минуту.
Существует глобальный файл crontab (/etc/crontab) и каталог (/var/cron/tabs), в котором пользователи могут создавать собственные файлы crontab.
Настройка cron
Для начала нужно создать сценарий, который будет запускаться по расписанию, например /home/user/script.sh. Этот файл должен иметь права на чтение и выполнение (r+x) для владельца файла.
Далее необходимо выполнить команду crontab -e. Откроется текстовый редактор vi, где можно вводить текст задания для cron. Задания пишутся по одному в строке, после которой нажимается клавиша Enter. В начале строки находятся пять обязательных полей для указания периодичности выполнения задания, а затем следует команда или файл скрипта, который нужно запускать:
поле1 поле2 поле3 поле4 поле5 команда
Значения первых пяти полей:
минуты — число от 0 до 59; часы — число от 0 до 23; день месяца — число от 1 до 31;
номер месяца в году — число от 1 до 12; день недели — число от 0 до 7 (0–Вс, 1–Пн, 2–Вт,…, 7–Вс).
Для каждого конкретного параметра можно задать несколько значений через запятую. Например, если в поле «часы» написать 1,4,22, то задание будет запущено в 1 час ночи, в 4 часа утра и в 22 часа. Можно задать интервал — 4-9 будет означать, что программу нужно запускать каждый час в период с 4 до
32
9 часов включительно. Символ '*' означает «все возможные значения». Например, указание '*' в поле «часы» будет означать «запускать каждый час». Символ '/' служит для указания дополнительной периодичности задания. Например, '*/3' в поле «часы» означает «каждые три часа».
Примеры:
#Выполнять скрипт /home/user/script.sh каждые три часа #во вторник и в пятницу.
0 */3 * * 2,5 /home/user/script.sh
#Выполнять задание в 18 часов 7 минут 13 мая если это
#пятница
7 18 13 5 5 /home/www/myscript.sh
#Выполнять задание раз в час в 0 минут
0 */1 * * * /home/www/myscript.sh
#Выполнять задание каждые семь часов в 0 минут
0 */7 * * * /home/www/myscript.sh
#Выполнять задание по воскресеньям в 10 час 30 минут
30 10 * * 0 /home/www/myscript.sh
crontab –l - просмотр установленных файлов crontab;
crontab -r - удаление своего файла crontab.
Для однократного запуска задания по времени предназначена команда at. Более подробно о ней можно узнать в документации.
6.4. Задание на лабораторную работу
Управление процессами
1.Посмотреть работу утилит top и ps.
2.Посмотреть приоритет своего процесса и уменьшить скорость его выполнения за счет повышения номера приоритета.
3.Создать программу на Си с бесконечным циклом, откомпилировать ее и запустить в фоновом режиме.
4.Прервать выполнение этой программы.
Запуск заданий по расписанию
5.Создать каталог в своѐм домашнем каталоге.
6.Создать сценарий shell, выполняющий следующие действия над другим непустым каталогом:
проверка непустой ли каталог;
33
если каталог непустой, то все файлы этого каталога архивируются и сжимаются в архив с именем, включающем текущую дату и время;
сжатый архив помещается в другой каталог.
7.Добавить созданному сценарию право на выполнение.
8.Создать сценарий cron, по которому shell -сценарий выполняется каждые две минуты.
9.Через две минуты проверить сработал ли сценарий.
10.Удалить cron-сценарий.
Примечание: программа на языке C пишется в обычном текстовом файле с расширением .C. Для компиляции файла необходимо запустить команду:
$ gcc имя_С-файла –o имя_исполняемого_файла
Для запуска файла в фоновом режиме необходимо запустить его следующим образом: $ полный_путь_к_файлу &
7. Монтирование файловых систем и мониторинг их использования
7.1. Монтирование и демонтирование файловых систем
Файловое дерево ОС формируется из отдельных частей, называемых файловыми системами. Каждая файловая система состоит из одного корневого каталога, его подкаталогов и файлов. Подключение новых файловых систем к единому файловому дереву называется монтированием. Корневой каталог новой файловой системы называется точкой монтирования. Он должен быть создан заранее. Отдельными файловыми системами могут являться разделы жесткого диска, а также такие накопители, такие как дискеты, оптические диски, флэш-память и др. Файловые системы прикрепляются к файловому дереву с помощью команды mount. Синтаксис еѐ таков:
mount <устройство> <точка монтирования>
Каждое устройство в Unix имеет свой файл, который находится в каталоге /dev. Поэтому имя устройства имеет следующий вид: /dev/устройство. Имена устройств для каждой ОС являются стандартными и в различных Unix-системах отличаются. Часто при монтировании файловой системы нужно указать еѐ тип. Приведем несколько примеров:
#mount /cdrom – для стандартных устройств достаточно указать точку монтирования.
#mount_msdosfs /dev/fd0 /floppy – монтирование дискеты с указанием типа файловой системы.
34
# mount_msdosfs /dev/da0s1 /flash – монтирование флэшки
#mount_ext2fs /dev/ad1s1 /mnt – монтирование файловой системы
Linux.
#mount /ad0s1b /usr – монтирование раздела жесткого диска.
Если файловая система на съемном устройстве больше не используется, ее можно демонтировать командой umount, имеющей в качестве параметра точку монтирования или имя устройства. Например:
#umount /dev/fdo
#umount /floppy
При демонтировании нельзя находится внутри демонтируемой файловой системы.
Команды mount и umount имеют опцию –f, приводящую к принудительному монтированию или демонтированию.
Список монтируемых в системе устройств и точки их монтирования можно посмотреть в файле /etc/fstab. Этот файл определяет, какие файловые системы монтируются при загрузке и в какой очередности. Если точка монтирования файловой системы указана в файле fstab, то в команде mount можно не указывать имя устройства, а только точку монтирования.
7.2. Мониторинг использования файловых систем
Самым простым способом получения информации о используемом дисковом пространстве является команда df (disk free — свободное пространство). Вывод команды содержит основную информацию о файловых системах и именах устройств, на которых они расположены. Как правило, жесткий диск тоже делится на разделы на этапе загрузки операционной системы, либо позже с помощью утилиты sysinstall. Хорошей практикой является выделение раздела для самой операционной системы (точка монтирования /), а также два раздела для данных и программ, которые размещаются главным образом в каталогах /usr и /var.
Для мониторинга использования дискового пространства пользователями используется команда du (disk usage — использование диска). Например:
# du –d 1 /usr/home/
35
Команда du рекурсивно выводит размер всех каталогов, расположенных к текущем каталоге или указанном в качестве параметра. Параметр –d задает глубину рекурсивного вывода. Более подробно см. man du.
6.4. Задание на лабораторную работу
1.Просмотреть содержимое файла /etc/fstab.
2.Войти в систему под администратором (команда su).
3.Смонтировать дискету. Просмотреть содержимое. Записать на неѐ какиенибудь файлы.
4.Запретить изменение данных на дискете путем изменения атрибутов соответствующего файла каталога.
5.Смонтировать флэшку. Просмотреть содержимое. Скопировать с неѐ какиенибудь файлы в свой домашний каталог.
6.Смонтировать CD-диск. Просмотреть его содержимое.
7.Проверить результаты монтирования командой df.
8.Демонтировать файловые системы на этих устройствах.
9.Проверить результаты командой df.
10.Изучить работу команды du.
7.4. Контрольные вопросы
1.В чем заключаются функции монтирования и размонтирования файловой системы и какими командами они выполняются в ОС FreeBSD?
2.Что такое точка монтирования?
3.В каком каталоге находятся специальные файлы устройств?
4.Как ограничить доступ к устройствам на гибких дисках.
5.Какие команды используются для мониторинга файловых систем?
6.Какие типы файловых систем вы знаете?
7.Для чего жесткий диск обычно разбивается на разделы?
8. Установка и настройка операционной системы FreeBSD
8.1. Установка и настройка виртуальной машины
Виртуальная машина - это программа, эмулирующая физический компьютер. У виртуальной машины, как и у реальной, есть BIOS, отведенное место на жестком диске, CD-ROM (CD-ROM или подключенный ISO-образ), сетевые адаптеры для соединения с реальной машиной, сетевыми ресурсами или другими виртуальными машинам и т.д.
Как и в случае с реальной машиной, можно установить на виртуальную машину операционную систему, что позволяет тестировать различные операционные системы, не покидая своей.
36
Продемонстрируем установку OC FreeBSD на виртуальной машине Microsoft Virtual PC 2007 в ОС Windows XP. Для этого необходимо иметь установленную на компьютере виртуальную машину. Программа является свободно распространяемой, а ее установка не вызывает затруднений. Также на сайте FreeBSD.org необходимо скачать iso-образ загрузочного диска операционной системы, которая также является бесплатной.
1.Запускаем Microsoft Virtual PC, откроется мастер установки виртуальной машины.
2.В окне Options необходимо выбрать Create a virtual machine.
3.В окне Virtual Machine Name and Location необходимо указать имя файла виртуальной машины и путь к нему, например D:\VM\New Virtual Machine.vmc
4.В следующем окне Operating System указывается тип операционной системы
Other.
5.В окне Memory задается объем оперативной памяти, выбираем Using the recommended RAM.
6.В окне Virtual Hard Disk Options можно создать виртуальный жесткий диск, на котором впоследствии будет размещаться новая ОС. Для этого выбираем A new virtual hard disk.
7.В следующем окне указываем местоположение виртуального жесткого диска,
например D:\VM\FreeBSD_Hard_Disk.vhd и его размер, например, 10 Гб.
На этом первоначальную настройку виртуальной машины можно считать завершенной.
8.2. Установка и настройка FreeBSD на виртуальной машине
Для запуска виртуальной машины и установки на неѐ операционной системы в окне Virtual PC Console необходимо нажать кнопку Start. В меню CD выбирается команда Capture ISO Image и указывается размещение ISO-образа загрузочного диска операционной системы. При загрузке операционной системы запускается программа sysinstall, которая предназначена для установки и настройки FreeBSD.
Начинаем установку.
1.Выбираем русскую раскладку клавиатуры: Russia KOI8-R.
2.Далее выбираем пункт меню Custom.
3.Далее в появившемся меню выбираем пункт Partition и попадаем в редактор слайсов (первичных разделов). Создаѐм один слайс, на который будет устанавливаться система. Для завершения редактирования слайсов надо нажать клавишу <Q> (Finish).
4.В появившемся меню выбираем установку менеджера загрузки - BootMgr.
37
5.Выбираем пункт Label и попадаем в редактор разделов файловой системы FreeBSD. Здесь созданный ранее слайс можно "нарезать" на разделы файловой системы FreeBSD. Это разбиение можно произвести автоматически, нажав клавишу <A> (Auto Defaults) или вручную. 5. Переходим к пункту Distributions, где можно выбрать тип базовой установки, и отмечаем опцию Developer, которая означает, что будут установлены все основные бинарные файлы (системные утилиты, библиотеки, компиляторы), исходники и документация. Соглашаемся на установку коллекции портов (Ports Collection). Далее, выбрав пункт Exit, возвращаемся в предыдущее меню и выбираем Commit, выбираем источник установки (в нашем случае CD/DVD) и отвечаем утвердительно на предупреждение о необратимости дальнейших действий. После этого идет процесс установки базовых компонентов системы. После завершения установки будет предложено вернуться в кофигурационное меню для продолжения установки/насройки. Выбираем [YES] и возвращаемся в меню.
6.В пункте Root Password устанавливаем пароль пользователя root (администратора). Пункт User Manager не трогаем - пользователей добавим потом.
7.В пункте Networking можно настроить сеть:
в пункте Interfaces можно выбрать из списка и настроить определившиеся сетевые интерфейсы; Находим среди них интерфейсы, соответствующие сетевым платам (в нашем случае это ed0), потом пишем в /etc/rc.conf следующие строчки:
defaultrouter=”<IP-адрес_маршрутизатора>” hostname=”<полное_ имя_сервера >”
ifconfig_ed0=”inet <IP-адрес_ сервера> netmask <сетевая маска>”
На реальной системе эти настройки могут выглядеть следующим образом:
defaultrouter=”192.168.0.1″
hostname=”xxxx.com” ifconfig_re0=”inet 192.168.0.3 netmask 255.255.255.0″
Все эти изменения вступят в силу после перезагрузки.
8.3. Задание на лабораторную работу
1.Установить виртуальную машину Microsoft Virtual PC 2007.
2.Настроить виртуальную машину для установки на нее ОС.
38
3.Начать установку ОС FreeBSD, при этом обратить внимание на настройку: слайсов и разделов операционной системы; языковых параметров; мыши; пакетов; локальной сети; пароля администратора; новых пользователей.
4.Проверить работоспособность системы, для сети проверить работоспособность утилитой ping и выйти в Интернет с помощью программы links.
8.4. Контрольные вопросы
1.Для чего предназначены виртуальные машины?
2.Как осуществляется настройка виртуальной машины?
3.Для чего предназначен ISO-образ диска?
4.Перечислите этапы установки операционной системы на виртуальную машину. Будут ли они отличаться при установке ОС на реальную машину?
5.В чем отличие терминологии, принятой в FreeBSD от Windows при делении диска на разделы?
6.Какие установки требуется задать при настройке сети?
Список литературы
1.Робачевский А. М. Операционная система UNIX. Учебник для ВУЗов (2-е
издание) - СПб.: БХВ-Петербург, 2008. - 656 с.
2.Эбен М., Таймэн Б., FreeBSD. Администрирование: Искусство достижения равновесия. М.:ДиаСофтЮП, 2003. – 752 с.
3.www.feebsd.org
39
|
СОДЕРЖАНИЕ |
|
Введение ................................................................................................................... |
3 |
|
1. |
Использование командного интерпретатора для работы с файлами ............. |
4 |
2. |
Архивирование и сжатие файлов....................................................................... |
8 |
3. |
Управление учѐтными записями пользователей и правами доступа к |
|
|
файлам ................................................................................................................ |
11 |
4. |
Использование команд для фильтрации и обработки текстов ..................... |
16 |
5. |
Программирование на языке командного интерпретатора........................... |
20 |
6. |
Мониторинг производительности, управление процессами и |
|
|
автоматизация заданий ..................................................................................... |
30 |
7. |
Монтирование файловых систем и мониторинг их использования ............ |
34 |
8. |
Установка и настройка операционной системы FreeBSD............................. |
36 |
Список литературы................................................................................................ |
39 |
|
40
