Skip to content

Лабораторные работы по дисциплине "Операционные системы". Работа с pid и системными функциями

Notifications You must be signed in to change notification settings

Recreatorms/OS_Labs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OS_Labs

Лабораторные работы по дисциплине "Операционные системы". Работа с pid и системными функциями

  • lab1: Установить обработчик atexit(), чтобы при завершении процесса выводилось на экран сообщение что сработал обработчик atexit(). Из текущего процесса создать дочерний. Каждый процесс должен вывести на экран признак дочерний/родительский, pid, ppid. Родительский процесс должен дождаться завершения дочернего.

  • lab2a: Создать pipe. Создать дочерний процесс. Передать строчку через pipe из родительского в дочерний процесс с текущим временем и pid передающего процесса. Дочерний процесс должен вывести на экран его текущее время и полученную через pipe строчку. Время из родительского и дочернего должно различаться как минимум на 5 секунд.

  • lab2b: Аналогично 2а, но использовать fifo.

  • lab3: Создать две независимых программы. В бесконечном цикле передавать из первого процесса(первая программа) через разделяемую память текущее время и pid передающего процесса. Принимающий процесс (вторая программа) должен выводить на экран свое текущее время и pid и принятую строчку. Обязательно: вторую программу можно запускать параллельно несколько раз, первая программа (передающая) должна запускать только один раз. Повторный запуск первой программа, если уже есть процесс с такой программой, должен завершаться с соответствующим сообщением на экране.

  • lab4: Аналогично lab3, но для синхронизации обмена данными использовать semaphore(использовать системные вызовы из лекционного материала).

  • lab5: Создать 10 читающих потоков и 1 пишущий. Для потоков должен быть доступен один и тот же массив символов. Пишущий поток записывает в общий массив номер записи (монотонно возрастающий счетчик), а читающие потоки выводят на экран свой tid и текущее состояние общего массива. Доступ должен быть синхронизирован с помощью mutex.

  • lab6: Аналогично lab5, но доступ должен быть синхронизирован с помощью блокировок чтения-записи.

  • lab7: Аналогично lab5, но доступ должен быть синхронизирован с помощью условных переменных.

  • ls_homework: Программа, выводящая тот же результат, что и "ls -la"

About

Лабораторные работы по дисциплине "Операционные системы". Работа с pid и системными функциями

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published