Bài giảng Lập trình hệ điều hành: Chương 3 - Hà Duy Anh
lượt xem 8
download
Bài giảng "Lập trình hệ điều hành - Chương 3: Tiến trình và luồng" cung cấp cho người học các kiến thức: Các khái niệm, định thời biểu tiến trình, các thao tác với tiến trình, giao tiếp giữa các tiến trình, giới thiệu về Luồng, lập trình trên vi xử lý đa nhân, mô hình đa luồng. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hệ điều hành: Chương 3 - Hà Duy Anh
- Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ Giảng viên: Hà Duy An
- 1. Các khái niệm 2. Định thời biểu tiến trình 3. Các thao tác với tiến trình 4. Giao tiếp giữa các tiến trình 8/22/2013 3 Chương 3: Tiến Trình
- • Hệ điều hành có thể thực thi nhiều dạng chương trình: o Hệ thống bó (batch system) – jobs o Hệ thống chia thời gian – chương trình người dùng (user program) hay tác vụ (task) • Tiến trình - là một chương trình đang thực thi. Sự thực thi của tiến trình diễn ra theo cách thức tuần tự. • Một tiến trình bao gồm: o Mã chương chương trình (program code hay text section) o Bộ đếm chương trình (program counter) o Ngăn xếp (stack) – chứa các dữ liệu tạm thời • Các tham số của hàm, địa chỉ trở về, biến cục bộ o Phần dữ liệu (data section) - chứa các biến toàn cục o Heap – bộ nhớ động, được cấp phát trong suốt thời gian thực thi 8/22/2013 5 Chương 3: Tiến Trình
- • Chương trình là một thực thể bị động lưu trữ trên đĩa, tiến trình là thực thể chủ động o Chương trình trở thành tiến trình nó được nạp vào trong bộ nhớ để thực thi o Chương trình có thể được kích hoạt qua thao tác nhấp chuột, nhập tên vào CLI, … o Một chương trình có thể có vài tiến trình 8/22/2013 6 Chương 3: Tiến Trình
- • Tiến trình có thể có các trạng thái sau: o new: quá trình đang được khởi tạo. o running: các chỉ thị của quá trình đang được thực thi. o waiting: quá trình đang chờ đợi một sự kiện nào đó xảy ra (hoàn thành xuất/nhập, chờ đợi một tín hiệu). o ready: quá trình đang đợi để được sử dụng CPU. o terminated: quá trình đã kết thúc. 8/22/2013 7 Chương 3: Tiến Trình
- 8/22/2013 8 Chương 3: Tiến Trình
- • Thông tin kết hợp với mỗi quá trình: o Trạng thái của quá trình o Bộ đếm chương trình o Các thanh ghi o Thông tin về định thời sử dụng CPU o Thông tin về quản lý bộ nhớ o Thông tin về chi phí o Thông tin về trạng thái nhập/xuất 8/22/2013 9 Chương 3: Tiến Trình
- 8/22/2013 10 Chương 3: Tiến Trình
- • Nhằm tối ưu hóa việc sử dụng CPU, các tiến thay phiên nhau sử dụng CPU • Bộ định thời tiến trình (Process scheduler) chọn lựa một tiến trình có thể thực thi để cấp phát CPU cho tiến trình đó • Các hàng đợi định thời: o Hàng đợi công việc (Job queue): tập hợp tất cả các quá trình trong hệ thống. o Hàng đợi sẵn sàng (Readyqueue): tập hợp tất cả các quá trình đang nằm trong bộ nhớ, sẵn sàng và đang chờ để thực thi. o Hàng đợi thiết bị (Device queue): tập hợp các quá trình đang đợi sử dụng một thiết bị xuất/nhập. • Quá trình có thể di chuyển giữa các hàng đợi khác nhau 8/22/2013 12 Chương 3: Tiến Trình
- 8/22/2013 13 Chương 3: Tiến Trình
- 8/22/2013 14 Chương 3: Tiến Trình
- • Bộ định thời dài kỳ (Long-term scheduler/job scheduler) – chọn quá trình nào sẽ được đặt vào hàng đợi sẵn sàng (nạp vào bộ nhớ). • Bộ định thời ngắn kỳ (Short-term scheduler/CPU scheduler) –chọn ra quá trình sẽ được thực thi kế tiếp và cấp CPU cho nó. • Bộ định thời ngắn kỳ được gọi rất thường xuyên (milliseconds) => cần phải nhanh • Bộ định thời dài kỳ được gọi không thường xuyên hơn (seconds, minutes) => có thể chậm • Bộ định thời dài kỳ khống chế mức độ đa chương của hệ thống • Các tiến trình có thể là: o Tiến trình hướng xử lý: cần nhiều tính toán hơn nhập xuất o Tiến trình hướng nhập xuất: cần nhiều nhập xuất hơn tính toán • Bộ định thời dài kỳ cố gắng điều hòa giữa các tiến trình này 8/22/2013 15 Chương 3: Tiến Trình
- • Bộ định thời trung kỳ (Medium-term scheduling) – làm giảm mức độ đa chương của hệ thống o Di chuyển các tiến tình ra khỏi bộ nhớ, lưu trữ trên đĩa, sau đó mang vào bộ nhớ để tiếp tục thực thi: swapping 8/22/2013 16 Chương 3: Tiến Trình
- • Chuyển ngữ cảnh (context switch): Khi CPU chuyển sang phục vụ tiến trình khác, hệ thống phải ghi lại trạng thái của tiến trình cũ và nạp trạng thái được lưu trước đó của tiến trình mới • “Ngữ cảnh” của một tiến trình được xác định thông qua các thông tin trong PCB • Thời gian chuyển ngữ cảnh là một phí tổn, vì hệ thống không làm gì hữu ích khi thực hiện chuyển ngữ cảnh o HĐH và PCB càng phức tạp => thời gian chuyển ngũ cảnh càng dài • Thời gian chuyển ngữ cảnh phụ thuộc nhiều vào sự hỗ trợ của phần cứng o Vài hệ thống cung cấp nhiều tổ hợp các thanh ghi trên mỗi CPU=> nhiều “ngữ cảnh” được nạp vào cùng lúc 8/22/2013 17 Chương 3: Tiến Trình
- • Quá trình cha tạo ra quá trình con, đến lượt quá trình con này lại tạo ra những quá trình khác, tạo nên cây quá trình. • Thông thường các tiến trình được xác định và quản lý thông qua PID (Process identifier) • Chia sẻ tài nguyên – có nhiều lựa chọn: o Quá trình cha và con chia sẻ tất cả tài nguyên. o Quá trình con chia sẻ một phần tài nguyên của quá trình cha. o Quá trình cha và con không chia sẻ tài nguyên nào cả. • Thực thi: o Quá trình cha và con thực thi đồng thời. o Quá trình cha đợi đến khi quá trình con hoàn thành. 8/22/2013 19 Chương 3: Tiến Trình
- init pid = 1 login kthreadd sshd pid = 8415 pid = 2 pid = 3028 bash khelper pdflush sshd pid = 8416 pid = 6 pid = 200 pid = 3610 emacs tcsch ps pid = 9204 pid = 4005 pid = 9298 8/22/2013 20 Chương 3: Tiến Trình
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình Windows - ĐH Hàng Hải
96 p | 211 | 41
-
Bài giảng Lập trình hệ điều hành: Chương 1 - Hà Duy Anh
52 p | 125 | 14
-
Bài giảng Lập trình hệ nhúng: Chương 1 - Phạm Ngọc Hưng
56 p | 124 | 12
-
Bài giảng Lập trình hệ điều hành: Chương 7 - Hà Duy Anh
57 p | 116 | 11
-
Bài giảng Lập trình hệ nhúng: Chương 2 - Phạm Ngọc Hưng
23 p | 105 | 10
-
Bài giảng Lập trình di động: Bài 1 - Trương Xuân Nam
65 p | 135 | 10
-
Bài giảng Lập trình hệ điều hành: Chương 6 - Hà Duy Anh
45 p | 111 | 9
-
Bài giảng Lập trình di động - Bài 1: Giới thiệu về lập trình java trên Android OS
64 p | 49 | 9
-
Bài giảng Lập trình hệ điều hành: Chương 8 - Hà Duy Anh
64 p | 90 | 8
-
Bài giảng Lập trình hệ điều hành: Chương 4 - Hà Duy Anh
44 p | 98 | 8
-
Bài giảng Lập trình hệ điều hành: Chương 5 - Hà Duy Anh
55 p | 90 | 7
-
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 3) - Nguyễn Hải Châu
8 p | 110 | 5
-
Bài giảng Lập trình hệ nhúng: Chương 1 - Phạm Văn Thuận
31 p | 71 | 5
-
Bài giảng Nguyên lý hệ điều hành (Bài giảng tuần 2) - Nguyễn Hải Châu
6 p | 106 | 4
-
Bài giảng Lập trình hệ nhúng: Chương 2 - Phạm Văn Thuận
27 p | 62 | 3
-
Bài giảng Lập trình hệ điều hành: Chương 2 - Hà Duy Anh
45 p | 92 | 3
-
Bài giảng môn Lập trình hệ điều hành - Hà Duy Anh
6 p | 105 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn