Bài giảng Hệ điều hành - Chương 5: Quản lý vào ra - Đỗ Quốc Huy
C-SCAN
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
Nguyên tắc: Xử lý các cylinders như một danh sách nối vòng: Cylinder ngoài
cùng nối tiếp với cylinder trong cùng
l Đầu từ d/chuyển từ cylinder ngoài cùng -> cylinder trong cùng
l Phục vụ cho các y/cầu gặp trên đường đi
l Khi tới Cylinder trong cùng, quay ngược lại Cylinder ngoài cùng
l Không phục vụ cho các y/cầu gặp trên đường đi
l Nhận xét:
l Thu được thời gian đợi đồng nhất hơn thuật toán SCAN
l Khi đầu đọc đạt tới 1 phía của đĩa (cylinders trong cùng, ngoài
cùng), mật độ các y/cầu xuất hiện ở phía bên kia > vị trí hiện tại (do
vừa đi qua).
l Các y/cầu này cũng đợi lâu hơn ⇒ Quay ngay lập tức về phía bên
kia
Vấn đề lựa chọn thuật toán
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
l SSTF: Phổ biến, hiệu quả hơn FCFS
l SCAN/C-SCAN hoạt động tốt hơn cho hệ thống có nhiều y/cầu truy
nhập đĩa
l Không gặp vấn đề "starvation: chờ đợi quá lâu"
l Hiệu quả của các t/toán phụ thuộc số lượng và kiểu các y/cầu
l Y/cầu truy xuất đĩa bị ảnh hưởng bởi các p/pháp phân phối đĩa cho
file
l P/phối liên tục: đưa ra các y/cầu truy xuất lân cận nhau
l P/phối liên kết/ chỉ mục: có thể gồm các khối được phân bố rộng
rãi trên đĩa
l T/toán điều phối truy nhập đĩa có thể được viết như những modul
riêng biệt của HĐH cho phép có thể thay thế bởi các t/toán khác khi
cần thiết
l Cả SSTF và LOOK đều có thể là lựa chọn hợp lý cho t/ toán mặc định
46 trang |
Chia sẻ: hachi492 | Ngày: 05/01/2022 | Lượt xem: 490 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Bài giảng Hệ điều hành - Chương 5: Quản lý vào ra - Đỗ Quốc Huy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Hệ Điều Hành
(Nguyên lý các hệ điều hành)
Đỗ Quốc Huy
huydq@soict.hust.edu.vn
Bộ môn Khoa Học Máy Tính
Viện Công Nghệ Thông Tin và Truyền Thông
①Nguyên tắc quản lý chung
②Dịch vụ vào ra của hệ thống
③ Hệ thống vào ra đĩa
Chương 5 Quản lý vào ra
lGiới thiệu
lNgắt và xử lý ngắt
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
Thiết bị vào ra
l Đa dạng, nhiều loại thiết bị, mỗi loại có nhiều kiểu khác nhau
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
Thiết bị vào ra
Quan điểm
l kỹ thuật: là các thiết bị với bộ VXL, motor, các linh kiện khác
l lập trình: Giao diện như phần mềm để nhận lệnh, thực hiện
và trả kết quả về
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
Thiết bị vào ra
l Phân loại thiết bị ngoại vi
l khối (Đĩa từ, băng từ)
l Thông tin được lưu trữ có kích thước cố định và địa
chỉ riêng
l Có thể đọc ghi 1 khối độc lập với khối khác
l Tồn tại thao tác định vị thông tin (seek)
l ký tự (Máy in, Bàn phím, chuột,..)
l Chấp nhận luồng ký tự, không có cấu trúc khối
l Không có thao tác định vị thông tin
l Loại khác: Đồng hồ
Thiết bị điều khiển I
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
l Thiết bị ngoại vi (Tbnv) đa dạng và nhiều loại
l CPU không biết hết ⇒ Không tồn tại tín hiệu riêng cho
từng thiết bị
l Processor không điều khiển trực tiếp thiết bị
l TBNV được nối với hệ thống qua thiết bị điều khiển (D.C -
Device Controller-Bộ điều khiển thiết bị)
l Các mạch điện tử được cắm trên các khe cắm (slot) của
mainboard máy tính
Thiết bị điều khiển II
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
Thiết bị điều khiển II
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
l Mỗi TBĐK có thể điều khiển được
1,2,4,.. Tbnv
l Tùy theo số giắc cắm có trên
TBĐK
l Nếu giao diện điều khiển chuẩn
(ANSI, IEEE, ISO,...) có thể nối
tới nhiều thiết bị khác
l Mỗi TBĐK có các thanh ghi riêng để làm việc với CPU
l Dùng các không gian địa chỉ đặc biệt cho các thanh ghi:
cổng vào ra
Thiết bị điều khiển III
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
l Giao diện TBĐK và TBNV: Giao diện mức rất thấp
l Sector = 512bytes = 4096bits
l Bộ điều khiển đĩa phải đọc/ghi các bit và nhóm lại thành các sector
l HĐH chỉ làm việc với các TBĐK
l Thông qua các thanh ghi điều khiển của thiết bị
l Các câu lệnh và tham số sẽ được đưa vào các thanh ghi điều khiển
l Khi 1 lệnh được bộ điều khiển chấp nhận, CPU sẽ để cho bộ điều
khiển hoạt động một mình và nó quay sang làm công việc khác
l Khi lệnh thực hiện xong, bộ điều khiển sẽ báo cho CPU bằng tín
hiệu ngắt
l CPU sẽ lấy KQ và trạng thái thiết bị thông qua các thanh ghi điều
khiển
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
Thiết bị điều khiển IV
Trình điều khiển thiết bị (Device driver)
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
l Là đoạn mã trong nhân của hệ thống cho phép tương tác trực tiếp với
phần cứng thiết bị
l Cung cấp 1 giao diện chuẩn cho các Tbnv khác nhau
l Các device driver thường được chia làm 2 mức
l Mức cao : Được truy nhập qua các lời gọi hệ thống
l Cài đặt tập lời gọi chuẩn như open(), close(), read(), write()...
l Là giao diện của nhân HĐH với trình điều khiển
l Luồng mức cao khởi động thiết bị thực hiện vào/ra và sau đó
đặt luồng điều khiển tạm nghỉ
l Mức thấp: Được thực hiện như 1 thủ tục ngắt
l Đọc dữ liệu đầu vào, hoặc đưa khối dữ liệu tiếp theo ra ngoài
l Đánh thức luồng tạm nghỉ mức trên khi vào/ra kết thúc
Chu kỳ của một yêu cầu vào ra
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
Giao tiếp thiết bị ngoại vi với hệ điều hành
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.1 Giới thiệu
l Sau khi HĐH gửi yêu cầu ra tbnv, HĐH cần phải biết
l Tbnv hoàn thành yêu cầu vào ra
l Tbnv gặp lỗi
l Có thể thực hiện theo 2 p/pháp Ngắt và thăm dò
l Ngắt (I/O interrupts)
l Tbnv phát sinh ra 1 tín hiệu ngắt để báo cho CPU biết
l IRQ: Đường dẫn vật lý đến bộ quản lý ngắt
l Ánh xạ các tín hiệu IRQ thành các vector ngắt
l Gọi tới chương trình xử lý ngắt
l Thăm dò (polling)
l HĐH chu kỳ kiểm tra thanh ghi trạng thái của thiết bị
l Lãng phí chu kỳ thăm dò nếu thao tác vào ra không thường xuyên
l Các thiệt bị hiện thời có thể kết hợp cả 2 p/pháp (VD Các thiết bị mạng
băng thông cao)
l Ngắt khi gói tin đầu tiên tới
l Thăm dò với các gói tin tiếp theo cho tới khi vùng đệm rỗng
lGiới thiệu
lNgắt và xử lý ngắt
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
Khái niệm ngắt
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.2 Ngắt và xử lý ngắt
Ngắt là phương tiện để cho các thiết bị khác trong hệ
thống báo cho processor biết trạng thái của nó
Ngắt là hiện tượng dừng đột xuất chương trình để chuyển
sang thực hiện chương trình khác ứng với một sự kiện
nào đó xảy ra
l Ngắt >< chương trình con !?
Phân loại ngắt
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.2 Ngắt và xử lý ngắt
l Theo nguồn gốc
l Ngắt bên trong
l Ngắt bên ngoài
l Theo thiết bị
l Ngắt cứng
l Ngắt mềm
l Theo khả năng quản lý
l Ngắt che được
l Ngắt không che được
l Theo thời điểm ngắt
l Yêu cầu
l Báo cáo
Xử lý ngắt
Chương 5: Quản lý vào ra
1. Nguyên tắc chung
1.2 Ngắt và xử lý ngắt
① Ghi nhận đặc trưng sự kiện gây ngắt vào ô nhớ cố định
② Ghi nhận trạng thái của tiến trình bị ngắt
③ Chuyển địa chỉ của chương trình xử lý ngắt vào thanh ghi
con trỏ lệnh
l Sử dụng bảng vector ngắt (IBM-PC)
④ Thực hiện chương trình xử lý ngắt
⑤ Khôi phục lại tiến trình bị ngắt
①Nguyên tắc quản lý chung
②Dịch vụ vào ra của hệ thống
③Hệ thống vào ra đĩa
Chương 5 Quản lý vào ra
lVùng đệm (Buffer)
lQuản lý lỗi vào ra
lKỹ thuật SPOOL
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.1 Vùng đệm
Khái niệm chung
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.1 Vùng đệm
l Đặc trưng của Tbnv: hoạt động chậm
l Kích hoạt thiết bị
l Chờ đợi thiết bị đạt được trạng thái h/động thích hợp
l Chờ đợi các thao tác vào ra được thực hiện
l Đảm bảo hiệu năng của hệ thống cần
l Giảm số lượng thao tác vào ra, làm việc với từng khối
dữ liệu
l Thực hiện song song thao tác vào ra với các t/tác khác
l Thực hiện trước các phép truy nhập
Vùng đệm: Vùng nhớ trung gian, làm nơi lưu trữ thông
tin trong các thao tác vào ra
Phân loại vùng đệm 1
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.1 Vùng đệm
l Vùng đệm vào
l Có thể thực hiện ngay phép truy nhập dữ liệu
l Ví dụ đọc đĩa
l Vùng đệm ra
l Thông tin được đưa ra vùng đệm, khi nào vùng
đệm đầy sẽ đưa ra thiết bị
Phân loại vùng đệm 2
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.1 Vùng đệm
l Vùng đệm gắn với thiết bị
l Được xây dựng khi mở thiết bị/file
l Phục vụ riêng cho thiết bị bị xóa khi đóng thiết bị
l Thích hợp khi các thiết bị có cấu trúc bản ghi vật lý khác nhau
l Vùng đệm gắn với hệ thống
l Xây dựng khi khởi tạo hệ thống, không gắn với thiết bị cụ thể
l Tồn tại trong suốt quá trình hoạt động của hệ thống
l Mở file/thiết bị ⇒ Gắn với 1 vùng đệm có sẵn
l Khi đóng file/thiết bị⇒ vùng đệm được trả về hệ thống
l Thích hợp khi các thiết bị có cấu trúc bản ghi vật lý chung
l Tránh việc tạo xóa vùng đệm nhiều lần
l Vùng đệm trở thành các tài nguyên găng ⇒ phải điều độ
Phân loại vùng đệm 3
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.1 Vùng đệm
l Vùng đệm trung chuyển
l Vùng đệm vào
l Vùng đệm ra
l Vùng đệm xử lý
l Vùng đệm vòng tròn
l Vùng đệm vào
l Vùng đệm ra
l Vùng đệm xử lý
lVùng đệm (Buffer)
lQuản lý lỗi vào ra
lKỹ thuật SPOOL
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2. 2 Quản lý lỗi vào ra
Đặt vấn đề
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.2 Quản lý lỗi vào ra
l Lỗi luôn có thể xảy ra tại mọi bộ phận của hệ thống
l Phần cứng: Intel 486?
l Phần mềm: Win 98 ?
l Tbnv: Hay gặp lỗi do tác động của môi trường
l Xử lý lỗi ⇒ Trách nhiệm của hệ thống
l Được quan tâm ngay tại giai đoạn thiết kế, chế tạo
l Kiểm tra chẵn/lẻ (parity check)
l Tổng kiểm tra (check sum)
l Các phép kiểm tra do phần cứng/phần mềm đảm nhiệm
l Yêu cầu sử dụng linh hoạt các phép kiểm tra
Xử lý lỗi
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.2 Quản lý lỗi vào ra
l Phát hiện lỗi -> hệ thống cố gắng khắc phục bằng cách t/hiện
lại nhiều lần
l Nếu lỗi ổn định ⇒Cố gắng khôi phục lại thông tin ban đầu
l Trường hợp lưu trữ, để đảm bảo chất lượng thông tin
l TBĐK đọc lại kết quả vừa lưu trữ
l So sánh với thông tin gốc/So sánh 2 tổng kiểm tra
l Kết quả báo cho hệ thống để có xử lý tương ứng
⇒ Lặp lại thao tác/ Thông báo lỗi
l Thiết bị vào ra thường cung cấp mã trả về (return code)
l Phân tích và đánh giá dựa trên mã nhận được
lVùng đệm (Buffer)
lQuản lý lỗi vào ra
lKỹ thuật SPOOL
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.3 Kỹ thuật SPOOL
Kỹ thuật SPOOL (Simultaneous peripheral operation on-line)
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.3 Kỹ thuật SPOOL
l Trên phương diện lập trình, Tbvr là
l Trạm nhận các yêu cầu từ chương trình và thực hiện
l Trả các mã trạng thái để hệ thống phân tích
-> có thể dùng phần mềm mô phỏng các Tbvr
l Tbvr có thể coi như tiến trình
l Được điều độ theo quy tắc quản lý TT
l Mục đích
l Mô phỏng quá trình điều khiển, quản lý Tbnv
l Kiểm tra hoạt động của các thiết bị đang chế tạo
l Tạo hiệu ứng sử dụng song song cho các thiết bị truy nhập
tuần tự
Kỹ thuật SPOOL: Ví dụ máy in ảo
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.3 Kỹ thuật SPOOL
Chương 5: Quản lý vào ra
2. Dịch vụ vào ra của hệ thống
2.3 Kỹ thuật SPOOL
Kỹ thuật SPOOL: Ví dụ nhập xuất thông tin
①Nguyên tắc quản lý chung
②Dịch vụ vào ra của hệ thống
③Hệ thống vào ra đĩa
Chương 5 Quản lý vào ra
lCấu trúc đĩa từ
lĐiều phối truy nhập đĩa
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3.1 Cấu trúc đĩa từ
Cấu trúc
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3.1 Cấu trúc đĩa từ
l Mô hình hóa như mảng một chiều các khối logic
l Khối logic là đơn vị trao đổi nhỏ nhất
l Ánh xạ liên tiếp các khối logic tới các sector của đĩa
l Khối 0 là sector đầu mặt 0 rãnh/Cylinder ngoài cùng
l Ánh xạ theo trật tự: Sector → Header → Track/Cylinder
l Ít phải dịch chuyển đầu từ khi đọc các sector kế tiếp nhau
Vấn đề truy nhập đĩa
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3.1 Cấu trúc đĩa từ
l HĐH có trách nhiệm sử dụng hiệu quả phần cứng
l Với đĩa: Thời gian truy nhập nhanh và băng thông cao
l Băng thông được tính dựa trên
l Tổng số bytes đã trao đổi
l Khoảng t/gian từ y/cầu dịch vụ đầu tiên cho tới khi hoàn
thành
l Thời gian truy nhập gồm 2 phần
l T/gian định vị (seek time) : T/gian dịch chuyển đầu từ tới
cylinders chứa sector cần truy nhập
l Độ trễ quay (Rotational latency) :T/gian chờ đợi để đĩa quay
tới sector cần truy nhập
Vấn đề truy nhập đĩa
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3.1 Cấu trúc đĩa từ
l Mục đích: cực tiểu hóa thời gian định vị
l Thời gian định vị ≈khoảng cách dịch chuyển
l Hàng đợi yêu cầu
l Đĩa và bộ đ/khiển
l sẵn sàng -> y/cầu truy nhập đc thực hiện ngay
l chưa sẵn sàng -> y/cầu đc đặt trong hàng đợi
l Hoàn thành 1 y/cầu truy nhập đĩa -> lựa chọn y/cầu nào?
lCấu trúc đĩa từ
lĐiều phối truy nhập đĩa
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3.2 Điều phối truy nhập đĩa
Các thuật toán
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
Tồn tại một số t/toán điều phối dịch vụ cho y/cầu vào ra đĩa
FCFS:First Come First Served
SSTF: Shortest Seek Time First
SCAN
C-SCAN: Circular SCAN
LOOK/C-LOOK
Giả thiết
l Các yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67
l Đầu đọc đang ở cylinder 53
FCFS
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
Truy nhập theo trật tự yêu cầu ⇒Không hiệu quả
Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67
45
85
59
85
108
110
2
146
Tổng: 630
SSTF
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
Chọn truy nhập có t/gian định vị từ vị trí hiện tại nhỏ nhất⇒Có thể
tồn tại y/c phải đợi vô hạn do y/c mới x/hiện gần đầu đọc hơn (tương tự SJF)
Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67
12
2
2
23
84
24
59
30
Tổng: 236
SCAN
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
Đầu từ dich chuyển từ cylinder ngoài cùng đến cylinder trong cùng và quay
ngược lại. Phục vụ cho các yêu cầu gặp trên đường đi
Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67
15
23
24
65 2 31
2
14
Tổng: 235
59
Đầu từ đang dịch về phía cylinder 0
C-SCAN
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
Nguyên tắc: Xử lý các cylinders như một danh sách nối vòng: Cylinder ngoài
cùng nối tiếp với cylinder trong cùng
l Đầu từ d/chuyển từ cylinder ngoài cùng -> cylinder trong cùng
l Phục vụ cho các y/cầu gặp trên đường đi
l Khi tới Cylinder trong cùng, quay ngược lại Cylinder ngoài cùng
l Không phục vụ cho các y/cầu gặp trên đường đi
l Nhận xét:
l Thu được thời gian đợi đồng nhất hơn thuật toán SCAN
l Khi đầu đọc đạt tới 1 phía của đĩa (cylinders trong cùng, ngoài
cùng), mật độ các y/cầu xuất hiện ở phía bên kia > vị trí hiện tại (do
vừa đi qua).
l Các y/cầu này cũng đợi lâu hơn ⇒ Quay ngay lập tức về phía bên
kia
C-SCAN
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
Đầu từ dich chuyển từ cylinder ngoài cùng đến cylinder trong cùng và quay
ngược lại. Phục vụ cho các yêu cầu gặp trên đường đi
Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67
LOOK/ C-LOOK
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
Phiên bản của SCAN/C-SCAN: Đầu đọc không di chuyển tới các cylinders
ngoài/trong cùng mà chỉ đến các y/cầu xa nhất về 2 phía rồi quay lại ngay
Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67
Vấn đề lựa chọn thuật toán
Chương 5: Quản lý vào ra
3. Hệ thống vào ra đĩa
3. 2 Điều phối truy nhập đĩa
l SSTF: Phổ biến, hiệu quả hơn FCFS
l SCAN/C-SCAN hoạt động tốt hơn cho hệ thống có nhiều y/cầu truy
nhập đĩa
l Không gặp vấn đề "starvation: chờ đợi quá lâu"
l Hiệu quả của các t/toán phụ thuộc số lượng và kiểu các y/cầu
l Y/cầu truy xuất đĩa bị ảnh hưởng bởi các p/pháp phân phối đĩa cho
file
l P/phối liên tục: đưa ra các y/cầu truy xuất lân cận nhau
l P/phối liên kết/ chỉ mục: có thể gồm các khối được phân bố rộng
rãi trên đĩa
l T/toán điều phối truy nhập đĩa có thể được viết như những modul
riêng biệt của HĐH cho phép có thể thay thế bởi các t/toán khác khi
cần thiết
l Cả SSTF và LOOK đều có thể là lựa chọn hợp lý cho t/ toán mặc định
Kết chương
Chương 5: Quản lý vào ra
1. Nguyên tắc quản lý chung
1. Giới thiệu
2. Ngắt và xử lý ngắt
2. Dịch vụ vào ra của hệ thống
1. Vùng đệm (Buffer)
2. Quản lý lỗi vào ra
3. Kỹ thuật SPOOL
3. Hệ thống vào ra đĩa
1. Cấu trúc đĩa từ
2. Điều phối truy nhập đĩa
Các file đính kèm theo tài liệu này:
- bai_giang_he_dieu_hanh_chuong_5_quan_ly_vao_ra_do_quoc_huy.pdf