Bài giảng Hệ điều hành: Tiến trình - Nguyễn Lê Minh
Tiến trình là gì?
Trạng thái của tiến trình
Khối điều khiển tiến trình (PCB)
Thao tác trên tiến trình
Điều phối (lập lịch) tiến trình
Truyền thông liên tiến trình
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành: Tiến trình - Nguyễn Lê Minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành: Tiến trình - Nguyễn Lê Minh
TIẾN TRÌNH ThS. Nguyễn Lê Minh Khoa CNTT, ĐH Giao thông vận tải Email: nlminh@utc2.edu.vn NỘI DUNG • • • • • • Tiến trình là gì? Trạng thái của tiến trình Khối điều khiển tiến trình (PCB) Thao tác trên tiến trình Điều phối (lập lịch) tiến trình Truyền thông liên tiến trình 2 TIẾN TRÌNH L À G Ì ? • • Tiến trình là chương trình đang được thực hiện Được xem là đơn vị làm việc hành Chương trình vs. Tiến trình trong các Hệ điều • • Chương trình • Thực thể tĩnh • Không sở hữu tài nguyên cụ thể Tiến trình • Thực thể động • Được cấp một số tài nguyên (memory, CPU Registers) để chứa dữ liệu và thực hiện lệnh • 3 TIẾN TRÌNH L À G Ì ? • Các hoạt động hiện tại của tiến trình được thể hiện qua bộ đếm chương trình (program counter) và nội dung các thanh ghi (registers) của bộ xử lý 4 P R OC E SS IN MEMO R Y • Text section (Đoạn mã lệnh) • Chứa mã lệnh của chương trình (compiled program code) Data section (Đoạn dữ liệu) • Chứa các biến toàn cục (global variables) và biến static • Khởi tạo trước khi thực thi hàm main Heap Dành cho cấp phát bộ nhớ động (dynamic memory allocation) • Được quản lý thông qua các hàm: new, delete, malloc, free, etc. Stack • Dành cho các biến cục bộ (local variables) • • • 5 Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 6 Figure credit: https://cg2010studio.wordpress.com/2011/06/26/process-in-memory/ TRẠNG THÁI CỦ A TIẾN TRÌNH • • Khi thực hiện, trạng thái của tiến trình thay đổi Trạng thái của tiến trình được xác định bằng hoạt động hiện thời của nó Tiến trình có thể nhận 1 trong 5 trạng thái sau: • • • New (Khởi tạo) – tiến trình đang được khởi tạo R e a dy ( Sẵn sàn g ) – ti ế n trình đang c h ờ được c ấp CPU để thực thi lệnh của mình Running (Thực hiện) – các câu lệnh của tiến trình đang được thực hiện Waiting (Chờ đợi) – tiến trình tạm dừng để chờ một tài nguyên hoặc một sự kiện Terminated (Kết thúc) – tiến trình được thực hiện xong • • • 7 Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 8 KHỐI ĐIỀU KHIỂN TIẾN TRÌNH • • Process Control Block (PCB) Cấu trúc thông tin cho phép xác định duy nhất một tiến trình 9 Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 KHỐI ĐIỀU KHIỂN TIẾN TRÌNH • Các thông tin trong PCB • • • • Process state (Trạng thái của tiến trình) Program counter (Bộ đếm chương trình) CPU registers (Các thanh ghi) CPU scheduling information (Thông tin điều phối tiến trình) • Mức độ ưu tiên của tiến trình, vị trí trong hàng đợi, Memory management information (Thông tin về bộ nhớ của tiến trình) Accounting information (thông tin thống kê): • • • I/O • Thời gian sử dụng CPU, giới hạn thời gian status information Danh sách các thiết bị vào/ra được cấp phát cho tiến trình, các file đang mở • 10 Figure credit : 11 TH A O T ÁC TRÊN TIẾN TRÌNH • • Tạo mới tiến trình Kết thúc tiến trình 12 TẠO MỚI TIẾN TRÌNH • Khi tiến trình mới được đưa vào hệ thống, Hệ điều hành tạo ra • Gán số định danh cho tiến trình được tạo mới và tạo một ô trong bảng tiến trình Tạo không gian nhớ cho tiến trình và PCB Khởi tạo PCB • • • Liên kết PCB của tiến trình vào các danh sách quản lý • Tiến trình được tạo ra khi • • • Khởi tạo hệ thống (OS is boosted) Tiến trình con Tiến trình do người dùng tạo ra 13 TIẾN TRÌNH C ON • Một tiến trình có thể tạo ra nhiều tiến trình hoạt động • Tiến trình tạo: tiến trình cha (parent process) • Tiến trình được tạo: tiến trình con (children) Cây tiến trình (Tree of process) Phân phối tài nguyên • Tiến trình con lấy tài nguyên từ hệ điều hành • Tiến trình con lấy tài nguyên từ tiến trình cha • Một phần tài nguyên • Tất cả tài nguyên Thực hiện mới cùng • • • • Tiến trình cha tiếp tục thực hiện đồng thời với tiến trình con • Tiến trình cha đợi tiến trình con kết thúc 14 KẾT THÚC TIẾN TRÌNH • Kết thúc bình thường: yêu cầu HDH bằng cách gọi lời gọi hệ thống exit() Bị kết thúc: kết thúc mình • • • • Bị tiến trình cha kết thúc Do các lỗi Yêu cầu nhiều bộ nhớ hơn so với số lượng thể cung cấp Thực hiện lâu hơn thời gian giới hạn hệ thống có • • Do quản trị hệ thống hoặc hệ điều hành kết thúc 15 ĐIỀU PHỐI TIẾN TRÌNH • • • Mục tiêu Các hàng đợi điều phối (Scheduling queues) Bộ điều phối (Scheduler) 16 ĐIỀU PHỐI TIẾN TRÌNH • • • Thuật ngữ: Process scheduling Còn gọi là lập lịch tiến trình Mục tiêu: • • Sử dụng tối đa thời gian CPU Người dùng có thể tương tác với tiến trình • Bộ điều phối tiến trình (Process scheduler) lựa chọn một tiến trình để thực hiện Trong hệ thống một processor • Chỉ có 1 tiến trình được thực hiện • • Các tiến trình khác phải chờ tới khi CPU tự do 17 CÁC HÀNG ĐỢI ĐIỀU PHỐI • Các tiến trình chưa được phân phối sử dụng CPU sẽ được đưa vào hàng đợi điều phối (Scheduling Hệ thống có nhiều hàng đợi dành cho các tiến trình • • Job queue: hàng đợi dành cho tất cả các tiến trình trong hệ thống Ready queue: bao gồm các tiến trình đang ở trạng thái sẵn sàng Device queues: hàng đợi dành cho các tiến trình đang chờ đợi thiết bị vào/ra • Mỗi thiết bị có hàng đợi riêng biệt • • 18 19 Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 CÁC HÀNG ĐỢI ĐIỀU PHỐI • Trong suốt thời gian tồn tại tiến trình di chuyển giữa các hàng đợi 20 BỘ ĐIỀU PHỐI – SCH E DULER Lựa chọn tiến trình trong các hàng đợi • • Điều phối dài hạn ( Job scheduler; Long-term scheduler ) Điều phối ngắn hạn ( CPU scheduler; Short-term scheduler ) 21 B Ộ ĐIỀU PHỐI D ÀI HẠN • • Thuật ngữ: Job scheduler, long-term scheduler Trong hệ thống lô, số lượng tiến trình đưa vào hệ thống th ư ờng nh i ều hơn số l ư ợng tiến tr ì nh c ó thể thực thi ngay lập tức Các tiến trình này được lưu trữ tạm thời ở một thiết bị lưu trữ (mass-storage device), thường là ổ đĩa (disk) Bộ điều phối dài hạn lựa chọn tiến trình từ nhóm này để tải vào bộ nhớ • • 22 B Ộ ĐIỀU PHỐI D ÀI HẠN • Bộ điều phối dài hạn k i ểm so á t mức độ đa chương trình Nếu mức độ đa chương trình ổn định, bộ điều phối hạn chỉ được gọi khi có một tiến trình rời hệ thống • Điều phối không thường xuyên • Đơn vị giây/phút Lựa chọn tiến trình: • dài • • • • Tiến trình thiên về vào/ra (I/O bound) Tiến trình thiên về CPU (CPU bound) Cần lựa chọn cả 2 loại tiến trình • Trong nhiều hệ thống, không có bộ điều phối dài hạn • Ví dụ: Time-sharing system, như: Unix, Microsoft Windows 23 BỘ ĐIỀU PHỐI NGẮN HẠN • • Thuật ngữ: CPU scheduler, short-term scheduler Lựa chọn một tiến trình từ ready phối CPU cho nó Được thực hiện thường xuyên Phải thực hiện nhanh queue và phân • • • Thuật toán lựa chọn tiến trình? 24 BỘ ĐIỀU PHỐI TRUNG HẠN • • Thuật ngữ: Medium-term scheduler Trong một số hệ chia sẻ thời gian (time-sharing systems), có thêm bộ điều phối trung hạn Nhiệm vụ • Đưa một hoặc một số tiến trình ra khỏi bộ nhớ (làm giảm mức độ đa chương trình) • Sau đó đưa tiến trình trở lại và tiếp tục thực hiện Mục đích • Giải phóng vùng nhớ, tạo vùng nhớ tự do rộng hơn • • 25 BỘ ĐIỀU PHỐI TRUNG HẠN 26 CHUYỂN ĐỔI GIỮA CÁC TIẾN TRÌNH • Thông t i n v ề tiến tr ì nh hiện thời (chứa t r ong PCB) đ ư ợc gọi là ngữ cảnh (context) của tiến trình • Việc chu y ển giữa tiến trình c òn đ ược ngữ cảnh (context switch) Xảy ra khi: • Có ngắt • Tiến trình gọi lời gọi hệ thống Trước khi chuyển sang thực hiện tiến cảnh được lưu vào PCB gọi là chuyển đổi • • trình khác, ngữ • Khi được c ấp ph á t CPU thực hiện t r ở lại, ngữ c ảnh được khôi phục từ PCB vào các thanh ghi và bảng tương ứng 27 28 Figure credit: Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3 TRUYỀN THÔNG LIÊN TIẾN TRÌNH • • • • • Phân loại tiến trình Hợp tác tiến trình Hai mô hình của truyền thông Shared memory systems liên tiến trình Message passing systems 29 PHÂN LOẠI TIẾN TRÌNH • Tiến trình tuần tự • Điểm bắt đầu của tiến trình này của tiến trình kia Tiến trình song song nằm sau điểm kết thúc • • Điểm bắt đầu của tiến trình này nằm giữa điểm bắt đầu và kết thúc của tiến trình kia • • Tiến Tiến trình trình độc lập hợp tác 30 HỢP T ÁC TIẾN TRÌNH • Mục đích • • • • Chia sẻ thông tin Tăng tốc độ tính toán Module hoá Tiện dụng • Yêu cầu cơ chế: • • Truyền thông giữa các tiến trình Đồng bộ hoá hoạt động của các tiến trình 31 HAI MÔ HÌNH CƠ BẢN CỦA TRUYỀN THÔNG LIÊN TIẾN TRÌNH • Shared Memory • • Một vùng nhớ chung được thiết lập cho các tiến trình hợp tác Các tiến trình trao đổi thông tin bằng việc đọc (reading) và ghi (writing) dữ liệu vào vùng nhớ chung Nhanh Khó set up Không dùng được trong hệ đa máy tính (multiple computers) • • • • Message Passing • Các tiến trình trao đổi thông tin thông qua hình thức truyền thông điệp Dùng khi chia sẻ lượng thông tin nhỏ, hoặc trên hệ đa MT Dễ lập trình hơn Shared Memory Chậm vì cần đến lời gọi hệ thống (System calls) • • • 32 33
File đính kèm:
- bai_giang_he_dieu_hanh_tien_trinh_nguyen_le_minh.pptx