برنامج Google Chrome من أكثر البرامج في استهلاك الموارد بشكل أناني , لكن يمكن لنا كمبرمجين أن نتعلم منه الكثير في تصميم البرامج.
(سلسلة) https://t.co/2WT8IenxOM
في الصورة السابقة تظهر Process متصفح كروم و تحتها Processes أخرى, هذه تسمى Child Process و هي عندما تقوم بتشغيل Process من أخرى بواسطة الكود. لكن لماذا يقوم كروم بذلك ؟
في السلسلة السابقة ذكرت أن الProcess عبارة عن حاوية معزولة تحتوي الكود كـ ( Thread ) و بها الذاكرة سواء Heap او Stack و بها ما يتعلق بالSecurity كـIPC و غيره.
عندما نقوم بعمل قتل Kill للProcess تقوم الProcess كشخص راقي قبل موتها بتنظيف نفسها من الذاكرة و تتخلى عن جميع الموارد . لكن هذا الأمر لا ينطبق على الThreads الأشبه بالطفل , فقتل الThread قد يسبب مشاكل و فوضى كثيرة. لذا نكتفي مثلا بعمل ايقاف له Suspend حتى نعرف السبب.
بما أن Google Chrome يدعم الExtensions و التي يطورها اشخاص آخرين, فإن Google لا تضمن جودة تلك البرمجيات , لذا تعزلها في Process أخرى بحيث لو حصلت مشكلة فلن يتأثر الChrome. هذا سبب تلك الSub Processes في الصورة.