(۲۶ بهمن ۱۳۹۲ ۱۱:۵۶ ق.ظ)Mindhunter نوشته شده توسط: آخه بچه ها PID فرزند توی process table پدر هم ثبت میشه!!! والا از اساتید هم پرسیدم کسایی که سیستم عامل نوشتن گفتن پشته فرآیندی جداست
همشون هم گفتن fork کردی exec هم کردی!!!!! اصلا بمیرن با این سوال دادنشون، دکتر حقیقت کجاس؟؟؟؟
مسلما هر فرآیند باید بدونه بابای کیه یا فرزند کی هست!! پس یه ساختمان داده مشترک heap هست که اجداد خودشون رو ازش بدس میارن که من اینو قبلا نوشتم پروژم بود، اما در مورد PID تحقیقات به اینجا رسید که موقع فراخونی fork پدر یه فرزند میسازه و هرچی خودش داره duplicate میکنه!! یعنی هرچی داره روی یه حافظه جدید فرزند کپی میکنه اما ID برنمیگردونه!!!؟؟!؟!؟! چرا؟؟ چون اگه ID فرآیند جدید رو بخواد باید یه تابع دیگه بنام PID() فراخوانی بشه تا یه آیدی جدید به فرآیند نینی تازه بوجود اومده تعلق بگیره!!!! به ولای علی هرچی تا الان خوندم داره نقض میشه!!!
به نظر این سوال ارتباط مستقیمی به تمرین ۵ فصل سوم سیلبر شاتس ویرایش نهم داره(چون متن سوال ها دقیقا مثل هم هستش):
When a process creates a new process using the fork() operation, which
of the following state is shared between the parent process and the child
process?
a. Stack
b. Heap
c. Shared memory segments
Answer: Only the shared memory segments are shared between the
parent process and the newly forked child process. Copies of the stack
and the heap are made for the newly created process
شاید بگید پس heap جز جوابه ولی یک فرآیند بطور کلی دارای پشته است ولی ممکن است شامل heap نیز باشد ..اینو صفحه۱۰۶ویرایش نهم سیلبر شاتس میگه:
۳/۱/۱ The Process
Informally, as mentioned earlier, a process is a program in execution. A process
is more than the program code, which is sometimes known as the text section.
It also includes the current activity, as represented by the value of the program
counter and the contents of the processor’s registers. A process generally also
includes the process stack, which contains temporary data (such as function
parameters, return addresses, and local variables), and a data section, which
contains global variables.A process may also include a heap,which is memory
that is dynamically allocated during process run time. The structure of a process
in memory is shown in Figure 3.1.