Skip to content

anazhook/OS_LAB5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Лабораторная работа No5 Тема: "Обмен данными по именованным каналам".

Задача: написать программу для управления доступом параллельных процессов к файлу по именованным каналам. Формулировка задачи.

  1. Разработать процесс-сервер, который выполняет следующие действия. 1.1. Создает бинарный файл, записи которого имеют следующую структуру: struct employee { int num; // идентификационный номер сотрудника char name[10]; // имя сотрудника double hours; // количество отработанных часов }; Имя файла и данные о студентах вводятся с консоли. 1.2. Выводит созданный файл на консоль. 1.3. Запускает процессы-клиенты Client, которые выполняют доступ к файлу по именованному каналу. Количество процессов клиентов вводится с консоли. 1.4. Обслуживает запросы процессов-клиентов следующим образом:
  • если процесс-клиент запрашивает модификацию записи файла, то доступ к этой записи файла

блокируется для других процессов клиентов до завершения модификации записи клиентом;

  • если процесс-клиент запрашивает чтение записи файла, то доступ к этой записи для других

процессов-клиентов:

  • не блокируется, если они также запрашивают доступ на чтение данных;
  • блокируется, если они запрашивают доступ на запись данных.

1.5. После завершения работы всех процессов клиентов выводит на консоль модифицированный файл. 1.6. По команде с консоли завершает свою работу. 2. Разработать процесс-клиент Client, который выполняет следующие действия: 2.1. Выполняет цикл: 2.1.1. Запрашивает с консоли выполнение одной из операций:

  • модификация записи файла;
  • чтение записи;
  • выход из цикла; 2.1.2. После ввода требуемых данных выполняет эту операцию. 2.2. Доступ к записям файла осуществляется по ключу, которым является ID сотрудника. 2.3. При модификации записи процесс-клиент выполняет следующие действия: 2.3.1. Запрашивает ключ записи; 2.3.2. Посылает запрос на сервер; 2.3.3. Выводит полученную с сервера запись на консоль; 2.3.4. Запрашивает новые значения полей; 2.3.5. По команде с консоли посылает измененную запись на сервер; 2.3.6. По команде с консоли завершает доступ к записи. 2.4. При чтении записи процесс-клиент выполняет следующие действия: 2.3.1. Запрашивает ключ записи; 2.3.2. Посылает запрос на сервер; 2.3.3. Выводит полученную с сервера запись на консоль; 2.3.4. По команде с консоли завершает доступ к записи. Упрощенный вариант лабораторной работы. Решить поставленную задачу для одного процесса Server и одного процесса Client.

About

Operating Systems lab task #5

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages