11. Организация на входа и изхода и планиране (разписание) на диска

11.1. I/O устройства.
- Human-readable - видео-дисплей терминали, принтери;
- Mashine-readable - дискове, ленти, контролери;
- Communication - мрежови карти и модеми.
Различия при различните I/O устройства:
 -- скорост на работа с данните;
 -- приложения;
 -- сложност на управление;
 -- единица пренасяни данни;
 -- представяне на данните;
 -- състояния при грешки.
Примери на I/O устройства:

Device Purpose Partner Data Rate (kilobytes/s)
Keyboard Input Human         0.01
Mouse Input Human         0.02
Voice input Input Human         0.02
Scanner Input Human  200
Voice output  Output Human         0.6
Line printer Output Human        1
Laser printer Output Human    100
Graphics display Output Human 30000
CPU to frame buffer Output Human     200
Network-terminal Input or output Machine         0.05
Network-LAN Input or output Machine   200
Optical disk Storage Machine   500
Magnetic type Storage Machine  2000
Magnetic disk Storage Machine  2000

--- FIGURE 11.1 ---



11.2. Организация на функциите на I/O.
- програмирани I/O (programmed);
- I/O основани на прекъсвания (interupt-driven);
- пряк достъп до паметта (DMA).
** Еволюция на функциите на I/O.
  1. Процесорът пряко управлява периферията.
  2. Контролер или I/O модул, управление без прекъсвания.
  3. Контролер или I/O модул, управление с прекъсвания.
  4. DMA - процесорът участва само в началото и в края на предаване на данните.
  5. I/O модула е отделен процесор, който работи директно с паметта без CPU.
  6. I/O модула е отделен процесор със собствена памет.
** Пряк достъп до паметта (DMA).

--- FIGURE 11.2 ---
--- FIGURE 11.3 ---
--- FIGURE 11.4 ---



11.3. Проектиране и организация на I/O в ОП.
** Цели.
** Логическа структура на I/O функциите.
--- FIGURE 11.5 ---


11.4. Буфериране на входа и изхода.
 - Block-oriented device: диск
 - Stream-oriented device: терминал, принтер, мишка, комуникационна линия
** Единичен буфер.
** Двоен буфер.
** Кръгов буфер.
--- FIGURE 11.6 ---


11.5. Разписание на диска
** Параметри на работа на диска:
--- FIGURE 11.7 ---
 -- Време за търсене (Seek Time);
 -- Закъснение при въртене (Rotational Delay);
 -- Време за прехвърляне (Transfer Time);
 -- Сравнения.
Пример: Диск с:
    - рекламирана скорост на търсене (seek time) 20 ms;
    - скорост на пренасяне (transfer rate) 1MB/s;
    - 512-байтови сектори (sectors) с 32 сектора в пътечка (track).
  Заявка за четене на файл от 128K байта, значи 256 сектора.
А. Предполагаме, че файлът е разположен на последователни сектори.
 
За първата пътечка имаме:
Време за достъп  20 ms
Закъснение при въртене  8.3 ms
Четене на 32 сектора 16.7  ms
Общо 45 ms
За следващите пътечки имаме:
Закъснение при въртене  8.3 ms
Четене на 32 сектора 16.7  ms
Общо 25 ms
Получаваме всичко 45 + 7x25 = 220 ms = 0.22 s

Б. Предполагаме, че файлът е разположен на случайни сектори на диска.
За всеки сектор имаме:

Време за достъп  20 ms
Закъснение при въртене  8.3 ms
Четене на 1 сектор 0.5  ms
Общо 28.8 ms
Получаваме всичко 256x28.8 = 7373 ms =7.37 s
    Разположението на секторите на файла върху диска има голям ефект за скоростта на достъп до файла.

** Политика при разписания на диска:
  -- приоритет;
  -- случайно (random);
  -- опашка (FIFO);
  -- стек (LIFO);
  -- най-малко време за обслужване (Shortest Service Time First - SSTF);
  -- SCAN;
  -- C-SCAN;
  -- N стъпки SCAN и FeedbackSCAN.
 

FIFO 
(starting at track 100)
SSTF
(starting at track 100)
SCAN (starting at track 100, forward) C-SCAN (starting at track 100, forward)
 
Next track accessed Number of tracks trasfered
55
58
39
18
90
160
150
38
184
45
3
19
21
72
70
10
112
146
Average seek length 55.3
 
Next track accessed Number of tracks trasfered
90
58
55
39
38
18
150
160
184
10
32
3
16
1
20
132
10
24
Average seek length 27.5
 
Next track accessed Number of tracks trasfered
150
160
184
90
58
55
39
38
18
50
10
24
94
32
3
16
1
20
Average seek length 27.8
 
Next track accessed Number of tracks trasfered
150
160
184
18
38
39
55
58
90
50
10
24
166
20
1
16
3
32
Average seek length 35.8



11.6. RAID (Redundant Array of Independent Disks).
"Масив от независими дискове с излишен капацитет"

    1. RAID  е множество от физически дискови устройства, което се "вижда" от ОС като един логически диск.
    2. Данните са разпределени между физическите дискове във вид на масив.
    3. Излишният капацитет на дисковете се използва за съхраняване на допълнителна информация (parity), която гарантира възстановяването на данните при повреда на един (или няколко) от физическите дискове.

--- FIGURE 11.9a ---       --- FIGURE 11.9b ---
--- FIGURE 11.10 ---