Рефераты. Теория вычислительных процессов и структур

Теория вычислительных процессов и структур

Министерство образования Республики Беларусь

 

Учреждение образования

 

Белорусский государственный университет

информатики и радиоэлектроники

 

 

Кафедра программного обеспечения

информационных технологий

 

 

 

Алексеев Игорь Геннадиевич,

 Бранцевич Петр Юльянович

 

 

 

 

 

Теория вычислительных процессов и структур

 

учебно-методическое пособие для студентов специальности


«Программное обеспечение информационных технологий»


дневной формы обучения

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Минск 2004

УДК 004.04 (075.8)

ББК 32.973 я 73

       А47


         Рецензент:

доцент Института информационных технологий

канд. техн. наук      В.Н. Мухаметов












      


А47 Алексеев И.Г. Учебно-методическое пособие Теория вычислительных процессов и систем: для студ. спец. «Программное обеспечение информационных технологий»/ И.Г Алексеев, П.Ю. Бранцевич – Мн.: БГУИР, 2004. –54 с.

ISBN 985-444-№


В пособии рассмотрены основные команды операционной системы UNIX, предназначенные для работы с файлами и каталогами, а также для создания процессов и организации взаимодействия между ними. Даны структуры лабораторных работ по курсу «ТВПиС»


УДК 004.04 (075.8)

ББК 32.973 я 73

                                                                                              А47









ISBN 985-444-387-6                                                  © Алексеев И.Г, Бранцевич П.Ю 2004

© БГУИР, 2004

СОДЕРЖАНИЕ

 

1. ОСНОВНЫЕ Команды ОС UNIX........................................................... 4

2. Лабораторные работы....................................................................... 6

Лабораторная работа № 1 Работа с файлами и каталогами ОС UNIX....... 6

Лабораторная работа № 2 Создание процессов ........................................ 17

Лабораторная работа № 3 Взаимодействие процессов.............................. 24

Лабораторная работа № 4 Сигналы............................................................ 31

Лабораторная работа № 5 Использование каналов.................................... 40

Лабораторная работа № 6 Работа с несколькими каналами...................... 46

Лабораторная работа № 7 Работа с использованием неименованных

каналов........................................................................................................ 52

Литература................................................................................................. 53

1. Основные команды ос unix

Вход в систему и выход


В ответ на приглашение системы ввести Logon вводим: sxtxx, например s5t03, где 5 – номер Вашей группы, а 03 – Ваш порядковый номер в группе. Затем  после входа в систему устанавливаем с помощью команды passwd свой пароль длиной не менее 6 символов. Не забывайте свой логин и пароль! Пароль нельзя восстановить!

         Пароль в зашифрованном виде находится в каталоге ./etс в файле shadow и для его сброса необходимо удалить набор символов после имени пользователя между двоеточиями. Например, пользователь stud1, запись в файле shadow:


stud1:gdwiefu@#@#$%66reHHrrnCvcn:12060:………


после удаления пароля запись должна быть следующая:


stud1::12060:………


         Выход  из системы можно осуществить по команде exit


Рабочие каталоги и файлы


         Ваш рабочий каталог: /home/sxtxx, где x и xx – номер группы и порядковый номер студента в группе.

          Включаемые файлы типа: stdio.h, stdlib.h  и т.п. находятся в каталоге: /usr/include/


Работа с каталогами и файлами


         Для вывода содержимого текущего каталога можно использовать команду: dir или ls, для изменения текущего каталога – команду: cd.

         Для вывода полного имени текущего каталога          можно использовать команду: pwd, для создания или удаления каталога – команды: mkdir и rmdir.

         Для вывода на терминал содержимого файла можно использовать команду: cat имя_файла, например:  cat prog.txt.

         Для вызова файл-менеджера типа Norton`а набираем: mc (вызов оболочки файл-менеджера Midnight Commander) и далее работаем с его меню.

         Для вызова текстового редактора набираем: joe или joe имя_создаваемого_или_редактируемого_файла. В самом редакторе практически все команды начинаются с последовательности ctrl-k, и нажатия нужного символа. Например, ctrl-k  h выведет справку по основным командам редактора, а ctrl-k x завершит работу редактора с сохранением редактируемого файла.


Работа с программами и процессами


         Запуск программы на выполнение:


  ./имя_программы например:  ./prog1.exe


         Для компиляции программ на С/С++ вызываем компилятор:


cc имя_входного_файла – о имя_выходного_файла или:

         gcc имя_входного_файла – о имя_выходного_файла ,

где имя_входного_файла обязательно должно быть с расширением *.с или *.cpp, а имя_выходного_файла может быть любым (желательно совпадать с именем входного файла, кроме расширения).

Например:    cc myprog1.c –o myprog1

или

                            gcc myprog1.c –o myprog1


         Для вывода списка запущенных процессов можно использовать команду:

ps, например: ps –x выведет список всех запущенных процессов.


         Для снятия задачи (процесса) можно использовать команду: kill pid_процесса, предварительно узнав его pid командой ps.


В каталоге ./proc находятся сведения обо всех запущенных процессах в системе, их состоянии, распределении памяти и т.д.

Типовой вид каталога:


./proc/1081/……..,

./proc/1085/………, где 1081 и 1082 соответственно pid запущенных процессов в системе.        

Справку по командам системы или по языку С можно получить по команде:

man имя_команды, например: man ls



 

 

 

 

 

 

 

 

 

 

2. Лабораторные работы

 

Лабораторная работа №1

 

Работа с файлами и каталогами ОС UNIX

              

Цель работы – изучить основные команды ОС UNIX  для работы с файлами и каталогами.



Теоретическая часть

 

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

# include <sys / types.h>

# include <sys / stat.h>

# include <fcnt1.h>

int open (const char *pathname, int flags, [mode_t mode]);

Первый аргумент, pathname, является указателем на строку маршрутного имени открываемого файла. Значение pathname может быть абсолютным путём, например:  /usr / keith / junk. Данный путь задаёт положение файла по отношению к корневому каталогу. Аргумент pathname может также быть относительным путём, задающим маршрут от текущего каталога к файлу, например: keith / junk  или просто  junk. В последнем случае программа откроет файл junk в текущем каталоге. В общем случае, если один из аргументов системного вызова или библиотечной процедуры – имя файла, то в качестве него можно задать любое допустимое маршрутное имя файла UNIX.

Второй аргумент системного вызова open - flags - имеет целочисленный тип и определяет метод доступа. Параметр flags  принимает одно из значений, заданных постоянными в заголовочном файле <fcnt1.h> при помощи директивы препроцессора #define ( fcnt1 является сокращением от file control - «управление файлом»). В файле <fcnt1.h> определены три постоянных:

O_RDONLY – открыть файл только для чтения,

O_WRONLY – открыть файл только для записи,

O_RDWR – открыть файл для чтения и записи.

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

Третий параметр mode, является необязательным, он используется только вместе с флагом O_CREAT.

Следующий фрагмент программы открывает файл junk для чтения и записи и проверяет, не возникает ли при этом ошибка. Этот последний момент особенно важен: имеет смысл устанавливать проверку ошибок во все программы, которые используют системные вызовы, поскольку каким бы простым ни было приложение, иногда может произойти сбой. В приведенном ниже примере используются библиотечные процедуры printf для вывода сообщения и exit – для завершения процесса:

         # include <stdlib.h>     /* Для вызова exit */

         # include <fcnt1.h>

                   char workfile=”junk”;    / Задать имя рабочего файла */

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.