Bài giảng Hệ điều hành - Chương 2 cung cấp cho người học các kiến thức về Tiến trình và luồng bao gồm: Các khái niệm, các trạng thái của một tiến trình, điều độ tiến trình. Mời các bạn cùng tham khảo nội dung chi tiết.
HỆ ĐIỀU HÀNH Giảng viên: Ths Phạm Thanh Bình Bộ mơn Kỹ thuật máy tính & mạng http://vn.myblog.yahoo.com/CNTT-wru http://ktmt.wru.googlepages.com Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành - Chương 2: TIẾN TRÌNH VÀ LUỒNG Các khái niệm Các trạng thái tiến trình Điều độ tiến trình Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Bài 2.1 – Các khái niệm Thực song song Tiến trình gì? Khối mơ tả tiến trình Các hình thức tổ chức tiến trình Luồng gì? Phân biệt tiến trình luồng Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Thực song song Thực tuần tự: Tại thời điểm thực chương trình, chương trình thực xong chạy chương trình khác Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Thực song song: Có thể chạy nhiều chương trình lúc Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Tiến trình gì? Một tiến trình (Process) thực chương trình Mỗi tiến trình chạy khoảng thời gian (vài chục hay vài trăm mili giây), sau chuyển CPU cho tiến trình khác Tạo cảm giác chương trình chạy song song Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Làm cách để phân biệt tiến trình với tiến trình khác hệ thống? Mỗi tiến trình cần có đặc trưng riêng, ID tiến trình, tài ngun tiến trình Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Khối mơ tả tiến trình Là nơi chứa đặc trưng tiến trình, bao gồm: Biến trạng thái: Lưu giữ trạng thái tiến trình (Sẵn sàng, Đang thực hiện, Ngắt) Vùng nhớ lưu giá trị ghi mà tiến trình sử dụng Thơng tin tài ngun mà tiến trình sử dụng Thơng tin phục vụ cho việc liên lạc với tiến trình khác (nếu có) Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Hệ điều hành phải có cơng cụ để quản lý tiến trình Mỗi hệ điều hành thường có tập hợp hàm quản lý tiến trình Khởi tạo tiến trình, Huỷ tiến trình Ví dụ: Chương trình “Windows Task Manager” Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Các hình thức tổ chức tiến trình Độc lập Có quan hệ thông tin Phân cấp Đồng mức Bộ môn Kỹ thuật máy tính & mạng – Hệ điều hành - 10 Ví dụ: Hiện kí tự ‘M’ hình Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 46 Cách 2: Sử dụng cấu trúc hợp REGS: (xem trang sau) Hàm gọi ngắt: int86(SốHiệuNgắt, Regs đầu vào, Regs đầu ra); int86x(SốHiệuNgắt, Regs vào, Regs ra, SRegs); Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 47 Các cấu trúc hợp “dos.h” struct WORDREGS //Các ghi 16 bít cờ {unsigned int ax, bx, cx, dx, si, di, cflag, flags;}; struct BYTEREGS //Các ghi bít {unsigned char al, ah, bl, bh, cl, ch, dl, dh;}; struct SREGS //Các ghi đoạn {unsigned int es, cs, ss, ds;}; union REGS //Kết hợp ghi bít 16 bít { struct WORDREGS x; struct BYTEREGS h; } Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 48 Ví dụ: Đặt ghi AH (cách dùng struct, cách dùng union) Bộ môn Kỹ thuật máy tính & mạng – Hệ điều hành - 49 Chương trình xử lý ngắt người dùng Các cơng việc mà hệ thống phải thực có tín hiệu ngắt Các bước để thực chương trình xử lý ngắt người dùng (4 bước) Cấu trúc chương trình xử lý ngắt Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 50 Các công việc mà hệ thống phải thực có tín hiệu ngắt Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 51 Các bước để thực chương trình xử lý ngắt người dùng Có bước sau đây: Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 52 Bước 1: Viết hàm xử lý ngắt Hàm phải thoả mãn yêu cầu sau: Khai báo hàm có dạng: void interrupt NewInt( ); hoặc: void interrupt NewInt(INTERRUPT_REGS); Nội dung hàm đơn giản tốt (dùng phép tính với số nguyên hay ký tự, phép logic), không nên dùng lệnh gọi ngắt Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 53 Định nghĩa danh sách ghi INTERRUPT_REGS #define u_int unsigned int #define INTERRUPT_REGS u_int bp, u_int di, \ u_int si, u_int ds, u_int es, u_int dx, u_int cx, \ u_int bx, u_int ax, u_int ip, u_int cs, u_int flags Bộ môn Kỹ thuật máy tính & mạng – Hệ điều hành - 54 Bước 2: Lưu lại địa chương trình xử lý ngắt cũ (để sau khơi phục lại) Sử dụng hàm getvect: getvect(Số hiệu ngắt) Ví dụ: Lưu địa ngắt 15h void interrupt OldInt( ); OldInt = getvect(0x15); Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 55 Bước 3: Đặt địa hàm xử lý ngắt vào vị trí tương ứng bảng vector ngắt Sử dụng hàm setvect: void setvect(Số hiệu ngắt, Địa hàm xử lý ngắt); Ví dụ: Đặt địa hàm NewInt vào bảng vector ngắt để thay cho hàm xử lý ngắt 15h cũ setvect(0x15, NewInt); Bộ môn Kỹ thuật máy tính & mạng – Hệ điều hành - 56 Bước 4: Khơi phục lại chương trình xử lý ngắt cũ Ví dụ: Khơi phục lại chương trình xử lý ngắt 15h cũ setvect(0x15, OldInt); Bộ môn Kỹ thuật máy tính & mạng – Hệ điều hành - 57 Chú ý: Khi sử dụng hàm setvect cần thiết lập chắn ngắt: Ví dụ: disable(); //Chắn ngắt trước gọi setvect setvect(0x15, NewInt); enable(); //Mở chắn Bộ môn Kỹ thuật máy tính & mạng – Hệ điều hành - 58 Cấu trúc chương trình xử lý ngắt Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 59 Hết Phần Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 60 ... & mạng – Hệ điều hành - 21 Các thuật ngữ: Điều độ = scheduling Bộ phận điều độ = scheduler Giải thuật điều độ = scheduling algorithm Bộ môn Kỹ thuật máy tính & mạng – Hệ điều hành - 22 Các giải... vài điều kiện chuyển sang trạng thái sẵn sàng Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 15 Quá trình chuyển đổi trạng thái Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - 16 Bài 2. 3 – Điều. .. tính & mạng – Hệ điều hành - Thực song song Thực tuần tự: Tại thời điểm thực chương trình, chương trình thực xong chạy chương trình khác Bộ mơn Kỹ thuật máy tính & mạng – Hệ điều hành - Thực song