Я должен построить симулятор на C #. Этот симулятор должен иметь возможность запускать второй поток с настраиваемой скоростью процессора и ограниченным объемом оперативной памяти, например 144 МГц и 50 МБ.
Конечно, я знаю, что симулятор никогда не может быть таким точным, как реальное оборудование. Но я стараюсь получить почти схожую производительность.
Сейчас я думаю о создании потока, который я буду время от времени останавливать / спать. В зависимости от желаемой скорости процессора, симулятор должен регулировать время ожидания этого потока и, следовательно, имитировать различные частоты процессора. Для измерения достигнутой скорости я подумал об использовании PerformanceCounters. Но при таком подходе у меня проблема в том, что я не знаю, как ограничить объем ОЗУ, который мог бы использовать поток.
У вас есть идеи, как реализовать такой симулятор?
Заранее спасибо !!
Ограничить память легко с помощью виртуальных машин типа vmware. Вы можете изменить скорость процессора с помощью некоторых инструментов разгона. Например http://cpu.rightmark.org/products/rmclock.shtml Удачи!
Если вас интересует моделирование среды операционной системы, то один из вариантов решения - использовать среду виртуальных машин, в которой вы можете управлять памятью, параметрами ЦП и т. Д.
Пауза \ остановка потоковой передачи может помочь вам смоделировать частоту процессора, но это будет ужасно неточно, поскольку, когда вы приостанавливаете поток, он будет отменен, и операционная система должна перенастроить его в какой-то «случайный» момент времени, т.е. точка, которую вы не можете контролировать.
Что касается ограничения памяти, можно запустить новый процесс, в котором будет размещен ваш код, а затем ограничить память этого процесса, например:
http://www.codeproject.com/KB/threads/ Setting_Max_Memory_Limit.aspx
Это не будет реально имитировать общие ограничения памяти ОС.
Ограничение скорости процессора? Вам следует проверить это, возможно, это будет полезно (по крайней мере, в какой-то степени). Эмуляция процессора и блокировка определенной тактовой частоты