سوالات الآن نهایی هستند.
از بین سوالات سه سوال اول و سوال پنجم و هفتم به طور صفر و یکی تصحیح میشوند و در سوال چهارم و هشتم هر چه موارد بیشتری را پیادهسازی کنید نمره بیشتری دریافت خواهید کرد. در سوال ششم هم هر چه جواب بهتری پیدا کنید نمره بیشتری میگیرید.
برای آشنایی با قالب صورت سوال در Quera اینجا را مشاهده کنید و برای آشنایی با نحوهی کار با ورودی و خروجی استاندارد (stdin و stdout) در زبانهای مختلف، اینجا را ببینید. برای کسب اطلاعات بیشتر درباره نحوه برگزاری مسابقه هم اینجا را ببینید.
یک پروسهی مخرب روی کامپیوترهای سایت دانشکده مشاهده شده است و چند کامپیوتر سایت را که سیستم عامل ubuntu داشته اند را درگیر کرده است. یکی از بچههای سال بالایی ادعا کرده که توانسته اطلاعات زیر را از کامپیوترهای سایت جمع آوری کند:
شناسهی پروسهای که مخرب است.
یک قسمت از دادههای موجود در شاخهی /proc
که به ازای هر (pid (process id
شامل فایلها و دایرکتوریهایی مشابه فایلهای زیر است.
از شما میخواهیم یک اسکریپت bash با نام analyze.sh
بنویسید تا با آنالیز کردن اطلاعات موجود در /proc
اطلاعاتی از این پروسهی مخرب به ما بدهد.
تقریبا همهی افرادی که به حل این مساله میپردازند برای این که بتوانند به سوال پاسخ بدهند نیاز دارند تا در مورد proc در اینترنت جستوجو کنند.
نحوه اجرای اسکریپت به این صورت است:
این اسکریپت باید به عنوان خروجی هر کدام از موارد زیر را در یک خط به ما ارائه بدهد.
txt
کار میکردند.pid
ها وجود نداشته باشد. به طور مثال در صورتی که پروسه مخرب هیچ پروسهی بچهای نداشته باشد، شما باید در خروجی not-found
چاپ کنید. همینطور در صورتی که پروسه با هیچ پروسهی دیگری به فایل مشترک txt
دسترسی نداشته باشد باید مقدار بخش چهارم را not-found
بازگردانید.not-found
کلمهی دیگری چاپ کنید، تمام امتیاز سوال را از دست خواهید داد.txt
باشد.analyze.sh
آپلود کنید.برای مثال یک خروجی از proc به صورت tar.gz در این آدرس پیوست شده است. شما میتوانید آن را دانلود کرده، extract کنید و پس از نوشتن اسکریپت analyze.sh
با دستور زیر خروجی خود را چک کنید.
extract
کنید فایلها ناقص میشوند. پس باید حتما این کار را در linux انجام دهید.خروجی باید مشابه زیر باشد.
هر کدام از پاسخها به این سوال امتیاز خود را دارد. امتیاز بندی به شرح زیر است:
شناسهی پروسهی پدر
و شناسهی کاربر اجرا کننده
۶۰ امتیاز خواهید گرفت. فقط توجه داشته باشید که این در صورتی است که برای سایر مقادیر not-found
چاپ کنید. آی دی پروسههای بچه
جواب دهید. ۱۰۰ امتیاز دیگر خواهید گرفت.