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


Приложение

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


 

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

64355. Підвищення конкурентоспроможності молокопереробних підприємств в умовах членства України в СОТ 183.5 KB
  Проблема конкурентоспроможності в аграрному секторі економіки є високоактуальною, що пов’язано із важливістю вирішення питань забезпечення продовольчої безпеки кожної країни в сенсі покращення здоров’я людей шляхом підвищення економічної ефективності виробництва продукції.
64356. МЕТОДИКА НАВЧАННЯ ПРОГРАМНИХ ЗАСОБІВ ЗАХИСТУ ІНФОРМАЦІЇ МАЙБУТНІХ ІНЖЕНЕРІВ-ПЕДАГОГІВ 222.5 KB
  Важко уявити сучасний заклад підприємство без розвиненої інформаційної інфраструктури: сукупності інформаційних центрів банків даних і знань центрів керування апаратнопрограмних засобів і технологій забезпечення збору зберігання обробки і передачі інформації...
64357. ПОРУШЕННЯ СИСТЕМ ГОМЕОСТАЗУ ТА ШЛЯХИ ЙОГО КОРЕКЦІЇ НА ЕТАПАХ КОМПЛЕКСНОГО ЛІКУВАННЯ ХВОРИХ НА ГЕНЕРАЛІЗОВАНИЙ ПАРОДОНТИТ 344.5 KB
  Мета дослідження обгрунтування концепції комплексного індивідуального лікування хворих на генералізований пародонтит на підставі визначення ролі систем гомеостазу в патогенезі пародонтиту вивчення дизбіотичних...
64358. Розвиток методів розрахунку систем охолоджування роторів газових турбін 2.57 MB
  В найближчому майбутньому освоєння високих температур газу відбуватиметься головним чином за рахунок вдосконалення систем охолоджування зокрема шляхом вдосконалення охолодження роторів турбін.
64359. Сформованість готовості майбутніх учителів до організації міжособистісних взаємин в учнівському колективі підлітків 435.5 KB
  Національна освіта переживає критичне та конструктивне переосмислення дійсності, пов’язане з глибоким перетворенням усіх сфер суспільного життя. Сьогодні пріоритетними у навчально-виховному процесі є: гуманізація, становлення сучасних засад морально-етичного виховання...
64360. Оптимізація процесу фізичного виховання студентів транспортних спеціальностей на основі поглибленого курсу професійно-прикладної фізичної підготовки 263.5 KB
  Дотепер накопичений досить великий арсенал наукових досліджень щодо застосування ППФП в освітньому процесі студентів майбутніх фахівців різних галузей господарства Сущенко Л. Недостатньо досліджено питання обґрунтованості вибору вправ професійноприкладної...
64361. УСВІДОМЛЕННЯ ПРОФЕСІЙНОГО ВИБОРУ МАЙБУТНІМИ ВЧИТЕЛЯМИ ЯК ЧИННИК САМОЗДІЙСНЕННЯ ОСОБИСТОСТІ 186.5 KB
  Процес вибору професії доволі складний тривалий і суперечливий. Професійне становлення особистості що починається з вибору професії не закінчується ним.
64362. ПІДВИЩЕННЯ ЕФЕКТИВНОСТІ ЗАХОДІВ ЗІ ЗМЕНШЕННЯ ОБМЕЖЕНЬ ШВИДКОСТІ РУХУ ПОЇЗДІВ, ЗУМОВЛЕНИХ СТАНОМ ЗАЛІЗНИЧНОЇ КОЛІЇ 440.5 KB
  Актуальність теми визначається необхідністю забезпечення безперебійного перевізного процесу на залізницях України підвищення швидкості руху поїздів зниження питомих витрат енергоресурсів зменшення строку доставки вантажів.
64363. ОБГРУНТУВАННЯ СХЕМИ ТА ПАРАМЕТРІВ ПОСІВНОГО АГРЕГАТУ НА БАЗІ ОРНО-ПРОСАПНОГО ТРАКТОРА 2.19 MB
  Мета дисертаційної роботи полягає в підвищенні експлуатаційної ефективності використання орнопросапного трактора шляхом обґрунтування схеми параметрів і режиму його агрегатування з сівалкою для сівби просапних культур.