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, I/O основани на прекъсвания, пряк
достъп до паметта
** Еволюция на функциите на 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 ---