Многозадачность Windows от NT до Vista

Автор работы: Пользователь скрыл имя, 03 Апреля 2011 в 14:01, реферат

Описание работы

В компьютерных технологиях многозадачность – это метод, в котором различные задачи, также известные как процессы, делят общие ресурсы, такие как центральное обрабатывающее устройство (центральный процессор) , который является исполнителем машинных инструкций и отвечает за выполнение всевозможных операций, которые задаются программами.

Содержание работы

1.Что такое многозадачность?....................................................стр.3


2.Основные принципы многозадачности в Windows………...стр.4



3.Синхронизация потоков……………………………………...стр.5


4.Windows NT как родоначальник многозадачности………...стр.10



5.NT и ее улучшенные версии…………………………………стр.11


Windows 95……………………………………………………………….стр.11


Windows 98……………………………………………………………….стр.12


Windows 2000…………………………………………………………….стр.12


Windows XP………………………………………………………………стр.13


Windows Vista…………………………………………………………….стр.14


6.Сходства и различия Windows 9x и Windows NT (2000, XP)..стр.15


7.Заключение ……………………………………………………стр.17



8.Список литературы……………………………………………стр.18

Файлы: 1 файл

Многозадачность Windows(1).doc

— 192.50 Кб (Скачать файл)

ожидать подготовки новых данных.

      Наряду с выполнением операций  установки и сброса события  можно сгенериро-

вать импульсное событие: 

BOOL PulseEvent( hEvent ) ; 

      Импульсное событие включает  сигнал на короткий промежуток  времени. Приме-

нение этой функции для события, сбрасываемого вручную, позволяет оповестить о нем

все ожидающие  потоки, а затем сбросить событие. Вызов функции для события, сбрасы-

ваемого автоматически, дает возможность оповестить только один ожидающий поток.

Если не было ни одного ожидающего потока, то никакой другой поток не будет опове-

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

включенным до тех пор, пока не появится ожидающий  его поток. После оповещения по-

тока событие  сбрасывается автоматически.

      Семафоры, исключающие семафоры  и события могут совместно  использоваться

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

Путем совместного  задействования синхронизирующих объектов процессы могут коор-

динировать свои действия по аналогии с тем, как это делают потоки. Существует три

механизма совместного  использования. Первый из них - это наследование, при котором

один процесс  создает новый процесс, получающий копии всех дескрипторов родитель-

ского процесса. Копируются только те дескрипторы, которые при создании были поме-

чены как доступные  для наследования.

      Два других метода сводятся  к созданию второго дескриптора  существующего объ-

екта с помощью  вызова функций. Какая из функций  будет вызвана, зависит от имею-

щейся информации. При наличии дескрипторов как  исходного процесса, так и процесса,

назначения следует  вызывать функцию DuplicateHandle, при наличии  только имени объ-

екта - одну из функций Openxxx. Две программы могут заранее  определить имя совме-

стно используемого объекта. Кроме того, одна из программ способна передать другой

это имя посредством  совместно используемой области  памяти функций DDEML (DDE

Management Library - библиотека  управления динамическим обменом  данных) или кана-

ла. 

BOOL DuplicateHandle(

     HANDLE hSourceProcess,            // процесс, которому принадлежит

                                      // исходный объект

      HANDLE hSource,                 // дескриптор исходного объекта

      HANDLE hTargetProcess,          // процесс, который хочет создать

                                      // копию дескриптора

      LPHANDLE lphTarget,             // переменная для записи копии  дескриптора

      DWORD fdwAccess,                // запрашиваемые привилегии доступа

      BOOL bInherit,                  // может ли наследоваться копия  дескриптора?

      DWORD fdwOptions );             // дополнительные операции, например

                                      // закрытие исходного дескриптора

HANDLE OpenMutex(

    DWORD fdwAccess,                  //запрашиваемые привилегии доступа

    BOOL binherit,                    // TRUE - дочерний процесс может

                                      // наследовать этот дескриптор

      LPTSTR lpszName );              // имя исключающего семафора 

HANDLE OpenSemaphore(

    DWORD fdwAccess,                  // запрашиваемые привилегии доступа

    BOOL bInherit,                    //TRUE - дочерний процесс может

                                      // наследовать этот дескриптор

      LPTSTR lpszName );              // имя семафора 

HANDLE OpenEvent(

    DWORD fdwAccess,                  // запрашиваемые привилегии доступа

    BOOL bInherit,                    // TRUE - дочерний процесс может

                                      // наследовать этот дескриптор

      LPTSTR lpszName );              // имя события 

      Используемый в этом примере  тип данных LPTSTR - это обобщенный  текстовый

тип, который  компилируется по-разному в зависимости  от того, какой стандарт, Unicode

или ASCII, поддерживается приложением.

      Семафоры, исключающие семафоры  и объекты событий будут сохраняться  в памя-

ти до тех  пор, пока не завершатся все использующие их процессы или пока с помощью

функции CloseHandle не будут закрыты все дескрипторы  соответствующего объекта:

BOOLCloseHandle(hObject);

       Критический раздел представляет  собой объект, выполняющий те  же функции,

что и исключающий  семафор, но в отличие от последнего критический раздел не может

наследоваться. Оба объекта доступны только для  одного процесса. Преимущество кри-

тических разделов перед исключающими семафорами состоит  в том, что они проще в

управлении и  гораздо быстрее работают .

      Терминология, принятая для функций,  которые используются при работе  с крити-

ческими разделами, отличается от терминологии, разработанной для функций управле-

ния семафорами, исключающими семафорами и событиями, однако сами функции вы-

полняют одни и  те же операции. В частности, принято  говорить не о создании

критического  раздела, а о его инициализации. Процесс не ожидает критический раздел, а

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

закрываете дескриптор, а удаляете объект. 

VOID InitializeCriticalSection ( LPCRITICAL_SECTION lpcs );

VOID EnterCriticalSection( LPCRITICAL_SECTION lpcs );

VOID LeaveCriticalSection( LPCRITICAL_SECTION lpcs );

VOID DeleteCriticalSection( LPCRlTICAL_SECTION lpcs ); 

     Переменная типа LPCRITICAL_SECTION содержит указатель (а не дескриптор)

критического  раздела. Функция InitializeCriticalSection должна получить указатель на

пустой объект (&cs). 

Windows NT как родоначальник многозадачности. 

     Windows NT – это линия операционных систем, производимых корпорацией Microsoft, релиз первой версии которой был в июле 1993. Это была мощная, основанная на высокоуровневом программном языке, многофункциональная, многопользовательская операционная система, сравнимая с UNIX. Основным архитектором этой системы был Дейв Катлер. NT была первой операционной системой Windows, основанной на гибридном ядре (также называемым как макроядро), а также первой полной 32-битной версией Windows, в то время как его аналоги - Windows 3.1 и Windows 9 – были 16-битными/32-битными гибридами. Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Home Server, Windows Server 2008 and Windows 7 основаны на Windows NT, хотя в мире они выступают не под брендом Window NT.

      Программы и подсистемы в пользовательском режиме ограничены в том, к каким  системным ресурсам они имеют  доступ, в то время как режим  ядра имеет неограниченный доступ к системе памяти и внешним устройствам. Ядро Window NT известен как гибридное ядро (или макроядро). Архитектура содержит обычное ядро, уровень аппаратных абстракций, драйвера и ряд сервисов, которые есть в режиме ядра.

      Пользовательский режим в Window NT состоит из подсистем, которые способны переносить, передавать запросы ввода/вывода к соответствующему программному обеспечению драйверов режима ядра с использованием менеджера ввода/вывода. Две подсистемы составляют пользовательский режим Window NT: подсистема окружающей среды, окружения (которая запускает приложения, написанные для разных видов операционных систем), и центральная подсистема (оперирует специальными системными функциями от имени подсистемы окружения). Режим ядра в Window NT имеет полный доступ к аппаратному обеспечению и ресурсным системам компьютера. Режим ядра предостерегает службы и приложения пользовательского режима от достижения областей операционной системы, к которым у них не должно быть доступа.

      Исполнительная часть программы со всеми подсистемами пользовательского режима имеет дело с вводом/выводом, управлением объектов, безопасностью и управлением процессами. Ядро «сидит» между уровнем аппаратных абстракций и исполнительной частью для предоставления многопроцессорную синхронизацию, связывает и прерывает распределение и координацию. Ядро также отвечает за инициализацию устройств драйвера в программе начального пуска. Драйвера режима ядра существуют в трех уровнях: высший уровень драйверов, средний и низший. Модель драйвера Windows – модель среднего уровня и была в основном изобретёна бинарной сдвоенной, а источник сравним с Windows 98 и Windows 2000.   

NT и его улучшенные версии 

     Многие  программисты возлагали на Windows NT большие надежды с его появлением. Но он не превзошел их ожидания. Эта операционная оказалась довольно таки тяжеловесной, громоздкой. Из-за этого требовался огромный на то время объем оперативной памяти в 16 Мбайт, когда в основном преобладал объем в 8 Мбайт. Следовательно, установить Windows NT могли только счастливчики, которые обладали устройствами чтения компакт-дисков. Но на то время это было очень дорогим удовольствием, и лишь малое количество пользователей имели возможность установить CD-ROM. И конечно же круг любителей и пользователей Windows NT был довольно таки мал. Остальные продолжали пользоваться устаревшим, но проверенным Windows 3.1.

      Но  все же Windows приняла решение не отказываться от своего детища и начала продуктивную работу над улучшенной операционной системой.  После выпуска нескольких выпущенных версий разработчики поняли. что без привлечения других независимых разработчиков различного программного обеспечения не обойтись.

      Windows 95  

     Итак, в 1995 на свет появилась новая операционная система Chicago, а точнее Windows 95. Основной особенностью этой системы стало то, что ее интерфейс был очень похож на интерфейс системы Windows NT. Вся стратегия, использованная для создания Windows 95, получила своё – количество 32-битовых программ увеличивалось с невероятной скоростью. Но многие вскоре снова обратились к Windows NT. Ведь все же данная операционная система способна на поддержание работы одновременно с несколькими процессами, в то время как Windows 95 к сожалению имеет в использовании только один процессор.

     Низший  уровень этой операционной системы сформирован из огромного количества виртуальных устройств. Эти устройства отвечают за управление такими физическими устройствами, как видеокарта и сетевая карта, за копирование  виртуальные устройства, используемые виртуальными машинами или за предоставление различных  системных служб. Вот три наиболее важные виртуальные устройства: виртуальный машинный менеджер, менеджер конфигурации  и подсистема ввода/вывода.

     Виртуальный машинный менеджер считается ядром  Windows 95 и в ответе за такие задачи, как управление памятью, событием или  управление прерыванием, загрузка и инициализация всех других виртуальных устройств, создание новых виртуальных машин, а также распределение сетей.

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

           Подсистема ввода/вывода же координирует доступ к различным  файловым системам.  

      Windows 98 

     Вскоре  вслед за линейкой  операционных систем Windows 95 была выпущена новая - Windows 98. Самым существенным отличием данной операционной системы от предыдущей стало наличие средств связи с Internet, которые были встроенными.

     В Windows 95/98 работа с потоками доступна только 32-разрядным процессорам. Старые версии Windows не могут работать с функциями, которые отвечают за потоки. Любой 32-разрядный драйвер устройства имеет возможность создавать дополнительные потоки, а Windows 95/98 в отличии от предыдущих версий может организовывать диспетчеризацию всех потоков в соответствии с алгоритмами вытеснения, что представляет собой еще одна способность многозадачности Windows. Несмотря на то, что все эти потоки могут представлять совершенно различные виды программ, все же в самой системе все они показаны в виде одинаковых структур данных.

Информация о работе Многозадачность Windows от NT до Vista