ВСРВ. ПР_1_Вычислительные_системы. Практическая работа 1 Ознакомление с базовыми инструментальными средствами ос unix
Скачать 0.54 Mb.
|
Практическая работа №1 Ознакомление с базовыми инструментальными средствами ОС Unix. Цель работы: получить начальные сведения о среде выполнения лабораторного практикума, уметь осуществлять вход в систему, получить практические навыки по работе с терминалом, изучить синтаксис команд соответствующей операционной среды, научиться корректно завершать работу с системой. Теоретические сведения: Лабораторный практикум проходит в операционной среде OC SINIX. ОС SINIX семейство UNIX-подобных операционных систем, выпускавшихся достаточно длительное время компанией Siemens Nixdorf Informationssysteme (SNI) и характеризующихся высокой степенью соответствия промышленным стандартам (В настоящее время Wincor Nixdorf). ОС SINIX многопользовательская и многозадачная система и многозадачная система с разделением времени. Все лабораторные работы выполняются в интерфейсной оболочке – командной строке. Вход в систему осуществляется при помощи логина и пароля, которые сообщит преподаватель перед началом занятия. При входе в систему пользователь видит приглашение shell на ввод команд, в общем случае это символ - $. Взаимодействие с системой через оболочку shell осуществляется при помощи команд, которые вводятся в командной строке. Управление процессами Понятие процесса Процесс – это программа в стадии выполнения, т.е. выполняющаяся программа. В UNIX одновременно выполняется много процессов ( организован многозадачный режим – multitasking, с вытесняющей многозадачностью). У каждого процесса есть своя область памяти, где хранится код или инструкции (область кода), данные (область данных), стек. Для взаимодействия с системой процессы используют системные вызовы. Для взаимодействия пользователей с системой используются интерфейсные оболочки. В нашем случае интерфейс командной строки Доступ к файлам, обмен сигналами между процессами, выделение памяти и проч. производится через системные вызовы. Для управления процессами операционной системе необходима, разумеется, еще и дополнительная информация о процессе, например: 1. идентификатор процесса Process IDentifier (PID), уникальный номер процесса, который используется для временной идентификации (во время выполнения) процессов в большинстве операционных систем - , таких как ядро UNIX, Mac OS X или Microsoft Windows). Этот номер может использоваться в качестве параметра при различных системных вызовах, с помощью которых можно управлять выполнением процессов, например изменять приоритет процессов или завершать их. Узнать PID данного процесса можно c помощью системного вызова getpid(). Всего существует три вида процессов: системные процессы, процессы- демоны и пользовательские процессы. 2. UID/GID процесса. UID (user id) цифровое значение пользователя (первый не-root пользователь в сиcтеме как правило 1000, рут - 0 ) GID (group id) цифровое значение группы пользователей (группа users - 100, группа root 0). По умолчанию mount разрешен только root пользователю, если хотите дать права другим пользователям, то uid=1000,1001,1002 и т.д. или группам gid=100,10. цифровые значения можно посмотреть в /etc/shadows /etc/groups. Этот параметр влияет на права доступа к файлам и папкам на смонтированном девайсе. Значение по умолчанию uid=gid=0. Это значит, что на смонтированном устройстве владельцем всех файлов будет root, группа root. По договорённости, демонам (“не-юзерам”) дают uid/gid в диапазоне от 1 до 999 3. состояние процесса 4. использованное время процессора 5. текущий каталог 6. и многое другое. Порождение процесса В UNIX процессы (почти) всегда порождаются процессами. Порождающий процесс - это родительский процесс (parent process), порожденный процесс - это дочерний процесс (child process). Новые процессы не порождаются, если 1. в системе порождено максимальное число процессов; 2. порождено максимальное число процессов пользователя; 3. больше нет места в основной памяти и области swap. рис.1 Диаграмма состояния процесса Состояние процесса Процесс, среди прочих, может находиться в одном из следующих состояний: 1. ready to run (готов к исполнению, в состоянии готовности) 2. operating (исполняется, в состоянии выполнения) 3. sleeping ("спит", в состоянии ожидания) Команды Ввод команды и специальные клавиши В качестве средства взаимодействия используется интерпретатор команд shell. Интерпретатор shell различает строчные и прописные буквы. Нажатие это клавиши завершает ввод команды. Если вы при вводе команды допустили ошибку, для исправления используйте следующие клавиши: Удаляет знак слева от курсора или прерывает ввод команды. Если вы работаете с shell, никогда не используйте перемещения курсора клавиши со стрелкой. Специальные клавиши: устанавливает режим ввода прописных букв. останавливает ввод на экран и блокирует клавиатуру. деблокирует ввод на экран и клавиатуру. или прерывает текущую программу. завершает ввод для текущей программы (прерывание по клавиатуре, в некоторых nix системах CTRL+C). Структура командной строки Команда UNIX имеет следующую структуру: Имя_команды [-опция(и)] [аргумент(ы)] Имя команды, опции и аргументы должны отделяться друг от друга, по меньшей мере, одним пробелом или символом табуляции. В качестве опции используются некоторые буквы латинского алфавита. Если при записи команды используется несколько опций одновременно, то они записываются подряд после символа “-” без пробелов между ними. Ввод команды в командной строке осуществляется нажатием клавиши (ENTER). В описании в дальнейшем предполагается: • команда обязательный параметр • [-опция(и)]необязательный параметр Del CTRL C CAPS CTRL S Q = CTRL Del CTRL C CTRL D • [аргумент(ы)] необязательный параметр Опции (модификатор команды): • влияют на функцию команды (например, длинный вывод) • начинаются, как правило, с символа "-" • состоят из одного символа или нескольких символов • как правило, могут быть скомбинированы любым образом • могут указываться в любой последовательности Параметры указывают объекты, которые должны обрабатываться командой, например: • имя_файла • имя_пользователя • номер_процесса Команды для управления процессами и пользователями man имя__команды выводит страницы диалогового руководства Online-Manual для указанной команды. passwd с ее помощью пользователь может изменить пароль. Команда призывает к вводу нового пароля. who выводит информацию о зарегистрированных пользователях. Пример: $ who mueller pts/0 Aug 23 13:09 spies pts/1 Aug 23 09:52 дата и время регистрации терминал пользователя имя пользователя tty выводит имя терминала, на котором работает пользователь id выводит UID и GID пользователя ps [опции] выводит информацию о процессах Опции (часть команды): -е краткая справка обо всех процессах -f подробная справка -u имя справка о процессах пользователя имя Пример: $ ps -fu Mueller UI D PID PPID С STIME TTY TIME COMD mueller 834 824 0 08:38:15 ? 10:15 /usr/bin/.. . mueller 833 824 0 08:38:15 ? 0:01 /usr/bin... mueller 832 824 0 08:38:15 ? 1:02 /usr/bin... mueller 824 814 0 08:38:15 ? 0:00 /usr/lib/... mueller 866 865 0 08:41:15 ? 35:33 /opt/fmas3. . . mueller 865 1 0 08:41:15 ? 0:00 tee ... mueller 2366 1 4 13:09:19 ? 0:22 x97801-480. . . mueller 5727 2379 13 17:45:15 pts/0 0:00 ps -fu mueller mueller 2379 2366 0 13:09:30 pts/0 0:02 -ksh использованное имя процессора управляющий терминал время запуска процесса номер родительского процесса номер процесса имя владельца процесса kill [-сигнал] PID посылает процессу сигнал с номером PID и обычно используется для завершения процессов. Сигналом является одно из следующих чисел: 15 оканчивает (в большинстве случаев) данный процесс 9 оканчивает всегда данный процесс 1 оканчивает (в большинстве случаев) данный процесс 2 оканчивает (в большинстве случаев) данный процесс 3 оканчивает (в большинстве случаев) данный процесс, дополнительно выводится содержимое памяти процесса. Команда ps Команда “ps” позволяет получить список процессов выполняющихся на UNIX системе. По умолчанию вывод отображается в 4 колонки. PID = ID номер процесса, которое ядро использует, чтобы отследить запущенный процесс TTY = ассоциированное терминальное устройство TIME = время CPU затраченное на выполнение процесса CMD = название команды Команда “ps” используется с несколькими опциями, которые позволяют модифицировать вывод: -e отображает все процессы в системе -f выдает полный список процессов, включая аргументы командной строки -l обеспечивает длинный список -uusers выдает отчет об активности пользователей Команда whoami позволяет получить сведения о номере tty пользователя и shell. whoami Команда uname позволяет получить сведения о системе. uname [-опция(и)] Пример: uname SINIX Команда uname –a позволяет получить полные сведения о системе. Команда & Если команда запускается таким образом, то можно сразу продолжить работу с терминала (shell не ждет конца процесса) или выводит номер фонового процесса. Контрольные вопросы: 1. Что такое многопользовательская система? 2. Что такое процесс? 3. За что отвечает ядро? 4. Как определить, какие процессы активны? 5. Как прервать процесс принудительно? 6. Ввод команд на уровне shell. |