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

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

2014-07-24

93.5 KB

21 чел.


Поделитесь работой в социальных сетях

Если эта работа Вам не подошла внизу страницы есть список похожих работ. Так же Вы можете воспользоваться кнопкой поиск


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

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

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

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

ОТЧЕТ

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



 

Другие похожие работы, которые могут вас заинтересовать.
2785. РАБОТА С ГРАФИЧЕСКОЙ СРЕДОЙ ОС UNIX И WINDOWS 84.65 KB
  Цель работы – изучить архитектуру системы X Window, базовых механизмов отображения графической информации и способов управления графическими окнами в UNIX, основные компоненты оконного интерфейса в Windows.
2776. ВЗАИМОДЕЙСТВИЕ С ФАЙЛОВЫМИ СИСТЕМАМИ UNIX/WINDOWS 52.06 KB
  Под цилиндром (Cylinder) понимается совокупность дорожек одинакового радиуса на всех магнитных дисках (блинах) одного жёсткого диска. Контроллер жёсткого диска интерпретирует значение в радиус, на который передвигается магнитная головка чтения (Head).
7630. Управление памятью 66.2 KB
  Иерархия памяти В настоящее время в ЭВМ сложилась трехуровневая организация памяти. По мере увеличения уровня памяти весьма существенным образом уменьшается время доступа к хранимым в ней данным и объем самой памяти а стоимость памяти в расчете на один бит информации сильно возрастает. Центральный процессор ЦП может непосредственно обращаться к ОП и кэшпамяти при этом в случае отсутствия данных в кэшпамяти но их наличии в ОП перепись их из ОП в кэшпамять происходит автоматически только с помощью аппаратных средств без участия...
2778. Управление службой каталога в Windows-сети 67.36 KB
  Разработать структуру локальной вычислительной сети предприятия в которой используются ОС Windows Server 2003 Windows XP Windows Vist Windows 2000 и которая состоит из сервера и трех рабочих станций. Установить и настроить ОС Windows Server 2003 на ее платформе установить Webсервер IIS и DNSсервер установить и настроить службу каталога ctive Directory настроить контроллер домена. Выполнение индивидуального задания В процессе работы была разработана следующая структура локально-вычислительной сети: Контроллер домена: Windows Server...
8326. Основные объекты и приемы управления ОС Windows. Функции операционной системы Windows 30.78 KB
  Основные объекты и приемы управления ОС Windows. Функции операционной системы Windows Основные объекты и приемы управления ОС Windows Все операционные системы фирмы Microsoft: Windows 95 Windows 98 Windows Me Windows 2000 Windows XP Windows Vist и Windows 7 это ОС обеспечивающие многозадачность работы в многооконном графическом пользовательском интерфейсе многих пользователей. Отличие ОС Windows 98 и более поздних версий от их предшественниц в основном в том что они обеспечивает более тесную интеграцию с Internet. Таким образом...
3286. Автомат с магазинной памятью 60.73 KB
  Формальное определение диаграмма автомата с магазинной памятью В отличие от конечных автоматов автомат с магазинной памятью является набором: где K конечное множество состояний автомата единственно допустимое начальное состояние автомата множество конечных состояний причём допустимо F=Ø и F=K Σ допустимый входной алфавит из которого формируются строки считываемые автоматом S алфавит памяти магазина нулевой символ памяти. Реализация автоматов с магазинной памятью отличается от конечных автоматов тем что текущее...
9093. Аппаратно-независимый уровень управления виртуальной памятью 49.28 KB
  Для обеспечения нужной производительности менеджер памяти ОС старается поддерживать в оперативной памяти актуальную информацию пытаясь угадать к каким логическим адресам последует обращение в недалеком будущем. Для обеспечения нужной производительности менеджер памяти ОС старается поддерживать в оперативной памяти актуальную информацию пытаясь угадать к каким логическим адресам последует обращение в недалеком будущем. Для каждой виртуальной страницы запись в таблице страниц содержит номер соответствующего страничного кадра в оперативной...
9094. Организация памяти компьютера. Простейшие схемы управления памятью 55.41 KB
  Программы вместе с данными к которым они имеют доступ в процессе выполнения должны по крайней мере частично находиться в оперативной памяти. Операционной системе приходится решать задачу распределения памяти между пользовательскими процессами и компонентами ОС. Часть ОС которая отвечает за управление памятью называется менеджером памяти.
2103. РЕАЛИЗАЦИЯ ПРОТОКОЛА TCP/IP В ОС UNIX 44.91 KB
  Порт определяет специальную принимающую программу или утилиту такую как ftp программа передачи файла. Команды такие как telnet и ftp взяты из RPNET. TCP IP системные команды Команда Дескриптор ftpTC программа передачи файла ifconfigDMN параметры конфигурирования интерфейса сети loggerTC формирование элементов в системе регистрации mkhostsDMN команды создания имен узлов netsttTC изображение состояния сети...
2188. ФАЙЛОВАЯ СИСТЕМА ОС UNIX 63.24 KB
  Справочники являются суперфайлами которые могут содержать файлы или другие справочники. Файловая система UNIX характеризуется: иерархической структурой согласованной обработкой массивов данных возможностью создания и удаления файлов динамическим расширением файлов защитой информации в файлах трактовкой периферийных устройств таких как терминалы и т. Пример древовидной структуры файловой системы Файловая система организована в виде дерева с одной исходной вершиной которая называется корнем записывается: ; каждая вершина в...
© "REFLEADER" http://refleader.ru/
Все права на сайт и размещенные работы
защищены законом об авторском праве.