Bài giảng Kiến trúc máy tính - Chương 6: Thực thi chương trình có ngắt trình bày về khái niệm Ngắt (Interrupt), chương trình I/O tiêu biểu, hoạt động của chương trình không ngắt, thủ tục ngắt tổng quát và một số nội dung khác.
BÀI THỰC THI CHƯƠNG TRÌNH CĨ NGẮT Khái niệm Ngắt (Interrupt) Hầu hết máy tính có chế cho phép ngắt trình xử lý bình thường CPU Có số loại ngắt phổ biến: Program: phát sinh điều kiện, kết thực thi thị, tràn số học, chia 0… Timer: phát sinh định thời CPU, cho phép OS thực chức thông thường I/O: phát sinh I/O controller, báo hồn tất công việc hay thông báo điều kiện lỗi Lỗi phần cứng Khái niệm Ngắt (Interrupt)… Ngắt thể đặc tính cấu trúc Các thiết bị hoạt động chậm nhiều so với CPU lãng phí CPU Ví dụ hoạt động in Ngắt phương thức nhằm cải thiện hiệu suất, CPU chuyển đến thực thi thị khác lúc hoạt động I/O diễn Chương trình I/O tiêu biểu Một chương trình I/O gồm có ba phần bản: Tuần tự thị nhằm chuẩn bị cho hoạt động I/O thực Lệnh I/O, gọi lệnh chương trình phải đợi thiết bị I/O thực chức u cầu Chương trình đợi theo cách lặp lại thao tác kiểm tra để xác định hoạt động I/O thực hay chưa Tuần tự thị làm thủ tục hoàn tất hoạt động I/O, ví dụ dựng cờ, thiết lập thơng báo… Hoạt động chương trình khơng ngắt Main program Call write I/O program I/O command Call write end Lộ trì trình thực th c thi Hoạt động chương trình khơng ngắt… Hoạt động I/O liên quan đến thiết bị với thao tác cơ-điện nhiều thời gian Chương trình I/O phải đợi cho thao tác I/O hồn tất => Chương trình phải dừng lại gặp thị I/O (ví dụ write) thời gian dài Hoạt động chương trình có ngắt Call write I/O command 2a 2b Call write 3a 3b Thời gian thao tác I/O kết thúc trước gặp thị I/O Interrupt Handler end Lộ trì trình thực th c thi Hoạt động chương trình có ngắt… Call write Call write I/O command Thời gian thao tác I/O chưa kết thúc gặp thị I/O Interrupt Handler end Lộ trì trình thực th c thi Thủ tục ngắt tổng quát Phát sinh tín hiệu ngắt: vi du từ I/O module Đáp ứng ngắt từ CPU: treo, chuyển Chương trình Interrupt handler Int req i i+1 M phục hồi thực thi Chu kỳ thị có ngắt Chương trình khơng chứa mã lệnh chun trách ngắt CPU & OS chịu trách nhiệm Chu kỳ ngắt (interrupt cycle): CPU kiểm tra phát int req 10 bắt đầu kêt thuc nạp thị kế Chu kỳ lấy thị thực thi Chu thi ngắt bị cấm Cho phép ngắt kiểm tra xử lý ngắt Chu kỳ ngắt 11 Sơ đồ trạng thái chu kỳ thị CPU truy xuất MM hay I/O nhiều toán hạng thị kế nhiều kết Vetor hay string kiểm tra ngắt xử lý ngắt Không ngắt Hoạt động bên CPU 12 Hoạt động ngắt Interrupt Handler Nếu ngắt xảy ra, xử lý tiến hành: Dừng hoạt động thực thi hành lưu ngữ cảnh Gán địa Int handler vào ghi PC Thực thi diễn chương trình phục vụ ngắt Int Handler ∈ OS Xác định chất ngắt Thực thao tác cần thiết 13 Đánh giá Thao tác I/O cpu đợi Thao tác I/O cpu đợi 2a 2b 3a 3b Thao tác I/O Thao tác I/O 14 Thao tác I/O cpu đợi 4 cpu đợi cpu đợi Thao tác I/O cpu đợi Thao tác I/O Thao tác I/O 5 15 Đa ngắt Có thể có nhiều ngắt xảy đồng thời Có hai giải pháp kiểm soát: cấm ngắt khác xử lý ngắt xử lý ưu tiên 16 Chương trình Int Hand Int Hand 17 Int Hand Int Hand 18 Ví dụ Ba thiết bị ngoại vi: Line (ưu tiên 1) thời gian cần 10 Đĩa (ưu tiên 2) thời gian cần 10 In (ưu tiên 3) thời gian cần 30 bắt đầu lúc t=0, ngắt in lúc t=10, ngắt thông tin lúc t=15, ngắt đĩa lúc t=20 Trình bày diễn biến ngắt? 19 t= 60 20 ...Khái niệm Ngắt (Interrupt) Hầu hết máy tính có chế cho phép ngắt q trình xử lý bình thường CPU Có số loại ngắt phổ biến: Program: phát sinh điều kiện, kết thực thi thị, tràn số học,... dựng cờ, thi t lập thơng báo… Hoạt động chương trình khơng ngắt Main program Call write I/O program I/O command Call write end Lộ trì trình thực th c thi Hoạt động chương trình không ngắt Hoạt... trì trình thực th c thi Thủ tục ngắt tổng quát Phát sinh tín hiệu ngắt: vi du từ I/O module Đáp ứng ngắt từ CPU: treo, chuyển Chương trình Interrupt handler Int req i i+1 M phục hồi thực thi