بخشی از پاورپوینت
--- پاورپوینت شامل تصاویر میباشد ----
اسلاید 1 :
سيستم مديريت I/O
I/O Management System
سيستم مديريت I/O چيست؟
مسيرI/O براينوشتنداده رويديسک چگونه است؟
چه استراتژي هايي برايمديريت بافرهاي I/O وجود دارد؟
ساختارسيستم مديريتI/O در Unixچگونه است؟
انواع سيستمهاي I/O در Unix کدامند؟
اسلاید 2 :
سيستم مديريت I/O
مسيرI/O براينوشتنداده رويديسک چگونه است؟
مثال:
يک برنامه C در نظر ميگيريم که درخواست نوشتن يک بايت داده را در يک فايل مينمايد.
براي انجام اين درخواست چه مراحلي در سيستم طي ميشود؟
مرحله (1): برنامهC:
درخواست I/O : write (textfile, ch, 1)
مرحله (2): سيستم مديريت فايلها (FileManager):
به جدول Opened File Table مراجعه ميکند.
بافر I/O مربوط به سکتور مورد نظر را آماده ميکند. (Load) (چگونه؟)
بايت را در محل مناسب در بافر مينويسد.
سپس I/0 Processor را صدا (in oke) ميکند.
اسلاید 3 :
مسيرI/O براينوشتنداده رويديسک چگونه است؟
مثال (ادامه...):
مرحله (3): پردازنده I/O (I/OProcessor):
پردازنده I/O بطورمستقل از پردازنده اصلي (CPU) عمل ميبکند. (چرا؟)
بافر I/O را به فرمت مناسب ديسک تبديل و آماده تحويل ميکند.
منتظر آمادگي کنترلر ديسک (Disk Controller) براي دريافت ميشود.
سپس محتواي بافر را براي کنترلر ديسک ارسال ميکند.
مرحله (4): سيستم کنترل ديسک (DiskController):
دستور قرار گرفتن هد Read/Write روي شيار مربوطه را ميدهد.
روی شيار مربوطه، در انتظار رسيدن هد به سکتور مورد نظر ميماند.
سپس محتواي بافر را براي ديسک ارسال ميکند.
اسلاید 4 :
مديريت بافرهايI/O
چه استراتژي هايي برايمديريت بافرهاي I/O وجود دارد؟
انواع بافرهايI/O کدامند و مديريت آنها با کيست؟
(1 بافرهاي I/O سيستم (System I/O Buffer)
مسووليت مديريت آن با سيستم است.
(2 بافرهاي I/O برنامه (Program I/O Buffer)
مسووليت مديريت آنها با خود برنامه است.
مديريت بافرهاي I/Oچه اهميتي دارد؟
مديريت بافرهايI/O در کارآييPerformance)) سيستم و برنامه ها نقش بسيارموثري دارد.
براي پايين آوردن تعداد مراجعات به ديسک ها بايستي سيستم تعدادي بافر I/O رزرو نمايد (Multiple Buffering).
اسلاید 5 :
چه استراتژي هايي برايمديريت بافرهاي I/O وجود دارد؟
روشهايMultipleBuffering کدامند؟
(1روشDouble Buffering:
حالتي است که سيستم دو بافر I/O به يک برنامه (Process يا Job ) اختصاص ميدهد.
اين تعداد ميتواند بيشتر نيز تعيين شود. (کجا؟)
(2روشBuffer Pooling:
سيستم تعداد زيادي بافر I/O رزرو مي کند و سکتور هاي مورد استفاده برنامه ها را حتي الامکان در RAM حفظ مي کند.
در موقع احتياج به آزاد کردنيکي از بافرها از روش Least Recently Used استفاده مي شود.
اسلاید 6 :
روش Double Buffering
مثال:
برنامه زير را در نظر بگيريد.
تعداد I/O را قبل و بعدازاستفاده از روش Double Buffering محاسبه کنيد.
While (1){
infile>>ch;
if ( file.fail() ) Break;
outfile<<ch;
}
حالت اول:بدون روشDouble Buffering:
براي کپي کردن فقط يک سکتور 512 بايتي بايستي:
فايل ورودي (infile) تعداد 512 بار خوانده شود
فايل خروجي (outfile) 512 بار خوانده و 512 بار نوشته شود.
(چرا؟)
اسلاید 7 :
مثال:
برنامه زير را در نظر بگيريد.
تعداد I/O را قبل و بعدازاستفاده از روش Double Buffering محاسبه کنيد.
While (1){
infile>>ch;
if ( file.fail() ) Break;
outfile<<ch;
}
حالت دوم: با روشDouble Buffering :
براي کپي کردن فقط يک سکتور 512 بايتي بايستي:
فايل ورودي (infile) فقط يک بار خوانده شود
فايل خروجي (outfile) فقط يک بار خوانده و فقط يک بار نوشته شود.
(چرا؟)
اسلاید 8 :
مديريت بافرهايI/O
چه استراتژي هايي برايمديريت بافرهاي I/O وجود دارد؟
روشهايMo e Mode و Locate Modeکدامند؟
Mo e Mode حالتي است که در آن بافر I/O سيستم از بافر I/O برنامه مجزا ميباشد.
Locate Mode حالتي است که سيستم مستقيما از بافر I/O برنامه استفاده ميکند يا اينکه برنامه مستقيما به بافر I/O سيستم دسترسي دارد.
روشهايScatter I/O و Gather I/Oکدامند؟
Scatter I/O حالتي است که سيستم بطور يکجا چندين بافر I/O را ا ز روي ديسک ميخواند.
Gather I/O حالتي است که سيستم چندين بافر I/O را يکجا روي ديسک مينويسد.
–
اسلاید 9 :
ساختارسيستم مديريتI/O در Unixچگونه است؟
جداولي که برايمديريت فايل ها استفاده ميشوند کدامند؟
(1جدول FileDescriptorTable:
متعلق به هر برنامه (Process).
جدول فايلهاييکبرنامه.
(2جدول OpenFileTable:
متعلق به .kernel
جدول فايلهايباز شده در سطح سيستم.
(شکل 3.24 صفحه 90)
اسلاید 10 :
ساختارسيستم مديريتI/O در Unixچگونه است؟
جداولي که برايمديريت فايل ها استفاده ميشوند کدامند؟
(3جدول Tablesof Indexnodes:
متعلق بهFile System ميباشد.
جدول کل فايلها در يک .FileSystem
(براي هر فايل يک i-node وجود دارد.)
(4جدول FileAllocationTable :
متعلق به Kernel و بخشي از Index Node ميباشد.
شامل آدرس extentهاي مربوط به هر فايل روي ديسک.
(شکل 3.25 صفحه 99)