194 tty5 0:02 grep

 200 tty5 0:01 ps

В оболочке bash имеются две встроенные команды, которые служат для перевода процессов на передний план или возврата их в фоновый режим. Но прежде, чем рассказывать об этих командах, надо рассказать о команде jobs. Она всегда вызывается без аргументов и показывает задания, запущенные из текущего экземпляра shell. В начале каждой строки вывода этой команды указывается порядковый номер задания в виде числа в квадратных скобках. После номера указывается состояние процесса: stopped (остановлен), running (выполняется) или suspended (приостановлен). В конце строки указывается команда, которая исполняется данным процессом. Один из номеров выполняющихся заданий помечен знаком +, а еще один — знаком -. Процесс, помеченный знаком +, будет по умолчанию считаться аргументом команд fg или bg, если они вызываются без параметров. Процесс, помеченный знаком -, получит знак +, если только завершится по какой-либо причине процесс, который был помечен знаком +.

Команды fg и bg служат для перевода процессов на передний план или возврата их в фоновый режим. В качестве аргумента обеим этим командам передаются номера тех заданий, которые присутствуют в выводе команды jobs. Если аргументы отсутствуют, то подразумевается задание, помеченное знаком +. Команда fg переводит указанный в аргументе процесс на передний план, а команда bg — переводит процесс в фоновый режим. Одной командой bg можно перевести в фоновый режим сразу несколько процессов, а вот возвращать их на передний план необходимо по одному.

Практическая работа №4(1) Команды управления процессами. Создание фоновых процессов Цель работы:

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

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

Порядок выполнения работы

Изучаются команды:

ps - запрос информации о процессах текущего терминала;

top получение информации о "состоянии процессов в режиме реального времени;

& - запуск фонового процесса;

jobs - запрос листинга списка заданий;

bg - перевод оперативного в фоновый режим;

fg перевод фонового процесса в оперативный.

1)   Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.

2)   Выведите на экран Терминала справку по следующим командам: ps, top, jobs, bg, fg. Назначение и формат команд приведите в отчете.

3)   Выведите на экран листинг характеристик (в длинном и коротком форматах) процессов, инициализированных с Вашего терминала. Проанализируйте и объясните содержание каждого поля сообщения

4)   Запустите утилиту получения информации о процессах в режиме реального времени. Проанализируйте и объясните содержание каждого поля сообщения

5)   Запустите простейшую процедуру в фоновом режиме с бесконечным циклом выполнения, предусматривающую, например процесс, выводящий на экран бесконечный поток символов «y»:

уes &

6)   Выведите на экран листинг характеристик (в длинном и коротком форматах) процессов, инициализированных с Вашего терминала. Объясните изменения в листинге характеристик процессов. Объясните содержание PID и PPID. Какой процесс является родительским для запущенной процедуры.

7)   Выйдите из системы и войдите заново. Проанализируйте листинг процессов. Объясните изменения в системе.

8)   Запустите процесс уes в оперативном режиме с перенаправлением вывода в устройство /dev/null («черная дыра»).

9)   Переведите процесс в оперативный режим и проанализируйте сообщение на экране.

10)      Приостановите выполнение процесса и переведите его в фоновый режим. Проанализируйте сообщение на экране.

11)      Завершите работу всех запущенных вами процессов, переведя их на передний план и нажав клавиши Ctrl+C.

12)      Завершите работу с Терминалом.

Практическая работа №4(2) Управление приоритетами процессов. Завершение работы процессов Цель работы:

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

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

Порядок выполнения работы

Изучаются команды:

nice - понижение приоритета процесса;

kill - посылка сигнала процессу.

1)   Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.

2)   Выведите на экран Терминала справку по следующим командам: nice, kill. Назначение и формат команд приведите в отчете.

3)   Запустите процесс уes в оперативном режиме с перенаправлением вывода в устройство /dev/null («черная дыра»).

4)   Приостановите выполнение процесса, используя команду kill.

5)   Переведите процесс в фоновый режим. Проанализируйте сообщение на экране.

6)   Убейте процесс, послав командой kill сигнал завершения процесса.

7)   Запустите процесс поиска директорий в корневом каталоге в фоновом режиме (выводимые данные перенаправьте в файл или «черную дыру»).

8)   Выведите на экран листинг характеристик (в длинном формате) процессов, инициализированных с Вашего терминала. Каково значение приоритета запущенного процесса? Какой процесс является родительским для запущенной процедуры.

9)   Понизьте значение приоритета процедуры поиска. На что и как повлияет эта операция при управлением вычислительным процессом системы? Как отразятся её результаты в описателях процессов?

10)      Убейте все созданные ранее процессы и завершите работу с Терминалом.

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

1.   Объясните понятия процесса и ресурса. Какое их значение в организации вычислительного процесса в ОС UNIX?

2.   Какая информация содержится в описателях процессов? Как просмотреть их содержание в процессе работы с системой?

3.   Какими способами можно организовать выполнение программ в фоновом режиме?

4.   Какие особенности выполнения программ в фоновом режиме? Как избежать вывода фоновых сообщений на экран и прерывания выполнения фоновых программ при прекращении сеанса работы с системой?

5.   Как пользователь может повлиять на распределение ресурсов между активными процессами?

6.   Как можно прервать выполнение активных процессов? Какая информация для этого необходима и откуда она извлекается?

Тема 2.3. Права доступа к файлам и каталогам   2.3.1. Команды управления правами доступа

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

Права процессов пользователей при доступе к файлу кодируются в атрибутах защиты файла. Атрибуты сопровождают каждый файл, хранятся в описателях файлов, на которые в каталоге имеются ссылки, и доступны для анализа и изменения посредством специальных команд ОС UNIX. Атрибуты защиты файла определяют права доступа трем видам процессов: процессам пользов ателя - владельца файла (u - user), процессам группы владельца файла (g - group) и процессам остальных пользователей (o - other), не попавших ни в одну из двух предыдущих категорий. Код атрибутов прав доступа пользователей трех перечисленных категорий для каждого файла отображается в полном листинге каталога символьным кодом в виде комбинации следующих символов:

r - разрешение на чтение или на выполнение файла, для каталога - просмотр содержимого каталога (список всех файлов);

w - разрешение модификации или удаления файла, для каталога - включение или удаление файлов;

x - разрешение выполнения файла (совместно с - r), для каталога - поиск по каталогу конкретных отдельных файлов или сделать каталог текущим.

Например, полный листинг каталога /udd/user1/lev может иметь следующий вид:

-rwxr-xr-x 1 lev user1 171 Mar 4 14:20 fil1.c

drwxr-xr-x 2 lev user1 32 Mar 4 14:51 hh

Здесь файл fil1.c, владельцем которого является пользователь со входным именем lev, является обычным, содержит исходный текст программы на языке Си длиной 171 байт, доступен владельцу для чтения, записи и выполнения, членам группы и прочим пользователям - только для чтения и выполнения. Директория hh защищена для включения новых и удаления существующих файлов.

Для изменения значений кодов защиты только указанных в команде файлов служит команда:

chmod <коды защиты> <список_файлов>

Коды защиты (r, w, x) могут быть заданы только владельцем файла в символьном или числовом виде. Атрибуты задаются для владельца (u), его группы (g) и остальных пользователей (o) или для всех категорий пользователей одновременно (a).

Над символьными атрибутами защиты можно выполнять три следующие операции отдельно для владельца, для группы-владельца и для всех остальных пользователей:

= - присвоить значения кодов доступа (замена существующих);

+ - добавить значения кодов доступа;

- - отобрать права доступа.

Необходимо отметить, что новый файл обычно создается по умолчанию как невыполняемый, со стандартным набором прав доступа:

 rw-rw-rw- - для файла;

 rwxrwxrwx - для каталога.

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

$ chmod u+x shproc1

$ shproc1

< Выполнение программы из файла shproc1 >

$

Эти действия необходимы и при формировании и выполнении shell-процедуры.

chmod a+x f1 - в данном случае файл f1 становится доступным для исполнения всем пользователям;

chmod a=rwx f2 - предоставляются все права всем категориям пользователей.

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

Например:

Символьное представление: rwx r-x r--

Двоичное представление: 111 101 100

Восьмеричное представление: 7 5 4

Поэтому следующая команда:

chmod 0754 f3

- эквивалентна команде:

chmod u=rwx,g=rx,o=r f3

В результате выполнения команд в любой из приведенных форм коды доступа файла f3 приобретут следующий вид:

ls -l f3

”””””””””””””””””””””””””””””

-rwxr-xr-- ....................... f3

”””””””””””””””””””””””””””””

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

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

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

$umask [-r] <режим-доступа>

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

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

chown нов_владелец имя_файла – владелец передает права владения данным файлом другому пользователю или группе.

chgrp нов_группа имя_файла - передача прав другой группе (сменить группу).

 

Практическая работа №5(1) Управление правами доступа к файлам Цель работы:
Информация о работе «Оперциаонные системы ASP Linux и Windows»
Раздел: Информатика, программирование
Количество знаков с пробелами: 138521
Количество таблиц: 5
Количество изображений: 16

0 комментариев


Наверх