Bài giảng Hệ thống máy tính - Chương 6: Quản lý tiến trình - Trần Thị Minh Khoa

Chap6: QUẢN LÝ TIẾN TRÌNH  
(process management)  
GV: TS. Trần Thị Minh Khoa  
()(6t)  
Tiến trình (Process)  
Định thì (Lập lịch, Scheduling)  
Đồng bộ (Synchronization)  
Tiểu trình (Thread)  
What is a Process? Process Control Block  
Process States  
Suspended Processes  
Background  
1. Hệ thống máy máy tính = bộ sưu tập các tài nguyên phần  
cứng (processor, main memory, I/O modules, timer, disk  
drives,..)  
2. Chương trình ứng dụng: thi hành các chỉ định, công việc  
3. Các ứng dụng không được viết trực tiếp trên phần cứng máy  
tính  
4. OS: hoạt động trung gian giữa người dung và phần cứng máy  
tính, cung cấp giao diện máy ảo, tạo sự thuận tiện cho người  
dùng giao tiếp với phần cứng máy tính  
5. OS: quản lý, cung cấp tài nguyên (main memory, network  
interface, file systems,…) khi ứng dụng yêu cầu  
Process  
Tiến trình = xem như một tập các tài nguyên dùng để chạy  
một chương trình  
= một chương trình đang thực thi  
= nội dung bộ nhớ + nội dung các thanh ghi (+ trang  
thái I/O)  
Stack + nội dung thanh ghi biểu diễn execution context hoặc  
thread of control  
Process Control Block (PCB)  
Trạng thái của mỗi tiến trình được lưu trong process control block (PCB)  
Được xem là dữ liệu trong phần dữ liệu của HĐH  
Tương tự như là đối tượng của một lớp  
Process Control Block (PCB)  
Các thông tin của một tiến trình:  
Trạng thái tiến trình  
Program counter  
CPU registers  
Thông tin lập lịch của CPU  
Thông tin liên quan bộ nhớ  
Thông tin sổ sách: mã số tiến trình, số lượng CPU, thời gian sử  
dụng CPU,…  
Trạng thái I/O: danh sách file đang mở, danh sách các thiết bị  
đã cấp cho tiến trình  
Process States  
Trace: Truy vết  
Dispatcher: Điều phối  
Process States  
Process States  
Process States  
Suspended Processes  
Ready: TT đang được lưu trong BNC và sẵn sang để thực thi  
Blocked: TT đang trong BNC và đang chờ 1 sự kiện xảy ra  
Blocked/Suspend: TT đang trong BNP và đang chờ 1 sự kiện xảy ra.  
Ready/Suspend: TT đang trong BNP nhưng đã sẵn sàng để thực thi khi được loaf  
lên BNC.  
Suspended Processes  
Create a Process  
Làm sao tạo một tiến trình? Sử dụng System call.  
Trong UNIX, một tiến trình có thể tạo một tiến trình khác bằng fork() (system call)  
int pid = fork();  
/* ngôn ngữ C */  
Tiến trình tạo gọi là tiến trình cha và tiến trình mới gọi là tiến trình con  
Tiến trình con là một bản sao của tiến trình cha (giống “hình dáng” và cấu trúc điều  
khiển tiến trình) ngoại trừ identification và trạng thái điều phối  
Tiến trình con và cha chạy trên hai vùng bộ nhớ khác nhau  
Mặc định là không có chia sẻ bộ nhớ  
Chi phí tạo tiến trình là lớn vì quá trình copy  
Hàm exec() cũng để tạo một tiến trình, nhưng thường là tạo tiến trình của chương  
trình mới chứ không phải gọi lại chính nó  
Create a Process  
Ví dụ tạo tiến trình sử dụng Fork()  
int main()  
{
Pid_t pid;  
/* fork another process */  
pid = fork();  
if (pid < 0) { /* error occurred */  
fprintf(stderr, "Fork Failed");  
exit(-1);  
}
else if (pid == 0) { /* child process */  
execlp("/bin/ls", "ls", NULL);  
}
else { /* parent process */  
/* parent will wait for the child to complete  
*/  
}
wait (NULL);  
printf ("Child Complete");  
exit(0);  
}
Kill a Process  
Một tiến trình có thể đợi một tiến trình khác hoàn thành bằng  
hàm wait() (system call)  
Có thể là đợi cho tiến trình con thực thi xong như ví dụ trên  
Cũng có thể đợi một tiến trình bất kì nào đó, phải biết PID của nó  
Để “hủy” một tiến trình khác dùng kill() (system call)  
Điều gì xảy ra khi kill() được gọi?  
Điều gì xảy ra nếu tiến trình “nạn nhân” vẫn chưa muốn “chết”?  
Là gì? Tại sao?  
Điều phối tiến trình là gì?  
Tại sao?  
Đầu tiên là để chia sẻ tài nguyên tốn kém – đa chương  
(multiprogramming)  
Ngày nay có thể thực thi nhiều tác vụ cùng lúc vì processor rất  
mạnh  
Giả thiết  
Gỉa thiết:  
Chỉ có 1 CPU vật lý, và tại một thời điểm CPU chỉ xử lý 1 lệnh  
Nhiều công việc tranh dành CPU  
CPU là tài nguyên khan hiếm  
Các công việc là độc lập và tranh giành tài nguyên lẫn nhau (giả thiết này  
không thật sự đúng trong tất cả các hệ thống, ngữ cảnh)  
Người điều phối làm trung gian giữa các công việc để sao cho tối ưu hóa  
việc thực thi của hệ thống  
Tải về để xem bản đầy đủ
pdf 119 trang baolam 20720 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ thống máy tính - Chương 6: Quản lý tiến trình - Trần Thị Minh Khoa", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_he_thong_may_tinh_chuong_6_quan_ly_tien_trinh_tran.pdf