66531

УПРАВЛЕНИЕ ПАМЯТЬЮ В ОС UNIX И WINDOWS

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

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

Цель работы — изучение аспектов организации работы с внутренней и внешней памятью в операционных системах семейств Unix и Windows. Использованные теоретические сведения Материалы из методического пособия...

Русский

2014-08-22

148.11 KB

0 чел.

Министерство образования и науки Российской Федерации

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

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

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

ОТЧЕТ

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

«УПРАВЛЕНИЕ ПАМЯТЬЮ В ОС UNIX И WINDOWS»

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

Выполнил

студент гр. 2088/4    А.А.Чернышев

                           <подпись>

Руководитель     А.С. Коноплев

                           <подпись>

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

2011

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

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

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

Материалы из методического пособия 08.pdf, материалы интернет ресурсов msdn.com, и rus-linux.net.

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

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

1) Напишите программу, которая будет сравнивать среднее время доступа к жесткому диску с включенным кэшированием записи и без него. Сравните и обоснуйте полученные результаты. Операционная система - Windows.

//========Измерение среднего времени записи на HDD========//

//========================WINDOWS=========================//

#include <windows.h>

#include <stdio.h>

#include <conio.h>

#include <time.h>

int main()

{

   int i=0;

   int n=0;

   int res;

   double start, end;

   HANDLE f;

   f=NULL;

   unsigned long offs=0;

   char* buf = new char[2*1024*1024];

   start = clock();

   for(n=0; n<1000; n++)

   {

f=CreateFile("D:\\qwe.bak",GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,       FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN, NULL);

      if(f==0) printf("Error!");

      res=WriteFile(f,buf,2*1024*1024,&offs,0);

      CloseHandle(f);

      DeleteFile("D:\\qwe.bak");

   }

   end = clock();

   printf("HDD av. write access time is %.3f s \n",(double)(end-start)/CLOCKS_PER_SEC);

   _getch();

}

Для разработки этой программы были изучены аспекты работы с дескриптором HANDLE.

В процессе разработки возникли трудности с флагами FILE_FLAG_NO_BUFFERING и FILE_FLAG_WRITE_THROUGH, поэтому было решено отключать кэширование через Диспетчер устройств -> Дисковые устройства -> <Наш жесткий диск> -> Свойства -> политика -> “Разрешить кэширование”. Для того чтобы отключить кэширование таким способом требуется перезагрузка. В итоге получили такие результаты:  для записи 2 Mb

С Кэшированием потребовалось:

Без кэширования потребовалось:

По полученным результатам, мы вполне можем судить о том, что за счет включенного кэширование заметно уменьшается время доступа к жесткому диску, и как следствие вырастает производительность компьютера.

2) Напишите программу, которая будет измерять среднее время доступа к внутренней и внешней памяти (чтение данных из оперативной памяти и с внешней памяти, в качестве которой выступает дискета 3.5). Сравните и обоснуйте полученные результаты. Операционная система - Unix. Ввиду отсутствия Floppy-дисковода, было решено замерять время чтения данных с жесткого диска.

В итоге были созданы 2 программы:

//========Измерение среднего времени чтения из HDD========//

//==========================UNIX==========================//

#include <fcntl.h>

#include <unistd.h>

#include <stdio.h>

#include <time.h>

#define BUF_SIZE 1024*8*128

int  main()

{

   double start, end;

   char *buf1= new char[1024*1024*128];

   int fp;    

   int n=0;

 

   /* fd=open("/home/artysleep/qwe.txt",O_RDWR|O_TRUNC|O_CREAT,0777);

       for(i=0; i<BUF_SIZE; i++)

       {

          write(fd,"01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567", 128);

       }

       close(fd);*/ //Создание файла;

   start=clock();

   for (n=0; n<100; n++)

   {

       fp=open("/home/artysleep/qwe.txt",O_RDWR,0777);

       read(fp,buf1,BUF_SIZE*128);

       close(fp);

   }

   end=clock();

   printf("HDD av. write access time is %.3f s \n",(float)(end-start)/100/CLOCKS_PER_SEC);

   return 0;

}

//========Измерение среднего времени чтения из RAM========//

//==========================UNIX==========================//

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <time.h>

#define BUF_SIZE 1024*1024*128

int main ()

{

   double start, end;

   char *buf1;

   char *buf2;

   int i;

   if((buf1 = (char*)malloc(BUF_SIZE))==NULL)

   {

       printf("Buf1 memmory error\n");

       exit(1);

   }

   if((buf2 = (char*)malloc(BUF_SIZE))==NULL)

   {

       printf("Buf2 memmory error\n");

       exit(1);

   }

   start=clock();

   for (i=0; i<100; i++)

   {

       memcpy(buf1, buf2, BUF_SIZE);

   }

   end=clock();

   printf("RAM av. write access time is %.3f s \n",(double)(end-start)/100/(double)CLOCKS_PER_SEC);

   return 0;

}

Были прочитаны 128Mb на жестком диске и в оперативной памяти.

В результате выполнения данных программ, получили такие результаты:

Исходя из полученных результатов, можно судить о том, что чтение из оперативной памяти в несколько раз быстрее, чем чтение с жесткого диска.

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

Какие из перечисленных методов распределения памяти имеют серьезный недостаток – фрагментация памяти?

Распределение памяти разделами переменной величины.

Какие задачи решает виртуальная память?

Виртуальная память решает следующие задачи:

  1.  размещает данные в запоминающих устройствах разного типа, например, часть программы в оперативной памяти, а часть на диске;
  2.  перемещает по мере необходимости данные между запоминающими устройствами разного типа, например, подгружает нужную часть программы с диска в оперативную память;
  3.  преобразует виртуальные адреса в физические.

Перечислите возможные  причины выгрузки процесса частично или полностью на диск (свопинг ).

Ядро выгружает процесс, если испытывает потребность в свободной памяти,

которая может возникнуть в следующих случаях:

  1.  Произведено обращение к системной функции fork, которая должна выделить место в памяти для процесса-потомка.
  2.  Произведено обращение к системной функции brk, увеличивающей размер процесса.
  3.  Размер процесса увеличился в результате естественного увеличения стека процесса.
  4.  Ядру нужно освободить в памяти место для подкачки ранее выгруженных процессов.

4. Выводы

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


 

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

20624. Мегамир, основные космологические и космогонические представления 115 KB
  среднее расстояние от Земли до Солнца равное 15×1011м. Все планеты остывшие тела светящиеся отраженным от Солнца светом. Солнечная система Девять планет вращающиеся вокруг Солнца принято делить на две группы: планеты Земной группы Меркурий Венера Земля Марс и планетыгиганты Юпитер Сатурн Уран Нептун Плутон. Считается что диаметр Солнечной системы равен приблизительно 6×1016 м: на этом расстоянии планеты удерживаются силой тяготения Солнца.
20625. Мегамир. Основные космогонические представления 81.5 KB
  Звезды их характеристики источники энергии2. Звезды их характеристики источники энергии Более 90 видимого вещества Вселенной сосредоточено в звездах. Именно звезды и планеты были первыми объектами астрономических исследований. Пожалуй лишь диск нашего солнца позволяет реально наблюдать процессы происходящие на поверхности звезды.
20626. Мегамир, основные космогонические представления 107 KB
  Имеются многочисленные данные подтверждающие предположение что звезды образуются при конденсации облаков межзвездной пыли и газа. Глобула становится зародышем будущей звезды протозвездой и начинает светиться так как энергия движения частиц переходит в тепло. Дальнейшее сжатие протозвезды приводит к такому повышению температуры и давления что становятся возможными термоядерные реакции синтеза гелия из водорода. При этом силы тяготения стремящиеся сжать вещество звезды уравновешиваются силами внутреннего давления.
20627. Химическая эволюция Земли 81.5 KB
  Общая теория химической эволюции и биогенезаТеории возникновения жизниГипотеза ОпаринаХолдейна Контрольные вопросыЛитература Ранее уже говорилось о том что использование ЭВМ позволило строить и рассчитывать образование и развитие солнечной системы и Земли в частности на различных моделях. Химическая эволюция Земли В процессе эволюции Земли складывались определенные пропорции различных элементов. Земля наиболее массивная среди внутренних планет прошла сложнейший путь химической эволюции. Следует подчеркнуть что геологическая история Земли...
20628. Специфика живого 72 KB
  Предмет изучение задачи и методы биологииТри образа биологииАксиомы биологии 2. Предмет изучения задачи и методы биологии Биология совокупность или система наук о живых системах. Предмет изучения биологии все проявления жизни а именно: строение и функции живых существ и их природных сообществ; распространение происхождение и развитие новых существ и их сообществ; связи живых существ и их сообществ друг с другом и с неживой природой. Задачи биологии состоят в изучении всех биологических закономерностей и раскрытии сущности жизни.
20629. Термодинамика живых систем. Жизнь как информационный процесс 76.5 KB
  Термодинамика живых систем Состояние живых систем в любой момент времени динамическое состояние характерно тем что элементы системы постоянно разрушаются и строятся заново. Это означает что живые системы обязательно должны быть открытыми системами. Именно на этом неравновесии основана работоспособность живой системы направленная на поддержание высокой упорядоченности своей структуры а. Переход живо системы в такое состояние означает для нее смерть.
20630. Концепция эволюции в биологии 87 KB
  Концепция эволюции в биологии 1. Современная синтетическая теория эволюцииОсновные законы эволюцииОсновные факторы эволюцииФормы естественного отбора Контрольные вопросыЛитература Под эволюцией подразумевается процесс длительных постепенных медленных изменений которые в конечном итоге приводят к изменениям коренным качественным завершающимся образованием новых систем структур и видов. Представления об эволюции в естествознании имеют ключевое значение. [1] Парадигма современного естествознания это эволюционносинергетическая...
20631. Человек. колого-эволюционные возможности человека 110.5 KB
  Место человека в системе животного мира и антропогенез2. Основные этапы развития Человека Разумного3. Экологоэволюционные возможности человека5. Место человека в системе животного мира и антропогенез Вопрос о происхождении человека имеет не только научное значение: с позиций эволюционной биологии или чисто зоологической точки зрения это частный филогенетический вопрос.
20632. Биосфера и цивилизация 72.5 KB
  Живые организмы входящие в состав биоценоза неодинаковы с точки зрения специфики ассимиляции ими вещества и энергии из ОС. Совокупность множества параметров среды определяющих условия существования того или иного вида и его функциональных характеристик преобразование им вещества и энергии обмен информацией со средой и с себе подобными и др. Энергетика основа цивилизации и без производства достаточного количества энергии человечество не сможет существовать и развиваться. Сегодня главный производитель энергии теплоэлектростанции ТЭС...