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


Приложение

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


 

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

10896. Розмічання: за шаблоном, копіюванням. Підготовка заготовки до роботи 40.5 KB
  Тема уроку: Розмічання: за шаблоном копіюванням. Підготовка заготовки до роботи. Мета: навчальна: сформувати уявлення про призначення та будову вимірювальних інструментів. Прийоми розмічання за шаблоном. Відомості про припуски на обробку. Виховна: виховувати стара...
10897. Сутність поняття естетика. Основні естетичні категорії 110.5 KB
  Історія виникнення поняття естетика у давньогрецькій культурі та країнах давнього сходу. Виділення естетики у самостійну науку. Естетична діяльність та її форми. Структура естетичної свідомості. Основні естетичні категорії. Мистецтво як складова частина предмета естетики.
10898. Методи проектування (фантазування, елементи біоніки). Вибір обєкту проектування на основі зібраної інформації 123.5 KB
  Тема уроку: Методи проектування фантазування елементи біоніки. Вибір обєкту проектування на основі зібраної інформації. Складання ескізу майбутнього виробу. Мета уроку. Засвоєння знань про етапи проектування ескіз технічний опис макет креслення шаблони; форм
10899. Технологія зєднання деталей з тонколистового металу 26.5 KB
  Тема 8: Технологія зєднання деталей з тонколистового металу. Мета: Навчальна: сформувати знання вміння та навички зєднання виробів з тонколистового металу. Виховна: виховувати в учнів культуру праці та бережливе ставлення до інструментів. Розвиваюча: р...
10900. Організація робочого місця під час креслення, основні лінії креслення 42.5 KB
  Тема 11: Організація робочого місця під час креслення основні лінії креслення. Мета: Навчальна: сформувати знання вміння та навички креслення деталей. Виховна: виховувати в учнів культуру праці та бережливе ставлення до інструментів охайне виконання роботи. ...
10901. Розмічання: за шаблоном, копіюванням. Підготовка заготовок до роботи. Припуск. Технологія роботи лобзиком та правила безпеки 52 KB
  Тема: Розмічання: за шаблоном копіюванням. Підготовка заготовок до роботи. Припуск. Технологія роботи лобзиком та правила безпеки. Мета: освітня: ознайомлення учнів зі способами виконання розмічання на фанері; формування в учнів понять шаблон та припуск; формуванн
10902. Системы построения изображений в ИК-диапазоне 1.42 MB
  Исследование пространственных распределений температуры по одной или двум координатам требует сканирования поверхности объекта, которое осуществляют либо механически (оптико-механически), либо электронным способом.
10903. Будова та призначення ручного коловорота, ручного дриля 61.5 KB
  Тема 2.1.3.: Застосування механізмів. Будова та призначення ручного коловорота ручного дриля. Техніка безпеки під час роботи ручними знаряддями праці. Види зєднання деталей: рухомі і нерухомі рознімні та не рознімні Мета: Навчальна: сформувати знання вміння та навичк
10904. Електрична енергія в господарстві держави та побуті 63 KB
  Тема. Електрична енергія в господарстві держави та побуті. Мета: сформувати в учнів поняття про елементарні поняття з електротехніки; розвивати політехнічний світогляд; виховувати відповідальність за результат роботи. Ключові поняття: споживачі електричної енер