-1-Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
Chương 2
Q TRÌNH
-2-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
CHƯƠNG 2 : Q TRÌNH
Khái niệm về q trình
Trạng thái của q trình
Khối điều khiển q trình
Chuyển đổi trạng thái q trình
Các tác vụ thực hiện đ/v q trình
Ngắt qng
Chuyển ngữ cảnh
Bài tập
-3-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
Q TRÌNH (PROCESS)
Một chương trình đang thực thi
Có thời gian sống (life cycle)
Là một thực thể tích cực
Có nhiều trạng thái và có thể chuyển trạng thái
Một q trình có các thơng tin: bộ đếm chương
trình, stack, vùng chứa dữ liệu và biến mơi
trường
Trong một số tài liệu, q trình (proces)
cơng việc (job) tác vụ (task)
-4-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
CẤU TRÚC PROCESS CỦA UNIX
argc/argv[]
Stack segment
Text segment
Low address
High address
etext
edata
end
Initialized data
Uninitialized data
Heap
1. int a = 0, b, *c;
2. int main( int argc, char *argv[ ] ) {
3. b= increase(a);
4. c =(int*)malloc(10*sizeof(int));
5. c[5]= b;
6. }
7. int increase(int x) {
8. return x ++;
9. }
-5-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
KHỐI ĐIỀU KHIỂN Q TRÌNH
Cấu trúc dữ liệu của HĐH để quản lý q trình
Chứa thơng tin nhận dạng, trạng thái, định vị tài
ngun cho q trình
– Danh định cho q trình (PID)
– Bộ đếm chương trình
– Vùng lưu giá trị thanh ghi CPU
– Độ ưu tiên của q trình
– Thơng tin định vị bộ nhớ q trình
– Thơng tin bảo mật
– Con trỏ đếùn các q trình cha, con
– …
-6-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
TRẠNG THÁI Q TRÌNH
Sẵn sàng (ready)
– Q trình đợi để gán cho CPU xử lý
Thực thi (running)
– Q trình đang được CPU thực thi các lệnh
Bị chặn (blocked)
– Q trình đợi một sự kiện nào đó
– Sự kiện có thể là do việc xuất nhập dữ liệu hoặc từ một
q trình khác tạo ra
-7-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
CHUYỂN TRẠNG THÁI Q TRÌNH
READY
RUNNING
BLOCKED
Dispatch
Timer run-out
Wake-up
Block
New
Exited
-8-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
CÁC HÀNG ĐỢI Q TRÌNH
JOB QUEUE
READY QUEUE
CPU
I/O WAITING QUEUE
enter
end
-9-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
BỘ ĐỊNH THỜI (SCHEDULER)
JOB QUEUE
READY QUEUE
CPU
I/O WAITING QUEUE
enter
end
High-level scheduler
Low-level scheduler
-10-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
TRẠNG THÁI TREO (SUSPENDED)
Q trình bị treo trả lại mọi tài ngun
Tác nhân treo q trình
– Bản thân q trình
– Hệ thống/q trình khác
Xảy ra khi
– Cần giám sát q trình
– Hệ thống có sự cố
– Hệ thống q tải
Phục hồi (resume)
– Nhờ HĐH hoặc q trình khác
-11-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
LƯỢC ĐỒ CHUYỂN TRẠNG THÁI
Suspend
Resume
READY
RUNNING
BLOCKED
Dispatch
Timer run-out
Wake-up
Block
New Exited
SUSPENDED READY
SUSPENDED BLOCKED
Wake-up
-12-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
TÁC VỤ TRÊN Q TRÌNH
Tạo q trình
– Hàm hệ thống fork(), shell, GUI …
Hủy q trình
– Hàm exit(), lệnh kill,…
Thay đổi trạng thái q trình
– Suspend / Resume / Block / Wake-up/ Dispatch
– Thực hiện bằng cách gởi tín hiệu đến q trình
Thay đổi độ ưu tiên của q trình
Cho phép các q trình giao tiếp
-13-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
NGẮT QNG (INTERRUPT)
Sự kiên làm thay đổi tiến trình thực thi của CPU
Cơ chế:
Interrupt
Trình xử lý
interrupt
-14-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
CÁC BƯỚC XỬ LÝ INTERRUPT
Hệ điều hành chiếm lại quyền thực thi
Lưu trữ trạng thái của q trình bị ngắt
Phân tích ngắt qng (dùng phần cứng)
Thưc thi chương trình xử lý ngắt qng
Chọn một q trình tiếp theo để chạy
Có thể cho phép interrupt xử lý lồng nhau
-15-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
CÁC LOẠI INTERRUPT
Supervisor call (SVC) interrupt: khi q trình u
cầu dịch vụ của hệ thống
I/O interrupt: do các thiết bị I/O sinh ra khi chuyển
trạng thái
External interrupt: sinh ra từ đồng hồ hệ thống, bàn
phím
Restart interrupt: ngắt khởi động lại máy
Program check: sinh ra khi chương trình thực thi lệnh
bị lỗi (chia cho 0, tràn số, …)
Machine check: do nhà sản xuất tạo ra dành riêng cho
việc kiểm tra phần cứng
-16-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
CHUYỂN NGỮ CẢNH
(CONTEXT SWITCHING)
Chuyển xử lý từ q trình này sang q trình khác.
Xảy ra khi có interrupt
Qui trình:
– Lưu trạng thái của q trình hiện hành
– Chọn q trình mới để xử lý
– Đưa trạng thái của q trình mới vào phần cứng để xử lý
Một context bao gồm:
– tập thanh ghi chứa thơng tin trạng thái q trình về trạng thá
i CPU,
bộ nhớ … của q trình.
Program Status Word (PSW).
-17-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
CHUYỂN NGỮ CẢNH
(CONTEXT SWITCHING)
Các loại PSW:
– Old_PSW
– Current _PSW
– New_PSW
Hệ thống một bộ xử lý có 1 Current_PSW và 6
New_PSW và 6 Old_PSW (6 loại interrupt)
Q trình chuyển ngữ cảnh diễn ra qua sự thay đổi
giữa các PSW trong hệ thống
– Current_PSW Old_PSW
– New_PSW Current_PSW
-18-
Bài giảng môn hệ điều hành Vũ Lê Hùng Khoa CNTT – ĐHBK TP.
HCM
BÀI TẬP
1. Những hệ điều hành nào sau đây cho phép nhiều q trình
cùng nằm trong bộ nhớ
Windows NT, Win98SE, Linux, MS-DOS.
2.Phân loại các Interrupt sau :
- Nhấn Ctrl+C giết q trình
- Card mạng báo có dữ liệu tới
- Ổ đĩa CD báo q trình chuyển dữ liệu đã xong
- Gọi hàm hệ thống fork()
- Nhấn nút Reset của máy tính
3.Tìm hiểu các hàm/ lệnh tạo, huỷ q trình trên Linux.
4.Viết chương trình in ra địa chỉ các vùng nhớ của một q trình
trên Linux