66534

Управление памятью в ОС UNIX и Windows

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

Информатика, кибернетика и программирование

Напишите набор программ, удовлетворяющих теоретическому понятию оверлея. Каждый оверлей должен осуществлять какие-либо вычисления, выводя результаты в терминал, далее он передает управление другому оверлею из комплекса. Всего в комплексе должно быть не менее 4 оверлеев.

Русский

2014-08-22

46 KB

1 чел.

Санкт-Петербургский государственный политехнический университет

Факультет технической кибернетики

—————————

Кафедра информационной безопасности компьютерных систем

ОТЧЕТ

по лабораторной работе №4

«Управление памятью в ОС UNIX и Windows»

по курсу «Операционные системы»

Студент:

Никитин А. С.

гр. 2088/1

Преподаватель:

Степанова Т. В.

Санкт-Петербург — 2011

1. Формулировка задания

Цель работы – изучение аспектов организации работы с внутренней и внешней памятью в ОС семейств Unix и Windows.

2. Использованные теоретические сведения

3. Результаты работы

3.1. Выполнение индивидуального задания

  1.  Напишите набор программ, удовлетворяющих теоретическому понятию оверлея. Каждый оверлей должен осуществлять какие-либо вычисления, выводя результаты в терминал, далее он передает управление другому оверлею из комплекса. Всего в комплексе должно быть не менее 4 оверлеев.
    Все оверлеи почти одинаковы, за исключением последнего, который не загружает новый оверлей, а просто завершает работу.
    #include <stdio.h>

    int main(int argc, char **argv) {
       
    int i;
       
    puts("Overlay #1");
       
    for (i = 0; i < 10; i++) printf("%d ", i); //Оверлеи по очереди //выводят числа от 0 до 39
       
    puts("\b");
       
    execve("overlay2", NULL, NULL); //Запуск следующего оверлея
       
    return 0;
    }
  2.  Напишите программу, которая будет измерять среднее время доступа к внутренней и внешней памяти (чтение данных из оперативной памяти и с внешней памяти, в качестве которой выступает CD-ROM диск). Сравните и обоснуйте полученные результаты.
    #include <stdio.h>
    #
    include <time.h>
    #
    include "windows.h"

    #
    define N 134217728 //Будет производиться чтение 128 Мб из файла

    int main(int argc, char **argv) {
       
    HANDLE file;
       
    char *src, *dest;
       
    long int tm;
       
    int rd;
       
    file = CreateFileA("E:\\Sleep.flac", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); //Открытие файла
       
    if (file == INVALID_HANDLE_VALUE) return 0;
       
    puts("File opened");
    //Далее идёт выделение памяти под два буфера, в один из которых будет
    //прочитан файл, а во второй будет скопировано содержимое первого
       
    src = (char *) GlobalAlloc(GPTR, N*sizeof(char));
       
    if (src == NULL) {
           
    CloseHandle(file);
           
    return 0;
       }
       
    dest = (char *) GlobalAlloc(GPTR, N*sizeof(char));
       
    if (dest == NULL) {
           
    CloseHandle(file);
           
    GlobalFree(src);
           
    return 0;
       }
       
    puts("Memory allocated");
       
    tm = clock();
    //Чтение файла
       
    ReadFile(file, (LPVOID) src, N*sizeof(char), (PDWORD) &rd, NULL);
       
    tm = clock() - tm;
       
    printf("File read - %ld ms\n", tm);
       
    CloseHandle(file); //Закрытие файла
       
    tm = clock();
    //Копирование памяти
       
    CopyMemory((PVOID) dest, (PVOID) src, (SIZE_T) N*sizeof(char));
       
    tm = clock() - tm;
       
    printf("Memory copied - %ld ms\n", tm);
       
    GlobalFree(src); //Освобождение памяти
       
    GlobalFree(dest);
       
    return 0;
    }

Чтение с CD

Чтение из памяти

Первый запуск

34485 мс

93 мс

Второй запуск

140 мс

94 мс

После первого запуска программы, данные с CD-диска кешируются, и если сразу запустить программу второй раз, то чтение пройдёт гораздо быстрее.

3.2. Ответы на контрольные вопросы

  1.  Где хранится адрес таблицы сегментов?
    Адрес таблицы сегментов хранится в дескрипторе процесса.
  2.  Предположим, что в адресном пространстве процесса располагаются таблицы используемых процессом сегментов и страниц. Каким образом ядро может выгрузить это пространство из памяти?
    Сначала выгружаются все страницы и сегменты, кроме тех, в которых хранятся таблицы. После этого можно выгрузить таблицы, но в дескрипторе процесса необходим дополнительный параметр, указывающий на факт выгрузки таблиц. После этого, при необходимости доступа к какой-либо странице, ядро сможет сначала загрузить таблицу, а потом необходимую страницу.
  3.  Что следует предпринять программе обработки отказов в том случае, если в системе исчерпаны страницы памяти?
    Необходимо выбрать одну из страниц, и выгрузить её. Как правило это страницы, к которым было меньше всего обращений за какой-то промежуток времени, или к которым дольше всего не было обращений.

4. Выводы

Механизмы, использующиеся для работы с памятью в ОС UNIX и Windows, повышают эффективность работы процессов, а также предоставляют некоторую свободу для программиста в реализации наиболее эффективной, по его мнению, работы с памятью его программы.


Приложение

Исходные тексты программ


 

А также другие работы, которые могут Вас заинтересовать

799. Расстановка рабочих мест оснащенных компьютерами 203 KB
  Расположение рабочего стола и монитора относительно оконных проемов. ребования к микроклимату на рабочем месте. Оптимальные величины показателей микроклимата на рабочих местах производственных помещений. Требования к уровням шума и вибрации.
800. Разработка стратегий одиночного бизнеса (конкурентных стратегий) 216 KB
  Разработка стратегий одиночного бизнеса. Классификация базовых конкурентных стратегии одиночного бизнеса. Классификация конкурентных стратегий по Юданову. Определение наиболее эффективной стратегии фирмы, ее формирование, основные составляющие.
801. Становлення та еволюція українського козацтва 236.5 KB
  Гeнeзa та періодизація історії укрaїнськoгo козацтва. Управління та суспільний лад Запорізької Січі. Козацьке право і судочинство. Повсякденне життя запорозьких козаків. Особливості розвитку української культури.
802. Режимы движения жидкости 61.5 KB
  Определить режимы движения жидкости методом визуализации картин течения на установке Рейнольдса. Определить режим движения по значениям критерия Рейнольдса.
803. Растения, содержащие алкалоиды 232.17 KB
  Алкалоиды с азотом в боковой цепи - эфедрин из различных видов эфедры, сферофизин из травы сферофизы солонцовой, колхицин и колхамин из клубнелуковиц безвременников. Алкалоиды с конденсированными пирролидиновыми и пиперидиновыми кольцами (производные тропана) - гиосциамин, атропин, скополамин из красавки, белены, дурмана.
804. Теория и особенности познания 235.5 KB
  Познание как предмет философского анализа. Структура знания. Чувственное и рациональное познание. Теория истины. Понятие как основная форма рационального познания.
805. Экоинформационные системы как инструмент комплексного маниторинга окружающей среды 284.5 KB
  История возникновения экоинформатики. Задачи решаемые экоинформационной системой. Информационное обеспечение подготовки и принятия управленческих решений по охране природы и здоровья человека. Обмен информации о состоянии окружающей среды об других экоинформационных системах.
806. Радиальная скорость 234.5 KB
  Несущая частота сигнала наземного передающего пункта. Релятивистские частотно-фазовые соотношения между параметрами сигналов. Геоцентрические радиус-векторы передающего пункта, космического аппарата и приемного пункта .
807. Зоогигиена с проектированием и строительством животноводческой фермы 230.5 KB
  Роль конструктивных решений животноводческих помещений в формировании оптимального микроклимата и комфортных условий для животных. Характеристика площадки для строительства. Состав основных производственных зданий. Взаимное расположение построек на участке.