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


Приложение

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


 

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

69370. Електронні обчислювальні машини (ЕОМ), курс лекцій 612.5 KB
  Мета дисципліни - дати студенту знання принципів конструювання, засобів виробництва і рішення основних завдань конструювання ЕОМ, прищепити студенту навики розробки конструкції і технології її виготовлення на основі процедур синтезу, аналізу і оптимізації. Конструювання є завершальним етапом процесу проектування ЕОМ і полягає в фізичній реалізації прийнятих схемотехнічних рішень.
69371. Формообразование изделий из металлических порошков 204.5 KB
  Проблема нерівномірності розвитку країн світу. Під глобалізацією світового господарства розуміють процес посилення взаємозвязку національних економік країн світу що знаходить своє вираження в утворенні світового ринку товарів і послуг фінансів; становленні глобального...
69372. Исследование работы ЖГДМ 114.55 KB
  Накопители информации - устройство записи, воспроизведения и хранения информации, а носитель информации - это предмет, на который производится запись информации (диск, лента, твердый носитель). Значительная часть накопителей информации, используемых в настоящее время, создана на базе магнитных носителей.
69373. КОМПЕНСАЦИЯ РЕАКТИВНОЙ МОЩНОСТИ В ЭЛЕКТРИЧЕСКИХ СЕТЯХ 179.5 KB
  Электроприемники предприятий требуют для своей работы как активной (Р), так и реактивной (Q) мощности. Реактивная мощность вырабатывается, как и активная, синхронными генераторами и передается по системе электроснабжения к потребителям.
69374. Технологии социальной работы по социальной интеграции инвалидов 154 KB
  Рассмотреть сущность и содержание понятия «интеграция инвалидов в общество»; выделить основные факторы и условия эффективной интеграции инвалидов в общество; проанализировать инклюзию как технологию интеграции инвалидов в общество; исследовать организацию досуговой деятельности как фактор, усиливающий интеграцию инвалидов в общество.
69375. ПРОГРАМУВАННЯ МІКРОПРОЦЕСОРНИХ СИСТЕМ НА БАЗІ МІКРОКОНТРОЛЕРІВ РОДИНИ МК-51 822 KB
  Більшу частину команд даної групи (таблиця 1) складають команди передачі та обміну байтами. Команди пересилки входять і в групу команд роботи з окремими бітами. Всі команди даної групи не модифікують прапорці результату, за винятком команд завантаження PSW...
69376. ОСОБЛИВОСТІ АРХІТЕКТУРИ ОКРЕМИХ ФУНКЦІОНАЛЬНИХ МОДУЛІВ МІКРОКОНТРОЛЕРА 996 KB
  Схема інкременту призначена: для збільшення на 1 у кожному машинному циклі вмісту регістрів T C0 T C1 для яких встановлений режим таймера і дозволена лічба; для збільшення на 1 вмісту регістрів T C0 T C1 для яких встановлений режим лічильника зовнішніх подій дозволена...
69377. Архітектура паралельних портів та підсистема переривань 910.5 KB
  Існує два способи обміну даними між зовнішніми пристроями (ЗВПР) і мікропроцесорною системою (МПС): паралельний, коли одночасно передаються всі біти або декілька біт слова даних; послідовний, коли біти слова даних пересилаються по черзі, починаючи, наприклад, з його молодшого розряду.
69378. Архітектура послідовних портів 1.23 MB
  Існує два способи обміну даними між зовнішніми пристроями ЗВПР і мікропроцесорною системою МПС: паралельний коли одночасно передаються всі біти або декілька біт слова даних; послідовний коли біти слова даних пересилаються по черзі починаючи наприклад з його молодшого розряду.