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


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.1 ---
--- FIGURE 11.2 ---
--- FIGURE 11.3 ---


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


11.4. Буфериране на входа и изхода.
--- FIGURE 11.5 ---
** Единичен буфер.
** Двоен буфер.
** Кръгов буфер.


11.5. Разписание на диска
** Параметри на работа на диска:
--- FIGURE 11.6 ---
 -- Време за търсене (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
    Разположението на секторите на файла върху диска има страхотен ефект за скоростта на достъп до файла.
** Политика при разписания на диска.
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

  -- Приоритет;
  -- Последен влязъл, пръв излязъл (LIFO);
  -- Най-малко време за обслужване (Shortest Service Time First);
  -- SCAN;
  -- C-SCAN;
  -- N стъпки SCAN и FSCAN.



11.6. RAID (Redundant Array of Independent Disks).
--- FIGURE 11.9 ---


11.7. Дисков кеш.
--- FIGURE 11.10 ---