Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

1. 2. Последовательность выполнения работы




 

1) Прогон программы для записи информации в файл. Для иллюстрации вышесказанного давайте рассмотрим программу_1, находящуюся в файле откомпилируем ее и запустим на исполнение. Обратите внимание на использование системного вызова umask() с параметром 0 для того, чтобы права доступа к созданному файлу точно соответствовали указанным в системном вызове open().

 

 

 

 

2) Написание, компиляция и запуск программы для чтения информации из файла. Измените предыдущую программу_1 так, чтобы она читала записанную ранее в файл информацию и печатала ее на экране. Желательно удалить все лишние операторы.

3) Прогон программы для pipe в одном процессе. Достаточно понятной иллюстрацией действий по созданию pip'a, записи в него данных, чтению из него и освобождению выделенных ресурсов может служить программа_2, организующая работу с pip'ом в рамках одного процесса. Откомпилируйте ее и запустите на исполнение.

 

 

 

 

 

4) Прогон программы для организации однонаправленной связи между родственными процессами через pipe. Давайте рассмотрим программу_3, осуществляющую однонаправленную связь между процессом-родителем и процессом-ребенком, откомпилируем ее и запустим на исполнение.

 

 

 

 

5) Написание, компиляция и запуск программы для организации двунаправленной связи между родственными процессами через pipe.. Pipe принципиально служит для организации однонаправленной или симплексной связи. Если бы в предыдущем примере мы попытались организовать через pipe двустороннюю связь, когда процесс-родитель пишет информацию в pipe, предполагая, что ее получит процесс-ребенок, а затем читает информацию из pip'а, предполагая, что ее записал порожденный процесс, то могла бы возникнуть ситуация, в которой процесс-родитель прочитал бы собственную информацию, а процесс-ребенок не получил бы ничего. Для использования одного pip'a в двух направлениях, необходимы специальные средства синхронизации процессов, о которых речь пойдет на лекциях " Алгоритмы синхронизации" и " Механизмы синхронизации" . Более простой способ организации двунаправленной связи между родственными процессами заключается в использовании двух pip'ов. Модифицируйте программу из предыдущего примера для организации такой двусторонней связи, откомпилируйте ее и запустите на исполнение.

 

 

 

 

Вывод: в этой лабораторной работы мы получили навыки о потоке ввода-вывода информации. Изучили стандартную библиотеку и функции, их системные вызовы на языке С. На практике применили такие функции как open(), read(), write(), close(). А также научились передавать информацию с помощью потоковой модели между различными процессами или даже внутри одного процесса в операционной системе.

 

 

Министерство образования и науки Российской Федерации

Федеральное государственное автономное образовательное учреждение

высшего образования

«Южно-Уральский государственный университет»

(национальный исследовательский университет)

Институт естественных и точных наук

Факультет математики, механики и компьютерных технологий

Кафедра прикладной математики и программирования

 

   

 

 

ОТЧЕТ К ЛАБОРАТОРНОЙ РАБОТЕ №9 

по дисциплине операционные системы

 

    Руководитель работы, __________/Е. Ю. Алексеева «____»_____________2019 г.
    Автор работы Студент группы ЕТ-313 _____________/ К. С. Шведов «____»_____________2019 г.
   

 

Челябинск 2019

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...