অদলবদল থেকে সম্পূর্ণভাবে কোনও প্রক্রিয়া আনতে উইন্ডোজের ইঙ্গিত দেওয়া কি সম্ভব?


13

অদলবদল থেকে একটি নির্দিষ্ট প্রক্রিয়া আনার জন্য উইন্ডোজ ভার্চুয়াল-মেমরি-ম্যানেজারের ইঙ্গিত দেওয়া কি সম্ভব?

আমি প্রায়শই নিজেকে যে পরিস্থিতি দেখতে পাই তা প্রায় সব সাধারণ প্রোগ্রামের জন্য আমার র্যামের প্রায় 50% ব্যবহার করে, বিশেষত এটি এম্বেডড টার্গেটের আইডিই এবং এর সাথে সম্পর্কিত ডিবাগার সহ।

তারপরে আমি একটি স্মৃতির ক্ষুধার্ত প্রক্রিয়াটি চালিয়ে যাচ্ছি - উদাহরণস্বরূপ ওয়্যারশার্ক বা একটি উইকএন্ডে ডেটা জমে থাকা কিছু, সবকিছু অদলবদল হয়ে যায় - যেমন হওয়া উচিত। বড় প্রক্রিয়া শেষ হওয়ার পরে, বেশিরভাগ প্রক্রিয়াগুলি অদলবদলে চলে যায়।

এরপরে ছড়িয়ে ছিটিয়ে থাকা প্রক্রিয়াটি ডিবাগারের সাথে সমস্যাটি ফিরিয়ে আনার জন্য বিরতি দেয়, সম্ভবত আইডিই এবং হার্ডওয়্যার-ডিবাগারের মধ্যবর্তী সময় সংক্রান্ত সমস্যার কারণে। সুতরাং পর্যাপ্ত প্রচেষ্টা আইডিই-তে ডিবেগ-ডেটা অদলবদল না করে অবধি এই ডিভাইসটির নিয়ন্ত্রণ বিক্ষিপ্ত হতে পারে।


এটি খুব দরকারী হবে! ব্যবহারকারীর দৃষ্টিকোণ থেকে, প্রতিটি ক্লিক বা ব্যবহারকারীর পদক্ষেপের পরে অদলবদল হওয়া প্রক্রিয়াটির জন্য অপেক্ষা করা বিরক্তিকর। এটি বলাই আরও ভাল হবে: "এই প্রক্রিয়াটি আনডাপ করুন!" , একটি কফি জন্য যান এবং একটি প্রতিক্রিয়াশীল সিস্টেমে ফিরে!
টমাস

আমি উইন্ডোজের সোয়াপিং প্রক্রিয়া সুনির্দিষ্ট সাথে পরিচিত নই কিন্তু এই কিছু আপনি যা খুঁজছেন? মন্তব্যে একটি কার্যকারী বাইনারি উদাহরণ থাকা উচিত।
রিক

1
আমার একবারও একই রকম প্রশ্ন ছিল এবং আমি স্ট্যাক ওভারফ্লোতে যে উত্তর পেয়েছি তার উপর ভিত্তি করে একটি প্রোগ্রাম লিখেছিলাম।
কেরেক এসবি

@ কেরেক, আমি আপনার কোডটি মিনজিডব্লিউয়ের অধীনে সংকলনের চেষ্টা করেছি এবং প্রতিটি পাঠের ক্ষেত্রে ত্রুটি পেয়েছি "0x161000 থেকে একটি বাইট পড়তে ব্যর্থ হয়েছে, ত্রুটি 299 (0 বাইট পড়া)"। যেহেতু আমার কেবল উইন্ডোজ কাজ করছে তাই আমি সংযুক্ত এলোমেলো বাইনারি চালানোর মতো সাহসী ছিলাম না তাই সমস্যাটি আমার সংকলনে আসতে পারে in
গ্রেগ

1
@ কেরেকএসবি, ছোটখাটো সমস্যা মনে হচ্ছে। সম্ভবত আপনি মেমরি না থাকা মেমরি অঞ্চল স্পর্শ করছেন? যাইহোক আমি মনে করি আপনার উত্তর অনুগ্রহের প্রাপ্য :) পিএস: এইচডিডি গতির তুলনায় আনইপআপ এটি হতে পারে তার চেয়ে অনেক ধীর বলে মনে হচ্ছে। মনে হচ্ছে বাধাটি অন্য কোথাও আছে, তবে কোথায়?
টমাস

উত্তর:


1

কেরেকএসবি এই উদ্দেশ্যে একটি বিশেষ সরঞ্জাম তৈরি করেছে:

/programming//a/2940209/684229

এটি গিথাব এ বাইনারি সহ উপলভ্য: https://github.com/louisdx/unpage

রান চলাকালীন, আপনি প্রচুর ত্রুটি পান "0x .... 000 থেকে একটি বাইট পড়তে ব্যর্থ, ত্রুটি 299 (0 বাইট পড়া)" তবে এটি কোনও সমস্যা নয়, সরঞ্জামটি দুর্দান্ত কাজ করে।


"তবে সমস্যা কি"? আমি মনে করি এটি কোনও সমস্যা নয়।
কেরেক এসবি

উক্তি: "এমন সরঞ্জাম যা সমস্ত অ্যাপ্লিকেশনকে শারীরিক স্মৃতিতে ফিরিয়ে আনার চেষ্টা করে "। পোস্টারের "মেমরি ক্ষুধার্ত প্রক্রিয়া" সহ এটি কাজ নাও করতে পারে।
harrymc

@harrymc প্রশ্নটি থেকে উদ্ধৃতি: After the big process is finished, most processes are left in swap.। সুতরাং সম্ভবতঃ তিনি ইতিমধ্যে "স্মৃতি ক্ষুধার প্রক্রিয়া" শেষ করেছেন।
রিক

@ কেরেকএসবি অবশ্যই এটি টাইপো ছিল। ধন্যবাদ :-)
টমাস

@Tomas আমি দেখেছি এই । আমার c ++ সম্পর্কে খুব সীমিত জ্ঞানের সাহায্যে আমি যাচাই করেছি যে প্রতিটি ব্যর্থ অ্যাক্সেসের জন্য পৃষ্ঠাটি সত্যই প্যাগেশ্যুয়ার্ড-বিট দ্বারা সুরক্ষিত। আমি লাইনের if (meminfo.Protect > 50) { std::cerr << meminfo.Protect << " - " << PAGE_GUARD << std::endl; }ঠিক আগে ব্যবহার করেছি ReadProcessMemoryপৃষ্ঠাগুডারটি 256 এবং আমি ব্যর্থ পৃষ্ঠা সহ 260 পেয়েছি। সুতরাং ত্রুটিগুলি থেকে মুক্তি পাওয়া সম্ভব। কিছু সি ++ এবং পেজিং জ্ঞান সম্পন্ন কারও জন্য প্যাগেশাদার বিটটি পড়তে হবে।
রিক

1

কোনও প্রক্রিয়াটিকে মেমরি পৃষ্ঠার অগ্রাধিকার দিতে আপনি প্রক্রিয়া লাসো ব্যবহার করতে পারেন :

উইন্ডোজ ভিস্তার সাথে শুরু করে, প্রতিটি মেমরি পৃষ্ঠার অগ্রাধিকার 0 থেকে 7 অবধি থাকে Stand স্ট্যান্ডবাই তালিকাটি আটটি তালিকায় বিভক্ত যা প্রতিটি হ্যান্ডেল পৃষ্ঠাগুলিকে আলাদা অগ্রাধিকার দেয়। মেমোরি ম্যানেজার স্ট্যান্ডবাই তালিকা থেকে কোনও পৃষ্ঠা নিতে চাইলে এটি প্রথমে নিম্ন-অগ্রাধিকারের তালিকা থেকে পৃষ্ঠা নেয়। "

প্রক্রিয়া লাসো ক্রমাগত মেমরির অগ্রাধিকারগুলি প্রক্রিয়াগুলির জন্য সেট করার অনুমতি দিয়ে মেমরির অগ্রাধিকারগুলি পরিচালনা করতে সহায়তা করতে পারে, যাতে প্রতিটি ভারতে ভার্চুয়াল মেমরি পৃষ্ঠাগুলি একটি নির্দিষ্ট অগ্রাধিকারে সেট থাকে।

প্রক্রিয়া লাসোর দুটি সংস্করণ রয়েছে: বিনামূল্যে এবং বাণিজ্যিক (with 18.95 ট্রায়াল সহ)।


আমি ভীত যে আপনি সম্পূর্ণ আলাদা প্রশ্নের উত্তর দিচ্ছেন। প্রক্রিয়া প্রক্রিয়া দেওয়া মেমরির অগ্রাধিকার দেওয়া আলাদা আলাদা কাজ, সম্ভবত প্রসঙ্গে অপ্রয়োজনীয় ওপি এবং আমার স্কেচ করা হয়েছিল: যখন আপনার ইতিমধ্যে একটি প্রক্রিয়া রয়েছে যা অদলবদলে রয়েছে এবং এটি আনপোপথ করতে চান। আপনি এটিকে অদলবদলে যেতে আটকাতে চান না।
টমাস

@ টমাস: এটি আমার বোঝাপড়া নয়। অনুরোধটি হ'ল কোনও প্রদত্ত প্রক্রিয়াটি অদলবদল হওয়া থেকে রোধ করা। যদি প্রক্রিয়াটি নিজেই এর পৃষ্ঠাগুলিকে মেমরিতে লক করার জন্য প্রোগ্রাম না করা হয় তবে পরবর্তী সেরা সমাধানটি এটিকে সরিয়ে নেওয়া কম হওয়ার সম্ভাবনা তৈরি করার জন্য এটিকে সর্বোচ্চ মেমরির অগ্রাধিকার দেওয়া।
harrymc

3
@harrymc, ওপি মেমোরি হগ চলাকালীন বলেছে, "সমস্ত কিছু অদলবদল হয়ে যায় - যেমন তাদের উচিত" তাই ওপি এটিই চায় wants এটি ঠিক যে সোমবার সকালে তিনি গুরুত্বপূর্ণ প্রক্রিয়াগুলির কার্যকরী সেটগুলি একসাথে একবারে আনতে চান, সময়ের সাথে সাথে পৃষ্ঠাটি ত্রুটিযুক্ত করে ড্রব এবং ড্রবগুলিতে নয়।
মিগ্রেক্রেবস

@ এমজিক্রেবস: সমস্যাটির এটি আলাদা সমাধান, যা আমি বিশ্বাস করি যে এটি করা অসম্ভব। আমার সমাধানটি হ'ল যদি আইডিইটি কখনই অদলবদল হয় না, তবে এটিকে আবার সরিয়ে নেওয়ার দরকার নেই memory "মেমরি ক্ষুধার্ত প্রক্রিয়া" তে মাত্র কয়েক মেগাবাইট কম র‌্যাম থাকবে যা এর কার্য সম্পাদনে খুব বেশি প্রভাব ফেলবে না।
Harrymc
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.