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 ---