Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành

121 887 1
Bài Giảng Quản Lý Tiến Trình Trong Hệ Điều Hành

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

HỆ ĐIỀU HÀNH CHƯƠNG QUẢN LÝ TIẾN TRÌNH Phan Trung Kiên Bộ môn Kỹ thuật máy tính Mạng Nội dung 2.1 Tiến trình 2.2 Luồng 2.3 Định thời CPU 2.4 Đồng hoá (Synchronization) 2.5 Deadlock (bế tắc) Phan Trung Kiên 2.1 Tiến trình      2.1.1 Khái niệm 2.1.2 Định thời tiến trình 2.1.3 Các tác vụ bản: tạo/kết thúc tiến trình 2.1.4 Sự cộng tác tiến trình 2.1.5 Giao tiếp tiến trình Phan Trung Kiên 2.1.1 Khái niệm  Hệ thống máy tính thực thi nhiều chương trình khác     Batch system: jobs Time-shared systems: user programs, tasks Job  process Tiến trình (process)  chương trình thực thi Một tiến trình bao gồm   Text section (program code), data section (chứa global variables) Hoạt động thời: program counter (PC), process status word (PSW), stack pointer (SP), memory management registers Phan Trung Kiên Các bước nạp chương trình vào nhớ Phan Trung Kiên Từ chương trình đến tiến trình   Dùng load module để biểu diễn chương trình thực thi Process image in Layout logic process image main memory Executable binary file (load module) start address program code program code data data stack Phan Trung Kiên Khởi tạo tiến trình  Các bước hệ điều hành khởi tạo tiến trình    Cấp phát định danh (process number hay process identifier, pid) cho tiến trình Cấp phát không gian nhớ để nạp tiến trình Khởi tạo khối liệu Process Control Block (PCB) cho tiến trình   PCB nơi hệ điều hành lưu thông tin tiến trình Thiết lập mối liên hệ cần thiết (vd: PCB vào hàng đợi định thời,…) Phan Trung Kiên Các trạng thái tiến trình  Các trạng thái tiến trình (process states):      new: tiến trình vừa tạo ready: tiến trình có đủ tài nguyên, cần CPU running: lệnh tiến trình thực thi waiting: blocked, tiến trình đợi I/O hoàn tất, tiệp nhận tín hiệu terminated: tiến trình kết thúc Phan Trung Kiên Các trạng thái tiến trình (tt)  Chuyển đổi trạng thái tiến trình new admit dispatch ready exit terminated running interrupt I/O or event wait I/O or event completion waiting Phan Trung Kiên Process control block  Đã thấy tiến trình hệ thống cấp phát Process Control Block (PCB)  PCB cấu trúc liệu quan trọng hệ điều hành Ví dụ layout PCB: (trường pointer dùng để liên kết PCBs thành linked list) Phan Trung Kiên 10 Round Robin: nhược điểm  Các process dạng CPU-bound “ưu tiên”  Ví dụ:   Một I/O-bound process sử dụng CPU thời gian ngắn quantum time bị blocked để đợi I/O Và Một CPU-bound process chạy hết time slice lại quay trở hàng đợi ready queue (ở phía trước process bị blocked) Phan Trung Kiên 120 Multilevel Queue Scheduling* Trường hợp trình phân thành nhóm (ví dụ: interactive batch)  Hàng đợi ready chia thành nhiều hàng đợi riêng rẽ Ví dụ:    foreground (cho công việc cần giao tiếp - interactive) background (cho công việc dạng bó - batch) Mỗi hàng đợi có giải thuật lập lịch riêng Ví dụ:   foreground: dùng RR background: dùng FCFS Phan Trung Kiên 121 Multilevel Queue Scheduling*  Lập lịch cần phải thực hàng đợi với  Theo cách cố định (fixed priority scheduling) – ví dụ: phục vụ tất process foreground đến background   Có khả xảy trì hoãn vô hạn định (starvation) Chia thời gian (time slice) – hàng đợi lấy khoảng sử dụng CPU định để lập lịch cho process Ví dụ:   80% cho foreground (dùng RR) 20% cho background (dùng FCFS) Phan Trung Kiên 122 Multilevel Queue Scheduling*  Ví dụ phân nhóm trình Độ ưu tiên cao System Processes Interactive Processes Batch Processes Student Processes Độ ưu tiên thấp Phan Trung Kiên 123 Multilevel Feedback Queue*  Process di chuyển queue tùy theo đặc tính Ví dụ:   Nếu process sử dụng CPU lâu, bị di chuyển sang hàng đợi có độ ưu tiên thấp Nếu process chờ qua lâu hàng đợi có độ ưu tiên thấp, di chuyển lên hàng đợi có độ ưu tiên cao (aging, giúp tránh starvation) Phan Trung Kiên 124 Multilevel Feedback Queue*  Ví dụ: Có hàng đợi     Q0 , dùng RR với quantum ms Q1 , dùng RR với quantum 16 ms Q2 , dùng FCFS Giải thuật   Công việc vào hàng đợi Q0 Khi đến lượt mình, công việc khoảng thời gian milli giây Nếu không kết thúc milli giây, công việc đưa xuống hàng đợi Q1 Tại Q1, tương tự công việc sau chờ cho khoảng thời gian thực thi 16 milli giây Nếu hết thời gian chưa kết thúc bị chuyển sang Q2 Phan Trung Kiên 125 Multilevel Feedback Queue  Multilevel Feedback Queue xác định thông số      Có hàng đợi? Với queue sử dụng giải thuật lập lịch nào? Xác lập lịch điểm thăng cấp cho process? Làm để xác lập lịch điểm giáng cấp process? Xác định hàng đợi process vào process cần thực thi? Phan Trung Kiên 126 Policy Mechanism Rất quan trọng lập lịch phân phối tài nguyên  Policy – sách   Mechanism – kỹ thuật   Điều (what) nên (hay cần) làm Làm (how) để làm điều Ví dụ     Policy: tất người dùng cần công Mechanism: sử dụng round robin Policy: công việc trả tiền cao có độ ưu tiên cao Mechanism: sử dụng giải thuật có preemptive Phan Trung Kiên 127 2.3.4 Lập lịch hệ thống nhiều CPU  Nếu có nhiều CPU thực việc chia tải   Phức tạp so với lập lịch processor Làm để chia tải?  Asymmetric multiprocessor   Một master processor thực lập lịch cho tất processor lại Symmetric multiprocessor (SMP)   Hoặc processor có hàng đợi ready riêng lập lịch riêng Hoặc có hàng đợi ready chung cho tất processors   Một processor chọn làm scheduler cho processor khác Hoặc processor có lập lịch riêng tự chọn process từ hàng đợi chung để thực thi Phan Trung Kiên 128 Processor affinity   Khi process chạy processor, có số liệu cache nhớ cache processor Khi process di dời sang processor khác Cache processor phải repopulated  Cache processor cũ phải invalidated  vấn đề phí tổn   Processor affinity: liên kết với xử lý Phan Trung Kiên 129 Cân tải   Một processor có nhiều tải, xử lý khác lại rảnh Cân tải sử dụng:     Push migration: task đặc biệt định kỳ kiểm tra tải tất processors công việc đẩy đến processor rảnh Pull migration: processor rảnh lấy công việc từ processor bận Một số hệ thống (ví dụ Linux) thực hai Cần phải có cân load balancing processor affinity Phan Trung Kiên 130 Bài tập (1) Process Burst Time P1 10 P2 29 P3 P4 P5 12  Tất đến thời điểm  Xét giải thuật FCFS, SFJ, RR với quantum time = 10  Giải thuật cho    Thời gian đợi trung bình nhỏ nhất? Thông cao nhất? Thời gian quay vòng trung bình process nhỏ nhất? Phan Trung Kiên 131 Bài tập (2)  FCFS: thời gian đợi trung bình 28 milli giây, tính thông số khác Phan Trung Kiên 132 Bài tập (3)  SJF (nonpreemptive): thời gian đợi trung bình 13 milli giây, tính thông số khác Phan Trung Kiên 133 Bài tập (4)  RR: thời gian đợi trung bình 23 milli giây, tính thông số khác Phan Trung Kiên 134 [...]... nhập hệ thống, một command interpreter (shell) sẽ được tạo ra cho user tiến trình được tạo là tiến trình con của tiến trình tạo (tiến trình cha) Quan hệ cha-con định nghĩa một cây tiến trình Phan Trung Kiên 20 Cây tiến trình trong Linux/Unix root pagedaemon gcc swapper init bash bash ls mkdir bash grep Các tác vụ đối với tiến trình  Tạo tiến trình mới  Chia sẻ tài nguyên của tiến trình cha    tiến. .. tác vụ đối với tiến trình (tt)  Kết thúc tiến trình  Tiến trình tự kết thúc   tiến trình kết thúc do tiến trình khác (có đủ quyền, vd: tiến trình cha của nó)   Tiến trình kết thúc khi thực thi lệnh cuối và gọi system routine exit Gọi system routine abort với tham số là pid (process identifier) của tiến trình cần được kết thúc Hệ điều hành thu hồi tất cả các tài nguyên của tiến trình kết thúc...Yêu cầu đối với hệ điều hành về quản lý tiến trình   Hỗ trợ sự thực thi luân phiên giữa nhiều tiến trình  Hiệu suất sử dụng CPU  Thời gian đáp ứng Phân phối tài nguyên hệ thống hợp lý  tránh deadlock, trì hoãn vô hạn định,…  Cung cấp cơ chế giao tiếp và đồng bộ hoạt động các tiến trình  Cung cấp cơ chế hỗ trợ user tạo/kết thúc tiến trình Phan Trung Kiên 11 Quản lý các tiến trình: các hàng đợi... công việc giao CPU cho tiến trình khác Khi đó cần: – lưu ngữ cảnh của tiến trình cũ vào PCB của nó – nạp ngữ cảnh từ PCB của tiến trình mới để tiến trình mới thực thi Phan Trung Kiên 18 Chuyển ngữ cảnh (tt) Phan Trung Kiên 19 2.1.3 Các tác vụ đối với tiến trình  Tạo tiến trình mới (process creation)  Một tiến trình có thể tạo tiến trình mới thông qua một system call (vd: hàm fork trong Unix)  Ví dụ:... tiến trình cha và con chia sẻ mọi tài nguyên tiến trình con chia sẻ một phần tài nguyên của cha Trình tự thực thi   tiến trình cha và con thực thi đồng thời (concurrently) tiến trình cha đợi đến khi các tiến trình con kết thúc Phan Trung Kiên 22 Về quan hệ cha/con  Không gian địa chỉ (address space)    Không gian địa chỉ của tiến trình con được nhân bản từ cha Không gian địa chỉ của tiến trình. .. trung hạn (medium-term scheduling) để điều chỉnh mức độ multiprogramming của hệ thống Medium-term scheduler – chuyển tiến trình từ bộ nhớ sang đĩa (swap out) – chuyển tiến trình từ đĩa vào bộ nhớ (swap in) Phan Trung Kiên 17 Chuyển ngữ cảnh (context switch)  Ngữ cảnh (context) của một tiến trình là trạng thái của tiến trình  Ngữ cảnh của tiến trình được biểu diễn trong PCB của nó  Chuyển ngữ cảnh (context... buffer,…) Phan Trung Kiên 25 2.1.4 Cộng tác giữa các tiến trình   Trong tiến trình thực thi, các tiến trình có thể cộng tác (cooperate) để hoàn thành công việc Các tiến trình cộng tác để   Chia sẻ dữ liệu (information sharing) Tăng tốc tính toán (computational speedup)   Thực hiện một công việc chung   Nếu hệ thống có nhiều CPU, chia công việc tính toán thành nhiều công việc tính toán nhỏ chạy song... việc tính toán nhỏ chạy song song Xây dựng một phần mềm phức tạp bằng cách chia thành các module/process hợp tác nhau Sự cộng tác giữa các tiến trình yêu cầu hệ điều hành hỗ trợ cơ chế giao tiếp và cơ chế đồng bộ hoạt động của các tiến trình Phan Trung Kiên 26 Bài toán producer-consumer  Ví dụ cộng tác giữa các tiến trình: bài toán producer-consumer  Producer tạo ra các dữ liệu và consumer tiêu thụ,... khái niệm tiến trình truyền thống bằng cách hiện thực nhiều luồng thực thi trong cùng một môi trường của tiến trình Tiến trình gồm   Không gian địa chỉ (text section, data section) Một hay nhiều luồng thực thi (thread of execution), mỗi luồng thực thi (thread) có riêng     program counter các register stack Các tài nguyên khác (các open file, các tiến trình con,…) Phan Trung 46 Kiên Tiến trình đơn... Multithreading trong Solaris 2  2.2.5 Multithreading với Java Phan Trung 44 Kiên 2.2.1 Tổng quan  Khái niệm tiến trình truyền thống: tiến trình gồm   Không gian địa chỉ (text section, data section) Một luồng thực thi duy nhất (single thread of execution)     program counter các register stack Các tài nguyên khác (các open file, các tiến trình con,…) Phan Trung 45 Kiên Mở rộng khái niệm tiến trình 

Ngày đăng: 30/10/2015, 18:01

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan