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


 

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

84067. Особенности пищеварительной системы детей раннего возраста 24.75 KB
  Для детей первых месяцев жизни имеют определяющее значение питательные вещества которые поступают с молоком матери и перевариваются за счет веществ содержащихся в самом женском молоке. Всасывание пищевых ингредиентов у детей раннего возраста имеет свои особенности. Расщепление молочного сахара у детей происходит в кайме кишечного эпителия.
84068. Питание детей первого года жизни, грудное молоко как источник питательных и защитных веществ для ребенка 29.6 KB
  Идеальным питанием для ребенка в первые месяцы жизни является грудное молоко поскольку в нем содержатся все необходимые для развития и роста ребенка пищевые вещества. Именно грудное молоко источник всех необходимых для роста и развития ребенка пищевых веществ: белков жиров углеводов витаминов и минералов. Кроме того грудное молоко является источником таких важных компонентов как ферменты иммуноглобулины гормоны что так же жизненно необходимо для гармоничного развития ребенка для его защиты от различных инфекционных заболеваний.
84069. Сердечнососудистая (циркуляторная) система (типы сосудов, круги кровообращения) 29.83 KB
  Кровь в них движется от сердца. Через тонкие стенки капилляров происходит обмен между кровью и тканями транскапиллярный обмен. Кровь в них движется от органов и тканей к сердцу. В капиллярах кровь отдает кислород и питательные вещества а от них получает продукты метаболизма в том числе и углекислый газ.
84070. Сердце, особенности строения сердца, обеспечивающие выполнение его функций 29.57 KB
  Левая и правая части сердца разделены сплошной перегородкой. В левой части сердца клапан двустворчатый в правой трехстворчатый. Клапаны сердца обеспечивают движение крови только в одном направлении: из предсердий в желудочки и из желудочков в артерии.
84071. Регуляция работы сердца 28.54 KB
  Работа сердца регулируется нервной системой в зависимости от воздействия внутренней и внешней среды: концентрации ионов калия и кальция гормона щитовидной железы состояния покоя или физической работы эмоционального напряжения. Нервная и гуморальная регуляция деятельности сердца согласует его работу с потребностями организма в каждый данный момент независимо от нашей воли. Гуморальная регуляция деятельности сердца осуществляется с помощью имеющихся в крупных сосудах специальных хеморецепторов которые возбуждаются под влиянием изменений...
84072. Особенности сердечнососудистой системы у детей младшего возраста 31.68 KB
  Сердце и сосуды у детей значительно отличаются от сердечнососудистой системы взрослых. Рост сердца у детей идет во всех направлениях но неравномерно т. У новорожденных и детей первых 05 2 лет жизни сердце расположено поперечно и более высоко.
84073. Репродуктивная система человека 30.41 KB
  Репродуктивная система комплекс органов и систем которые обеспечивают процесс оплодотворения способствуют воспроизводству человека. Мужская репродуктивная система система органов расположенных снаружи тела около таза которые принимают участие в процессе репродукции. Репродуктивная система женщины состоит из органов расположенных преимущественно внутри тела в тазовой области.
84074. Половое созревание, регуляция полового созревания 33.51 KB
  Еще до появления первой менструации отмечается усиление функции гипофиза и яичников. В последние годы раскрыты новые механизмы становления и регуляции репродуктивной функции. Важная роль в регуляции репродуктивной функции принадлежит эндогенным опиатам энкефалины и их производные пре и проэнкефалины лейморфин неоэндорфины динорфин которые оказывают морфиноподобное действие и были выделены в центральных и периферических структурах нервной системы в середине 1970х годов. Данные о роли нейротрансмиттеров и влиянии через них эндогенных...
84075. Терморегуляция, виды терморегуляции 31.19 KB
  Различают несколько механизмов отдачи тепла в окружающую среду. Излучение отдача тепла в виде электромагнитных волн инфракрасного диапазона. Количество тепла рассеиваемого организмом в окружающую среду излучением пропорционально площади поверхности излучения площади поверхности тела не покрытой одеждой и градиенту температуры. При температуре окружающей среды 20с и относительной влажности воздуха 4060 организм взрослого человека рассеивает путём излучения около 4050 всего отдаваемого тепла.