Меню

Что называют ошибкой отсутствия страницы

From Wikipedia, the free encyclopedia

In computing, a page fault (sometimes called PF or hard fault)[a] is an exception that the memory management unit (MMU) raises when a process accesses a memory page without proper preparations. Accessing the page requires a mapping to be added to the process’s virtual address space. Besides, the actual page contents may need to be loaded from a backing store, such as a disk. The MMU detects the page fault, but the operating system’s kernel handles the exception by making the required page accessible in the physical memory or denying an illegal memory access.

Valid page faults are common and necessary to increase the amount of memory available to programs in any operating system that uses virtual memory, such as Windows, macOS, and the Linux kernel.[1]

Types[edit]

Minor[edit]

If the page is loaded in memory at the time the fault is generated, but is not marked in the memory management unit as being loaded in memory, then it is called a minor or soft page fault. The page fault handler in the operating system merely needs to make the entry for that page in the memory management unit point to the page in memory and indicate that the page is loaded in memory; it does not need to read the page into memory. This could happen if the memory is shared by different programs and the page is already brought into memory for other programs.

The page could also have been removed from the working set of a process, but not yet written to disk or erased, such as in operating systems that use Secondary Page Caching. For example, HP OpenVMS may remove a page that does not need to be written to disk (if it has remained unchanged since it was last read from disk, for example) and place it on a Free Page List if the working set is deemed too large. However, the page contents are not overwritten until the page is assigned elsewhere, meaning it is still available if it is referenced by the original process before being allocated. Since these faults do not involve disk latency, they are faster and less expensive than major page faults.

Major[edit]

This is the mechanism used by an operating system to increase the amount of program memory available on demand. The operating system delays loading parts of the program from disk until the program attempts to use it and the page fault is generated. If the page is not loaded in memory at the time of the fault, then it is called a major or hard page fault. The page fault handler in the OS needs to find a free location: either a free page in memory, or a non-free page in memory. This latter might be used by another process, in which case the OS needs to write out the data in that page (if it has not been written out since it was last modified) and mark that page as not being loaded in memory in its process page table. Once the space has been made available, the OS can read the data for the new page into memory, add an entry to its location in the memory management unit, and indicate that the page is loaded. Thus major faults are more expensive than minor faults and add storage access latency to the interrupted program’s execution.

Invalid[edit]

If a page fault occurs for a reference to an address that is not part of the virtual address space, meaning there cannot be a page in memory corresponding to it, then it is called an invalid page fault. The page fault handler in the operating system will then generally pass a segmentation fault to the offending process, indicating that the access was invalid; this usually results in abnormal termination of the code that made the invalid reference. A null pointer is usually represented as a pointer to address 0 in the address space; many operating systems set up the MMU to indicate that the page that contains that address is not in memory, and do not include that page in the virtual address space, so that attempts to read or write the memory referenced by a null pointer get an invalid page fault.

Invalid conditions[edit]

Illegal accesses and invalid page faults can result in a segmentation fault or bus error, resulting in an app or OS crash. Software bugs are often the causes of these problems, but hardware memory errors, such as those caused by overclocking, may corrupt pointers and cause healthy codes to fail.

Operating systems provide differing mechanisms for reporting page fault errors. Microsoft Windows uses structured exception handling to report invalid page faults as access violation exceptions. UNIX-like systems typically use signals, such as SIGSEGV, to report these error conditions to programs. If the program receiving the error does not handle it, the operating system performs a default action, typically involving the termination of the running process that caused the error condition, and notifying the user that the program has malfunctioned. Windows often reports such crashes without going to any details. An experienced user can retrieve detailed information using WinDbg and the minidump that Windows creates during the crash. UNIX-like operating systems report these conditions with such error messages as «segmentation violation» or «bus error», and may produce a core dump.

Performance impact[edit]

Page faults degrade system performance and can cause thrashing. Major page faults on conventional computers using hard disk drives can have a significant impact on their performance, as an average hard disk drive has an average rotational latency of 3 ms, a seek time of 5 ms, and a transfer time of 0.05 ms/page. Therefore, the total time for paging is near 8 ms (= 8,000 μs). If the memory access time is 0.2 μs, then the page fault would make the operation about 40,000 times slower.

Performance optimization of programs or operating systems often involves reducing the number of page faults. Two primary focuses of the optimization are reducing overall memory usage and improving memory locality. To reduce the page faults, developers must use an appropriate page replacement algorithm that maximizes the page hits. Many have been proposed, such as implementing heuristic algorithms to reduce the incidence of page faults.

A larger physical memory also reduces page faults.

See also[edit]

  • Bélády’s anomaly

Notes[edit]

  1. ^ Microsoft uses the term «hard fault» in some versions of its Resource Monitor, e.g., in Windows Vista (as used in the Resource View Help in Microsoft operating systems).

References[edit]

  1. ^ Bovet, Daniel; Cesati, Marco (November 2005). Understanding the Linux Kernel (PDF) (3rd ed.). O’Reilly Media. ISBN 0-596-00565-2. Retrieved 9 October 2021.
  • John L. Hennessy, David A. Patterson, Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)
  • Tanenbaum, Andrew S. Operating Systems: Design and Implementation (Second Edition). New Jersey: Prentice-Hall 1997.
  • Intel Architecture Software Developer’s Manual–Volume 3: System Programming

External links[edit]

  • «So What Is A Page Fault?(subscription required)» from OSR Online (a Windows-specific explanation)
  • «Virtual Memory Details» from the Red Hat website.
  • «UnhandledExceptionFilter (Windows)» from MSDN Online.
  • «Page fault overhead» for information about how page faults can crucially affect processing time.

From Wikipedia, the free encyclopedia

In computing, a page fault (sometimes called PF or hard fault)[a] is an exception that the memory management unit (MMU) raises when a process accesses a memory page without proper preparations. Accessing the page requires a mapping to be added to the process’s virtual address space. Besides, the actual page contents may need to be loaded from a backing store, such as a disk. The MMU detects the page fault, but the operating system’s kernel handles the exception by making the required page accessible in the physical memory or denying an illegal memory access.

Valid page faults are common and necessary to increase the amount of memory available to programs in any operating system that uses virtual memory, such as Windows, macOS, and the Linux kernel.[1]

Types[edit]

Minor[edit]

If the page is loaded in memory at the time the fault is generated, but is not marked in the memory management unit as being loaded in memory, then it is called a minor or soft page fault. The page fault handler in the operating system merely needs to make the entry for that page in the memory management unit point to the page in memory and indicate that the page is loaded in memory; it does not need to read the page into memory. This could happen if the memory is shared by different programs and the page is already brought into memory for other programs.

The page could also have been removed from the working set of a process, but not yet written to disk or erased, such as in operating systems that use Secondary Page Caching. For example, HP OpenVMS may remove a page that does not need to be written to disk (if it has remained unchanged since it was last read from disk, for example) and place it on a Free Page List if the working set is deemed too large. However, the page contents are not overwritten until the page is assigned elsewhere, meaning it is still available if it is referenced by the original process before being allocated. Since these faults do not involve disk latency, they are faster and less expensive than major page faults.

Major[edit]

This is the mechanism used by an operating system to increase the amount of program memory available on demand. The operating system delays loading parts of the program from disk until the program attempts to use it and the page fault is generated. If the page is not loaded in memory at the time of the fault, then it is called a major or hard page fault. The page fault handler in the OS needs to find a free location: either a free page in memory, or a non-free page in memory. This latter might be used by another process, in which case the OS needs to write out the data in that page (if it has not been written out since it was last modified) and mark that page as not being loaded in memory in its process page table. Once the space has been made available, the OS can read the data for the new page into memory, add an entry to its location in the memory management unit, and indicate that the page is loaded. Thus major faults are more expensive than minor faults and add storage access latency to the interrupted program’s execution.

Invalid[edit]

If a page fault occurs for a reference to an address that is not part of the virtual address space, meaning there cannot be a page in memory corresponding to it, then it is called an invalid page fault. The page fault handler in the operating system will then generally pass a segmentation fault to the offending process, indicating that the access was invalid; this usually results in abnormal termination of the code that made the invalid reference. A null pointer is usually represented as a pointer to address 0 in the address space; many operating systems set up the MMU to indicate that the page that contains that address is not in memory, and do not include that page in the virtual address space, so that attempts to read or write the memory referenced by a null pointer get an invalid page fault.

Invalid conditions[edit]

Illegal accesses and invalid page faults can result in a segmentation fault or bus error, resulting in an app or OS crash. Software bugs are often the causes of these problems, but hardware memory errors, such as those caused by overclocking, may corrupt pointers and cause healthy codes to fail.

Operating systems provide differing mechanisms for reporting page fault errors. Microsoft Windows uses structured exception handling to report invalid page faults as access violation exceptions. UNIX-like systems typically use signals, such as SIGSEGV, to report these error conditions to programs. If the program receiving the error does not handle it, the operating system performs a default action, typically involving the termination of the running process that caused the error condition, and notifying the user that the program has malfunctioned. Windows often reports such crashes without going to any details. An experienced user can retrieve detailed information using WinDbg and the minidump that Windows creates during the crash. UNIX-like operating systems report these conditions with such error messages as «segmentation violation» or «bus error», and may produce a core dump.

Performance impact[edit]

Page faults degrade system performance and can cause thrashing. Major page faults on conventional computers using hard disk drives can have a significant impact on their performance, as an average hard disk drive has an average rotational latency of 3 ms, a seek time of 5 ms, and a transfer time of 0.05 ms/page. Therefore, the total time for paging is near 8 ms (= 8,000 μs). If the memory access time is 0.2 μs, then the page fault would make the operation about 40,000 times slower.

Performance optimization of programs or operating systems often involves reducing the number of page faults. Two primary focuses of the optimization are reducing overall memory usage and improving memory locality. To reduce the page faults, developers must use an appropriate page replacement algorithm that maximizes the page hits. Many have been proposed, such as implementing heuristic algorithms to reduce the incidence of page faults.

A larger physical memory also reduces page faults.

See also[edit]

  • Bélády’s anomaly

Notes[edit]

  1. ^ Microsoft uses the term «hard fault» in some versions of its Resource Monitor, e.g., in Windows Vista (as used in the Resource View Help in Microsoft operating systems).

References[edit]

  1. ^ Bovet, Daniel; Cesati, Marco (November 2005). Understanding the Linux Kernel (PDF) (3rd ed.). O’Reilly Media. ISBN 0-596-00565-2. Retrieved 9 October 2021.
  • John L. Hennessy, David A. Patterson, Computer Architecture, A Quantitative Approach (ISBN 1-55860-724-2)
  • Tanenbaum, Andrew S. Operating Systems: Design and Implementation (Second Edition). New Jersey: Prentice-Hall 1997.
  • Intel Architecture Software Developer’s Manual–Volume 3: System Programming

External links[edit]

  • «So What Is A Page Fault?(subscription required)» from OSR Online (a Windows-specific explanation)
  • «Virtual Memory Details» from the Red Hat website.
  • «UnhandledExceptionFilter (Windows)» from MSDN Online.
  • «Page fault overhead» for information about how page faults can crucially affect processing time.

Ошибки отсутствия страниц в памяти Windows 7

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

В теории данные ошибки должны возникать при использовании файла подкачки, НО у меня он был отключен совсем.

И так как я перфекционист, решил попробовать выяснить в чем дело:

1. Прогнал мемтестом в досе, ошибок нет.
2. Сбросил разгон памяти.
3. Установил размер файла подкачки 1гб.

Но ничего не помогло, ошибки так и возникают при загрузке приложения в память, никакими притормаживаниями это не проявляется, системных ошибок нет, но все же интересно почему так?

Datalife Engine Demo

Вопрос первый: в каких случаях есть необходимость проверить оперативную память компьютера на ошибки?

Один из главных признаков необходимости проверки оперативной памяти на ошибки когда компьютер зачастил вылетать в BSOD (так называемый “синий экран смерти”). Если при этом на “синем экране смерти” вы прочтете код ошибки 0×00000050, это первый признак того что необходимо провести проверку оперативной памяти. Или же если выскакивает синий экран на котором ничего особенно не успеваешь прочитать, так как почти после него в течении 3-4 секунд идёт перезагрузка компьютера.

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

Вопрос второй: с помощью каких средств можно выполнить проверку оперативной памяти?

Проверка оперативной памяти средствами Windows 7

Если на компьютере предустановлена Windows 7, то для диагностики оперативной памяти можно обойтись штатной утилитой для тестирования.

Чтобы найти предложенную утилиту можно воспользоваться одним из двух способов. Во первых можно нажав “Пуск” – В поле поиск написать resmon.exe, и нажать Enter. После того как будет запущен мониторинг ресурсов, переходим на вкладку память. Тут стоит обратить внимание на третий мониторчик (с правой стороны) под названием «Ошибок отсутствия страницы в памяти/сек.», если на этом мониторчике наблюдается много ошибок, значит физической памяти нахватает физически, либо память работает не корректно. В любом случае необходимо проверить оперативную память.

Для запуска теста памяти с помощью средств Windows 7, выполните следующую последовательность: Кликнуть кнопку Пуск – Панель Управления – Система и Безопасность – Администрирование и выбрать “Средство проверки памяти Windows”. (см рисунок)

Нажимаем “Выполнить перезагрузку и проверку (рекомендуется)”, при этом компьютер отправиться в перезагрузку, и запустит проверку памяти. Если с памятью по мнению утилиты всё благополучно на экране будет надпись как показано на первой или второй картинке, если же найдены какие то проблем то как на пятой.

И в этом случае по завершении тестирования и возврате в Windows выскочит окно:

Если у вашей операционной системы Windows 7синий экран смерти” выскакивает при загрузке, то вы можете запустить утилиту тестирования памяти до загрузки Windows 7. Для этого сразу же после нажатия кнопки питания компьютера, нажать на клавиатуре клавишу TAB для того, чтобы попасть в Диспетчер загрузки Windows. В открывшемся меню выбираем “Диагностика памяти” и нажимаем Enter.

По окончании тестирования операционная система будет перезагружена.

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

Универсальная диагностика оперативной памяти.

Есть еще одна утилита для проверки оперативной памяти. Эта утилита так же как и способ е1ё применения относится к универсальному способу проверки оперативной памяти, утилита называется Memtest86, требует установки ISO образа на CD диск или USB Flash. А универсальной её называют так как она подходит для компьютеров под любой операционной системой

Для того чтобы установить Memtest86 на CD, скачиваем Memtest86 iso. Записываем образ на CD диск или диск USB Flash. После того как образ Memtest86 будет записан на CD или USB Flash-диск, запустите загрузку вашего компьютера с записанного носителя.

Проверка памяти начинается автоматически, сразу после загрузки Memtest86, и будет работать циклично то есть, тест не будет останавливаться. Шкала (в процентах) выполнения выполнения теста, находиться в правом верхнем углу программы. При необходимости тест можно остановить клавишей Esc. Для точности теста желательно что бы проверка проводилась на протяжении 15-40 минут. Если утилита найдёт ошибки памяти она их подсветит красным цветом. См последний рисунок.

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

Ну и третий способ проверки оперативной памяти, а так же метод проверки результатов предыдущих тестов это замена подозреваемой планки оперативной памяти на заведомо исправную!

Твой Сетевичок

Все о локальных сетях и сетевом оборудовании

Проверка оперативной памяти на ошибки в windows 7

Проблемы с «железом» возникают всегда неожиданно и способны существенно подпортить нервы и настроение. Однако «врага нужно знать в лицо», и способность самостоятельно устранять любые проблемы с компьютером поможет вам сэкономить время и деньги.

И в рамках данной статьи мы рассмотрим, как проверить оперативную память на ошибки в windows 7.

Признаки неисправности оперативной памяти

1. При работе на компьютере появляются ошибки BDOS (Blue Screen of Death), что в переводе означает «синий экран смерти». Самыми частыми ошибками при неисправности являются:

  • 0x00000085 – сбой оперативной памяти при установке программного обеспечения;
  • 0x0000007F (0x00000008;…) – аппаратный сбой оперативной памяти в процессе обмена информации между ЦП и ОЗУ;
  • 0x0000004E – файл подкачки не отвечает, либо обмен данными между HDD и ОЗУ невозможен.

2. Подвисание в играх или в фильмах на 10-15 секунд. Этого невозможно не заметить.

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

Проверка оперативной памяти на наличие неисправностей

После долгих лет мучений пользователей ОС Windows XP компания Microsoft наконец-то одумались и встроила в ОС Windows 7 утилиту для тестирования оперативной памяти с недвусмысленным названием «средство проверки памяти Windows».

В этой статье я постараюсь научить Вас пользоваться данным приложением.

Для начала нужно зайти в меню Пуск и в поисковой строке (где написано «Найти программы и файлы») набрать «Средство проверки памяти Windows».

Так же можно ввести слово «mdsched» (без кавычек), именно так называется данная служба в подкаталоге Windows:

После обнаружения данной программы запускаем ее от имени администратора:

Сохраняем все данные и закрываем все открытые приложения кроме данной программы.

В программе Mdsched нам предоставляется 2 выбора действия.

  • Первый – это выполнить проверку оперативной памяти немедленно.
  • Второй – это внесение проверки оперативной памяти в расписание. Это означает, что проверка начнется только при следующей загрузке Windows.

Я хочу все здесь и сейчас, поэтому мой выбор пал на первую стоку. После чего компьютер перезагрузится, и начнет проверку:

Примечание: В случае если программа не выявила ошибок памяти, но Вы все еще имеете сомнения в ее работоспособности можно выбрать другие режимы проверки нажатием кнопки F1 при запуске программы.

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

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

Результаты проверки оперативной памяти можно будет посмотреть в журнале просмотра событий Windows.

Для этого заходим в меню Пуск, набираем в поисковой строке «Просмотр событий» и открываем журнал Система в подкаталоге журналы Windows.

Тут сортируем события по дате и выбираем источник «Microsoft-Windows-MemoryDiagnostics-Results», как показано на рисунке.

Как исправить ошибки оперативной памяти?

1. Если у Вас стоит несколько планок оперативной памяти, попробуйте проверить их по очереди. То есть извлеките все и вставляйте по одной, постепенно проверяя каждую из них пока не выявите битую.

2. Вытащите оперативную память и проверьте, не перегревается ли какая из них по сравнению с остальными. Одной из причин выхода из строя оперативной памяти – это сильный нагрев микросхем.

3. Извлеките оперативную память и протрите контакты ластиком (стирательной резинкой). Из-за окисления контактов происходят сбои в работе оперативной памяти.

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

Предотвращение проблем нехватки памяти. Изменение размера файла подкачки

Содержание

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

Признаки нехватки памяти

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

Причины нехватки памяти

В компьютере имеется два типа памяти: ОЗУ и виртуальная память. Все программы используют ОЗУ, но когда запускаемой программе не хватает оперативной памяти, ОС Windows временно помещает данные, которые обычно хранятся в ОЗУ, в файл на жестком диске, который называется файлом подкачки. Объем данных, которые временно хранятся в файле подкачки, также называют виртуальной памятью. Использование виртуальной памяти (другими словами, перемещение данных в файл подкачки и из него) освобождает объем оперативной памяти, достаточный для надлежащей работы программ.

Проблемы нехватки памяти возникают в случае недостаточного объема оперативной памяти и нехватки виртуальной памяти. Подобная ситуация может наблюдаться, если на компьютере запущено больше программ, чем поддерживается установленным ОЗУ. Кроме того, проблемы могут также возникать, если программа не освобождает память, которая ей больше не нужна. Такая ситуация называется чрезмерным использованием памяти или утечкой памяти.

Способы предотвращения проблем нехватки памяти

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

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

    Увеличьте объем файла подкачки (виртуальной памяти) Когда в компьютере впервые возникает проблема нехватки памяти Windows пытается автоматически увеличить файл подкачки. Пользователь также может вручную установить максимальный размер этого файла в зависимости от объема установленного ОЗУ. Увеличение размера файла подкачки позволяет предотвратить проблемы нехватки памяти, но также может привести и к замедленной работе приложений. Поскольку из ОЗУ информация считывается намного быстрее, чем с жесткого диска (на котором расположен файл подкачки), слишком большой объем виртуальной памяти может привести к снижению быстродействия программ. Для изменения размера файла подкачки жмем Win + Pause/Break или ПускПанель управленияСистема и выбираем Дополнительные параметры системы.

В свойствах системы выбираем Дополнительно — Быстродействие — Параметры.

В Параметрах быстродействия выбираем Дополнительно — Виртуальная память — Изменить

В свойствах Виртуальной памяти по умолчанию включен режим «Автоматически выбирать объем файл подкачки«. Снимаем галку и задаем размер файла подкачки.

Если стоит два жестких диска в системе., то файл подкачки можно вообще перенести на второй физический диск, что так же повлияет на производительность компьютера. Для установки размера файла подкачки, рекомендуется определять объем равный 1,5 от объема оперативной памяти, установленной в компьютере (для повседневных задач) Для игр рекомендуется установить 2 — 2,5.

  • Установите дополнительный модуль ОЗУ. При появлении признаков нехватки памяти или предупреждений ОС Windows о данной проблеме обратитесь к документации к компьютеру или к его изготовителю и выясните, какой тип ОЗУ совместим с компьютером, а затем установите дополнительный модуль оперативной памяти. Перед установкой ОЗУ ознакомьтесь с документацией изготовителя.
  • Проверьте, не использует ли программа слишком много памяти. Если во время работы определенных программ в компьютере наблюдается нехватка памяти, возможно, в одной или нескольких программах имеет место утечка памяти. Чтобы остановить утечку памяти, необходимо завершить работу соответствующей программы. Для решения проблемы утечек памяти установите обновления для программы (при наличии таковых) или обратитесь к издателю программного обеспечения.
  • Чтобы определить, какая из программ использует больше всего памяти, выполните следующие действия

    1. Откройте диспетчер задач. Для этого щелкните правой кнопкой мыши панель задач и выберите пункт Диспетчер задач.
    2. Откройте вкладку Процессы
    3. Чтобы отсортировать программы по используемой памяти, щелкните Память (Частный рабочий набор)

    Для просмотра ошибок программ и сведений по их устранению также можно воспользоваться средством просмотра событий

    1. Откройте раздел «Просмотр событий». Для этого нажмите кнопку Пуск — Панель управления — Администрирование, затем дважды щелкните Просмотр событий.‌ При появлении запроса пароля администратора или подтверждения введите пароль или предоставьте подтверждение.
    2. В левой панели выберите Журналы приложений и служб для просмотра ошибок. Чтобы просмотреть описание проблемы, щелкните ее дважды. Если есть ссылка на электронную справку, значит можно просмотреть сведения по устранению проблемы.

    Проверка памяти средствами Windows

    Если ОС Windows обнаруживает возможные проблемы, связанные с памятью компьютера, то отображается приглашение на запуск средства диагностики памяти. Предусмотрены два варианта запуска средства диагностики памяти

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

    Запустить Средство проверки памяти Windows можно и вручную. Есть два способа это сделать:

    1. Пуск — Панель управления — Администрирование — Средство проверки памяти Windows
    2. Пуск — Выполнить и ввести mdsched жмем ОК.

    Когда выбрали «Выполнить перезагрузку и проверку», после перезагрузки, при запуске Средства диагностики памяти нажмите клавишу F1. Для опытных пользователей предоставляются дополнительные параметры диагностики:

    1. Набор тестов
      • простой
      • стандартный
      • расширенный
    2. Кэш
      • По умолчанию
      • Вкл или Выкл
    3. Количество проходов

    Для запуска теста нажмите клавишу F10. Необходимо учитывать, чем сложней тест, тем дольше идет проверка. После проверки и загрузки системы в трее появится значок «Средство проверки памяти Windows».

    Просмотреть «Журнал проблем и стабильности работы компьютера»:

    Открываем Центр поддержки Обслуживание — Показать журнал стабильности работы.

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

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

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

    Покритикуйте рекомендации внешней конторы по улучшению быстродействия

    Стоит ут 11, сервер hp gen8, windows server. Высланы следующие рекомендации. Покритикуйте их, ну или скажите, что все правильно пишут.

    Рекомендации по настройке сервера 1с

    Наблюдение за работой кластера серверов 1с показало не оптимальное использование оперативной памяти. Значение показателя ошибок отсутствия страницы в памяти/сек. достигает свыше 200 для процесса менеджера кластера. Это означает что главный процесс менеджера кластера постоянно обращается к файлу подкачки на диске. При этом свободной оперативной памяти от 19 до 25 Гб.

    Также наблюдается большое количество рабочих процессов сервера 1с обслуживающих клиентские подключения. Это в свою очередь нагружает работу менеджера кластера, который не справляется с потоками обращений.

    Для оптимизации работы кластера и использования оперативной памяти предлагаю следующие рекомендации:

    1. Установить фиксированный размер файла подкачки в половину объема физической памяти. Это позволит сократить использование файла подкачки при распределении оперативной памяти и больше рабочих наборов хранить в физической памяти. Данное изменение не критично для работы операционной системы.

    2. Сократить количество рабочих процессов сервера 1с до 6-и. Это позволит оптимизировать нагрузку на менеджер кластера. В настройка сервера кластера параметры использования памяти сбросить по умолчанию до 0 (максимальный объем памяти рабочих процессов; безопасный расход памяти за один вызов; объем памяти рабочих процессов, до которого сервер считается производительным). Это уменьшит вероятность создание новых рабочих процессов сервера. Данные изменения не критичны и могут быть исправлены в оперативном режиме.

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

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

    1. Лабораторная работа № 12.Управление памятью в Windows

    Распределение
    памяти в Windows9xи вWindowsNT.
    Монитор ресурсов Windows 7. Изучение пунктов
    и вкладок, связанных с памятью.
    Использование монитора ресурсов Windows
    7 для наблюдения за распределением
    памяти. Увеличение объема файла подкачки
    (виртуальной памяти). Проверка памяти
    средствами Windows.

    3.1. Распределение памяти в
    Windows 9x

    ОС Windows 9x — это 32-разрядные
    многопотоковые ОС с вытесняющей
    многозадачностью и графическим
    пользовательским интерфейсом. Для своей
    загрузки они используют MS-DOS 7.0, которая
    обеспечивает два режима работы процессора
    – реальный (в файле MSDOS.SYS в секции
    [options] прописано BootGUI=0) и защищённый
    (BootGUI=1). Защищённый режим устанавливается
    непосредственно перед загрузкой Windows
    9x, в результате чего процессор начинает
    управлять памятью с использованием
    страничного механизма преобразования
    виртуальных адресов в физические.
    Область виртуального адресного
    пространства состоит из 4-х килобайтных
    страниц, которые размещаются в оперативной
    памяти или на диске.

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

    Каждая прикладная 32-разрядная
    Windows-программа выполняется в своём
    адресном пространстве, однако доступ
    к нужным адресам возможен, т.е. организация
    виртуальных адресов не использует всех
    аппаратных средств защиты, заложенных
    в микропроцессор. 16-разрядные программы
    разделяют общее адресное пространство
    и также уязвимы друг перед другом. Модель
    памяти Windows 9x представлена на рис.3.1.

    Рис. 3.1. Распределения ОП в Windows
    9x

    Нижние 64 Кб ОП недоступны
    32-разрядным программам, но 16-разрядные
    программы могут записывать сюда свои
    данные. Адреса ниже 4 Мб отображаются в
    адресное пространство каждой прикладной
    программы и совместно используются
    всеми процессами. Это делает эту область
    незащищенной от случайной записи.

    Минимально необходимый объем
    памяти для функционирования Windows 9х
    составляет 4 Мб, однако практически при
    таком объеме памяти работать невозможно.
    Страничный файл, с помощью
    которого реализуется механизм виртуальной
    памяти, расположен в каталоге Windows и
    имеет переменный размер, изменяемый
    при необходимости самой системой. Его
    размеры могут быть заданы с помощью
    системных средств (Панель управления
    → Система → Быстродействие → Файловая
    система), либо заданы в секции [386Enh] файла
    SYSTEM.INI – строки с указанием диска и имени
    файла:

    PagingDrive=C:

    Pagingfive=c:PageFile.sys

    MinPagingFileSize=65536
    (64 Мб)

    MaxPagingFileSize=262144
    (256 Мб)

    Первая и вторая строки определяют
    имя файла и его размещение, а две последние
    – начальный и предельный размер
    страничного файла в Кб.

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

    3.2. Распределение памяти в
    Windows NT

    Отличия схемы распределения от
    Windows 9х сводятся к следующему:

    1) более серьезное использование
    аппаратных средств защиты памяти,
    предусмотренных в микропроцессоре;

    2) все системные программные
    модули расположены в собственных
    виртуальных адресных пространствах и
    доступ прикладных программ к ним
    невозможен.

    Распределение адресного
    пространства в Windows NT представлено на
    рис. 3.2.

    Рис. 3.2. Распределения ОП в Windows
    NT

    Прикладным программам выделяется
    2 Гб локального (собственного) линейного
    (неструктурированного) адресного
    пространства (первые 64 Кб недоступны).
    Они изолированы друг от друга и могут
    общаться друг с другом только через
    буфер обмена (clipboard), либо через механизмы
    DDE (Dynamic Data Exchange – динамический обмен
    данными) и OLE (Object Linking and Embedding – связь и
    внедрение объектов).

    В верхней части 2 Гб-й области
    размещается код системных DLL (динамически
    связанные библиотеки), выполняющих роль
    сервер-процессов. Они проверяют значения
    параметров запросов, исполняют запрошенную
    функцию и пересылают результаты назад
    в адресное пространство вызывающей
    программы.

    В интервале адресов 2-4 Гб
    располагаются системные (низкоуровневые)
    компоненты Windows (т.е. самого высокого
    уровня защиты от несанкционированного
    доступа: ядро, планировщик потоков,
    диспетчер памяти).

    Для 16-разрядных прикладных
    Windows-программ реализуются сеансы WOW
    (Windows On Windows) в режиме вытесняющей
    многозадачности индивидуально в
    собственных адресных пространствах
    или совместно в разделяемом адресном
    пространстве.

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

    Управление памятью (выделение,
    резервирование, освобождение, подкачка)
    производится диспетчером виртуальной
    памяти VMM (Virtual Memory Manager). Каждая виртуальная
    страница переносится на физическую
    страницу − страничный фрейм (page frame),
    заполненный в исходном состоянии нулями
    (это основное требование стандарта на
    системы безопасности уровня С2,
    определяющее невозможность использования
    их предыдущего содержимого другими
    процессами). Место для выгрузки страницы
    резервируется в файле подкачки
    Pagefile.sys, представляющим собой
    зарезервированный блок дискового
    пространства.

    Вся память Windows NT подразделяется
    на зарезервированную(для динамического
    использования процессами при выполнении
    задач),выделенную(для выгрузки
    которой резервируется в Pagefile.sys) идоступную(остальная часть свободной
    памяти).

      1. Виртуальная память в Windows

    Самая частая причина замедления
    работы системы под управлением Windows —
    заполнение физической памяти. При этом
    Windows начинает так называемую «подкачку»
    (paging) — перемещение блоков кода и данных
    программ (каждый такой блок называется
    страницей — page) из физической памяти на
    жесткий диск. Обращение к файлу подкачки
    время от времени — нормальное явление,
    не ухудшающее производительность
    системы, но частые запросы данных из
    файла на диске могут заметно снизить
    общую скорость работы системы. Эта
    проблема становится особенно заметной
    при переключении между несколькими
    программами, активно использующими
    память, на компьютере, который не содержит
    достаточного количества физической
    памяти. В результате диск почти постоянно
    находится в работе, потому что система
    пытается «перекачать» данные с
    него в память и обратно.

    Если общий размер выделенной
    памяти превышает общий объем физической
    памяти, Windows приходится «перекачивать»
    страницы между быстрой оперативной
    памятью и гораздо более медленной
    виртуальной памятью в файле подкачки,
    что приводит к замедлению скорости
    системы.

    В процессе установки Windows XP файл
    подкачки автоматически создается в
    корневой папке на том же диске, где
    расположены системные файлы Windows. Размер
    файла подкачки определяется, исходя из
    объема физической памяти в системе. По
    умолчанию минимальный размер файла
    подкачки в 1,5 раза больше, чем объем
    физической памяти, а максимальный размер
    — в 3 раза больше. Файл подкачки можно
    увидеть в окне Проводника, если включить
    режим отображения скрытых и системных
    файлов (рис. 3.3).

    Рис. 3.3. Включение режима отображения
    скрытых и системных файлов

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

    Для этого нужно выполнить
    следующую последовательность действий:

    1. Войдите в систему под учетной
    записью из группы Администраторы и
    откройте окно «Панель управления –
    Система».

    2. На вкладке «Дополнительно»
    нажмите кнопку «Параметры» в разделе
    «Быстродействие» (рис. 3.4).

    3. В диалоговом окне «Параметры
    быстродействия» выберите вкладку
    «Дополнительно» и нажмите кнопку
    «Изменить» (рис. 3.5) для отображения
    диалогового окна «Виртуальная память»,
    которое показано на рис. 3.6 для WindowsXPи на рис. 3.7 дляWindows7.

    Текущие параметры файла подкачки
    отражены в поле «Общий размер файла
    подкачки на всех дисках».

    4. Выберите любой диск из списка
    в верхней части диалогового окна, чтобы
    настроить параметры этого диска.

    Можно изменить перечисленные
    ниже параметры:

    — Особый размер. Укажите
    значение в полеИсходный размердля
    задания начального размера файла
    pagefile.sys на указанном диске (в мегабайтах).
    В полеМаксимальный размервведите
    число не меньшее значения в полеИсходный
    размер
    , но не превышающее 4096 Мбайт (4
    Гбайт).

    — Размер по выбору системы.Выберите этот пункт для включения
    динамического управления размером
    файла подкачки для данного диска. Этот
    вариант следует выбирать, если вы не
    хотите изменять предлагаемые Windows по
    умолчанию параметры.

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

    5. После внесения каких-либо
    изменений нажмите Задатьдля записи
    изменений.

    6. Повторите этапы 4 и 5 для прочих
    дисков (при необходимости). Нажмите ОК
    для закрытия диалогового окна после
    завершения работы с ним.

    Рис. 3.4. Кнопка «Параметры» для
    перехода к просмотру и/или

    изменению параметров виртуальной
    памяти

    Рис. 3.5. Кнопка «Изменить» для
    перехода к изменению параметров
    виртуальной памяти в WindowsXP(слева) и вWindows7

    Рис. 3.6. Окно просмотра и настройки
    размера виртуальной памяти

    в WindowsXP

    Рис. 3.7. Окно просмотра и настройки
    размера виртуальной памяти в Windows7

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

    Не пытайтесь разместить файл
    подкачки на несколько логических дисках
    одного физического диска!!!

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

    При уменьшении минимального или
    максимального размера файла подкачки
    и при создании нового файла подкачки
    на диске систему необходимо перезагрузить
    для того, чтобы изменения вступили в
    силу. Увеличение размера файла подкачки
    обычно не требует перезагрузки компьютера.

    Если у вас очень много физической
    памяти, может возникнуть соблазн вовсе
    отключить файл подкачки. Не делайте
    этого!
    !!

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

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

    Windows может динамически увеличивать
    размер файла подкачки при необходимости.
    Эта функция работает только при выборе
    пункта «Размер по выбору системы»,
    а также при задании максимального
    размера, превышающего текущий размер
    файла подкачки.

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

      1. Контроль использования памяти
        в Windows

    Самый простой способ узнать,
    сколько оперативной памяти используется
    в данный момент времени — открыть
    Диспетчер задач (Task Manager), нажав
    [Ctrl]+[Shift]+[Esc], и перейти на вкладку
    «Быстродействие» (Performance) (рис.3.8).
    Подробное описание информации вкладки
    «Быстродействие» для WindowsXPпредставлено в табл.
    3.1.

    Таблица 3.1. Расшифровка данных
    Диспетчера задач

    Вкладка «Быстродействие» для
    Windows7 имеет значимые
    нововведения по сравнению с соответствующей
    вкладкой Диспетчером задач Windows XP.

    Число в графе «Всего» (Total) раздела
    «Физическая память» (Physical Memory) указывает
    на общий объем оперативной памяти для
    данной системы. В графе «Кэшировано»
    (Cached) указано количество физической
    памяти, которая недавно использовалась
    системными ресурсами. Она остается в
    кэше на случай, если снова понадобится
    системе, но доступна для других процессов.
    В новой графе «Доступно» (Available) указывается
    количество неиспользуемой в данный
    момент физической памяти, а в графе
    «Свободно» (Free) — количество памяти,
    которая используется кэшем, но не
    содержит полезной информации.

    В разделе «Память ядра» (Kernel
    Memory) содержатся две графы — «Выгружаемая»
    (Paged) и «Невыгружаемая» (Nonpaged). В сумме
    они указывают, сколько памяти использует
    ядро. Выгружаемая — это виртуальная
    память, а невыгружаемая — физическая.

    В разделе «Система» (System) появились
    графы «Дескрипторов» (Handles) и «Потоков»
    (Threads), связанные с составными компонентами
    процессов. В графе «Дескрипторов»
    указывается количество идентификаторов
    объектов (дескрипторов), которые
    используются запущенными в данный
    момент процессами. В графе «Потоков»
    указано число подпроцессов, запущенных
    в рамках более крупных процессов. Цифра
    в графе «Процессов» (Processes), естественно,
    указывает на общее количество запущенных
    процессов, которые можно увидеть на
    вкладке «Процессы».

    В графе «Время работы» (Up Time)
    указано, сколько времени прошло с
    последнего запуска компьютера. В графе
    «Выделено» (Commit) содержится информация
    о файле подкачки. Первая цифра указывает
    на общий объем используемой в данный
    момент физической и виртуальной памяти,
    а вторая — на общий объем памяти для
    данного компьютера в принципе.

    Еще более подробную информацию
    можно получить, нажав кнопку «Монитор
    ресурсов» и выбрав вкладку «Память»
    (рис. 3.9).

    Рис. 3.9. Вкладка «Память» окна
    монитора ресурсов Windows7

    На вкладке «Память» есть таблица
    «Процессы», в которой перечислены все
    запущенные процессы, а сведения об
    используемой памяти для каждого процесса
    разбиты на несколько категорий
    (рис.3.10).

    Рис. 3.10. Таблица «Процессы»

    В колонке «Образ» указывается
    имя исполняемого файла процесса.
    Процессы, запущенные приложениями,
    узнать очень легко — например, процесс
    «Winword.exe» со всей очевидностью
    принадлежит текстовому редакторуWord.
    Процессы с именем «svchost.exe» представляют
    различные службы операционной системы.
    Название службы указывается в скобках
    рядом с именем процесса.

    В колонке «ИД процесса»
    указывается номер процесса — уникальное
    сочетание цифр, позволяющее идентифицировать
    запущенный процесс.

    В столбце «Завершено»
    указывается объем виртуальной памяти
    в килобайтах, зарезервированный системой
    для данного процесса. Сюда входит и
    используемая физическая память, и
    сохраненные в файле подкачки страницы.

    В графе «Рабочий набор»
    указывается объем физической памяти в
    килобайтах, используемой процессом в
    данный момент времени. Рабочий набор
    складывается из общей и частной памяти.

    В колонке «Общий» указан
    объем физической памяти в килобайтах,
    которую данный процесс использует
    совместно с другими. Использование
    одного сегмента памяти или страницы
    подкачки для родственных процессов
    позволяет сэкономить место в памяти.
    При этом физически сохраняется только
    одна копия страницы, которая затем
    сопоставляется с виртуальным адресным
    пространством других процессов, которые
    к ней обращаются. Например, все процессы,
    инициированные системными библиотеками
    DLL — Ntdll, Kernel32, Gdi32 и User32 — используют
    общую память.

    В столбце «Частный» указывается
    объем физической памяти в килобайтах,
    используемой исключительно данным
    процессом. Именно это значение позволяет
    определить, сколько памяти нужно тому
    или иному приложению для работы.

    В графе «Ошибок отсутствия
    страницы в памяти/сек.
    » указано среднее
    за последнюю минуту количество ошибок
    отсутствия страницы в памяти в секунду.
    Если процесс пытается использовать
    больше физической памяти, чем доступно
    в данный момент времени, система
    записывает часть данных из памяти на
    диск — в файл подкачки. Последующее
    обращение к данным, сохраненным на диск,
    и называется ошибкой отсутствия страницы
    в памяти.

    При запуске приложений и работе
    с файлами диспетчер памяти отслеживает
    объем рабочего набора для каждого
    процесса и фиксирует запросы на
    дополнительные ресурсы памяти. По мере
    увеличения рабочего набора процесса,
    диспетчер соотносит эти запросы с
    потребностями ядра и других процессов.
    Если доступного адресного пространства
    недостаточно, диспетчер уменьшает объем
    рабочего набора, сохраняя данные из
    памяти на диск.

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

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

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

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

    В таблице «Процессы» приводятся
    детальные сведения о распределении
    памяти между отдельными процессами, а
    таблица «Физическая память» дает общую
    картину использования RAM. Ее ключевой
    компонент — уникальная гистограмма,
    показанная на рис. 3.11.


    Рисунок
    3.11. Гистограмма в таблице «Физическая
    память» позволяет составить общее
    представление о распределении памяти
    в Windows 7

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

    Слева расположена секция
    «Зарезервированное оборудование»,
    обозначенная серым цветом: это память,
    выделенная на нужды подключенного
    оборудования, которую оно использует
    для взаимодействия с операционной
    системой. Зарезервированная для
    оборудования память заблокирована и
    недоступна диспетчеру памяти. Обычно
    объем памяти, выделенной оборудованию,
    составляет от 10 до 70 Мбайт, однако этот
    показатель зависит от конкретной
    конфигурации системы и в некоторых
    случаях может достигать нескольких
    сотен мегабайт.

    К компонентам, влияющим на объем
    зарезервированной памяти, относятся:

    • BIOS;

    • компоненты материнской платы
    — например, усовершенствованный
    программируемый контроллер прерываний
    ввода/вывода (APIC);

    • звуковые карты и другие
    устройства, осуществляющие ввод/вывод
    с отображением на память;

    • шина PCI Express (PCIe);

    • видеокарты;

    • различные наборы микросхем;

    • флеш-накопители.

    Секция «Используется»,
    обозначенная зеленым цветом, представляет
    количество памяти, используемой системой,
    драйверами и запущенными процессами.
    Количество используемой памяти
    рассчитывается, как значение «Всего»
    за вычетом суммы показателей «Изменено»,
    «Ожидание» и «Свободно». В свою
    очередь, значение «Всего» — это
    показатель «Установлено» за вычетом
    показателя «Зарезервированное
    оборудование
    ».

    Ошибка 404, либо Error 404 Not Found — ошибка, которая появляется, если браузеру не удалось обнаружить на сервере указанный URL.

    Страница 404.

    Сообщение об ошибке 404

    Что означает ответ 404

    Error 404 Not Found отображается по-разному: «HTTP 404 не найден», «Ошибка 404 Not Found», «404 Страница не найдена». Смысл надписи всегда остаётся тем же: страница отсутствует либо просто не работает. Not Found в переводе означает «не найдено».

    Ошибка 404 — классический код ответа по протоколу HTTP. Он свидетельствует, что связь с сервером установлена, но информации по заданному запросу нет.

    Однако если просто ввести в поисковую строку произвольный набор символов, то браузер не покажет ошибку 404 Not Found — появится сообщение, что установить соединение с конкретным сервером невозможно.

    Разберёмся в техническом формировании ответа Error 404 Not Found.

    Техническая сторона вопроса. При связи по HTTP браузер запрашивает указанный URL и ждёт цифрового ответа. То есть любой запрос пользователя направляется на сервер размещения искомого сайта. Когда браузеру удаётся связаться с сервером, он получает кодированный ответ. Если запрос корректный и страница найдена, отправляется ответ с кодом 200 OK, что соответствует благополучной загрузке. При отсутствии страницы отправляется ответ об ошибке.

    Что значит код «404». В ответе 404 первая четвёрка указывает на то, что запрос был чрезмерно длительным или в самом адресе была ошибка. Ноль предполагает синтаксическую неточность. Завершающая цифра кода отображает конкретную причину ошибки — «4» означает отсутствие данной ссылки.

    Какие ещё ошибки бывают. Ошибку 404 не нужно путать с другими ответами, которые указывают на невозможность связи с сервером. Например, ошибка 403 сообщает, что доступ к URL ограничен, а ответ «Сервер не найден» свидетельствует, что браузер не смог обнаружить место размещения сайта.

    Страница 404 от Google.

    Google на 404 странице сообщает о возможных причинах ошибки

    Причины ошибки

    Причины, по которым HTTP возвращает ответ 404 Not Found:

    • Неверный адрес. К примеру, при ручном наборе пользователь допустил опечатку в URL либо ссылка ведёт на несуществующую страницу.
    • Битая ссылка. Это нерабочий URL, который никуда не ведёт. Данный вариант иногда возникает при внутренней перелинковке. К примеру, раньше страница существовала, а потом её удалили и забыли убрать ссылку.
    • Удалённая страница. Когда пользователь попытается перейти на удалённую с сервера страницу, он также увидит ошибку 404. Ссылка для перехода может сохраниться в браузерных закладках или на сторонних ресурсах.
    • Неправильный редирект на страницу с изменённым адресом. Допустим, в процессе редизайна URL изменили, но оставили без внимания связанные ссылки.
    • Неполадки на сервере. Это самый редкий вариант.

    В большинстве ситуаций ошибка 404 отображается, когда не удаётся обнаружить нужную страницу на доступном сервере.

    Несуществующая страница на сайте.

    Причины отсутствия страницы на сайте бывают разными

    Возможные последствия для сайта

    Нужно ли считать 404 ошибку опасной для сайтов? Кажется, что нет ничего плохого в том, что пользователь не смог открыть одну веб-страницу. Однако если такая ситуация будет повторяться регулярно, это чревато оттоком аудитории. Одни пользователи решат, что сайт вовсе не существует. Другие подумают, что лучше не заходить на сайт, который работает с ошибками. Третьи будут игнорировать ресурс, на котором не смогли получить обещанную информацию.

    Поисковые системы относятся к Not Found более лояльно. Например, Google отмечает, что 404 страницы не влияют на рейтинг. Но если при индексации роботы будут находить все больше ошибочных страниц, вряд ли это приведёт к более высокому ранжированию.

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

    Как выявить ошибку

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

    Search Console Google

    Консоль поиска Google позволяет находить страницы с ошибкой 404 за несколько кликов:

    1. Войдите в учётную запись Google и перейдите в Search Console.
    2. Откройте раздел «Ошибки сканирования» → «Диагностика».
    3. Кликните на «Not Found».

    Чтобы получить список страниц с ошибками, подтвердите права на ресурс — добавьте проверочную запись TXT в записи DNS регистратора домена. Такая запись не повлияет на работу сайта. Подробнее о процедуре подтверждения, читайте в справке Google.

    Интерфейс Search Console Google.

    Для использования Search Console Google нужно подтвердить свои права на сайт

    Яндекс Вебмастер

    Сервис для вебмастеров от Яндекса поможет быстро найти все ошибки 404:

    1. Откройте Вебмастер после авторизации в Яндекс-аккаунте.
    2. Выберите «Индексирование» → «Доступные для поиска страницы» → «Исключённые страницы».
    3. В выданном списке выберите фильтр «Ошибка HTTP: 404».

    Чтобы использовать Яндекс.Вебмастер, также нужно подтвердить право владения сайтом — добавить метатег в HTML-код главной страницы.

    Главная страница Яндекс.Вебмастер.

    Для входа в Вебмастер авторизуйтесь в Яндексе

    Screaming Frog

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

    Сервис Screaming Frog.

    Инструмент SEO-паук в Screaming Frog помогает найти технические неисправности сайта

    SiteAnalyzer

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

    Страница загрузки SiteAnalyzer.

    SiteAnalyzer бесплатно найдёт неработающие URL

    Как исправить ошибку Not Found

    Выбор конкретного решения зависит от причины ошибки:

    1. Ссылка ведёт в никуда из-за неверного URL. Для решения проблемы замените ошибочную ссылку на правильный адрес, чтобы сервер отдавал код 200 OK.
    2. Битая ссылка. Подобная ситуация не редкость при внутренней перелинковке страниц. К примеру, ссылка есть, а саму страницу давно удалили. Решений два: удалить ссылку или заменить её на другую.

    Удалять и менять ссылки вручную удобно только на небольших сайтах. Исправление ошибок на крупных порталах лучше автоматизировать. Например, с помощью специальных плагинов для внутренней перелинковки (Terms Description, Dagon Design Sitemap Generator) и для автоматического формирования адресов страниц (Cyr-To-Lat).

    Чтобы ошибки 404 появлялись как можно реже, достаточно соблюдать простые рекомендации:

    • Не присваивайте сложные адреса основным разделам сайта. Это снизит число ошибок, связанных с опечатками в URL.
    • Не меняйте адреса страниц слишком часто. Это неудобно для пользователей и вводит в заблуждение поисковых роботов.
    • Размещайте сайт на надёжном сервере. Это предотвратит ошибки, возникающие из-за неработоспособности сервера.

    Мы разобрались, как найти и исправить ошибки Not Found внутри сайта. Но неработающая ссылка может быть расположена и на стороннем ресурсе. Допустим, когда-то на другом сайте разместили рекламную публикацию со ссылкой на определённую страницу. Спустя какое-то время страницу удалили. В этом случае появится ошибка 404. Устранить её можно, связавшись с администрацией ссылающегося сайта. Если же удалить/исправить ссылку нельзя, постарайтесь использовать ошибку с выгодой.

    Как сделать страницу 404 полезной

    Грамотно оформленная страница с ошибкой Error 404 Not Found — действенный инструмент конвертации посетителей. Ограничений по использованию страницы с ошибкой 404 нет. При этом практически все CMS позволяют настраивать дизайн этой страницы.

    Что публиковать на странице 404:

    • меню с кликабельными ссылками;
    • ссылку на главную страницу;
    • анонс последних публикаций;
    • контакты для обратной связи.

    При оформлении страницы-ошибки желательно опираться на рекомендации поисковиков:

    • Яндекс настоятельно рекомендует, чтобы страница контрастировала с основным содержанием сайта — иные цвета, другие графические приёмы либо их отсутствие. Необходимо чётко и понятно объяснить пользователю, что запрошенной страницы не существует и предложить другое решение.
    • Google советует придерживаться единого стиля оформления. Но также рекомендует понятно рассказать об ошибке и предложить полезные материалы.

    Главное — по возможности отказаться от стандартной страницы 404. Подумайте, как привлечь внимание пользователя. Расскажите ему об отсутствии искомой страницы и предложите взамен что-то полезное или интересное.

    Примеры оформления страниц 404

    Designzillas

    Мультяшная страница креативной студии привлекает внимание и её хочется досмотреть до конца. Если прокрутить страницу, можно увидеть, как из яйца вылупится дракон. При этом на странице есть ссылки на все основные разделы сайта.

    404 страница на сайте Designzillas

    Меню на сайте Designzillas есть и на 404 странице

    Domenart Studio

    Веб-студия «Домен АРТ» использует красочную страницу 404, оформленную в единой стилистике ресурса. Заблудившимся пользователям предлагают попробовать ещё раз ввести адрес или перейти в нужный раздел.

    Страница 404 Domenart Studio.

    Контакты, поиск, меню — и всё это на 404 странице Domenart Studio

    E-co

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

    Ошибка 404 «Эко Пауэр»

    Ошибка 404 «Эко Пауэр» выглядит как страница входа

    Дом со всем

    Компания «Дом со всем», занимающаяся бурением скважин, разместила на странице 404 свои контакты и перечень услуг. Со страницы можно перейти в любой раздел сайта или заказать обратный звонок. С таким наполнением посетителю не нужно искать дополнительную информацию где-то ещё.

    Страница 404 «Дом со всем».

    Компания «Дом со всем» предлагает заказать обратный звонок

    Kualo

    Страница 404 на веб-хостинге Kualo может заставить пользователя забыть, зачем он сюда пришёл. Увлекательная игра притягивает внимание. В конце игры посетителю предлагают посмотреть сайт хостинга.

    Cтраница 404 Kualo

    На странице Kualo можно просто поиграть и заработать скидки

    Рано или поздно с ошибкой 404 сталкивается большинство сайтов. При регулярной проверке можно своевременно исправить неработающие ссылки, чтобы в ответ пользователи получали код 200 OK. Но для крупного ресурса лучше настроить оригинальную страницу, которая будет отображаться при появлении ошибки Not Found и подскажет посетителям, что делать дальше.

    Главные мысли

    Ошибка 404 это

    Многие вычислительные
    системы имеют в своем составе тот или
    иной вариант диспетчера памяти (другое
    название — устройство управления памятью
    — УУП), с помощью которого многозадачная
    операционная система выделяет память
    каждой задаче и обеспечивает защиту от
    программ пользователей. Например,
    типичная проблема возникает в том
    случае, когда прикладная программа
    делает ошибку при вычислении адреса,
    возможно используя слишком большое или
    слишком маленькое значение индекса.
    Если в системе нет защиты, такого рода
    ошибка может привести к изменению кодов,
    входящих в программы операционной
    системы, или к модификации таблиц
    устройств и даже вызвать незапланированный
    запуск устройства с фатальными
    последствиями, такими как несанкционированная
    запись в фалл с данными.

    Помимо защиты
    операционной системы от неумышленного
    разрушения диспетчер памяти обеспечивает
    автоматическое перемещение программы.
    С помощью диспетчера памяти логические
    или программные адреса программ
    пользователей преобразуются в физические,
    или аппаратные адреса. Эти адреса могут
    располагаться в памяти совершенно не
    там, куда указывают логические адреса.
    Преобразование адресов приводит к
    полному выводу операционной системы и
    защищенных устройств ввода-вывода из
    адресного пространства пользователя.
    Любая попытка чтения или записи в память
    вне пространства адресов, отведенных
    пользователю, заставляет процессор
    аварийно завершить программу пользователя.

    Информация обычно
    передается порциями, состоящими из
    фиксированного числа битов; МП 80386
    использует порции размером 32 бит, если
    только он не получил указаний об
    уменьшении размеров порции до 16 бит.
    Эти порции носят названия слов. Процесс
    записи слова в запоминающую систему
    называется записью в память,
    процесс
    получения слова из памяти —чтением
    из памяти.

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

    Каким бы совершенным
    ни было ЗУ, при прохождении сигнала
    между устройствами возникают задержки
    в его распространении. Задержка
    распространения определяется как время,
    требуемое для прохождения логического
    сигнала через устройство или
    последовательность устройств, образующих
    логическую цепочку. Эта задержка также
    учитывает прохождение сигнала по всем
    соединительным линиям между микросхемами.

    Прямой доступ к
    памяти (ПДП)

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

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

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

    Интерфейс ввода-вывода
    пересылает данные непосредственно в
    память с помощью специального регистра.
    Когда возникает необходимость в передаче
    данных, интерфейс запрашивает у процессора
    цикл памяти. Получив подтверждение,
    интерфейс пересылает данные непосредственно
    в память, в то время как процессор
    останавливается на один цикл памяти.
    Логика, выполняющая эту пересылку,
    называется каналом.

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

    Компоненты ПДП
    .
    Основными компонентами ПДП являются
    триггер запроса, регистр адреса, счетчик
    и регистр данных, который используется
    периферийным устройством. Пересылка
    данных по каналу ПДП включает несколько
    этапов: 1) инициализация логики ПДП для
    выполнения ПДП в течение повторяющихся
    циклов занятия магистрали; 2) асинхронная
    по отношению к операциям программы
    активизация ПДП; 3) оповещение об окончании
    пересылок (по сигналу от счетчика или
    в результате изменении состояния
    устройства); 4) вызов программы «очистки»
    при окончании пересылок; 5) завершение
    ПДП с помощью программы обработки
    прерываний, которая возвращает управление
    в основную программу.

    Блочная пересылка
    данных
    . Процедура ПДП для высокоскоростных
    устройств использует пересылку данных
    блоками. Выполняя текущую программу,
    процессор инициирует пересылку блока
    данных и определяет число слов,
    составляющих блок. Однако фактическая
    передача слов выполняется под управлением
    отдельного устройства — контроллера
    ПДП. Максимальная скорость блочной
    передачи по каналу ПДП ограничивается
    только длительностью цикла памяти
    (чтения или записи) и скоростью работы
    контроллера ПДП.

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

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

    В своей прошлой статье « » я рассказал о возможностях Монитора ресурсов Windows 7 (Resource Monitor), объяснил, как с его помощью наблюдать за распределением системных ресурсов между процессами и службами, а также упомянул, что его можно использовать для решения конкретных задач — например, для анализа расходования памяти. Именно об этом и пойдет речь в данной статье.

    Немного о памяти

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

    Диспетчер памяти Windows 7 создает виртуальную систему памяти, которая состоит из доступной физической RAM и файла подкачки на жестком диске. Это позволяет операционной системе выделять блоки памяти фиксированной длины (страницы) с последовательными адресами в физической и виртуальной памяти.

    Запуск Монитора ресурсов Windows 7

    Чтобы запустить Монитор ресурсов Windows 7, откройте меню «Пуск» (Start), введите в строке поиска «Resmon.exe» и нажмите . В открывшемся окне выберите вкладку «Память» (Memory, рис. A).

    Рисунок A. На вкладке «Память» в Мониторе ресурсов Windows 7 приводятся подробные сведения о распределении памяти.

    Таблица «Процессы»

    На вкладке «Память» есть таблица «Процессы» (Processes, рис. B), в которой перечислены все запущенные процессы, а сведения об используемой памяти разбиты на несколько категорий.


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

    Графа «Образ»

    В колонке «Образ» (Image) указывается имя исполняемого файла процесса. Процессы, запущенные приложениями, узнать очень легко — например, процесс «notepad.exe» со всей очевидностью принадлежит Блокноту (Notepad). Процессы с именем «svchost.exe» представляют различные службы операционной системы. Название службы указывается в скобках рядом с именем процесса.

    Графа «ИД процесса»

    В колонке «ИД процесса» (PID) указывается номер процесса — уникальное сочетание цифр, позволяющее идентифицировать запущенный процесс.

    Графа «Завершено»

    В столбце «Завершено» (Commit) указывается объем виртуальной памяти в килобайтах, зарезервированный системой для данного процесса. Сюда входит и используемая физическая память, и сохраненные в файле подкачки страницы.

    Графа «Рабочий набор»

    В графе «Рабочий набор» (Working Set) указывается объем физической памяти в килобайтах, используемой процессом в данный момент времени. Рабочий набор складывается из общей и частной памяти.

    Графа «Общий»

    В колонке «Общий» (Shareable) указан объем физической памяти в килобайтах, которую данный процесс использует совместно с другими. Использование одного сегмента памяти или страницы подкачки для родственных процессов позволяет сэкономить место в памяти. При этом физически сохраняется только одна копия страницы, которая затем сопоставляется с виртуальным адресным пространством других процессов, которые к ней обращаются. Например, все процессы, инициированные системными библиотеками DLL — Ntdll, Kernel32, Gdi32 и User32 — используют общую память.

    Графа «Частный»

    В столбце «Частный» (Private) указывается объем физической памяти в килобайтах, используемой исключительно данным процессом. Именно это значение позволяет определить, сколько памяти нужно тому или иному приложению для работы.

    Графа «Ошибок отсутствия страницы в памяти/сек.»

    В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.

    О чем говорят ошибки отсутствия страницы в памяти

    Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.

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

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

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

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

    Таблица «Физическая память»

    В таблице «Процессы» приводятся детальные сведения о распределении памяти между отдельными процессами, а таблица «Физическая память» (Physical Memory) дает общую картину использования RAM. Ее ключевой компонент — уникальная гистограмма, показанная на рис. C.


    Рисунок C. Гистограмма в таблице «Физическая память» позволяет составить общее представление о распределении памяти в Windows 7.

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

    Секция «Зарезервированное оборудование»

    Слева расположена секция «Зарезервированное оборудование» (Hardware Reserved), обозначенная серым цветом: это память, выделенная на нужды подключенного оборудования, которую оно использует для взаимодействия с операционной системой. Зарезервированная для оборудования память заблокирована и недоступна диспетчеру памяти.

    Обычно объем памяти, выделенной оборудованию, составляет от 10 до 70 Мбайт, однако этот показатель зависит от конкретной конфигурации системы и в некоторых случаях может достигать нескольких сотен мегабайт. К компонентам, влияющим на объем зарезервированной памяти, относятся:

    ;
    компоненты материнской платы — например, усовершенствованный программируемый контроллер прерываний ввода/вывода (APIC);
    звуковые карты и другие устройства, осуществляющие ввод/вывод с отображением на память;
    шина PCI Express (PCIe);
    видеокарты;
    различные наборы микросхем;
    флеш-накопители.

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

    Секция «Используется»

    Секция «Используется» (In Use, рис C), обозначенная зеленым цветом, представляет количество памяти, используемой системой, драйверами и запущенными процессами. Количество используемой памяти рассчитывается, как значение «Всего» (Total) за вычетом суммы показателей «Изменено» (Modified), «Ожидание» (Standby) и «Свободно» (Free). В свою очередь, значение «Всего» — это показатель «Установлено» (Installed RAM) за вычетом показателя «Зарезервированное оборудование».

    Секция «Изменено»

    Оранжевым цветом выделена секция «Изменено» (Modified), в которой представлена измененная, но не задействованная память. Фактически она не используется, но может быть в любой момент задействована, если снова понадобится. Если память не используется достаточно давно, данные переносятся в файл подкачки, а память переходит в категорию «Ожидание».

    Секция «Ожидание»

    Секция «Ожидание», обозначенная синим цветом, представляет страницы памяти, удаленные из рабочих наборов, но по-прежнему с ними связанные. Другими словами, категория «Ожидание» — это фактически кэш. Страницам памяти в этой категории присваивается приоритет от 0 до 7 (максимум). Страницы, связанные с высокоприоритетными процессами, получают максимальный приоритет. Например, совместно используемые процессы обладают высоким приоритетом, поэтому связанным с ними страницам присваивается наивысший приоритет в категории «Ожидание».

    Если процессу требуются данные с ожидающей страницы, диспетчер памяти сразу же возвращает эту страницу в рабочий набор. Тем не менее, все страницы в категории «Ожидание» доступны для записи данных от других процессов. Когда процессу требуется дополнительная память, а свободной памяти недостаточно, диспетчер памяти выбирает ожидающую страницу с наименьшим приоритетом, инициализирует ее и выделяет запросившему процессу.

    Секция «Свободно»

    В категории «Свободно», обозначенной голубым цветом, представлены страницы памяти, еще не выделенные ни одному процессу или освободившиеся после завершения процесса. В этой секции отображается как еще не задействованная, так и уже освобожденная память, но на самом деле, еще не задействованная память относится к другой категории — «Нулевые страницы» (Zero Page), которая так называется, потому что эти страницы инициализированы нулевым значением и готовы для использования.

    О проблеме свободной памяти

    Теперь, когда вы в общих чертах представляете, как работает диспетчер памяти, ненадолго остановимся на распространенном заблуждении, связанном с системой управления памятью в Windows 7. Как видно из рис. C, секция свободной памяти — одна из самых маленьких в гистограмме. Тем не менее, ошибочно на этом основании полагать, будто Windows 7 потребляет чересчур много памяти и что система не может нормально работать, если свободной памяти так мало.

    На самом деле, все совсем наоборот. В контексте принятого в Windows 7 подхода к управлению памятью, свободная память бесполезна. Чем больше памяти задействовано, тем лучше. Заполняя память до максимума и постоянно перемещая страницы из одной категории в другую с использованием системы приоритетов, Windows 7 повышает эффективность работы и предотвращает попадание данных в файл подкачки, не давая ошибкам отсутствия страницы в памяти замедлить быстродействие.

    Мониторинг памяти

    Хотите понаблюдать систему управления памятью Windows 7 в действии? Перезагрузите компьютер и сразу же после запуска откройте Монитор ресурсов Windows 7. Перейдите на вкладку «Память» и обратите внимание на соотношение секций в гистограмме физической памяти.

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

    Проделав этот экстремальный эксперимент, вы поймете, как Windows 7 управляет памятью на вашем конкретном компьютере, и сможете использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти в нормальных условиях повседневной работы.

    А что думаете вы?

    Нравится ли вам идея использовать Монитор ресурсов Windows 7 для наблюдения за распределением памяти? Поделитесь своим мнением в комментариях!

    Вытесняющие/невытесняющие алгоритмы.

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

    Алгоритмы с квантованием.

    Каждому потоку предоставляется квант времени, в течение которого поток может выполняться на процессоре. По истечении кванта операционная система переключает процессор на следующий поток в очереди. Квант обычно равен целому числу интервалов системного таймера 1 .

    Алгоритмы с приоритетами.

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

    В Windows реализован смешанный алгоритм планирования – вытесняющий, на основе квантования и приоритетов.

    1. Тип многозадачности для приложения DOS
    2. Гарантии обслуживания
    3. Планирование процессов переднего плана
    4. Назначение файла подкачки
    5. Процессы Р1, Р2, Р3 выделяют 100, 20, 80 Мб памяти. В системе 128Мб ОП. Каков размер занятой памяти в файле подкачки. Какой размер файла подкачки.
    1. Что такое «страничная ошибка»?

    Прерывание 14 —
    Страничная ошибка

    (#PF): Intel386 …

    Генерируется, если страничный механизм активизирован (CR0.PG = 1) и при трансляции линейного адреса в физический возникает одна из следующих ситуаций:

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

    Обработчик страничной ошибки получает информацию о ее причине из двух источников: кода ошибки, помещаемого в стек, и содержимого регистра CR2, который содержит линейный адрес, вызвавший ошибку. Код страничной ошибки имеет специальный формат (рис. 3.7.).

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

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

    1. Высокая интенсивность ошибок страниц говорит о:

    Ненадежности программы

    Ненадежности оперативной памяти

    Иное: пояснить

    Графа «Ошибок отсутствия страницы в памяти/сек.»

    В графе «Ошибок отсутствия страницы в памяти/сек.» (Hard Faults/sec) указано среднее за последнюю минуту количество ошибок отсутствия страницы в памяти в секунду. Если процесс пытается использовать больше физической памяти, чем доступно в данный момент времени, система записывает часть данных из памяти на диск — в файл подкачки. Последующее обращение к данным, сохраненным на диск, и называется ошибкой отсутствия страницы в памяти.

    О чем говорят ошибки отсутствия страницы в памяти

    Теперь, когда вы представляете, какие сведения собраны в таблице «Процессы», давайте посмотрим, как с их помощью следить за распределением памяти. При запуске приложений и работе с файлами диспетчер памяти отслеживает объем рабочего набора для каждого процесса и фиксирует запросы на дополнительные ресурсы памяти. По мере увеличения рабочего набора процесса, диспетчер соотносит эти запросы с потребностями ядра и других процессов. Если доступного адресного пространства недостаточно, диспетчер уменьшает объем рабочего набора, сохраняя данные из памяти на диск.

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

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

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

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

    1. Как формируется приоритет потока в Windows

    Приоритеты

    В ОС Windows реализовано вытесняющее приоритетное планирование, когда каждому потоку присваивается определенное числовое значение — приоритет, в соответствии с которым ему выделяется процессор. Потоки с одинаковыми приоритетами планируются согласно алгоритму Round Robin (карусель). Важным достоинством системы является возможность вытеснения потоков, работающих в режиме ядра — код исполнительной системы полностью реентерабелен. Не вытесняются лишь потоки, удерживающие спин-блокировку (см. «Синхронизация потоков»). Поэтому спин-блокировки используются с большой осторожностью и устанавливаются на минимальное время.

    В системе предусмотрено 32 уровня приоритетов. Шестнадцать значений приоритетов (16-31) соответствуют группе приоритетов реального времени, пятнадцать значений (1-15) предназначены для обычных потоков, и значение 0 зарезервировано для системного потока обнуления страниц (см. рис. 6.2).

    Рис. 6.2.
    Приоритеты потоков

    Чтобы избавить пользователя от необходимости запоминать числовые значения приоритетов и иметь возможность модифицировать планировщик, разработчики ввели в систему слой абстрагирования приоритетов
    . Например, класс приоритета для всех потоков конкретного процесса можно задать с помощью набора констант-параметров функции SetPriorityClass, которые могут иметь следующие значения:

    • реального времени (REALTIME_PRIORITY_CLASS) — 24
    • высокий (HIGH_PRIORITY_CLASS) — 13
    • выше нормы (ABOVE_NORMAL_PRIORITY_CLASS) 10
    • нормальный (NORMAL_PRIORITY_CLASS) — 8
    • ниже нормы (BELOW_NORMAL_PRIORITY_CLASS) — 6
    • и неработающий (IDLE_PRIORITY_CLASS) 4

    Относительный приоритет потока устанавливается аналогичными параметрами функции SetThreadPriority:

    Совокупность из шести классов приоритетов процессов и семи классов приоритетов потоков образует 42 возможные комбинации и позволяет сформировать так называемый базовый приоритет потока

    Базовый приоритет процесса и первичного потока по умолчанию равен значению из середины диапазонов приоритетов процессов (24, 13, 10, 8, 6 или 4
    ). Смена приоритета процесса влечет за собой смену приоритетов всех его потоков, при этом их относительные приоритеты остаются без изменений.

    Приоритеты с 16 по 31 в действительности приоритетами реального времени не являются, поскольку в рамках поддержки мягкого реального времени, которая реализована в ОС Windows, никаких гарантий относительно сроков выполнения потоков не дается. Это просто более высокие приоритеты, которые зарезервированы для системных потоков и тех потоков, которым такой приоритет дает пользователь с административными правами. Тем не менее, наличие приоритетов реального времени, а также вытесняемость кода ядра, локализация страниц памяти (см. «Функционирование менеджера памяти») и ряд дополнительных возможностей — все это позволяет выполнять в среде ОС Windows приложения мягкого реального времени, например, мультимедийные. Системный поток с нулевым приоритетом занимается обнулением страниц памяти. Обычные пользовательские потоки могут иметь приоритеты от 1 до 15.

    Похожая информация.

    Когда в Windows запускается процесс, многие из отображающих образы файлов EXE и DLL страниц могут уже находиться в памяти, поскольку они используются другими процессами. Пригодные для записи страницы образов помечены как «копирование при записи», чтобы их можно было совместно использовать до того момента, когда их понадобится модифицировать. Если операционная система узнает уже выполнявшийся ЕХЕ, то она может записать шаблон страничных ссылок (при помощи технологии, которую компания Microsoft называет Super-Fetch). Эта технология старается заблаговременно подкачать много нужных страниц (хотя процесс еще не получил по ним страничные ошибки). Это снижает латентность запуска приложений (чтение страниц с диска накладывается на выполнение инициализационного кода образов). Эта технология повышает производительность вывода на диск, поскольку дисковым драйверам легче организовать операции чтения (чтобы уменьшить необходимое время поиска). Этот процесс упреждающей подкачки страниц используется и во время загрузки системы, а также когда фоновое приложение выходит на передний план и при выходе системы из гибернации.

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

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

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

    Формат элемента таблицы страниц различается в зависимости от архитектуры процессора. Для процессоров х86 и х64 элементы отображаемой страницы показаны на рис. 11.17. Если элемент помечен как действительный, то его содержимое интерпретируется аппаратным обеспечением (чтобы виртуальный адрес можно было преобразовать в правильную физическую страницу). Неотображенные страницы также имеют свои элементы, но они помечены как недействительные (invalid), и аппаратное обеспечение игнорирует остальную часть элемента. Программный формат несколько отличается от аппаратного и определяется диспетчером памяти. Например, для неотображенной страницы (которая должна быть размещена и обнулена до использования) этот факт отмечен в элементе таблицы страниц.

    Два важных бита элемента таблицы страниц обновляются непосредственно аппаратным обеспечением. Это бит доступа (А) и бит «измененная» (D). Эти биты отслеживают использование данного отображения страницы для доступа к странице и возможность модифицирования страницы при этом доступе. Это реально повышает производительность системы, поскольку диспетчер памяти может использовать бит доступа для реализации подкачки по схеме наиболее давнего использования (Least- Recently Used (LRU)). Принцип LRU состоит в том, что те страницы, которые дольше всех не используются, имеют самую низкую вероятность повторного использования в ближайшее время. Бит доступа позволяет диспетчеру памяти определить, что к странице был произведен доступ. Бит «измененная» говорит диспетчеру памяти о том, что страница, возможно, была модифицирована (или, что более важно, она не была модифицирована). Если страница не была модифицирована с момента считывания с диска, то диспетчеру памяти не нужно записывать ее содержимое на диск (перед тем, как использовать ее для чего-то другого).

    В обеих архитектурах, х86 и x64, используется элемент таблицы страниц размером 64 бита (см. рис. 11.17).

    Каждая страничная ошибка может быть отнесена к одной из пяти категорий:

    1. Страница не зафиксирована.

    2. Попытка обращения к странице с нарушением разрешений.

    3. Попытка модификации страницы типа «копирование при записи».

    1. Необходимо увеличение стека.

    2. Страница зафиксирована, но в данное время не отображена.

    Первый и второй случаи — это ошибки программирования. Если программа пытается использовать адрес, который не имеет действительного отображения, или пытается выполнить недопустимую операцию (наподобие попытки записи в страницу «только для чтения»), это называется нарушением доступа (access violation) и обычно приводит к завершению процесса. Нарушение доступа часто является результатом недопустимых значений указателей, в том числе результатом обращения к памяти, которая была освобождена и откреплена от процесса.

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

    Четвертый случай происходит тогда, когда поток помещает значение в свой стек и попадает на страницу, которая еще не была выделена. Диспетчер памяти распознает это как особый случай. Пока есть место в зарезервированных под стек виртуальных страницах, диспетчер памяти будет поставлять новые страницы, обнулять их и отображать в процесс. Когда поток возобновит выполнение, он повторит попытку доступа, и на этот раз она будет успешной.

    И наконец, пятый случай — это нормальная страничная ошибка. Однако она имеет несколько подвариантов. Если страница отображена на файл, то диспетчер памяти должен просмотреть ее структуры данных (такие, как таблица страниц прототипов, связанная с объектом сегмента), чтобы быть уверенным в том, что в памяти нет ее копии. Если копия есть (например, в другом процессе, в резервном списке либо в списке модифицированных страниц), то он просто сделает ее совместно используемой (возможно, что для этого ему придется пометить ее как страницу «копирование при записи», если изменения совместно использовать не предполагается). Если копии еще нет, то диспетчер памяти выделит свободную физическую страницу и подготовит ее для копирования в нее страницы файла с диска, если только в этот момент не осуществляется перенос с диска другой страницы (тогда нужно лишь подождать, пока этот перенос не завершится).

    Если диспетчер памяти может обработать страничную ошибку, находя нужную страницу в памяти (а не считывая ее с диска), то такая ошибка называется мягкой ошибкой (soft fault). Если нужна копия с диска, то это жесткая ошибка (hard fault). Мягкие ошибки гораздо дешевле, они мало влияют на производительность приложения (по сравнению с жесткими ошибками). Мягкие ошибки могут происходить потому, что совместно используемая страница уже была отображена на другой процесс, либо нужна просто новая обнуленная страница, либо нужная страница была удалена из рабочего набора процесса, но запрашивается повторно до того, как ее повторно использовали. Мягкие ошибки могут возникать также из-за того, что страницы были сжаты для эффективного увеличения размера физической памяти. Для большинства конфигураций центрального процессора память и ввод-вывод в текущих системах эффективнее сжимать, вместо того чтобы тратиться на дорогостоящий ввод-вывод (с точки зрения производительности и энергозатрат), требующий чтения страницы с диска.

    Когда физическая страница больше не отображается таблицей страниц ни одного из процессов, она попадает в один из трех списков: свободных, модифицированных или резервных. Те страницы, которые никогда больше не понадобятся (такие, как страницы стека завершающегося процесса), освобождаются немедленно. Те страницы, которые могут снова дать страничную ошибку, попадают либо в список модифицированных, либо в список резервных (в зависимости от того, был ли бит «измененная» установлен для какого-либо элемента таблицы страниц, который отображал эту страницу с момента ее последнего считывания с диска). Страницы из модифицированного списка будут в конечном итоге записаны на диск, а затем перемещены в список резервных.

    Диспетчер памяти может выделять страницы по мере необходимости (используя список либо свободных, либо резервных страниц). Перед размещением страницы и копированием с диска диспетчер памяти всегда проверяет списки резервных и модифицированных страниц, чтобы проверить, нет ли уже этой страницы в памяти. Схема опережающей подкачки в Windows преобразует будущие жесткие ошибки в мягкие (путем чтения страниц, которые могут понадобиться, и помещения их в список резервных страниц). Диспетчер памяти и сам выполняет небольшой объем опережающей подкачки — он обращается к группам последовательных страниц (а не к отдельным страницам). Дополнительные страницы немедленно размещаются в списке резервных страниц. Это не является расточительством, поскольку издержки диспетчера памяти гораздо меньше, чем стоимость выполнения операций ввода-вывода. Чтение целого кластера страниц чуть дороже, чем чтение одной страницы.

    Элементы таблицы страниц на рис. 11.17 относятся к номерам физических (а не виртуальных) страниц. Для обновления элемента таблицы страниц (и каталога страниц) ядру нужно использовать виртуальные адреса. Windows отображает таблицы страниц и каталоги страниц для текущего процесса на виртуальное адресное пространство ядра при помощи элемента self-map в каталоге страниц (рис. 11.18). Отображая элемент каталога страниц на каталог страниц (карта self-map), мы получаем виртуальные адреса, которые можно использовать для ссылки на элементы каталога страниц (рис. 11.18, а) и на элементы таблицы страниц (рис. 11.18, б). Карта self-map занимает 8 Мбайт виртуальных адресов ядра для каждого процесса (на процессорах х86). Для простоты на рисунке показан элемент x86 self-map для 32-разрядных PTE-записей (Page-Table Entries). На самом деле Windows использует 64-разрядные PTE-записи, поэтому система может воспользоваться более чем 4 Гбайт физической памяти. С 32-разрядными PTE-записями элемент self-map использует в каталоге страниц только одну PDE- запись (Page-Directory Entry) и поэтому занимает только 4 Мбайт адресов, а не 8 Мбайт.

    Политика очистки страниц

    Замещение
    страниц лучше всего работает при наличии
    достаточного количества свободных
    страничных блоков, которые могут
    потребоваться при возникновении ошибки
    отсутствия страницы. Если заполнен и,
    более того, изменен каждый страничный
    блок, то перед помещением в него новой
    страницы сначала должна быть записана
    на диск старая страница. Для обеспечения
    поставки свободных страничных блоков
    системы замещения страниц, как правило,
    имеют фоновый процесс. Если свободно
    слишком мало страничных блоков, фоновый
    процесс начинает подбирать страницы
    для выгрузки, используя какой-нибудь
    алгоритм замещения страниц. Если эти
    страницы со времени своей загрузки
    подверглись изменению, они записываются
    на диск.

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

    Обработка ошибки отсутствия страницы

    Описание
    всего, что происходит при возникновении
    ошибки отсутствия страницы. Складывается
    следующая последовательность событий:

    1.
    Аппаратное прерывание передает управление
    ядру, сохраняя в стеке значение счетчика
    команд. На большинстве машин в специальных
    регистрах центрального процессора
    сохраняется информация о состоянии
    текущей команды.

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

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

    4.
    Когда известен виртуальный адрес,
    вызвавший ошибку, система проводит
    проверку адреса на приемлемость и
    доступа к этому адресу — на согласованность
    с системой защиты. При отрицательном
    результате проверки процессу посылается
    сигнал или же он уничтожается.

    5.
    Если выбранный страничный блок содержит
    измененную страницу, она включается в
    план сброса на диск и происходит
    переключение контекста, приостанавливающее
    процесс, в котором произошла ошибка.

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

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

    8.
    Команда, на которой произошла ошибка,
    возвращается к тому состоянию, в котором
    она находилась с самого начала, и счетчик
    команд переключается, чтобы указывать
    на эту команду.

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

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

    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии

    А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ятрогенная патология врачебные ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Что называют ошибкой второго рода при проверке статистических гипотез