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 в целом достаточно похожа предоставляемой функциональностью. Основной проблемой при таком взаимодействии процессов может стать совместное использование канала несколькими процессами, однако для однонаправленной передачи данных одним процессом другому этот способ подходит идеально.


 

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

6425. Онтология спорта и физического воспитания как феноменов экзистенциалистской культуры 93 KB
  Онтология спорта и физического воспитания как феноменов экзистенциалистской культуры Постановка проблемы. В первую очередь следует отметить, что историографический анализ спорта обнаруживает проблему, которая при всем эпохальном разнообразии ее реше...
6426. Сборник статей профессора Р. Л. Лившица 381 KB
  Край восхода на закате 1991: четыре пятилетки Ельцина–Путина К чему привела власть рынка на российском Дальнем Востоке Дальний Восток России - гигантский регион, имеющий огромное значение для нашей страны. С одной стороны, на его...
6427. Печатная электроника для дешевых электронных систем. Состояние технологии и развитие оборудования. 21.59 KB
  Печатная электроника для дешевых электронных систем. Состояние технологии и развитие оборудования. Аннотация. В последние годы печать стала сильно интересна как метод получения дешевых и массовых электронных систем. Печать допускает использование це...
6428. РЕАБИЛИТАЦИЯ ЖЕРТВ ПРЕСТУПЛЕНИЙ КАК ПРАВОВАЯ ПРОБЛЕМА 22.21 KB
  Статья посвящена анализу правового института реабилитации в уголовном процессе Российской Федерации, а также кругу участников судопроизводства, которые, по мнению автора, должны обладать правом н...
6429. Зигмунд Фрейд. Влечения и их судьба 116 KB
  З. Фрейд. Влечения и их судьба Нам часто приходилось слышать, что наука должна строиться на основании ясных и точно определенных исходных положений. В действительности никакая, даже самая точная, наука не начинает с таких определений. Настоящее нача...
6430. Проблема обучения и умственного развития в школьном возрасте 118.5 KB
  Проблема обучения и умственного развития в школьном возрасте Вопрос об отношении обучения и развития ребенка в школьном возрасте представляет собой самый центральный и основной вопрос, без которого проблемы педагогической психологии и педагогическог...
6431. Манипулятивные технологии в системе массовых коммуникаций 167.5 KB
  Манипулятивные технологии в системе массовых коммуникаций. Введение. Определение манипуляции. Признаки манипуляции. Психология манипуляции. Манипуляция на уровне психических процессов. Манипуляция на уровне психологиче...
6432. Проверка гипотезы совпадения экспериментального закона с теоретическим по критерию Колмогорова 25.47 KB
  Проверка гипотезы совпадения экспериментального закона с теоретическим по критерию Колмогорова Этапы задания и результаты их реализации. Задание 1. Разобраться в теоретическом материале Задание 2. Проверить с помощью критерия Колмогорова, подч...
6433. Новейшая история стран Латинской Америки 2.19 MB
  Предисловие Проблемы новейшей истории стран Латинской Америки занимают видное место в отечественной исторической науке. Начиная с 50-х годов было опубликовано много работ по тем или иным вопросам истории региона и отдельных латиноамерикански...