35
1. KIẾN TRÚC HỆ ĐIỀU HÀNH IOS ( INTERNETWORK OPERATING SYSTEM ) 3. 3.1. Định nghĩa IOS IOS viết tắt của từ Internetwork Operating System, là một hệ điều hành hoạt động trên phần cứng của router Cisco, nó điều khiển hoạt động định tuyến và chuyển mạch của một router Rên của hệ điều hành IOS thì gồm có 3 phần: aaaa-bbbb-cccc trong đó: - aaaa: dòng sản phẩm áp dụng hệ điều hành này - bbbb: các tính năng của IOS - cc: định dạng file IOS, nơi IOS chạy, kểu nén của IOS Ví dụ:tên một IOS: C3620-i-mz_113-8T1.bin 3.2. Tổng quan về kiến trúc của IOS của Cisco Khi mà lợi ích của việc định tuyến qua mạng trở nên phát triển, đòi hỏi router phải hỗ trợ một số những giao thức và cung cấp những chức năng khác, như cầu nối giữa các mạng. Cisco đã thêm những tính năng mới cho phần mềm của router. Kết quả có nhiều chức năng cầu nối và định tuyến như ngày nay. Nhưng hầu như cấu trúc cơ bản của hệ điều hành vẫn giống như ban đầu. IOS thật sự là một cấu trúc đơn giản, cực nhỏ. IOS được thiết kế dựa vào những ràng buộc về bộ nhớ, về tốc độ, phần cứng của router. Hình 3.1: mô tả kiến trúc của một IOS của Cisco

KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Embed Size (px)

Citation preview

Page 1: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

1. KI N TRÚC H ĐI U HÀNH IOS Ế Ệ Ề

( INTERNETWORK OPERATING SYSTEM )

3.

3.1. Đ nh nghĩa IOSị IOS vi t t t c a t Internetwork Operating System, là ế ắ ủ ừ

m t h đi u hành ho t đ ng trên ph n c ng c a router Cisco, nó đi u ộ ệ ề ạ ộ ầ ứ ủ ề

khi n ho t đ ng đ nh tuy n và chuy n m ch c a m t router Rên c a h ể ạ ộ ị ế ể ạ ủ ộ ủ ệ

đi u hành IOS thì g m có 3 ph n: aaaa-bbbb-cccc trong đó: - aaaa: dòng ề ồ ầ

s n ph m áp d ng h đi u hành này - bbbb: các tính năng c a IOS - cc: ả ẩ ụ ệ ề ủ

đ nh d ng file IOS, n i IOS ch y, k u nén c a IOSị ạ ơ ạ ể ủ

Ví d :tên m t IOS: C3620-i-mz_113-8T1.bin ụ ộ

3.2. T ng quan v ki n trúc c a IOS c a Ciscoổ ề ế ủ ủ Khi mà l i ích c a vi c ợ ủ ệ

đ nh tuy n qua m ng tr nên phát tri n, đòi h i router ph i h tr m t sị ế ạ ở ể ỏ ả ỗ ợ ộ ố

nh ng giao th c và cung c p nh ng ch c năng khác, nh c u n i gi a các ữ ứ ấ ữ ứ ư ầ ố ữ

m ng. Cisco đã thêm nh ng tính năng m i cho ph n m m c a router. K t ạ ữ ớ ầ ề ủ ế

qu có nhi u ch c năng c u n i và đ nh tuy n nh ngày nay. Nh ng h u ả ề ứ ầ ố ị ế ư ư ầ

nh c u trúc c b n c a h đi u hành v n gi ng nh ban đ u. IOS th t s ư ấ ơ ả ủ ệ ề ẫ ố ư ầ ậ ự

là m t c u trúc đ n gi n, c c nh . IOS đ c thi t k d a vào nh ng ràng ộ ấ ơ ả ự ỏ ượ ế ế ự ữ

bu c v b nh , v t c đ , ph n c ng c a router. Hình 3.1: mô t ki n ộ ề ộ ớ ề ố ộ ầ ứ ủ ả ế

trúc c a m t IOS c a Cisco ủ ộ ủ

Page 2: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Hình 3.1 ki n trúc IOS c a Ciscoế ủ

3.2.1. Các ti n trình (processes)ế

Là nh ng tuy n riêng l k t h p v i d li u đ th c hi n nh ng tác v , ữ ế ẻ ế ợ ớ ữ ệ ể ự ệ ữ ụ

nh duy trì h th ng, chuy n m ch gói d li u, th c hi n giao th c đ nh ư ệ ố ể ạ ữ ệ ự ệ ứ ị

tuy n… ế

3.2.2. Nhân ( Kernel ) Cung c p nh ng d ch v c b n c a h th ng tùy ấ ữ ị ụ ơ ả ủ ệ ố

thu c vào IOS, nh : qu n lý b nh , l p l ch các ti n trình... Nó cung c p ộ ư ả ộ ớ ậ ị ế ấ

qu n lý tài nguyên ph n c ng (CPU, b nh ) cho các ti n trình. ả ầ ứ ộ ớ ế

3.2.3. B đ m gói ( Packet buffer )ộ ệ Cung c p các b đ m toàn c c và k t ấ ộ ệ ụ ế

h p v i ch c năng qu n lý b đ m đ l u tr gói d li u đang đ c ợ ớ ứ ả ộ ệ ể ư ữ ữ ệ ượ

chuy n m ch. ể ạ

3.2.4. Trình đi u khi n thi t b ( Device drivers )ề ể ế ị Làm ch c năng đi u ứ ề

khi n giao ti p gi a ph n c ng và thi t b ngo i vi, giao ti p gi a các ti n ể ế ữ ầ ứ ế ị ạ ế ữ ế

trình IOS, kernel, và ph n c ng. Chúng cũng giao ti p v i các ph n m m ầ ứ ế ớ ầ ề

chuy n m ch nhanh (fast switching software). ể ạ

3.2.5. Ph n m m chuy n m ch nhanhầ ề ể ạ Ch c năng chuy n m ch gói d ứ ể ạ ữ

li u cao. ệ

3.3. T ch c b nhổ ứ ộ ớ

Page 3: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

IOS ánh x toàn b b nh v t lý thành m t không gian đ a ch o ph ng ạ ộ ộ ớ ậ ộ ị ỉ ả ẳ

r ng l n. MMU ( memory map unit ) c a CPU có giá tr khi đ c s d ng ộ ớ ủ ị ượ ử ụ

đ t o không gian đ a ch o th m chí khi mà IOS không t n d ng m t ể ạ ị ỉ ả ậ ậ ụ ộ

kh i nh o tr n v n. ố ớ ả ọ ẹ

3.3.1. Mi n b nh (memory region)ề ộ ớ IOS chia không gian đ a ch này ị ỉ

thành nh ng mi n b nh g i là ữ ề ộ ớ ọ region, m i ỗ region phù h p v i nh ng lo iợ ớ ữ ạ

b nh v t lý khác nhau. Ví d , SRAM có th l u tr gói d li u và DRAM ộ ớ ậ ụ ể ư ữ ữ ệ

có th l u tr ph n m m ho c d li u. Phân l p b nh thành các ể ư ữ ầ ề ặ ữ ệ ớ ộ ớ region

cho phép IOS phân lo i các lo i b nh khác nhau vì v y mà ph n m m ạ ạ ộ ớ ậ ầ ề

không c n bi t chi ti t v b nh trên m i platform (N n v ph n c ng). ầ ế ế ề ộ ớ ỗ ề ề ầ ứ

Các region đ c phân chia thành m t trong tám m c nh hình 3.2 ượ ộ ụ ư

Hình 3. 2 các lo i ạ region

Nh ng ữ region cũng có th đ c đ t trong m i quan h cha con. M c d u ể ượ ặ ố ệ ặ ầ

không có m t áp đ t gi i h n trên chi u sâu c a m i quan h này. Nh ng ộ ặ ớ ạ ề ủ ố ệ ữ

region đ t trong quan h này là nh ng ặ ệ ữ subregion (mi n con) c a mi n cha ề ủ ề

Page 4: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Hình 3.3: Hi n th cách b trí b nh o trên m t platform đi n hình, bao ể ị ố ộ ớ ả ộ ể

g m nh ng ồ ữ region và subregion mà IOS có th t o ể ạ

Hình 3. 3 Region và subregion

B n có th dùng l nh ạ ể ệ show region đ hi n th các ể ệ ị region đ c đ nh nghĩa ượ ị

trên h th ng: ệ ố router#show region Region Manager: Start End Size(b) Class

Media Name 0x01A00000 0x01FFFFFF 6291456 Iomem R/W iomem

0x31A00000 0x31FFFFFF 6291456 Iomem R/W iomem: (iomem_cwt)

0x4B000000 0x4B0FFFFF 1048576 PCI R/W pcimem 0x60000000

0x619FFFFF 27262976 Local R/W main 0x600088F8 0x61073609 17214738

IText R/O main:text 0x61074000 0x611000FF 573696 idata R/W main:data

0x61100100 0x6128153F 1578048 IBss R/W main:bss 0x61281540

0x619FFFFF 7858880 Local R/W main:heap 0x7B000000 0x7B0FFFFF

1048576 PCI R/W pcimem: (pcimem_cwt) 0x80000000 0x819FFFFF

27262976 Local R/W main: (main_k0) 0xA0000000 0xA19FFFFF 27262976

Local R/W main: )main_k1) Đ c mô t nh sau: Tên c a region, đ a ch ượ ả ư ủ ị ỉ

b t đ u, đ a ch k t thúc, và kích th c region đó. Ví d : ắ ầ ị ỉ ế ướ ụ Iomem R/W

iomem 0x31A00000 0x31FFFFFF 6291456 (tên region iomem, đ a ch b t ị ỉ ắ

Page 5: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

đ ulàầ 0x31A00000, đ a ch k t thúc là:ị ỉ ế 0x31FFFFFF, kích th c:ướ 6291456

byte ) B n có th th y hình 1.2, toàn b DRAM t đ a ch 0x60000000 ạ ể ấ ở ộ ừ ị ỉ

đ n 0x619FFFFF đ c phân lo i nh là m t ế ượ ạ ư ộ region local và h n n a đ c ơ ữ ượ

chia thành các subregion. Nh ng ữ subregion này t ng đ ng v i nh ng ươ ươ ớ ữ

ph n khác nhau c a IOS (text, BSS, data) và heap. ầ ủ

3.3.2. Vùng b nh : (memory ộ ớ pool)

IOS qu n lý b nh r i, thông qua m t chu i các ả ộ ớ ỗ ộ ỗ memory pool. M i ỗ pool là

m t t p h p các kh i nh mà có th c p phát và thu h i khi c n. ộ ậ ợ ố ớ ể ấ ồ ầ Memory

pool đ c xây d ng bên ngoài các ượ ự region và đ c qu n lý b i kernel. ượ ả ở

Th ng thì, ườ pool t ng đ ng v i m t ươ ươ ớ ộ region đ c bi t. M tặ ệ ộ memory pool

có th đ c xây d ng t m t vài ể ượ ự ừ ộ region m r ng, cho phép b nh đ c ở ộ ộ ớ ượ

c p phát và thu h i t các mi n b nh khác nhau đ t i đa hi u qu ho t ấ ồ ừ ề ộ ớ ể ố ệ ả ạ

đ ng B n có th dùng l nh show ộ ạ ể ệ memory đ hi n th các ể ể ị pool này

router#show memory Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)

Processor 61281540 7858880 3314128 4544752 4377808 4485428 I/O

1A00000 6291456 1326936 4964520 4951276 4964476 PCI 4B000000

1048576 407320 641256 641256 641212 ...

Mô t nh sau: (kích th c tính theo byte) ả ư ướ

- Total: kích th c c a ướ ủ pool

- Used: l ng b nh đ c c p phát ượ ộ ớ ượ ấ

- Free: l ng b nh s n sàng đ s d ngượ ộ ớ ẵ ể ử ụ

- Lowest: l ng b nh th p nh t s n sàng s d ng t khi mà ượ ộ ớ ấ ấ ẵ ử ụ ừ pool đ c ượ

t oạ

- Largest: kích th c kh i nh liên t c l n nh t s n sàng s d ng hi n t i. ướ ố ớ ụ ớ ấ ẵ ử ụ ệ ạ

L nh ệ show memory trên cung c p ba ở ấ pool v i các tham s t ng ng: ớ ố ươ ứ

heap, processor và I/O

3.4. Ti n trình IOS (processes IOS)ế

3.4.1. Vòng đ i c a m t ti n trìnhờ ủ ộ ế

Page 6: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

M t ti n trình có th đ c t o ra ho c k t thúc b t c lúc nào trong khi ộ ế ể ượ ạ ặ ế ấ ứ

IOS đang ho t đ ng ngo i tr có ng t x y ra. Nó đ c t o ra b i kernel ạ ộ ạ ừ ắ ả ượ ạ ở

ho c b i m t ti n trình khác đang ch y khác.ặ ỏ ộ ế ạ

M t thành ph n có trách nhi m t o nhi u ti n trình trong IOS g i là ộ ầ ệ ạ ề ế ọ parser

(b phân tách). ộ Parser này là m t t p các ch c năng làm phiên d ch c u ộ ậ ứ ị ấ

hình IOS và dòng l nh EXEC. ệ Parser đ c yêu c u b i ượ ầ ở kernel trong su t quáố

trình kh i t o IOS và các ti n trình EXEC, đ cung c p m t giao ti p dòng ở ạ ế ể ấ ộ ế

l nh CLI thông qua giao ti p console (giao ti p ng i và máy) và các phiên ệ ế ế ườ

telnet. T i b t c th i đi m nào, m t l nh đ c nh p b i ng i dùng ho cạ ấ ứ ờ ể ộ ệ ượ ậ ở ườ ặ

m t c u hình đ c đ c t file, ộ ấ ượ ọ ừ parser phiên d ch dòng l nh và đ a ra ị ệ ư

nh ng ho t đ ng t c th i. M t vài l nh c u hình b i vi c gán giá tr , nh ữ ạ ộ ứ ờ ộ ệ ấ ở ệ ị ư

đ a ch IP, trong khi c u hình khác nh đ nh tuy n ho c giám sát. M t vài ị ỉ ấ ư ị ế ặ ộ

l nh làm cho ệ parser kh i t o m t ti n trình m i. Ví d : khi mà l nh c u ở ạ ộ ế ớ ụ ệ ấ

hình router eigrp đ c nh p vào, ượ ậ parser kh i t o m t ti n trình m i, g i là ỏ ạ ộ ế ớ ọ

ipigrp (n u nh ti n trình ế ư ế ipigrp đã đ c kh i t o r i), b t đ u x lý gói ipượ ở ạ ồ ắ ầ ử

EIGRP. N u nh l nh c u hình ế ư ệ ấ no router eigrpđ c nh p vào, parser k t ượ ậ ế

thúc ti n trình ế ipigrp và không còn ch c năng đ nh tuy n EIGRP. Ti n trìnhứ ị ế ế

IOS thì tr i qua m t các tr ng thái nh sau: hình 3.4ả ộ ạ ư

Page 7: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Hình 3. 4 Các tr ng thái c a m t ti n trình IOSạ ủ ộ ế

3.4.1.1. Tr ng thái kh i t o (Create)ạ ở ạ

Khi mà m t ti n trình m i đ c t o, nó nh n vùng stack riêng c a mình vàộ ế ớ ượ ạ ậ ủ

vào tr ng thái m i (new). Ti n trình có th di chuy n đ n tr ng thái đi u ạ ớ ế ể ể ế ạ ề

ch nh (modify). N u không có thay đ i c n thi t, thì ti n trình chuy n ỉ ế ổ ầ ế ế ể

sang tr ng thái th c thi (Execute) ạ ự

3.4.1.2. Tr ng thái đi u ch nh (modify)ạ ề ỉ

Không gi ng nh h u h t các h đi u hành, IOS không t đ ng truy n t i ố ư ầ ế ệ ề ự ộ ề ả

các tham s kh i t o ho c gán m t giao ti p đ n m t ti n trình m i khi nóố ở ạ ặ ộ ế ế ộ ế ớ

đ c t o, b i vì nó cho r ng h u h t các ti n trình không c n tài nguyên ượ ạ ở ằ ầ ế ế ầ

này. N u m t ti n trình c n ngu n tài nguyên này, tuy n mà t o nó có th ế ộ ế ầ ồ ế ạ ể

đi u ch nh đ thêm vào. ề ỉ ể

3.4.1.3. Tr ng thái th c thi (Execute)ạ ự

Sau khi m t ti n trình m i đ c t o thành công và đi u ch nh, nó chuy n ộ ế ớ ượ ạ ề ỉ ể

Page 8: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

sang tr ng thái s n sàng (Ready) và vào tr ng thái th c thi (Execute). ạ ẵ ạ ự

Trong su t tr ng thái này, m t ti n trình có th truy c p CPU và ch y. ố ạ ộ ế ể ậ ạ

Trong su t tr ng thái th c thi, m t ti n trình có th là m t trong ba tr ng ố ạ ự ộ ế ể ộ ạ

thái: s n sàng, ch y, và r i (Idle). M t ti n trình tr ng thái s n sàng sẽ ẵ ạ ỗ ộ ế ở ạ ẵ

đ i chuy n sang tr ng thái truy c p CPU, và b t đ u th c thi l nh, m t ợ ể ạ ậ ắ ầ ự ệ ộ

ti n trình tr ng thái r i là đang ng , đ i s ki n bên ngoài xu t hi n ế ở ạ ỗ ủ ợ ự ệ ấ ệ

tr c khi nó có th ch y. M t ti n trình chuy n t tr ng thái s n sàng ướ ể ạ ộ ế ể ừ ạ ẵ

sang tr ng thái ch y khi mà nó đ c l p l ch đ ch y. V i đa tác v mà ạ ạ ượ ậ ị ể ạ ớ ụ

không u tiên (non-preemptive multitasking), m t ti n trình đ c l p l ch ư ộ ế ượ ậ ị

ch y trên CPU cho đ n khi t m ng ng ho c k t thúc. M t ti n trình có th ạ ế ạ ừ ặ ế ộ ế ể

t m d ng theo hai cách: nó có th t d ng b i vi c báo cho kernel, nó ạ ừ ể ự ừ ở ệ

mu n nh ng CPU, và chuy n sang tr ng thái s n sàng, và đ i đ n lúc ố ườ ể ạ ẵ ợ ế

ch y l i. Ti n trình cũng có th d ng b i m t ho t đ ng bên ngoài x y ra. ạ ạ ế ể ừ ở ộ ạ ộ ả

Khi mà m t ti n trình b t đ u đ i m t s ki n,kernel hoàn toàn d ng ti nộ ế ắ ầ ợ ộ ự ệ ừ ế

trìnhn này và chuy n nó sang tr ng thái r i. Sau khi m t s ki n x y ra r iể ạ ỗ ộ ự ệ ả ồ

thì kernel chuy n ti n trình tr l i tr ng thái s n sàng đ đ i ch y l i. ể ế ở ạ ạ ẵ ể ợ ạ ạ

3.4.1.4. Tr ng thái k t thúc (Terminal):ạ ế

Tr ng thái cu i cùng trong vòng đ i c a ti n trình là tr ng thái k t thúc. ạ ố ờ ủ ế ạ ế

M t ti n trình vào tr ng thái k t thúc khi nó hoàn thành ch c năng c a ộ ế ạ ế ứ ủ

mình và đóng l i ho c khi m t ti n trình khác đóng nó. Khi m t ti n trình ạ ặ ộ ế ộ ế

b đóng ho c t đóng, ti n trình chuy n sang tr ng thái ch t (Dead). Ti n ị ặ ự ế ể ạ ế ế

tình này tr ng thái ch t (không ho t đ ng) cho đ n khi kernel thu h i ỏ ạ ế ạ ộ ế ồ

t t c các tài nguyên c a nó. Sau khi tài nguyên đ c thu h i, ti n trình b ấ ả ủ ượ ồ ế ị

k t thúc thoát kh i tr ng thái ch t và đ c xóa kh i h th ng. ế ỏ ạ ế ượ ỏ ệ ố

3.4.2. Đ u tiên ti n trình IOSộ ư ế

IOS th c hi n ch d u tiên đ l p l ch các ti n trình trên CPU. T i th i ự ệ ế ộ ư ể ậ ị ế ạ ờ

đi m t o, m i ti n trình đ c gán m t trong 4 đ u tiên d a trên m c ể ạ ỗ ế ượ ộ ộ ư ự ụ

đích c a ti n trình. Đ u tiên là không đ i, chúng đ c gán khi m t ti n ủ ế ộ ư ổ ượ ộ ế

Page 9: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

trình đ c t o và không bao gi thay đ i. Ta có các đ u tiên: ượ ạ ờ ổ ộ ư

- Critical:

Dành riêng cho nh ng ti n trình h th ng thi t y u mà gi i quy t nh ng ữ ế ệ ố ế ế ả ế ữ

v n đ c p phát tài nguyên ấ ề ấ

- High:

Đ c gán cho nh ng ti n trình mà cung c p th i gian đáp ng nhanh, nh ượ ữ ế ấ ờ ứ ư

ti n trình nh n gói tr c ti p t giao ti p m ngế ậ ự ế ừ ế ạ

- Medium:

Đ u tiên m c đ nh s d ng b i h u h t các ti n trình ộ ư ặ ị ử ụ ỏ ầ ế ế

- Low:

Đ c gán cho nh ng ti n trình cung c p nh ng tác v mang tính đ nh kỳ, ượ ữ ế ấ ữ ụ ị

nh b ng ghi l i... Đ u tiên các ti n trình cung c p s u đãi cho m t vàiư ả ỗ ộ ư ế ấ ự ư ộ

ti n trình đ truy c p CPU d a trên s quan tr ng c a nó đ i v i h ế ể ậ ự ự ọ ủ ố ớ ệ

th ng, nh r ng IOS không th c hi n quy n u tiên. M t ti n trình có đ ố ớ ằ ự ệ ề ư ộ ế ộ

u tiên cao h n không th ng t m t ti n trình có đ u tiên th p h n, ư ơ ể ắ ộ ế ộ ư ấ ơ

thay vào đó, ti n trình có đ u tiên cao h n thì có nhi u c h i h n đ ế ộ ư ơ ề ơ ộ ơ ể

truy c p CPU h n. ậ ơ

1. 3.5. Kernel IOS

IOS kernel không là m t đ n v đ n mà là m t t p các thành ộ ơ ị ơ ộ ậ

ph n và ch c năng liên k t ch t chẽ v i nhau. IOS kernel th c ầ ứ ế ặ ớ ự

hi n các ch c năng sau: L p l ch ti n trình, qu n lý b nh , cungệ ứ ậ ị ế ả ộ ớ

c p d ch v routimes đ trap (phát hi n ) và handle (đi u khi nấ ị ụ ể ệ ề ể

) nh ng ng t ph n c ng, duy trì timers (b đ nh th i gian), và ữ ắ ầ ứ ộ ị ờ

phát hi n ngo i l ph n m m. Các ch c năng chính c a kernel: ệ ạ ệ ầ ề ứ ủ

3.5.1. L p l chậ ị

Tác v l p l ch các ti n trình đ c th c hi n b i ụ ậ ị ế ượ ự ệ ở scheduler ( b ộ

l p l ch ậ ị ). Scheculer qu n lý t t c các ti n trình trong h th ng ả ấ ả ế ệ ố

b ng cách s d ng m t chu i các hàng đ i ti n trình mô t ằ ử ụ ộ ỗ ợ ế ả

Page 10: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

tr ng thái c a m i ti n trình. Các hàng đ i này ch a n i dung ạ ủ ỗ ế ợ ứ ộ

thông tin cho ti n trình tr ng thái đó. Ti n trình chuy n t ế ở ạ ế ể ừ

tr ng thái này sang tr ng thái khác khi mà ạ ạ scheduler duy chuy n ể

ng c nh c a chúng t 1 hàng đ i ti n trình này đ n hàng đ i ữ ả ủ ừ ợ ế ế ợ

ti n trình khác. Có t t c sáu hàng đ i ti n trình.ế ấ ả ợ ế

- Idle queue: Ch a nh ng ti n trình mà v n ho t đ ng ứ ữ ế ẫ ạ ộ

nh ng đang đ i m t s ki n x y ra tr c khi có th ch y.ư ợ ộ ự ệ ả ướ ể ạ

- Dead queue: Ch a các ti n trình đã k t thúc nh ng c n b thu ứ ế ế ư ầ ị

h i tài nguyên tr c khi có th xóa chúng ra kh i h th ng. ồ ướ ể ỏ ệ ố

- Ready queues: Ch a các ti n trình mà có đ đi u ki n ch y, ứ ế ủ ề ệ ạ

có 4 lo i hàng đ i s n sàng, là m t trong nh ng đ u tiên c a ạ ợ ẵ ộ ữ ộ ư ủ

ti n trình: o Critical o High o Medium o Low Khi m t ti n trình ế ộ ế

đang ch y b t m ng ng, ạ ị ạ ư scheduler l y l i quy n đi u khi n ấ ạ ề ề ể

CPU và đ a ra m t thu t toán đ ch n ti n trình k ti p t hàngư ộ ậ ể ọ ế ế ế ừ

đ i s n sàng. Các b c cho thu t toán nh sau:ợ ẵ ướ ậ ư

B c 1:ướ scheduler đ u tiên ki m tra các ti n trình đang đ i ầ ể ế ợ

trong hàng đ i s n sàng có đ u tiên critical. Nó ch y m i ti n ợ ẵ ộ ư ạ ỗ ế

trình có đ u tiên critical, l n l t, cho đ n khi t t c có c h i ộ ư ầ ượ ế ấ ả ơ ộ

đ ch y. ể ạ

B c 2:ướ sau khi t t c cá ti n trình có đ u tiên critical có m t ấ ả ế ộ ư ộ

c h i đ ch y, ơ ộ ể ạ scheduler ki m tra hàng đ i có đ u tiên high, ể ợ ộ ư

n u không có ti n trình có đ u tiên high s n sàng, thì ế ế ộ ư ẵ

scheduler b qua b c 2 và t i b c 3, và ki m tra hàng đ i có ỏ ướ ớ ướ ể ợ

đ u tiên medium. M c khác, ộ ư ặ scheduler xóa m i ti n trình có đỗ ế ộ

u tiên high t hàng đ i và cho phép ch y. Gi a các ti n trình đư ừ ợ ạ ữ ế ộ

có u tiên high, ư scheduler ki m tra b t c kỳ ti n trình đ u ể ấ ứ ế ộ ư

tiên critical mà đã s n sàng và ch y t t c chúng tr c khi x lý ẵ ạ ấ ả ướ ử

ti n trình đ có đ u tiên high ti p theo. Sau khi t t c các ti n ế ộ ộ ư ế ấ ả ế

Page 11: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

trình đ u tiên high có c h i, ộ ư ơ ộ scheduler b qua hàng đ i ỏ ợ

medium và low và tr v b c 1. ở ề ướ

B c 3: ướ sau khi không có ti n trình có đ u tiên high đang ch ế ộ ư ờ

đ ch y, ể ạ scheduler ki m tra hàng đ i có đ u tiên medium. N uể ợ ộ ư ế

không có ti n trình có đ u tiên medium s n sàng, ế ộ ư ẵ scheduler bỏ

qua b c 3 và t i b c 4 và ki m tra hàng đ i d u tiên low. ướ ớ ướ ể ợ ộ ư

M c khác, ặ scheduler xóa m i ti n trình đ u tiên medium t ỗ ế ộ ư ừ

hàng đ i và cho phép nó ch y. Gi a m i ti n trình đ u tiên ợ ạ ữ ỗ ế ộ ư

medium, sheduler ki m tra b t kỳ các ti n trình đ u tiên high ể ấ ế ộ ư

mà s n sàng và ch y t t c chúng tr c khi x lý các ti n trình ẵ ạ ấ ả ướ ử ế

đ u tiên meidum ti p theo. Sau khi các ti n trình đ u tiên ộ ư ế ế ộ ư

medium có c h i, ơ ộ scheduler b qua hàng đ i đ u tiên low, và ỏ ợ ộ ư

b t đ u l i b c1. ắ ầ ạ ướ Scheduler b qua hàng đ i đ u tiên low t i ỏ ợ ộ ư ố

đa là 15 l n tr c khi đ n b c 4. ầ ướ ế ướ Scheduler này là b máy d ộ ự

phòng đ m b o an toàn đ ngăn ch n s c , các ti n trình đ ả ả ể ặ ự ố ế ộ

u tiên low không đ c s d ng CPU.ư ượ ử ụ

B c 4:ướ khi không có ti n trình có đ u tiên high ho c mediumế ộ ư ặ

ch đ ch y (ho c hàng đ i đ u tiên low b b qua 15 l n) ờ ể ạ ặ ợ ộ ư ị ỏ ầ

scheduler ki m tra hàng đ i có đ u tiên low. ể ợ ộ ư Scheduler xóa m iỗ

ti n trình đ u tiên low t hàng đ i và cho phép ch y, gi a các ế ộ ư ừ ợ ạ ữ

ti n trình đ u tiên low, ế ộ ư scheduler ki m tra b t c các ti n ể ấ ứ ế

trình đ u tiên medium nào s n sàng và ch y chúng tr c khi ộ ư ẵ ạ ướ

th c hi n các ti n trình đ u tiên low ti p theo. ự ệ ế ộ ư ế

B c 5: ướ Cu i cùng ố scheduler tr v b c 1 và b t đ u l i. ở ề ướ ắ ầ ạ

3.5.2. Qu n lý b nhả ộ ớ B qu n lý b nh c a kernel, t i m c ộ ả ộ ớ ủ ạ ứ

cao, qu n lý t t c các vùng nh có s n c a IOS, bao g m b nhả ấ ả ớ ẵ ủ ồ ộ ớ

ch a IOS c a nó. B qu nl ý b nh bao g m ba thành ph n ứ ủ ộ ả ộ ớ ồ ầ

riêng bi t, v i nh ng nhi m v riêng. Ta có ba b qu n lý b ệ ớ ữ ệ ụ ộ ả ộ

Page 12: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

nh sau: B qu n lý ớ ộ ả region, B qu n lý ộ ả pool, b qu n lý ộ ả chunk.

3.5.2.1. B qu n lý ộ ả region Đ nh nghĩa và duy trì nh ng ị ữ region

khác nhau trên m t platform. B qu n lý ộ ộ ả region có ch c năng ứ

duy trì t t c các ấ ả region. Nó cung c p các d ch v cho phép ấ ị ụ

nh ng ph n khác c a IOS t o ữ ầ ủ ạ region và gán các thu c tính c a ộ ủ

chúng. Nó cũng cho phép nh ng ph n khác truy v n nh ng ữ ầ ấ ữ

region có s n, vi d , quy t đ nh t ng l ng b nh có s n trên ẵ ụ ế ị ổ ượ ộ ớ ẵ

môt platform. 1.5.2.2. B qu n lý ộ ả pool Qu n lý vi c t o ra các ả ệ ạ

vùng nh ớ pool, c p phát và thu h i các kh i nh c a ấ ồ ố ớ ủ pool B ộ

qu n lý ả pool là m t thành ph n quan tr ng c a kernel. Trong khiộ ầ ọ ủ

scheduler qu n lý c p phát tài nguyên CPU đ x lý, b qu n lý ả ấ ể ử ộ ả

pool qu n lý c p phát b nh cho các ti n trình. T t c các ti n ả ấ ộ ớ ế ấ ả ế

trình ph i thông qua b qu n lý b nh ả ộ ả ộ ớ pool, tr c ti p ho c giánự ế ặ

ti p, đ đ nh ra vùng nh mà nó s d ng. B qu n lý b nh ế ể ị ớ ử ụ ộ ả ộ ớ

đ c yêu c u cho m i ti n trình s hàm h th ng chu n malloc ượ ầ ỗ ế ử ệ ố ẩ

và free đ l y và tr b nh . B qu n lý b nh ho t đ ng b i ể ấ ả ộ ớ ộ ả ộ ớ ạ ộ ở

vi c duy trì danh sách kh i nh r i cho m i ệ ố ớ ỗ ỗ pool, ban đ u, m i ầ ỗ

pool ch a ch m t kh i nh r i l n b ng kích th c m t ứ ỉ ộ ố ớ ỗ ớ ằ ướ ộ pool,

khi b qu n lý ộ ả pool yêu c u b nh . Kh i t o nh ng kh i nh cóầ ộ ớ ở ạ ữ ố ớ

kích th c nh h n. t i cùng m t th i đi m, các ti n trình có ứơ ở ơ ạ ộ ờ ể ế

th gi i phóng vùng nh tr v ể ả ớ ả ề pool, t o thành m t s vùng nhạ ộ ố ớ

r i không liên t c nhau, nhi u kích th c. Tr ng h p này g i ỗ ụ ề ướ ườ ợ ọ

là phân m nh b nh và đ c cung c p nh hình 3.5. ả ộ ớ ựơ ấ ư

Page 13: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Hình 3. 5 S phân m nh b nhự ả ộ ớ

Khi mà kh i r i đ c tr v cho m t ố ỗ ựơ ả ề ộ pool, b qu n lý ộ ả pool thêm vào kích

th c c a nó và b t đ u đ a ch m t trong danh sách kh i nh r i c a ướ ủ ắ ầ ị ỉ ộ ố ớ ỗ ủ

pool. M c đ nh b qu n lý b nh duy trì danh sách các kh i nh r i có ặ ị ộ ả ộ ớ ố ớ ỗ

kích th c sau: : 24, 84, 144, 204, 264, 324, 384, 444, 1500, 2000, 3000, ướ

5000, 10,000, 20,000, 32,768, 65,536, 131,072, and 262,144 bytes. Nh ng ữ

kích th c này không liên quan gì đ n b đ m h th ng.. Khi mà m t ti n ướ ế ộ ệ ệ ố ộ ế

trình yêu c u b nh t m t ầ ộ ớ ừ ộ pool. B qu n lý b nh b t đ u v i danh ộ ả ộ ớ ắ ầ ớ

sách r i k t h p v i kích th c yêu c u. Ph ng th c này giúp t o hi u ỗ ế ợ ớ ướ ầ ươ ứ ạ ể

qu s d ng b nh , phù h p v i yêu c u đ ph c h i kh i d li u mà ả ử ụ ộ ớ ợ ớ ầ ể ụ ồ ố ữ ệ

g n v i kích th c nh t. N u nh không có kh i nh r i phù h p , b ầ ớ ướ ấ ế ư ố ớ ỗ ợ ộ

qu n lý b nh ti p t c v i kh i nh có kích th c l n h n. Cho đ n khi ả ộ ớ ế ụ ớ ố ớ ứơ ớ ơ ế

tìm th y. n u nh m t kh i nh r i đ c tìm th y trong m t trong danh ấ ế ư ộ ố ớ ỗ ựơ ấ ộ

sách cao h n, b qu n lý b nh c t kh i nh đó và đ c nó trong vùng nhơ ộ ả ộ ớ ắ ố ớ ặ ớ

phù h p b i vi c k t h p thành m t kh i tr v cho kh i mà nó g n k ợ ở ệ ế ợ ộ ố ả ề ố ầ ề

v i kh i nh khác. B qu n lý b nh c g ng đi u khi n phân m nh b i ớ ố ớ ộ ả ộ ớ ố ắ ề ể ả ở

Page 14: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

k t h p thành kh i mà và nó là k ti p c a m t kh i nh r i ,b qu n lý ế ợ ố ế ế ủ ộ ố ớ ỗ ộ ả

b nh k t h p hai kh i nh thành m t và thay th trên danh sách vùng ộ ớ ế ợ ố ớ ộ ế

nh thích h p. Nh hình 3.6. ớ ợ ư

Hình 3. 6 K t h p các kh i nhế ợ ố ớ

1.5.2.3. Qu n lý ả chunk Qu n lý ả pool cung c p nhi u cách hi u qu đ ấ ề ệ ả ể

qu n lý m t t p các kh i có kích th c khác nhau. Tuy nhiên, nh ng tính ả ộ ậ ố ướ ữ

năng này có chi phí c a nó, b qu n lý ủ ộ ả pool t o 32 byte overhead trên m i ạ ỗ

b nh . M c d u overhead này không quan tr ng l m đ i v i kh i d li u ộ ớ ặ ầ ọ ắ ố ớ ố ữ ệ

l n, đ i v i ớ ố ớ pool có hàng ngàn kh i d li u nh h n thì overhead m i tr ố ữ ệ ỏ ơ ớ ở

nên đáng quan tâm. Đ t o thêm s l a ch n thì kernel cung c p b qu n ể ạ ự ự ọ ấ ộ ả

lý b nh khác g i là b qu n lý b nh ộ ớ ọ ộ ả ộ ớ chunk, nó có th qu n lý l ng l nể ả ượ ớ

pool có nhi u kh i nh nh mà không có overhead Không gi ng nh qu n ề ố ớ ỏ ố ư ả

lý pool, b qu n lý chunk không t o ra nh ng danh sách vùng nh r i v i ộ ả ạ ữ ớ ỗ ớ

kích th c khác nhau, thay vào đó, b qu n lý chunk qu n lý m t t p các ướ ộ ả ả ộ ậ

kh i nh c đ nh đ c ch đ nh t m t trong các vùng nh pool. Trong ố ớ ố ị ượ ỉ ị ừ ộ ớ

Page 15: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

m t vài tr ng h p, b qu n lý chunk có th đ c xem nh là m t b ộ ườ ợ ộ ả ể ượ ư ộ ộ

qu n lý ả pool vùng nh con. Các chính sách th ng đ c th c hi n là: m t ớ ườ ượ ự ệ ộ

ti n trình yêu c u m t v trí c a m t kh i nh t m t vùng nh ế ầ ộ ị ủ ộ ố ớ ừ ộ ớ pool đ c ặ

bi t. M t ti n trình sau đó g i đ n b qu n lý ệ ộ ế ọ ế ộ ả chunk đ chia kh i nh ể ố ớ

thành m t chu i các ộ ỗ chunk có kích th c c đ nh và nh h n và s d ng ướ ố ị ỏ ơ ử ụ

b qu n lý ộ ả chunk đ đ nh ra nh ng vùng nh r i khi c n. Thu t l i đây ể ị ữ ớ ỗ ầ ậ ợ ở

là ch có 32 byte overhead và b qu n lý ỉ ộ ả pool thì không b t bu c c p phát ắ ộ ấ

và l y l i hàng ngàn phân m nh nh h n. Vì v y, kh năng ph n m nh ấ ạ ả ỏ ơ ậ ả ầ ả

trong pool gi m đáng k . ả ể

1.5.2.4. V n đ c p phát b nhấ ề ấ ộ ớ N u yêu c u b nh mà nó có l i, ho c ế ầ ộ ớ ỗ ặ

không đ b nh đ c p phát thì sẽ xu t hi n thông báo nh sau: ủ ộ ớ ể ấ ấ ệ ư

%SYS-2-MALLOCFAIL: Memory allocation of 2129940 bytes failed from

0x6024C00C, pool I/O, alignment 32

- 60232A40 6025A6C8 60CEA748 - 60CDD700 60CDF5F8 60CDF6E8

60CDCB40 60286F1C 602951 C b n, có hai lý do gây ra l i này: - Không có ơ ả ỗ

đ b nh r i - B nh có s n nh ng nó b phân m nh vì v y các kh i nhủ ộ ớ ỗ ộ ớ ẵ ư ị ả ậ ố ớ

không liên t c làm không đ kích th c. L i do thi u b nh th ng x y ụ ủ ướ ỗ ế ộ ớ ườ ả

ra b i vì, th ng không đ b nh trên h đi u hành đ h tr t t c các ở ườ ủ ộ ớ ệ ề ể ổ ợ ấ ả

ho t đ ng c a h đi u hành. Khi đi u này x y ra , b n có hai l a ch n : ạ ộ ủ ệ ề ề ả ạ ự ọ

thêm b nh , ho c gi m tính năng c u hình, interface, cho đ n khi v n đ ộ ớ ặ ả ấ ế ấ ề

đ c gi i quy t. Trong m t vài tr ng h p thì b nh l i có th do l ượ ả ế ộ ườ ợ ộ ớ ỗ ể ổ

h ng đ c g i là l h ng b nh m t trong các ti n trình. M c memory ổ ượ ọ ổ ổ ộ ớ ở ộ ế ụ

leak đ c p đ n s ki n m t ti n trình ti p t c chi m gi vùng nh ề ậ ế ự ệ ộ ế ế ụ ế ữ ớ

nh ng không bao gi gi i phóng nó, cu i cùng là nó chi m h t t t c các ư ờ ả ố ế ế ấ ả

b nh có s n. L h ng b nh th ng b gây b i l i ph n m m. ộ ớ ẵ ỗ ổ ộ ớ ườ ị ở ỗ ầ ề

1.6. Qu n lý b đ m góiả ộ ệ Trong đ nh tuy n gói d li u, b t c ho t đ ng ị ế ữ ệ ấ ứ ạ ộ

l u tr hay chuy n d li u đ u ph i c n có m t n i đ l u tr d li u ư ữ ể ữ ệ ề ả ầ ộ ơ ể ư ữ ữ ệ

trong khi d li u đang đ c đ nh tuy n trên đ ng truy n. Thông th ng ữ ệ ượ ị ế ườ ề ườ

Page 16: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

thì t o ra m t b đ m đ l u gi các gói đ n trong khi ho t đ ng chuy n ạ ộ ộ ệ ể ư ữ ế ạ ộ ể

m ch đang ho t đ ng. B i vì kh năng đ nh tuy n gói là trung tâm c a c uạ ạ ộ ở ả ị ế ủ ấ

trúc h đi u hành IOS. IOS ch a thành ph n chuyên bi t đ qu n lý nh ng ệ ề ứ ầ ệ ể ả ữ

vùng đ m này. Thành ph n này đ c g i là b qu n lý vùng đ m b nh . ệ ầ ượ ọ ộ ả ệ ộ ớ

IOS s d ng thành ph n này đ t o và qu n lý nh t quán m t chu i các ử ụ ầ ể ạ ả ấ ộ ỗ

vùng đ m cho chuy n m ch trên m i platform. B đ m trong vùng này ệ ể ạ ỗ ộ ệ

đ c bi t chung là nh ng b đ m h th ng B qu n lý vùng b đ m cung ượ ế ữ ộ ệ ệ ố ộ ả ộ ệ

c p m t cách ti n l i đ qu n lý m t t p các b đ m có kích th c c th .ấ ộ ệ ợ ể ả ộ ậ ộ ệ ướ ụ ể

M t d u nó có th đ c s d ng đ qu n lý b t c lo i b đ m nào, b ặ ầ ể ượ ử ụ ể ả ấ ứ ạ ộ ệ ộ

qu n lý b đ m đ c s d ng chính đ qu n lý nh ng vùng b đ m gói. ả ộ ệ ượ ử ụ ể ả ữ ộ ệ

Nh ng vùng đ m gói đ c t o t các vùng nh ữ ệ ượ ạ ừ ớ pool có s n. Đ t o m t ẵ ể ạ ộ

vùng, b qu n lý b đ m yêu c u m t kh i nh t b qu n lý pool và chia ộ ả ộ ệ ầ ộ ố ớ ừ ộ ả

cho b đ m. B qu n lý b đ m gói sau đó t o m t danh sách cho t t c ộ ệ ộ ả ộ ệ ạ ộ ấ ả

các b đ m r i và theo dõi các vùng nh này. Nh ng vùng đ m có th là ộ ệ ỗ ớ ữ ệ ể

đ ng hay tĩnh, vùng b đ m tĩnh đ c t o v i s b đ m c đ nh, không ộ ộ ệ ượ ạ ớ ố ộ ệ ố ị

thêm b đ m vào vùng b đ m tĩnh này. Vùng b đ m đ ng đ c t o v i ộ ệ ộ ệ ộ ệ ộ ượ ạ ớ

m t s b đ m t i thi u. G i là b đ m th ng xuyên, có th thêm ho c ộ ố ộ ệ ố ể ọ ộ ệ ườ ể ặ

xóa các b đ m. V i các vùng nh đ ng, n u b qu n lý b đ m nh n ộ ệ ớ ớ ộ ế ộ ả ộ ệ ậ

đ c yêu c u khi vùng nh r ng, nó c g ng m r ng vùng nh và đáp ượ ầ ớ ỗ ố ắ ở ộ ớ

ng yêu c u ngay l p t c. N u nó không th m r ng vùng nh , thì yêu ứ ầ ậ ứ ế ể ở ộ ớ

c u b l i và th c hi n m r ng vùng nh sau đó. Vùng b đ m đ c phân ầ ị ỗ ự ệ ở ộ ớ ộ ệ ượ

l p public (dùng chung) ho c private (dùng riêng). Vùng public, đ c s ớ ặ ượ ử

d ng b i b t c ti n trình c a h th ng, private đ c t o cho m t t p các ụ ở ấ ứ ế ủ ệ ố ượ ạ ộ ậ

ti n trình s d ng. ế ử ụ

1.6.1. B đ m h th ngộ ệ ệ ố M i IOS đ u có m t t p các b đ m public đ nh ỗ ề ộ ậ ộ ệ ị

tr c g i là nh ng b đ m h th ng, nh ng b đ m này đ c s d ng ướ ọ ữ ộ ệ ệ ố ữ ộ ệ ượ ử ụ

cho ti n trình chuy n m ch các gói d li u và t o gói (nh gói keepalive, ế ể ạ ữ ệ ạ ư

gói c p nh t đ nh tuy n..). ậ ậ ị ế

Page 17: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

B n có th dùng câu l nh show buffer đ hi n th các vùng b đ m này ạ ể ệ ể ể ị ộ ệ

router#>show buffer Buffer elements: 500 in free list (500 max allowed)

747314 hits, 0 misses, 0 created Public buffer pools: Small buffers, 104

bytes (total 50, permanent 50): 46 in free list (20 min, 150 max allowed)

530303 hits, 6 misses, 18 trims, 18 created 0 failures (0 no memory)

Middle buffers, 600 bytes (total 25, permanent 25): 25 in free list (10 min,

150 max allowed) 132918 hits, 3 misses, 9 trims, 9 created 0 failures (0 no

memory) Big buffers, 1524 bytes (total 50, permanent 50): 50 in free list (5

min, 150 max allowed) 47 hits, 0 misses, 0 trims, 0 created 0 failures (0 no

memory) VeryBig buffers, 4520 bytes (total 10, permanent 10): 10 in free

list (0 min, 100 max allowed) 26499 hits, 0 misses, 0 trims, 0 created 0

failures (0 no memory) Large buffers, 5024 bytes (total 0, permanent 0): 0

in free list (0 min, 10 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0

failures (0 no memory) Huge buffers, 18024 bytes (total 0, permanent 0): 0

in free list (0 min, 4 max allowed) 0 hits, 0 misses, 0 trims, 0 created 0

failures (0 no memory) … Đ hi u đ c b qu n lý vùng b đ m ho t ể ể ượ ộ ả ộ ệ ạ

đ ng nh th nào v i b đêm h th ng, xem ví d sau: B t đ u v i 16 b ộ ư ế ớ ộ ệ ố ụ ắ ầ ớ ộ

đ m trong danh sách r i. Hình 3.7 ệ ỗ

Small buffers, 104 bytes (total 16, permanent 16): 16 in free list (8 min, 16

max allowed) 0 hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)

Page 18: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Hình 3. 7 b đ m h th ngộ ệ ệ ố

IOS nh n 8 gói phù h p v i 8 vùng b đ m small 104 byte. Ph n m m ậ ợ ớ ộ ệ ầ ề

nh n gói yêu c u và nh n 8 và nh n 8 b đ m t vùng b đ m small. Lúc ậ ầ ậ ậ ộ ệ ừ ộ ệ

đó danh sách r i (free list) sẽ gi m xu ng còn 8 nh hình 3.8. ỗ ả ố ư Small buffers,

104 bytes (total 16, permanent 16): 8 in free list (8 min, 16 max allowed) 8

hits, 0 misses, 0 trims, 0 created 0 failures (0 no memory)

Hình 3. 8 b đ m h th ngộ ệ ệ ố

Page 19: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Bây gi IOS nh n thêm 4 gói n a tr c khi x lý, Ph n m m nh n gói yêu ờ ậ ữ ướ ử ầ ề ậ

c u và nh n thêm 4 b đ m n a t vùng b đ m small. ầ ậ ộ ệ ữ ừ ộ ệ Small buffers, 104

bytes (total 16, permanent 16): 4 in free list (8 min, 16 max allowed) 12 hits,

4 misses, 0 trims, 0 created 0 failures (0 no memory) S b đ m trong danh ố ộ ệ

sách r i đã gi m còn 4 và có 12 đ y, miss là 4 do t i thi u (min) là 8 mà chỗ ả ầ ố ể ỉ

còn 4. Nh hình 3.9. ư

Hình 3. 9 b đ m h th ngộ ệ ệ ố

Vì d i m c t i thi u nên b qu n lý vùng b đ m, ch y ti n trình qu nở ướ ứ ố ể ộ ả ộ ệ ạ ế ả

lý pool đ m r ng vùng nh , và t o thêm b đ m. Sau khi t o xong b ể ở ộ ớ ạ ộ ệ ạ ộ

đ m ta có thêm 4 vùng nh nh hình 3.10 ệ ớ ư

Small buffers, 104 bytes (total 20, permanent 16): 8 in free list (8 min, 16 max

allowed) 12 hits, 4 misses, 0 trims, 4 created 0 failures (0 no memory

Page 20: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Hình 3. 10 b đ m h th ngộ ệ ệ ố

Bây gi gi s IOS yêu c u thêm 9 gói n a. Hình 3.11 ờ ả ử ầ ữ Small buffers, 104

bytes (total 20, permanent 16): 0 in free list (8 min, 16 max allowed) 20 hits,

13 misses, 0 trims, 4 created 1 failures (0 no memory)

Hình 3. 11 b đ m h th ngộ ệ ệ ố

Lúc này sẽ có m t l i (ộ ỗ failures), vì m t gói b tràn. Sau đó IOS x lý gói và ộ ị ử

tr v b đ m hình 3.12 ả ề ộ ệ Small buffers, 104 bytes (total 20, permanent 16):

17 in free list (8 min, 16 max allowed) 20 hits, 13 misses, 0 trims, 4 created 1

failures (0 no memory)

Page 21: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Hình 3. 12 b đ m h th ngộ ệ ệ ố

B đ m r i lúc này là 17, tuy nhiên t i đa (ộ ệ ỗ ố max) cho phép là 16 cho nên

ti n trình qu n lý vùng b đ m ho t đ ng đ rút l i b đ m. Nh hình ế ả ộ ệ ạ ộ ể ạ ộ ệ ư

3.13 Small buffers, 104 bytes (total 20, permanent 16): 17 in free list (8 min,

16 max allowed) 20 hits, 13 misses, 1 trims, 4 created 1 failures (0 no

memory)

Hình 3. 13 b đ m h th ngộ ệ ệ ố

Cu i cùng IOS x lý t t c các gói còn l i và tr b đ m v cho ố ử ấ ả ạ ả ộ ệ ề pool Small

buffers, 104 bytes (total 16, permanent 16): 16 in free list (8 min, 16 max

allowed) 20 hits, 13 misses, 4 trims, 4 created 1 failures (0 no memory)

1.7. Trình đi u khi n thi t bề ể ế ị IOS ch a trình đi u khi n thi t b cho các ứ ề ể ế ị

thi t b ph n c ng, nh flash card, NVRAM, nh ng đáng chú ý là trình đi u ế ị ầ ứ ư ư ề

khi n cho các giao ti p m ng Trình đi u khi n các giao ti p m ng cung ể ế ạ ể ể ế ạ

c p nh ng kh năng chính cho ho t đ ng c a gói d li u t i đ u ra c a ấ ữ ả ạ ộ ủ ữ ệ ạ ầ ủ

giao ti p. M i thi t b ch a hai thành ph n chính: thành ph n đi u khi n ế ỗ ế ị ứ ầ ầ ề ể

và thành ph n d li u. Thành ph n đi u khi n có trách nhi m qu n lý ầ ữ ệ ầ ề ể ệ ả

Page 22: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

tình tr ng và tr ng thái c a thi t b (ví d , shut down trên m t c ng). ạ ạ ủ ế ị ụ ộ ổ

Thành ph n d li u có trách nhi m đ i v i t t c các lu ng ho t đ ng ầ ữ ệ ệ ố ớ ấ ả ồ ạ ộ

chuy n m ch gói d li u. Trình đi u khi n thi t b có quan h ch t chẽ ể ạ ữ ệ ề ể ế ị ệ ặ

v i ch c năng chuy n m ch gói Trình đi u khi n thi t b giao ti p m ng ớ ứ ể ạ ề ể ế ị ế ạ

d a trên h th ng IOS thông qua m t c u trúc đi u khi n đ c bi t g i là ự ệ ố ộ ấ ề ể ặ ệ ọ

IDB( interface descriptor block). IDB ch a, toàn b ch c năng đi u khi n ứ ộ ứ ề ể

thi t b , d li u, tr ng thái thi t b , ví d : đ a ch IP, tr ng thái c ng, th ng ế ị ữ ệ ạ ế ị ụ ị ỉ ạ ổ ố

kê gói là m t trong các tr ng hi n t i trong IDB. IOS duy trì m t IDB cho ộ ườ ệ ạ ộ

m i giao ti p hi n t i trên m t platform ỗ ế ệ ạ ộ

1.8. C u trúc chuy n m ch góiấ ể ạ Chuy n m ch gói là m t trong các ch c ể ạ ộ ứ

năng quan tr ng nh t c a router. Ho t đ ng bao quát nh sau: ọ ấ ủ ạ ộ ư - M t gói ộ

đ n m t c ng,ế ộ ổ - Đ a ch đích c a gói đ c ki m tra và so sánh d a và danh ị ỉ ủ ượ ể ự

sách đích đã bi t,ế - N u phù h p, gói đ c chuy n ti p ra c ng phù h p, - ế ợ ượ ể ế ổ ợ

N u không phù h p, gói b h y. R ràng v n đ chuy n m ch không quá ế ợ ị ủ ỏ ấ ề ể ạ

ph c t p, nh ng đ chuy n m ch đ c nhanh thì v n đ tr nên ph c ứ ạ ư ể ệ ạ ượ ấ ề ở ứ

t p. T c đ ho t đ ng không ch d a vào t c đ CPU, còn có nh ng nhân ạ ố ộ ạ ộ ỉ ự ố ộ ữ

t khác, kh năng th c thi c a bus I/O, t c đ b nh , đ u có nh h ng ố ả ự ủ ố ộ ộ ớ ề ả ưở

đ n s th c thi c a chuy n m ch. Đây là m t th thách đ i v i các nhà ế ự ự ủ ể ạ ộ ử ố ớ

phát tri n IOS, làm th nào đ t c đ c chuy n m ch nhanh nh t mà có thể ế ể ố ộ ể ạ ấ ể

gi i h n trên các thành ph n CPU, b nh , bus I/O. Khi mà kích th c và ớ ạ ầ ộ ớ ướ

s m ng đ nh tuy n tăng lên, nh ng ng i phát tri n IOS ti p t c tìm ra ố ạ ị ế ữ ườ ể ế ụ

nh ng cách t t nh t đ gi i quy t th thách th c thi này. Đ u tiên thì IOS ữ ố ấ ể ả ế ử ự ầ

ch có ch c năng chuy n m ch nh ng đã đ c c i thi n v sau, m t vài ỉ ứ ể ạ ư ượ ả ệ ề ộ

ph ng th c chuy n m ch d a trên t i u v ph n c ng, m t s khác ươ ứ ể ạ ự ố ư ề ầ ứ ộ ố

trên kỹ thu t ph n m m đ ch y trên nhi u platform khác nhau. Ngày nayậ ầ ề ể ạ ề

IOS có th chuy n m ch t i vài trăm ngàn gói trên m t giây, s d ng b n ể ể ạ ớ ộ ử ụ ạ

đ nh tuy n t i vài trăm ngàn tuy n đi. Sau đây là m t vài ph ng th c ị ế ớ ế ộ ươ ứ

chuy n m ch trên IOS phiên b n 12.0. ể ạ ả - Process switching - Fast switching

Page 23: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

- Autonomous switching - Silicon switching engine (SSE) switching -

Optimum switching - Distributed fast switching - Cisco Express Forwarding

(CEF) - Distributed Cisco Express Forwarding (dCEF ) Chúng ta ch đi chi ỉ

ti t ph ng th c: process switching ế ươ ứ

1.8.1. Process switching Là ph ng th c chuy n m ch đ c th c hi n ươ ứ ể ạ ượ ự ệ

đ u tiên trên IOS. C b n nó s d ng brute-force đ chuy n m ch. M c ầ ơ ả ử ụ ể ể ạ ặ

d u Process switching có th chi m m t l ng l n CPU. Nh ng nó có u ầ ể ế ộ ượ ớ ư ư

đi m là đ c l p v i ph n c ng, làm cho nó tr nên ph bi n trên t t c cácể ộ ậ ớ ầ ứ ở ổ ế ấ ả

s n ph m c a Cisco (t ng thích v i nhi u lo i ph n c ng). Nó cũng cung ả ẩ ủ ươ ớ ề ạ ầ ứ

c p m t vài kh năng phân b l u l ng t i mà các lo i chuy n m ch ấ ộ ả ố ư ượ ả ạ ể ạ

khác không có.

1.8.1.1. Ví dụ Các b c th c hi n c a Process switching: hình 3.14 ướ ự ệ ủ

Hình 3. 14 Process switching

B c 1:ướ B t đ u v i m t c ng trên router, nó nh n bi t đ c có m t gói ắ ầ ớ ộ ổ ậ ế ượ ộ

trên đ ng truy n c n đ c x lý. C ng đó nh n gói và chuy n t i b nhườ ề ầ ượ ử ổ ậ ể ớ ộ ớ

I/O. B c 2:ướ C ng sẽ g i m t ng t t i b x lý đ báo cho b vi x lý ổ ở ộ ắ ớ ộ ử ể ộ ử

Page 24: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

chính, r ng nó nh n đ c m t gói và đang đ i trong b nh I/O c n đ c ằ ậ ượ ộ ợ ộ ớ ầ ượ

x lý. Đây g i là receive interrupt (nh n m t ng t). Ph n m m ng t c a ử ọ ậ ộ ắ ầ ề ắ ủ

IOS ki m tra thông tin header (lo i encapsulation, header l p m ng, ...). xácể ạ ớ ạ

đ nh nó là gói IP, đ t nó gói trên hàng đ i input đ th c hi n x lý thích ị ặ ợ ể ự ệ ử

h p. Đ i v i gói ip, ti n trình x lý đ c đ t tên là ip_input ợ ố ớ ế ử ượ ặ B c 3:ướ Có ít

nh t m t gói trong hàng đ i, ti n trình ip_input đ đi u ki n đ ch y. ấ ộ ợ ế ủ ề ệ ể ạ

B c 4 và 5:ướ Sau khi ti n trình ip_input ch y. Ho t đ ng chuy n gói th c ế ạ ạ ộ ể ự

s có th b t đ u. Trong ví d này: ip_input tìm trong b ng đ nh tuy n ự ể ắ ầ ụ ả ị ế

xem có t n t i đ ng đi t i đ a ch ip đích không. N u nh tìm th y thì nó ồ ạ ườ ớ ị ỉ ế ư ấ

l y đ a ch c a hop k ti p t b n đ nh tuy n. Sau đó nó tìm trong ARP ấ ị ỉ ủ ế ế ừ ả ị ế

cache đ l y thông tin c n thi t đ t o m t đ a ch mac m i cho hop k ể ấ ầ ế ể ạ ộ ị ỉ ớ ế

ti p. Ti n trình ip_input t o m t header có đ a ch mac m i. Cu i cùng gói ế ế ạ ộ ị ỉ ớ ố

đ c đ a vào hàng đ i đ truy n ra ngoài c ng đ c ch n. ượ ư ợ ể ề ổ ượ ọ B c 6:ướ Khi

mà c ng đ c ch n xác nh n, có m t gói đang đ i đ chuy n ra, thì nó l y ổ ượ ọ ậ ộ ợ ể ể ấ

t hàng đ i (t b nh I/O) và truy n đi trên m ng. ừ ợ ừ ộ ớ ề ạ B c 7: ướ Sau khi c ng ổ

k t thúc vi c truy n gói, nó sẽ báo cho b x lý gói đã đ c truy n đi. IOS ế ệ ề ộ ử ượ ề

sau đó c p nh t bi n đ m s gói đi ra ngoài và gi i phóng vùng nh I/O ậ ậ ế ế ố ả ớ

1.8.1.2. Phân b l u l ng t i v i Process switchingố ư ượ ả ớ M t trong nh ng ộ ữ

u đi m c a Process switching là kh năng phân b l u l ng t i trên gói. ư ể ủ ả ố ư ượ ả

L u l ng t i trên gói, cung c p m t cách khá đ n gi n trên nhi u link ư ượ ả ấ ộ ơ ả ề

(liên k t) khi t n t i nhi u đ ng t i đích. Khi có nhi u đ ng t i đích, ế ồ ạ ề ườ ớ ề ườ ớ

các gói đ c chuy n m ch t đ ng đ c phân ph i gi a gi a các đ ng cóượ ể ạ ự ộ ượ ố ữ ữ ườ

s n này d a trên metric đ c gán cho m i đ ng. Metric ho c cost cho ẵ ự ượ ỗ ườ ặ

m i đ ng trong b ng đ nh tuy n đ c s d ng đ tính toán m t bi n ỗ ườ ả ị ế ượ ử ụ ể ộ ế

đ m phân ph i t i. Mà th t s s d ng đ quy t đ nh đ ng nào đ c ế ố ả ậ ự ử ụ ể ế ị ườ ượ

ch n. Ví d : nh hình 3.15 ọ ụ ư

Page 25: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

Hình 3. 15 phân b l u l ng t i .ố ư ượ ả

Router A có hai đ ng đ n m ng 10.1.4.0/24 ườ ế ạ

RouterA#show ip route 10.1.4.0 255.255.255.0 Routing entry for

10.1.4.0/24 Known via "static", distance 1, metric 0 Routing Descriptor

Blocks: 10.1.2.1 Route metric is 0, traffic share count is 1 * 10.1.3.1 Route

metric is 0, traffic share count is 1 Trong vi d này, thì gói th nh t sẽ dùng ụ ứ ấ

hop ti p theo là 10.1.3.1 và gói th hai 10.1.2.1, ti p t c nh v y. ế ứ ế ụ ư ậ

1.8.1.3. Nh c đi m c a process switchượ ể ủ

Nh c đi m c a ph ng pháp này t c đ c a nó. Process switch yêu c u ượ ể ủ ươ ố ộ ủ ầ

b ng đ nh tuy n cho m i gói, khi kích th c b ng đ nh tuy n tăng lên, th iả ị ế ọ ướ ả ị ế ờ

gian yêu c u tìm ki m trong b ng đ nh tuy n cũng tăng. Th i gian tìm ầ ế ả ị ế ờ

ki m tăng cũng là tăng th i gian s d ng CPU, nh h ng r t nhi u đ n ế ờ ử ụ ả ưở ấ ề ế

t c đ gói đ n. M c d u đi u này khó nh n th y trong nh ng m ng nh , ố ộ ế ặ ầ ề ậ ấ ữ ạ ỏ

nh ng đ i v i nh ng m ng lên t i hàng trăm, hàng ngàn node thì kích ư ố ớ ữ ạ ớ

th c b ng đ nh tuy n có ý nghĩa trong vi c s d ng CPU và s ti m n ướ ả ị ế ệ ử ụ ự ề ẩ

v đ nh tuy n (là th i gian gi a các gói đi vào và ra kh i h th ng). M t ề ị ế ờ ữ ỏ ệ ố ộ

nhân t nh h ng đ n Process switching là t c đ di chuy n d li u c a ố ả ưở ế ố ộ ể ữ ệ ủ

b nh . Đ i v i m t s h đi u hành, Process switch yêu c u các gói nh n ộ ớ ố ớ ộ ố ệ ề ầ ậ

đ c sao chép t vùng nh I/O đ n vùng nh khác tr c khi chúng đ c ượ ừ ớ ế ớ ướ ượ

chuy n m ch. Sau khi ti n trình đ nh tuy n k t thúc, nh ng gói ph i đ c ể ạ ế ị ế ế ữ ả ượ

sao chép tr l i vùng nh I/O tr c khi có th truy n đi. Ho t đ ng này ở ạ ớ ướ ể ề ạ ộ

Page 26: KIẾN TRÚC HỆ ĐIỀU HÀNH IOS

c n s ho t đ ng m nh mẽ c a CPU, vì v y mà đ i v i nh ng h đi u ầ ự ạ ộ ạ ủ ậ ố ớ ữ ệ ề

hành này, Process switch có th th c thi r t ch m. Tr l i ví d trên, ti n ể ự ấ ậ ở ạ ụ ế

trình ip_input c n có 3 thành ph n khoá c a d li u đ chuy n m ch gói. -ầ ầ ủ ữ ệ ể ể ạ

Reachability (có đích đ n): ế Có đích hay không, n u có thì đ a ch m ng ế ị ỉ ạ

c a hop k ti p là gì đ chuy n gói t i đích. D li u này trong b ng đ nh ủ ế ế ể ể ớ ữ ệ ả ị

tuy nế

- Interface ( c ng ): ổ C ng nào sẽ đ c s d ng đ truy n gói d li u t i ổ ượ ử ụ ể ề ữ ệ ớ

đích. D li u này cũng n m trong b ng đ nh tuy n. ữ ệ ằ ả ị ế

- Header l p MAC:ớ Đ a ch MAC đ c đ t trên đ đ n đúng hop k ti p, ị ỉ ượ ặ ể ế ế ế

đ a MAC l y t b ng ARP (Address Resolution Protocol) cho ip ho c b ng ị ấ ừ ả ặ ả

tham chi u khác, nh b ng frame relay map.ế ư ả