Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laboratornaya_Rabota_5

.docx
Скачиваний:
49
Добавлен:
01.04.2022
Размер:
937.11 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РФ Федеральное учреждение высшего профессионального образования Московский технический университет связи и информатики

Кафедра системного программирования

Лабораторная работа 5

«РАБОТА С ФАЙЛАМИ И КАТАЛОГАМИ ОС GNU/LINUX. ПОСТРОЕНИЕ КАРТЫ ВИРТУАЛЬНОЙ ПАМЯТИ ПРОЦЕССА»

по дисциплине:

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

Выполнил студент

группы БФИ 1901

Рахимов Е.К.

Проверила:

Алексанян Диана Ашотовна

Москва 2021

Цель работы:

 построить карту виртуальной памяти;

 изучить основные системные вызовы и функции в ОС GNU/LINUX для работы с файлами и каталогам;

Задания на лабораторную работу

1. Изучить теоретическую часть лабораторной работы.

2. Написать программу, строящую карту виртуальной памяти для процесса, идентификатор которого передается в качестве аргумента при запуске программы. Карта памяти должна быть отображена на экране или сохранена в текстовый файл (имя файла получать в качестве аргумента при запуске, создавать файл в одной директории с программой), предусмотреть наличие файла с указанным именем в директории и предложить пользователю выбор: заменить файл на новый или переименовать результирующий файл. Предусмотреть контроль ошибок открытия/закрытия/чтения файла.

3. Написать программу вывода содержимого текстового файла на экран (в качестве аргумента при запуске программы передаётся имя файла, второй аргумент (N) устанавливает вывод по группам строк (по N –строк) или сплошным текстом (N=0)). Для вывода очередной группы строк необходимо ожидать нажатия пользователем любой клавиши. Для чтения или записи файла использовать только функции посимвольного ввода-вывода getc(), putc(), fgetc(), fputc(). Предусмотреть контроль ошибок открытия/закрытия/чтения/записи файла

Ход выполнения работы

Задание 1

В первой программе нам нужно было написать программу, строящую карту виртуальной памяти для процесса, идентификатор которого передается в качестве аргумента при запуске программы. Карта памяти была сохранена в текстовый файл. Имя файла получал в качестве аргумента при запуске, создавал файл в одной директории с программой. Предусмотрел наличие файла с указанным именем в директории и предложил пользователю выбор: заменить файл на новый или переименовать результирующий файл.

Рисунок 1- Файл «Zad1.c»

Рисунок 2- Файл «Zad1.c»

Компилирую файл(Рисунок 3)

Рисунок 3 – Компилирование файла «Zad1.c»

Смотрю pid процесса при помощи команды “ps -x”, чтобы в дальнейшем использовать в программе. Далее запускаю программу с определенными параметрами: название файла с форматом и пид процесса.(Рисунок 4-5)

Рисунок 4 – Результат выполнения команды «ps -x» и запуск файла «Zad1.c»

Рисунок 5 – Результат выполнения команды «ps -x» и запуск файла «Zad1.c»

Задание 2

В второй программе нужно написать вывод содержимого текстового файла на экран (в качестве аргумента при запуске программы передаётся имя файла, второй аргумент (N) устанавливает вывод по группам строк (по N –строк) или сплошным текстом (N=0)). Для вывода очередной группы строк ожидал нажатия пользователем любой клавиши. Для чтения или записи файла использовал только функции посимвольного ввода-вывода getc(), putc(), fgetc(), fputc(). Предусмотрел контроль ошибок открытия/закрытия/чтения/записи файла(Рисунок 6-8)

Рисунок 6 – Код файла «Zad2Vivod.c»

Компилирую и запускаю файл с определенными параметрами(Рисунок 7-8)

Рисунок 7 – Компилирование и запуск

Рисунок 8 – Вывод программы

Вывод

В ходе данной лабораторной работы я изучил принципы работы с файлами и каталогами ос gnu/linux, а также научился строить карты виртуальной памяти процесса.