1. Работа с файлами (прямой, последовательный доступ, текстовые файлы) - davaiknam.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Лабораторная работа В1 Текстовые файлы 1 51.56kb.
Практическая работа №2 «Текстовый редактор» 1 119.47kb.
Памятка по работе с файлами Все задачи читают входные данные из файла 1 206.92kb.
Программирование в среде Delphi Часть III файлы 1 Диалоговые окна 1 260.71kb.
Энергетика будущего Стажировка Российского Управленческого Сообщества рус 1 35.7kb.
Песни и гимны единой жизни 1 464.79kb.
Инструкция по замене вверсии по sas X x на версию sas 0 серверов... 1 41.61kb.
Проверка настроек рабочего места пользователя еис аижк 1 19.17kb.
Вопросы к экзамену по дисциплине «Линейная алгебра» 1 18.9kb.
Контрольная работа №1 Учебные материалы и файлы на кафедре 1 66.49kb.
Руководство пользователя содержание работа с отчетными формами 2... 1 122.49kb.
Примерный комплекс упражнений для больных остеохондрозом пояснично-крестцового... 1 17.23kb.
Направления изучения представлений о справедливости 1 202.17kb.

1. Работа с файлами (прямой, последовательный доступ, текстовые файлы) - страница №1/1

Методические указания к лабораторным работам

по курсу

ОПД.Ф.11.Операционные системы

1. Работа с файлами
(прямой, последовательный доступ, текстовые файлы)


Цель работы: Изучение способа обращения к файлам через API ОС. Изучение различий представления текстовой и бинарной информации в файлах. Изучение динамических характеристик файлов различных типов в зависимости от способа адресации (прямая и последовательная)
Инструментальная среда: любая IDE, поддерживающая язык программирования C++.
Последовательность действий:

  1. В любом редакторе, поддерживающем создание текстовых файлов создать файл размером не менее 5 мегабайт и не мене 500 000 строк.

  2. Сделать консольную программу, обеспечивающую построчное последовательное чтение файла. Засечь время выполнения.

  3. Сделать консольную программу, обеспечивающую последовательное чтение файла блоками заданного размера. Засечь время выполнения для блоков размера: 128 байт, 1 Кб, 4 Кб, 16 Кб.

  4. Построить график, отложив по осям скорость чтения файла (байт в секунду) и размер блока. Показать на графике время чтения текстового файла. Сделать выводы.

  5. Сделать консольную программу, обеспечивающую чтение файла блоками заданного размера в обратном порядке (с конца файла). Засечь время выполнения для блоков размера: 128 байт, 1 Кб, 4 Кб, 16 Кб. Нанести данные на график.

  6. Сделать консольную программу, обеспечивающую чтение файла блоками заданного размера в случайном порядке, таким образом, чтобы суммарный объем читаемых данных был приблизительно равен размеру файла. Засечь время выполнения для блоков размера: 128 байт, 1 Кб, 4 Кб, 16 Кб. Нанести данные на график.

Отчитаться перед преподавателем, показав текст программ, результаты замеров и объяснив характер полученных результатов.


2. Изучение алгоритма FIFO путем создания программы имитирующей соответствующий планировщик ОС

Цель работы: Изучение алгоритма FIFO путем создания программы имитирующей соответствующий планировщик ОС (на первом этапе ручная имитация, затем программная).


Инструментальная среда: электронная таблица, поддерживающая вычисления; любая IDE, поддерживающая язык программирования C++.
Последовательность действий:

  1. В электронной таблице сделать ручную эмуляцию алгоритма FIFO.

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

  3. Добиться идентичности ручного и машинного расчетов.

  4. Имитировать работу алгоритма на достаточно большом примере, достаточном для статистического анализа результатов.

Отчитаться перед преподавателем, показав текст программы, результаты эмуляции и объяснив характер полученных результатов. Объяснить свое видение достоинств и недостатков алгоритма FIFO.



3. Алгоритм циклического планирование процессов



Цель работы: Изучение алгоритма циклического планирования путем создания программы имитирующей соответствующий планировщик ОС (на первом этапе ручная имитация, затем программная).
Инструментальная среда: электронная таблица, поддерживающая вычисления; любая IDE, поддерживающая язык программирования C++.
Последовательность действий:

  1. В электронной таблице сделать ручную эмуляцию алгоритма циклического планирование процессов.

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

  3. Добиться идентичности ручного и машинного расчетов.

  4. Имитировать работу алгоритма на достаточно большом примере, достаточном для статистического анализа результатов, желательно использовав исходные данные FIFO.

Отчитаться перед преподавателем, показав текст программы, результаты эмуляции и объяснив характер полученных результатов. Объяснить свое видение достоинств и недостатков алгоритма циклического планирование процессов. Сравнить его с алгоритмом FIFO


4. Алгоритм справедливого планирование процессов



Цель работы: Изучение алгоритма справедливого планирование процессов путем создания программы имитирующей соответствующий планировщик ОС (на первом этапе ручная имитация, затем программная).
Инструментальная среда: электронная таблица, поддерживающая вычисления; любая IDE, поддерживающая язык программирования C++.
Последовательность действий:

  1. В электронной таблице сделать ручную эмуляцию алгоритма справедливого планирование процессов.

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

  3. Добиться идентичности ручного и машинного расчетов.

  4. Имитировать работу алгоритма на достаточно большом примере, достаточном для статистического анализа результатов, желательно использовав исходные данные FIFO.

Отчитаться перед преподавателем, показав текст программы, результаты эмуляции и объяснив характер полученных результатов. Объяснить свое видение достоинств и недостатков алгоритма циклического планирование процессов. Сравнить его с алгоритмом FIFO и алгоритмом циклического планирования. Сделать полный анализ изученных алгоритмов.


5. Управление памятью (изучение стратегий выделения памяти)



Цель работы: Изучение и сравнение алгоритмов распределения памяти планирования путем создания программы имитирующей соответствующий модуль ОС (на первом этапе ручная имитация, затем программная).
Инструментальная среда: электронная таблица, поддерживающая вычисления; любая IDE, поддерживающая язык программирования C++.
Последовательность действий:

  1. В электронной таблице сделать ручную эмуляцию стратегии выделения и освобождения памяти (последовательная, первый подходящий блок, наиболее подходящий блок, наименее подходящий блок) на одном и том же контрольном примере.

  2. Сделать консольную программу, обеспечивающую данные стратегии. Результаты выводить в текстовый файл.

  3. Добиться идентичности ручного и машинного расчетов.

  4. Имитировать работу алгоритма на достаточно большом примере, достаточном для статистического анализа результатов.

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



6. Обеспечение многопочности (Mutex, Semaphore)



Цель работы: Создание многопоточного приложения с блокировкой отдельных блоков через Mutex и ограничением одновременно обращающихся потоков через Semaphore.
Инструментальная среда: любая IDE, поддерживающая язык программирования C++.
Последовательность действий:

  1. Сделать консольную программу, обеспечивающую вычисление заданной функцию (функцию оформить в виде подпрограммы) для достаточно большого числа итераций (время выполнения программы должно быть не менее 5 минуты). Засечь время.

  2. Сделать консольную программу, обеспечивающую многопоточное вычисление заданной функцию (функцию оформить в виде подпрограммы) для того же числа итераций, что и в п. 1, разбив его по потокам (число потоков вводится в ручную). Засечь время.

  3. Построить график скорости выполнения в зависимости от числа потоков.

  4. Добавить в тело подпрограммы, вычисляющей функцию Mutex. Выполнить измерения как в п. 2. Нанести данные на график.

  5. Заменить в теле подпрограммы, вычисляющей функцию Mutex на Semaphore с заданным числом одновременных входов. Выполнить измерения как в п. 2. Нанести данные на график.

Отчитаться перед преподавателем, показав текст программы, результаты эмуляции и объяснив характер полученных результатов. Объяснить свое видение достоинств и недостатков многопоточности и влияния на нее элементов синхронизации. Оценить эффект от многопоточного выполнения алгоритмов.


7. Сетевые возможности ОС (передача информации через сокеты)



Цель работы: Создание программы, содержащей 2 класса: простой сокет-сервер и клиент. Разнесение программы на 2 различных программных модуля..
Инструментальная среда: любая IDE, поддерживающая язык программирования C++.
Последовательность действий:

  1. Сделать консольную программу, обеспечивающую создание сокет-сервера в одном потоке и сокет-клиента в другом потоке. Добиться корректной передачи информации между ними.

  2. Разделить программу на две части разнеся серверную и клиентскую часть. Добиться устойчивой связи между ними.

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

  4. * Попытаться реализовать многопоточный сокет-сервер и оценить эффект многопоточности путем использования нескольких ПК.

Отчитаться перед преподавателем, показав текст программы, результаты исследования и объяснив характер полученных результатов. Объяснить свое видение достоинств и недостатков передачи информации через сокеты.


8. Обеспечение многозадачности (межпроцессный обмен данными)



Цель работы: Создание 2-х программ, обменивающихся между собой данными через именованные блоки памяти.
Инструментальная среда: любая IDE, поддерживающая язык программирования C++.
Последовательность действий:

  1. Сделать 2 консольные программы, запускающиеся одна другую и реализующие передачу информации от родительской программы дочерней через именованный блок памяти.

  2. * Сделать программу резедента, создающую именованный блок памяти и программу клиента, проверяющую наличие резедента и получающую от него информации.


Отчитаться перед преподавателем, показав текст программы. Объяснить процедуру обмена данными через именованные блоки памяти.




А я говорю вам, что Богу тоже знакомы бессонные ночи. Мария Конопницкая
ещё >>