Xem mẫu

  1. Chap6: QUẢN LÝ TIẾN TRÌNH (process management) GV: TS. Trần Thị Minh Khoa
  2. ()(6t)  Tiến trình (Process)  Định thì (Lập lịch, Scheduling)  Đồng bộ (Synchronization)  Tiểu trình (Thread)
  3.  What is a Process? Process Control Block  Process States  Suspended Processes
  4. 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
  5. 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
  6. 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
  7. 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
  8. Process States  Trace: Truy vết  Dispatcher: Điều phối
  9. Process States
  10. Process States
  11. Process States
  12. 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.
  13. Suspended Processes
  14. 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ó
  15. Create a Process
  16. 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); } }
  17. 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”? 
  18. 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
  19. 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
nguon tai.lieu . vn