Tải bản đầy đủ (.pdf) (18 trang)

LÝ THUYẾT HỆ ĐIỀU HÀNH - CHƯƠNG 2 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (147.44 KB, 18 trang )

-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

×