66534

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

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

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

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

Русский

2014-08-22

46 KB

2 чел.

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

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

—————————

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

ОТЧЕТ

по лабораторной работе №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, повышают эффективность работы процессов, а также предоставляют некоторую свободу для программиста в реализации наиболее эффективной, по его мнению, работы с памятью его программы.


Приложение

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


 

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

29833. Нелинейные СУ 266.5 KB
  Типовые нелинейные звенья и их характеристики. Типовые соединения нелинейных звеньев и их характеристики. Линеаризация статических характеристик методы компенсационных и вибрационных линеаризации...
29834. Постановка задач синтеза систем управления 96.5 KB
  Задачи синтеза систем управления. Методы синтеза систем управления. Инженерные методы структурно параметрического синтеза.
29835. Динамика нелинейных систем 222 KB
  Метод фазовой плоскости. Метод фазовой плоскости. Пространство координат которое является фазовой характеристикой и ее производные называется пространством состояний системы. След перемещения изображающей точки в фазовом пространстве соответствует изменению состояния системы и называется фазовой траекторией.
29836. Построение фазовой траектории методом изоклин 268.5 KB
  Построение фазовой траектории методом изоклин. Метод изоклин даёт направления касательных к фазовой траектории на фазовой плоскости.1 на семействе изоклин отметим точку А соответствующую начальным условиям из этой точки нужно провести два луча направления которых соответствуют углам наклона касательных данной изоклины и соседней разделить угол между лучами пополам и провести биссектрису до следующей изоклины пересечение биссектрисы со следующей изоклиной даёт следующую точку фазовой траектории далее процесс повторяется если...
29837. Методика построения фазового портрета автономной нелинейной системы управления 320.5 KB
  Методика построения фазового портрета автономной нелинейной системы управления. Анализ нелинейной системы управления в частотной области. Методика построения фазового портрета автономной нелинейной системы управления. Для нелинейной системы управления с кусочнолинейной статической характеристикой при построении фазового портрета используется следующий подход: На статической характеристике определяются зоны линейности.
29838. Преобразование линейной системой спектральных плотностей стационарного случайного процесса 322 KB
  Задачи исследования линейной системы управления при стационарных случайных воздействиях. 7 Если на входе системы случайный процесс то на выходе тоже случайный процесс и между входом и выходом существует зависимость. Определим взаимную спектральную плотность случайного процесса на входе и выходе линейной системы управления : Определим спектральную плотность между x и y: Взаимодействие двух процессов определяется и...
29840. АНАЛИЗ ЛИНЕЙНЫХ СИСТЕМ УПРАВЛЕНИЯ 122.5 KB
  АНАЛИЗ ЛИНЕЙНЫХ СИСТЕМ УПРАВЛЕНИЯ. Предмет и задачи курса теории управления. Принципы управления. Классификация систем управления.
29841. Дискретные системы управления. Математическое описание дискретных сигналов 325.5 KB
  Свойства спектра дискретного сигнала и погрешности восстановления непрерывного сигнала. Аналитическое представление такого сигнала Аналитическое представление АИМ сигнала формула При представлении дискретного сигнала в виде числовой последовательности отсутствует время t поэтому к числовым последовательностям не применимы интегральные преобразования.