RSS
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная
Регистрация
Вход


Aqu@Blog

Суббота, 17 Апреля 2021, 06:04

Меню сайта
Категории раздела
Диагностика [4]
Windows [63]
VirtualBox [3]
SQL [8]
1C [9]
Разное [10]
SharePoint [2]
HP [1]
DOS [2]
Кассы [3]
...
Наш опрос
Каким Браузером Вы пользуетесь?
Всего ответов: 13
...
...
...
...
Главная » Статьи » Компьютерное Железо » DOS

Зависание dos программ на многоядерных процессорах

     Большое количество пользователей c новыми компьютерами где использовались многоядерные процессоры, жаловались на странные проблемы с DOS программами (такие как Fox26, NC) приводящие к их полной или частичной неработоспособности. Это происходит потому, что производители материнских плат или Windows пытается распределить код программы на несколько ядер одновременно, и это не очень-то получается.
для решения этой проблемы необходимо запретить для DOS программ использовать больше одного процессора. 
1. Это можно сделать из Task Manager (Диспетчер Задач), но это не удобно, так как нужно это делать каждый раз вручную после запуска DOS программы. 
2. Пропатчить файл ntvdm.exe.
Для этого необходима утилита imagecfg.exe, с ее помощью нужно пропатчить файл ntvdm.exe. После этого проблемы исчезнут. Можно поступить еще проще - взять готовый пропатченный ntvdm и смело заменить его в системе. Записать в каталоги

\Windows\system32
\Windows\system32\dllcache\

и если есть

\Windows\I386\ 

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

    Хочется заметить, что можно смело заменять ntvdm одной системы другим, даже если они не совпадают по размеру (SP1, SP2, SP3).
3. Использовать небольшую утилиту ICE Affinity, которая решает эту проблему. ICE Affinity запускает любое приложение из командной строки и указывает какие процессоры в системе можно использовать для запуска этого приложения.
Пример:
ICEAffinity.exe <Affinity Mask> <Application Path> [Application command line parameters]

<Affinity Mask> - это целое число, в котором каждый бит отмечает процессор, на котором разрешено запускать этот процесс.

Пример:
ICEAffinity.exe 1 NC.exe - Используется только первый процессор
ICEAffinity.exe 2 "C:\NC\NC.exe" - Используется только второй процессор
ICEAffinity.exe 3 "C:\NC\NC.exe" -CONNECT -LAN - Используются оба процессора

Скачать ICEAffinity.exe

Категория: DOS | Добавил: Aqua (04 Июля 2014)
Просмотров: 2323 | Рейтинг: 0.0/0
Всего комментариев: 0
  • Коментарии
  • VKontakte
  • Facebook
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
 
...
Нет аватара
Информация

Логин: Гость
Группа: Гости
Ваш IP: 34.204.186.91
Браузер:

Праздники сегодня
Информер праздники сегодня
Погода
Нижнекамск
электронные услуги
Друзья сайта
  • Раскрутка вашего Сайта
  • ...
    Copyright AquaBlog © 2021

    Яндекс цитирования

    Рейтинг@Mail.ru