.TH SG_SEEK "8" "September 2018" "sg3_utils\-1.43" SG3_UTILS .SH "نام (NAME)" sg_seek \- ارسال دستورات SEEK، PRE\-FETCH(10) یا PRE\-FETCH(16) در اسکازی (SCSI) .SH "خلاصه دستور (SYNOPSIS)" .B sg_seek [\fI\-\-10\fR] [\fI\-\-count=NC\fR] [\fI\-\-grpnum=GN\fR] [\fI\-\-help\fR] [\fI\-\-immed\fR] [\fI\-\-lba=LBA\fR] [\fI\-\-num\-blocks=NUM\fR] [\fI\-\-pre\-fetch\fR] [\fI\-\-readonly\fR] [\fI\-\-skip=SB\fR] [\fI\-\-time\fR] [\fI\-\-verbose\fR] [\fI\-\-version\fR] [\fI\-\-wrap\-offset=WO\fR] \fIDEVICE\fR .SH "توضیحات (DESCRIPTION)" .\" Add any additional description here یک دستور SEEK(10)، PRE\-FETCH(10) یا PRE\-FETCH(16) در اسکازی (SCSI) را به \fIDEVICE\fR ارسال می‌کند. دستور SEEK از زمان استاندارد SBC\-2 (سال ۲۰۰۵) منسوخ شده است، اما همچنان در برخی از دیسک‌های سخت و حتی برخی درایوهای حالت جامد (SSD) پشتیبانی می‌شود. دستور PRE\-FETCH را می‌توان به عنوان جایگزین مدرن SEEK در نظر گرفت. به‌جای اشاره به حرکت هدهای دیسک به شیار حاوی LBA مورد جستجو، از آوردن LBA مورد جستجو (و تعداد مشخصی بلوک) به حافظه نهان (کَش) دیسک سخن می‌گوید. همچنین دستورات PRE\-FETCH دارای یک فیلد IMMED هستند. .PP دستورات PRE\-FETCH می‌توانند خطاهای «واقعی» را گزارش دهند، اما معمولاً یکی از دو وضعیت «خوب» را گزارش می‌کنند. برای این منظور، آن‌ها وضعیت به‌ندرت استفاده‌شده CONDITION MET را برمی‌گردانند. اگر تعداد بلوک‌ها واقعاً در حافظه نهان جا شود (زمانی که IMMED=0 است) یا هنگام رسیدن دستور فضای کافی در حافظه نهان وجود داشته باشد (زمانی که IMMED=1 است)، وضعیت CONDITION MET بازگردانده می‌شود. اگر تعداد بلوک‌های درخواستی جا نشود (IMMED=0) یا جا نشود (IMMED=1)، وضعیت GOOD بازگردانده می‌شود؛ بنابراین اگر دیسک حافظه نهان بزرگی داشته باشد و از PRE\-FETCH به‌ندرت استفاده شود، احتمال بازگرداندن CONDITION MET بیشتر از GOOD خواهد بود. این مسئله برای برخی از زیرسیستم‌های SCSI مشکلاتی ایجاد می‌کند، زیرا به دلیل نادری آن، با CONDITION MET رفتار نادرستی دارند و آن را به عنوان یک خطا در نظر می‌گیرند (بخش «نکات» زیر را ببینید). .SH "گزینه‌ها (OPTIONS)" آرگومان‌های گزینه‌های طولانی برای گزینه‌های کوتاه نیز اجباری هستند. .TP \fB\-T\fR, \fB\-\-10\fR استفاده از یک دستور cdb ده‌بایتی، یعنی یکی از دستورات SEEK(10) یا PRE\-FETCH(10). در صورت عدم وجود گزینه \fI\-\-pre\-fetch\fR، از دستور SEEK(10) استفاده می‌شود. اگر گزینه \fI\-\-pre\-fetch\fR بدون این گزینه ارائه شود، از دستور PRE\-FETCH(16) استفاده خواهد شد. .TP \fB\-c\fR, \fB\-\-count\fR=\fINC\fR \fINC\fR تعداد دستوراتی است (یکی از SEEK(10)، PRE\-FETCH(10) یا PRE\-FETCH(16)) که اجرا خواهند شد. مقدار پیش‌فرض ۱ است. در صورت بروز خطا، ثبت شده و برنامه تا پایان اجرای \fINC\fR ادامه می‌یابد. اگر \fINC\fR برابر ۰ باشد، گزینه‌ها بررسی شده و \fIDEVICE\fR باز می‌شود اما هیچ دستوری ارسال نخواهد شد. .TP \fB\-g\fR, \fB\-\-grpnum\fR=\fIGN\fR \fIGN\fR شماره گروه است؛ مقداری بین ۰ تا ۶۳ (در مبنای ۱۶: 0x3f). مقدار پیش‌فرض ۰ است. اگر دستور انتخاب‌شده SEEK(10) باشد، این گزینه نادیده گرفته می‌شود. .TP \fB\-h\fR, \fB\-\-help\fR نمایش پیام راهنمای نحوه استفاده و سپس خروج. .TP \fB\-i\fR, \fB\-\-immed\fR این گزینه فقط برای PRE\-FETCH(10) و PRE\-FETCH(16) اعمال می‌شود و بیت IMMED را تنظیم می‌کند. بدون این گزینه، \fIDEVICE\fR پس از تکمیل انتقال تمام یا بخشی از بلوک‌های درخواستی به حافظه نهان بازمی‌گردد. اگر این گزینه داده شود، \fIDEVICE\fR پس از انجام بررسی‌های صحت روی cdb (مانند اطمینان از اینکه \fILBA\fR بیشتر از تعداد بلوک‌های موجود است) و قبل از انجام انتقال به حافظه نهان بازمی‌گردد. .br توجه داشته باشید که حتی با وجود این گزینه، وضعیت بازگشتی از دستورات PRE\-FETCH همچنان یکی از وضعیت‌های CONDITION MET (اگر به نظر برسد حافظه نهان فضای خالی کافی برای انتقال دارد) یا وضعیت GOOD (اگر به نظر نرسد حافظه نهان فضای خالی کافی دارد) است. .TP \fB\-l\fR, \fB\-\-lba\fR=\fILBA\fR \fILBA\fR نشانی بلوک منطقی آغازین است که در بلوک توصیف‌گر دستور (cdb) مربوط به دستور انتخاب‌شده قرار می‌گیرد. توجه داشته باشید که فیلد \fILBA\fR در SEEK(10) و PRE\-FETCH(10) یک مقدار ۳۲ بیتی است، در حالی که در PRE\-FETCH(16) یک مقدار ۶۴ بیتی است. مقدار پیش‌فرض ۰ است. .TP \fB\-n\fR, \fB\-\-num\-blocks\fR=\fINUM\fR \fINUM\fR تعداد بلوک‌هایی است که از \fILBA\fR شروع شده و شامل آن می‌شود تا در حافظه نهان \fIDEVICE\fR قرار گیرد. دستور SEEK(10) از مقدار \fINUM\fR استفاده نمی‌کند. برای PRE\-FETCH(10) مقدار \fINUM\fR یک کمیت ۱۶ بیتی است، در حالی که برای PRE\-FETCH(16) یک کمیت ۳۲ بیتی است. مقدار پیش‌فرض ۱ است. اگر \fINUM\fR برابر ۰ باشد، \fIDEVICE\fR تلاش خواهد کرد تمام بلوک‌ها را از \fILBA\fR داده‌شده تا انتهای رسانه منتقل کند. .TP \fB\-p\fR, \fB\-\-pre\-fetch\fR این گزینه یکی از دستورات PRE\-FETCH(10) یا PRE\-FETCH(16) را انتخاب می‌کند. در صورتی که گزینه \fI\-\-10\fR نیز داده شود، دستور PRE\-FETCH(10) انتخاب می‌شود؛ بدون آن گزینه، دستور PRE\-FETCH(16) انتخاب خواهد شد. در حالت پیش‌فرض (در صورت نبود این گزینه و سایر گزینه‌های انتخاب‌کننده)، دستور SEEK(10) انتخاب می‌شود. .TP \fB\-r\fR, \fB\-\-readonly\fR این گزینه پرچم «فقط‌خواندنی» (read\-only) را هنگام باز کردن \fIDEVICE\fR توسط سیستم‌عامل زیرین تنظیم می‌کند. این ممکن است کار نکند، زیرا سیستم‌های عامل به‌راحتی نمی‌توانند تشخیص دهند که آیا یک عملیات عبوری (pass\-through) یک عملیات خواندن یا نوشتن منطقی است، بنابراین جانب احتیاط را رعایت کرده و صرف‌نظر از آنچه توسط گذرگاه انجام می‌شود، نیازمند باز شدن \fIDEVICE\fR به‌صورت خواندن/نوشتن هستند. .TP \fB\-s\fR, \fB\-\-skip\fR=\fISB\fR \fISB\fR تعداد نشانی‌های بلوک منطقی است که باید بین دستورات تکراری هنگامی که \fINC\fR بزرگتر از ۱ است، رد شوند. مقدار پیش‌فرض \fISB\fR برابر ۱ است. \fISB\fR می‌تواند روی ۰ تنظیم شود تا تمام \fINC\fR دستور PRE\-FETCH از همان \fILBA\fR استفاده کنند. .TP \fB\-t\fR, \fB\-\-time\fR در صورت ارائه، زمان سپری‌شده برای اجرای \fINC\fR دستور ثبت می‌شود. این زمان قبل از خروج این ابزار چاپ می‌شود. اگر \fINC\fR بزرگتر از ۱ باشد، زمان «به ازای هر دستور» نیز چاپ می‌شود. .TP \fB\-v\fR, \fB\-\-verbose\fR افزایش سطح پرگویی (یعنی خروجی اشکال‌زدایی). .TP \fB\-V\fR, \fB\-\-version\fR چاپ رشته نگارش برنامه و سپس خروج. .TP \fB\-w\fR, \fB\-\-wrap\-offset\fR=\fIWO\fR \fIWO\fR تعداد بلوک‌هایی نسبت به \fILBA\fR است که با فراتر رفتن از آن، نشانی بلوک منطقی دستور بعدی به \fILBA\fR بازنشانی می‌شود. این که این عمل «بازنشانی به LBA» رخ دهد یا خیر، به مقادیر \fINC\fR و \fISB\fR بستگی دارد. .SH "نکات (NOTES)" پیش از هسته لینوکس 4.17 وضعیت CONDITION MET به عنوان یک خطا در لاگ ثبت می‌شد. نگارش‌های اخیر FreeBSD با وضعیت CONDITION MET به‌درستی رفتار می‌کنند. .PP اگر گزینه \fI\-\-count=NC\fR یا \fI\-\-verbose\fR داده شود، یک خط خلاصه مانند زیر: .PP .nf Command count=5, number of condition_mets=3, number of goods=2 .fi .PP قبل از خروج ابزار چاپ می‌شود. .SH "وضعیت خروج (EXIT STATUS)" وضعیت خروج sg_seek در صورت موفقیت‌آمیز بودن ابزار ۰ (GOOD) یا ۲۵ (CONDITION_MET) است. اگر چندین دستور اجرا شوند (مثلاً زمانی که \fINC\fR بزرگتر از ۱ است)، نتیجه آخرین دستور SEEK یا PRE\-FETCH اجراشده وضعیت خروج را تعیین می‌کند. در غیر این صورت به صفحه راهنمای sg3_utils(8) مراجعه کنید. .SH "نویسندگان (AUTHORS)" نوشته‌شده توسط Douglas Gilbert. .SH "گزارش باگ‌ها (REPORTING BUGS)" گزارش باگ‌ها به . .SH "حق نشر (COPYRIGHT)" حق نشر \(co 2018 متعلق به Douglas Gilbert است. .br این نرم‌افزار تحت مجوز BSD\-2\-Clause توزیع می‌شود. هیچ ضمانتی وجود ندارد؛ حتی برای قابلیت فروش یا تناسب با یک هدف خاص. .SH "همچنین ببینید (SEE ALSO)" .B sg_vpd(sg3_utils); sdparm(sdparm)