Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

2.1-4. Операционные системы

  1. В начало
  2. Курсы
  3. Весенний семестр
  4. Прикладная математика и информатика
  5. PM-OS-2016
  6. Модуль 2: Лабораторная 2: Каналы и именованные каналы
  7. Задание 7: семафоры

Задание 7: семафоры

Требуемые условия завершения
Открыто с: суббота, 16 апреля 2016, 12:00
Срок сдачи: суббота, 30 апреля 2016, 23:00

Задания

  1. Написать две программы (Alice и Bob), которые:

    • Alice каждые полсекунды печатает на экран 'A'
    • Bob каждые полсекунды печатает на экран 'B'

    Сначала запустите эти две программы на разных терминалах, а потом — на одни терминале в фоновом режиме. Далее добавьте в обе программы семафоры для того, чтобы программы работали поочерёдно. Семафоры нужно выставлять через случайный промежуток времени (до 5 секунд максимально).

  2. Модифицировать задание на именованные каналы для работы сервера с несколькими клиентами (поочерёдно с каждым).

Полезные ссылки

  • http://man7.org/linux/man-pages/man7/sem_overview.7.html
  • http://habrahabr.ru/post/122108/#part_semaphore

Полезные заголовки

#include <fcntl.h>           
#include <sys/stat.h>        
#include <semaphore.h>

Полезные функции

  • Открытие или создание семафора:

    sem_t *sem_open(const char *name, int oflag);
    sem_t *sem_open(const char *name, int oflag, mode_t mode, unsigned int value);
    
  • Закрытие семафора:

    int sem_close(sem_t *sem);
    
  • Удаление семафора:

    int sem_unlink(const char *name);
    
  • Получение текущего значения семафора:

    int sem_getvalue(sem_t *sem, int *sval);
    
  • Увеличение значения семафора:

    int sem_post(sem_t *sem);
    
  • Уменьшение значения семафора:

    int sem_wait(sem_t *sem);
    
  • Уменьшение значения семафора в неблокирующем режиме:

    int sem_trywait(sem_t *sem);
    
◄ Задание 6: клиент-сервер
Список функций и переменных к контрольной работе 2 ►
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Весенний семестр

        • Прикладная математика и информатика

          • УМФ Т-2025

          • ИНС

          • МО ПМИ

          • ДВ 1.3 Ruby on Rails

          • Летняя практика 2к ТУ

          • ЦИТ

          • Летняя практика ИО

          • М С С

          • Advanced problems - 21

          • ЯП-2024/25 (2)

          • Дистанционная летняя практика 2 курс

          • PM-OS-2016

            • Общее

            • Модуль 1: Лабораторная 1

            • Введение в операционные системы

            • Модуль 1: Лабораторная 2

            • Процессы и многозадачность

            • Модуль 2: Лабораторная 1

            • Многозадачность: планирование

            • IPC: Межпроцесное взаимодействие

            • Модуль 2: Лабораторная 2: Каналы и именованные каналы

              • СтраницаСоздание и использование каналов

              • ЗаданиеЗадание 5: создание и использование каналов

              • ЗаданиеЗадание 6: клиент-сервер

              • ЗаданиеЗадание 7: семафоры

              • СтраницаСписок функций и переменных к контрольной работе 2

              • ТестКонтрольная работа 2 (группа 1.1)

              • ТестКонтрольная работа 2 (группа 2.1)

            • Модуль 2: Лабораторная 3: Разделяемая память

            • Модуль 2: Лабораторная 4: Потоки

            • Доборы баллов

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

        • ОИИ

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ - 24

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
PM-OS-2016
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика