66556

РАБОТА С ТЕРМИНАЛОМ. УПРАВЛЕНИЕ ПРОЦЕССАМИ. ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ: КАНАЛЫ

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

Информатика, кибернетика и программирование

Цель работы изучение механизмов управления устройствами ввода-вывода UNIX при помощи специальных файлов устройств основных принципов управления процессами способов создания и уничтожения процессов механизмов планирования процессов простейших видов взаимодействия процессов...

Русский

2014-08-22

32.29 KB

0 чел.

Министерство образования и науки Российской Федерации

Санкт-Петербургский государственный политехнический университет

Факультет технической кибернетики

Кафедра «Информационная безопасность компьютерных систем»

ОТЧЕТ

по лабораторной работе №6

«РАБОТА С ТЕРМИНАЛОМ.

УПРАВЛЕНИЕ ПРОЦЕССАМИ.

ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ: КАНАЛЫ»

по курсу «Операционные системы»

Выполнил

студент гр. 2088/4    А.А.Чернышев

                           <подпись>

Руководитель     А.С. Коноплев

                           <подпись>

Санкт-Петербург

2011

  1.  Формулировка задания

Цель работы - изучение механизмов управления устройствами ввода-вывода UNIX при помощи специальных файлов устройств, основных принципов управления процессами, способов создания и уничтожения процессов, механизмов планирования процессов, простейших видов взаимодействия процессов (посредством каналов pipe) в ОС UNIX и Windows.

2. Использованные теоретические сведения

Материалы из методического пособия 06.pdf, материалы интернет ресурсов msdn.com, и rus-linux.net, unix-manuals.com.

3. Результаты работы

3.1. Выполнение индивидуального задания

UNIX. Произвести обмен данными между процессом-родителем и его дочерним процессом при помощи механизма каналов. Один процесс записывает (например, текст) в канал, другой считывает его. Проверить, таким образом, особенности реализации каналов, такие как невозможность повторного чтения информации.

В теоретических сведениях была найдена программа, которую следовало лишь немного доработать, чтобы выполнить наше задание.

 

//=========================================================//

//========================Пример 7=========================//

#include <sys/types.h>

#include <unistd.h>

#include <stdio.h>

int main()

{

   int fd[2], result;

   size_t size;

   char resstring[128];

   //pipe

   if(pipe(fd) < 0)

   {

       printf("Can\'t create pipe\n");

       exit(-1);

   }

   //create new proc

   result = fork();

   if(result <0)

   {

       printf("Can\'t fork child\n");

       exit(-1);

   }

   else if (result > 0)

   {

       //parent proc

       close(fd[0]);

       size = write(fd[1], "It`s a message from parent to child!", 128);

       if(size != 128)

       {

           printf("Can\'t write all string\n");

           exit(-1);

       }

       close(fd[1]);

       printf("Parent exit\n");

   }

   else

   {

       //child proc

       close(fd[1]);

       size = read(fd[0], resstring, 128); //попробуем прочитать из pip`a в 1-й раз

       if(size < 0)

       {

           printf("Can\'t read string\n");

           exit(-1);

       }

       printf("%s\n1st time read %dbytes\n",resstring, size); //выведет количество прочтенных байт

       resstring[0]  = '\0';

       size = read(fd[0], resstring, 128); //попробуем прочитать из pip`a во 2-й раз

       if(size < 0)

       {

           printf("Can\'t read string\n");

           exit(-1);

       }

       printf("%s2nd time read: %dbytes\n",resstring, size); //выведет количество прочтенных байт

       close(fd[0]);

   }

   return 0;

}

3.2. Ответы на контрольные вопросы

Опишите функции создания и завершения процессов в UNIX.

int fork()- создание процесса, void exit(int status) – завершение процесса.

Каков максимальный размер программного канала?

Зависит от системы.

Каков алгоритм системного вызова fork() в UNIX?

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

Чтобы программа могла разобраться, в каком процессе она теперь работает – в основном или порожденном, функция fork() возвращает разные значения: 0 в порожденном процессе и целое положительное число (идентификатор порожденного процесса) в основном процессе.

При выполнении системного вызова fork() ядро системы осуществляет:

1) Выделение памяти под описатель нового процесса в таблице описателей процессов.

2) Назначение уникального идентификатора процесса (PID) для вновь образованного процесса.

3) Создание логической копии процесса, выполняющего системный вызов fork, включая полное копирование содержимого виртуальной памяти процесса-предка во вновь создаваемую виртуальную память, а также копирование составляющих контекста процесса-предка в режиме ядра.

4) Копирование таблицы файловых дескрипторов родительского процесса и увеличение счетчиков открытых файлов (процесс-потомок автоматически наследует все открытые файлы своего родителя).

5) Возврат из системного вызова с передачей идентификатора нового процесса в процессе-предке и нулевого значения в процессе-потомке.

4. Выводы

ОС UNIX предоставляет достаточно удобный интерфейс для работы с терминалом. Одной из составляющих удобства является файл терминала.

В Windows реализован достаточно гибкий алгоритм планирования процессов, однако не всегда планирование оказывается удачным, что связано с вытеснением процессов с низким приоритетом процессами с более высоким приоритетом.

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


 

А также другие работы, которые могут Вас заинтересовать

24969. Договор займа и кредитный договор 36 KB
  Договор займа и кредитный договор 1. Понятие Договор займа кредитный договор и договор факторинга оформляют единые экономические кредитные отношения. По договору займа одна сторона заимодавец передает в собственность другой стороне заемщику деньги или другие вещи определенные родовыми признаками а заемщик обязуется возвратить заимодавцу такую же сумму денег сумму займа или равное количество других полученных им вещей того же рода и качества абз. Эта сделка: односторонняя заемщик обязан возвратить сумму займа а займодавец имеет...
24970. Кредитный договор 50.5 KB
  Именно поэтому закон говорит о предоставлении кредита в виде денежных средств п. Вознаграждение кредитору определяется в виде процентов начисленных на сумму кредита за все время его фактического использования. Обязанности заемщика состоят в возврате полученного кредита и уплате предусмотренных договором или законом процентов за его использование. Законом определяется момент исполнения заемщиком обязанности по возврату суммы кредита п.
24971. Договор лизинга (понятие, содержание, виды) 47.5 KB
  Договор лизинга понятие содержание виды Понятие признаки содержание. Договор лизинга является двусторонним взаимным консенсуальным возмездным. Лизингодатель не имеет прямой заинтересованности в конкретном имуществе являющемся предметом лизинга. Главной обязанностью лизингодателя по договору лизинга является финансирование покупки предмета лизинга и получение прибыли на вложенные деньги.
24972. Договор финансирования под уступку денежного требования (факторинг) 41 KB
  Договор финансирования под уступку денежного требования факторинг Договор факторинга является новым для нашего правопорядка. Юридическая сущность этих отношений составляет уступка денежного требования давно известная в обязательственном праве в качестве цессии. Выделяют нераскрытый факторинг должник не знает о состоявшейся уступке прав поскольку фактор здесь не вправе взыскивать долг с должника своего клиента уступки требования здесь не происходит должник осуществляет платеж первоначальному кредитору.829 закреплено что уступка...
24973. Опытное обоснование основных положений МКТ строения вещества. Масса и размер молекул. Постоянная Авогадро 27.5 KB
  Микрохарактеристики вещества. Молекулярнокинетическая теория это раздел физики изучающий свойства различных состояний вещества основывающийся на представлениях о существовании молекул и атомов как мельчайших частиц вещества. Все вещества состоят из мельчайших частиц: молекул атомов или ионов.
24974. Идеальный газ. Основное уравнение МКТ идеального газа. Температура и ее измерение. Абсолютная температура 26.5 KB
  Основное уравнение МКТ идеального газа. Понятие идеального газа свойства. Объяснение давления газа. Для объяснения свойств вещества в газообразном состоянии используется модель идеального газа.
24975. Уравнение состояния идеального газа. (Уравнение Менделеева—Клапейрона.) Изопропессы 41.5 KB
  Процессы в газах. Эти величины называют параметрами состояния газа. Для произвольной массы газа единичное состояние газа описывается уравнением Менделеева Клапейрона: pV = mRT M где р давление V объем т масса М молярная масса R универсальная газовая постоянная.
24976. Испарение и конденсация. Насыщенные и ненасыщенные пары. Влажность воздуха. Измерение влажности воздуха 23.5 KB
  Поэтому атмосферное давление представляет собой сумму давления сухого воздуха и находящегося в нем водяного пара. Давление водяного пара будет максимальным при насыщении воздуха паром. Так давление насыщенного пара не зависит от объема но зависит от температуры. Эта зависимость не может быть выражена простой формулой поэтому на основе экспериментального изучения зависимости давления насыщенного пара от температуры составлены таблицы по которым можно определить его давление при различных температурах.
24977. Кристаллические и аморфные тела. Упругие и пластические деформации твердых тел 24 KB
  Твердые тела. Кристаллические тела. Аморфные тела.