مهمترين
مفهوم در هر سيستم عامل فرآيند يا پردازش (process) است و تمامي
نرمافزارهاي رايانهيي از جمله سيستم عامل به تعدادي از پروسسها
سازماندهي و تقسيمبندي ميشوند.
وقتي يک پردازش برنامهاي در حال اجراست، در واقع
يک پروسس فقط يک برنامه اجرايي است که علاوه بر کد برنامه (يا بخش متن
text segment) شامل مقدار شمارنده برنامه، رجيسترهاي CPU، پشته و بخش
دادهها (Data segment) است. به عبارتي ديگر ميتوان گفت که هر پروسس CPU
مجازي خود را دارد.
وي افزود: در سيستم چند برنامگي
CPU از يک پروسس به پروسسي ديگر سوئيچ ميکند و هر کدام را به مدت چند ده
يا چند صد ميلي ثانيه به اجرا درميآورد.
مسلم عزتي - کارشناس مهندسي
نرمافزار- در اين باره گفت: بايد دقت کرد که يک برنامه به خودي خود يک
پردازش نيست. برنامه الگوريتمي است که محتويات يک فايل برروي ديسک ذخيره
شده است. به عبارتي ديگر برنامه يک نهاد غيرفعال (passive) است. در حالي که
پردازش يک نهاد فعال (active) و در حال اجراست.
به عنوان مثال در يک رايانه ممكن
است کاربران متعددي در حال اجراي نسخههاي متعددي از برنامه ويرايشگر باشند
يا مثلاً يک کاربر ميتواند چند نسخه از برنامه ويرايشگر را همزمان اجرا
کند، در اين حال هر کدام از آنها يک پردازش جداگانهاند و اگرچه بخش
متنشان (کدشان ) يکسان است ولي بخش دادههايشان متفاوت است.
در سيستمها روشي مورد نياز است
تا در حين کار بتوان پروسسهايي را ايجاد کرد يا از بين برد؛ در UNIX و
پروسسها توسط فراخوان سيستمي fork پديد ميآيند، اين فراخواني يک پردازش
فرزند توليد ميکند که نسخهاي دقيقاً يکسان با پروسس پدر خواهد بود.
به همين ترتيب پردازش فرزند نيز
ميتواند fork را اجرا کند؛ بنابراين سيستم ميتواند درختي از پروسسها
داشته باشد. بديهي است هر پروسس فقط يک پدر دارد ولي ميتواند صفر يا چندين
فرزند داشته باشد.