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/CNTTwru http://ktmt.wru.googlepages.com Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 1 Chương 2: TIẾN TRÌNH VÀ LUỒNG 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 Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 2 Bài 2.1 – Các khái niệm Thực hiện tuần tự và song song Tiến trình là gì? Khối mơ tả tiến trình Các hình thức tổ chức tiến trình Luồng là gì? Phân biệt tiến trình và luồng Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 3 Thực hiện tuần tự và song song Thực hiện tuần tự: Tại một thời điểm chỉ có thể thực hiện một chương trình, khi chương trình đó thực hiện xong thì mới chạy được chương trình khác Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 4 Thực hiện song song: Có thể chạy nhiều chương trình cùng một lúc Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 5 Tiến trình là gì? Một tiến trình (Process) là sự thực hiện một chương trình Mỗi tiến trình sẽ được chạy trong khoảng thời gian (vài chục hay vài trăm mili giây), sau đó nó sẽ chuyển CPU cho tiến trình khác Tạo ra cảm giác các chương trình chạy song song Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 6 Làm cách nào để phân biệt được tiến trình này với tiến trình khác trong hệ thống? Mỗi tiến trình cần có đặc trưng riêng, như ID của tiến trình, tài ngun của tiến trình Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 7 Khối mơ tả tiến trình Là nơi chứa những đặc trưng của một tiến trình, bao gồm: Biến trạng thái: Lưu giữ trạng thái của tiến trình (Sẵn sàng, Đang thực hiện, Ngắt) Vùng nhớ lưu giá trị các thanh ghi mà tiến trình sử dụng Thơng tin về các 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 các tiến trình khác (nếu có) Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 8 Hệ điều hành phải có cơng cụ để quản lý các tiến trình Mỗi hệ điều hành thường có một tập hợp các hàm quản lý tiến trình 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 – Khoa CNTT Hệ điều hành 2 9 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 – Khoa CNTT Hệ điều hành 2 10 Ví dụ: Hiện kí tự ‘M’ ra màn hình Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 46 Cách 2: Sử dụng các cấu trúc và 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 – Khoa CNTT Hệ điều hành 2 47 Các cấu trúc và hợp trong “dos.h” struct WORDREGS //Các thanh ghi 16 bít và cờ {unsigned int ax, bx, cx, dx, si, di, cflag, flags;}; struct BYTEREGS //Các thanh ghi 8 bít {unsigned char al, ah, bl, bh, cl, ch, dl, dh;}; struct SREGS //Các thanh ghi đoạn {unsigned int es, cs, ss, ds;}; union REGS //Kết hợp các thanh ghi 8 bít và 16 bít { struct WORDREGS x; struct BYTEREGS h; Bộ mơn Kỹ thuật máy tính & mạng – } Khoa CNTT Hệ điều hành 2 48 Ví dụ: Đặt thanh ghi AH bằng 2 (cách 1 dùng struct, cách 2 dùng union) Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 49 Chương trình xử lý ngắt của người dùng Các cơng việc mà hệ thống phải thực hiện khi có tín hiệu ngắt Các bước để thực hiện chương trình xử lý ngắt của người dùng (4 bước) Cấu trúc của một chương trình xử lý ngắt Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 50 Các cơng việc mà hệ thống phải thực hiện khi có tín hiệu ngắt Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 51 Các bước để thực hiện chương trình xử lý ngắt của người dùng Có 4 bước sau đây: Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 52 Bước 1: Viết hàm xử lý ngắt mới Hàm này phải thoả mãn các 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 càng đơn giản càng tốt (dùng các phép tính với số ngun hay ký tự, các Bộphép logic), khơng nên dùng l mơn Kỹ thuật máy tính & mạng – ệnh gọi ngắt Khoa CNTT Hệ điều hành 2 53 Định nghĩa danh sách thanh 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 – Khoa CNTT Hệ điều hành 2 54 Bước 2: Lưu lại địa chỉ của chương trình xử lý ngắt cũ (để sau này có thể khơi phục lại) Sử dụng hàm getvect: getvect(Số hiệu ngắt) Ví dụ: Lưu địa chỉ của ngắt 15h void interrupt OldInt( ); OldInt = getvect(0x15); Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 55 Bước 3: Đặt địa chỉ của hàm xử lý ngắt mới vào vị trí tương ứng trên bảng vector ngắt Sử dụng hàm setvect: void setvect(Số hiệu ngắt, Địa chỉ hàm xử lý ngắt); Ví dụ: Đặt địa chỉ của hàm NewInt vào bảng vector ngắt để thay thế cho hàm xử lý ngắt 15h cũ setvect(0x15, NewInt); Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 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 – Khoa CNTT Hệ điều hành 2 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 khi gọi setvect setvect(0x15, NewInt); enable(); //Mở chắn Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 58 Cấu trúc của một chương trình xử lý ngắt Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 59 Hết Phần 2 Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 60 ... Khoa CNTT Hệ điều hành 2 16 Bài 2. 3 – Điều độ tiến trình Tài ngun găng Điều độ tiến trình Các giải thuật điều độ Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 17 Tài ngun găng.. .Chương 2: TIẾN TRÌNH VÀ LUỒNG 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 Bộ mơn Kỹ thuật máy tính & mạng – Khoa CNTT Hệ điều hành 2 2 Bài 2. 1 – Các khái niệm... Khoa CNTT Hệ điều hành 2 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 – Khoa CNTT Hệ điều hành