Главная страница
Навигация по странице:

  • OCLinux

  • (см. методичку с 119 стр.)

  • Ответы к операционным системам. Вопросы по дисциплине Операционные системы


    Скачать 1.44 Mb.
    НазваниеВопросы по дисциплине Операционные системы
    АнкорОтветы к операционным системам
    Дата25.10.2019
    Размер1.44 Mb.
    Формат файлаdocx
    Имя файлаotvetymez (1).docx
    ТипДокументы
    #91797
    страница12 из 14
    1   ...   6   7   8   9   10   11   12   13   14

    ОС Linux: Использование терминала для организации взаимодействия между процессами

    Взаимодействие процессов. Сигналы

    Сигнал – событие, асинхронно пересылаемое программе. В операционной системе Linux существует стандартный набор сигналов,которые можно передать процессу. Каждый сигнал имеет определенное условное обозначение.

    При написании сценариев часто используют сигнал INT, которыйвозникает при прерывании работы сценария.Этот сигнал посылается командой – сочетанием клавиш CTRL + C.

    Для перехвата сигнала в коде скрипта используют команду trap:

    trap команда signal

    С помощью данной команды назначают действие, которое нужно

    выполнить при возникновении сигнала (signal).

    Каналы

    Канал – позволяет обмениваться байтами между процессами.Каналы могут быть неименованными и именованными.Для использования неименованного канала использую конвейер. Условное обозначение | для конвейера.

    Пример №1. Постраничный просмотр содержания файла большого объема с помощью программы ОС more:

    cat fasm.txt | more

    Пример №2.Упорядочивание вывода в файл и постраничныйпросмотр на экране терминала. Использована программа ОС sort.

    ps | sort > listing.ps

    ps | sort | more

    Именованный канал создаётся командой:

    mkfifo имя_файла

    Канал работает по принципу: FIFO (First Input First Output – Первый пришел, первый вышел).

    Организация взаимодействия работы в двух терминалах происходит следующим образом. В первом терминале создается именованный канал и выполняется обращение к каналу командой cat.

    mkfifo myFIFO

    cat myFIFO

    Во втором терминале нужно записать байты в канал:

    echo "Test FIFO" > myFIFO

    Те же действия можно выполнить в одном терминале, использовав фоновый режим работы. Канал в фоновом режиме:

    $ cat myFIFO &

    [1] 2721

    $ echo "Test FIFO" > myFIFO

    $ Test FIFO

    Нажатие комбинации клавиш CTRL+C – завершение фонового процесса:

    [1]+ Готово cat myFIFO

    $


    1. OCLinux: Классификация команд используемых при написании Bash сценариев

    команды вычислений;

    – команды организации ввода-вывода:

    1. Создание нового файла с результатом работы:

    >

    1. Дополнение существующего файла результатом работы:

    >>

    1. Ввод данных от пользователя:

    read имя_переменной

    1. Вывод текста с переводом на следующую строку:

    echo -n "Ваш login "

    1. Команды работы с содержимым текстового файла:

    tac имя_файла — вывод содержимого файла на консоль в обратном порядке следования строк.

    more имя_файла — постраничный вывод содержания.

    less имя_файла — постраничный вывод с пролистыванием в обе стороны.

    head -n имя_файла — вывод от начала файла n строк.

    tail -n имя_файла — вывести с конца файла n строк.

    – команды проверки условия:

    1. В общем виде

    if условие

    then

    команды

    else

    команды

    fi

    1. С возможностью дополнительной проверки условий

    if test "$1" = "1" ; then

    ls

    elif test "$1" = "2" ; then

    ls -l

    elif test "$1" = "3" ; then

    ls -l $0

    else

    echo "Неверный ввод!"

    fi

    – команды для организации выбора:

    case Имя_переменной in
    Маска) Команды ;;
    Маска) Команды ;;
    *) Команды выполняемые по умолчанию ;;
    esac

    – команды организации циклов:

      1. Цикл с предусловием, выполняется, пока условие продолжения истинно

    while Условие

    do

    Команды

    Done

      1. Итерационный цикл

    for переменная in список 
    do 
    команды
    done

      1. Цикл с предусловием, выполняется, пока условие продолжения ложно

    until условие

    do

    операторы

    done

      1. Циклический перебор параметров

    Shift

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

    break

      1. Передача управления на проверку условия цикла

    continue

    – команды работы с функциями:

    Возврат результата функции

    returnn

    Здесь n — возвращаемое значение. Значение — числовой код.

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

    1. информация о процессах:

    – полная:

    ps –ef

    – краткая:

    ps

    – с информацией о статусе процесса:

    psax

    – просмотр приоритетов процесса:

    ps –l

    1. Изменение приоритета программы (получает приоритет 10):

    nice имя_программы

    3) Изменение приоритета программы:

    nice –n число_nice имя_программы

    4) Изменение приоритета процесса на стадии исполнения:

    renice –n число_nice -p PID

    5) Прекращение работы процесса:

    killPID

    – команда перехвата сигналов:

    trapcommandsignal


    1. OCLinux: Поиск информации: команды find и grep

    Чтобы отыскать файл, ОС Linux предоставляет пользователюсистемы специальную программу – команду find.

    Формат команды:

    find [путь] [опции] критерий [действия]

    Обязательным является критерий поиска, который задается в виде:

    –name “имя_шаблон”

    Здесь шаблон – маска поиска файлов.

    Приведем ряд примеров.

    Пример №1. Поиск в текущем каталоге файлов, которые неимеют расширения и их имя состоит из двух символов:

    $ find./test -name “??”

    Результат поиска:

    ./test/f1

    ./test/f2

    ./test/f3

    Пример №2. Поиск в текущем каталоге файлов, которые неимеют расширения и их имя начинается на букву s.

    $ find “s*”

    Результат поиска:

    sig2.c

    spiski.o

    stringp.c

    stringp.o

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



    Кроме того, поиск можно расширить, введя дополнительные критерии, приведенные в табл. 14.2.



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



    Рассмотрим пример поиска в директории test-директорий, именакоторых состоят из двух символов. Вызов программы find примет вид:

    $ find./test -name “??” -typed

    Результат поиска:

    ./test/d2

    ./test/d1

    Допускается объединение критериев с помощь операторов, приведенных в таблице 14.4.



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

    Командапоискаприметвид:

    /test$ find \(-name "*" -a -newer f1 \) -type f

    Результат поиска:

    ./f2

    ./f3

    ./file1

    Группировка критериев требует наличия экранированных круглых скобок символом \.

    Существует возможность указать в команде поиска определенное действие, которое нужно выполнить, если обнаружен объект поиска.

    (см. методичку с 119 стр.)

    1. 1   ...   6   7   8   9   10   11   12   13   14


    написать администратору сайта