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


 

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

34886. Державний борг. Вплив державного боргу на економіку країни 22.5 KB
  Державний борг-сума грошових средств які держава бере взайми щоб покрити дефіцит бютжету
34887. Податкова система, види податків 22 KB
  Податки у залежності від форми надходження: а прямі; б непрямі. Податки у залежності від формування рівня бюджету:а державні;б місцеві. Прямі податки що безпосередньо йдуть на формування бюджету: ■ податок на додану вартість; ■ прибутковий податок з громадян; ■ податок з прибутку підприємств; ■ плата за землю; ■ податок на нерухомість з юридичних та фізичних осіб; ■ податок з продажів. Непрямі податки це надбавки до цін і тарифів що поширюються на обмежене коло товарів та послуг: ■ акцизи; ■ мита; ■...
34888. Теорія „порівняльних витрат”-основа міжнародної торгівлі 21.5 KB
  Теорія порівняльних витратâ€основа міжнародної торгівлі Міжнародна торгівля це обмін товарами і послугами між державнонаціональними господарствами. Передумовами світової торгівлі виступають міжнародний поділ праці спеціалізація різних країн на виробництві окремих видів товарів і послуг відповідно до технікоекономічного рівня розвитку їх природногсографічних умов.У основі об'єктивної необхідності міжнародної торгівлі лежить концепція порівняльних витрат створена Д. Якщо є незаперечні природні сировинні кліматичні переваги однієї...
34890. Перешкоди на шляху розвитку міжнародної торгівлі 20 KB
  Пошліниємитний збір –це з ціллю : а протекціонізниєзахист вітчизняного споживача; б фіскальні пошліни налогові.Квотавводиться обмеження на кількість ввезення продукта з ціллю підтримки вітчизняного виробника.
34891. Сутність поняття роздержавлення та приватизація 23.5 KB
  Сутність поняття роздержавлення та приватизація. Термін роздержавлення на Заході відомий давно і вживається він однозначно за змістом – як передача власності з державного сектора в приватний. У нас враховуючи суцільний тобто в усіх сферах монополізм зумовлений пануванням державної власності в поняття роздержавлення вкладається дещо інший зміст. А це означає що однією з суттєвих сторін роздержавлення є перетворення самої держави.
34892. Предмет та функціі економічноі теоріі 24.5 KB
  Пізнавальна функція формування ринкового світогляду. Практична функція розробка економічної політики держави на мові об'єктивних економічних закономірностей. Методологічна функція розробка методів засобів наукового і грументарію необхідних для глибокого об'єктивного дослідження ономічної дійсності.
34893. Поняття людських потреб 28 KB
  Матеріальні потреби це бажання споживачів отримати товари та послуги що приносять їм задоволення. Індивідуальні потреби людини споживчі товари і послуги: а первинні задовольняють життєво необхідні потреби людини фізіологічні об'єкт потреб: предмети першої необхідності; б вторинні задовольняють естетичні та культурні потреби кіно театр спорт книги тощо об'єкти потреб: предмети розкоші. Суспільні потреби потреби урядових установих і громадських організацій фірм що...
34894. Методи економічноі теоріі 32 KB
  Факти описова або емпірична теорія займається збором фактів що відносяться до визначеної проблеми в економіці і співставляє гіпотезу з фактами для підтвердження цієї теорії. Індуктивний метод дослідження це виведення економічних принципів тобто створення теорії на основі добору накопичення систематизації й аналізу конкретних фактів господарського життя. Процес пізнання йде від часткового до загального від фактів до теорії. Дедуктивний метод створення економічної теорії з подальшим...