intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Nguyên lý hệ điều hành: Chương 2 - Phạm Đăng Hải

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:467

41
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Nguyên lý hệ điều hành - Chương 2: Quản lý tiến trình. Những nội dung chính trong chương này gồm có: Tiến trình, luồng (thread), điều phối CPU, tài nguyên găng và điều độ tiến trình, bế tắc và xử lý bế tắc. Mời các bạn cùng tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Nguyên lý hệ điều hành: Chương 2 - Phạm Đăng Hải

  1. Hệ điều hành o .c ng HỆ ĐIỀU HÀNH co Phạm Đăng Hải an haipd@soict.hust.edu.vn thBộ môn Khoa học Máy tính Viện Công nghệ Thông tin & Truyền Thông o ng du Ngày 29 tháng 1 năm 2018 u CuuDuongThanCong.com https://fb.com/tailieudientucntt 1 / 220
  2. Chương 2: Quản lý tiến trình o .c ng co an Chương 2 Quản lý tiến trình th o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 2 / 220
  3. Chương 2: Quản lý tiến trình o .c Giới thiệu ng Khi chương trình đang thực hiện Được cung cấp tài nguyên (CPU, bộ nhớ, thiết bị vào/ra. . .) co để hoàn thành công việc Tài nguyên được cấp khi bắt đầu chương trình hay trong khi chương trình đang thực hiện an Gọi là tiến trình (process) Hệ thống bao gồm tập các tiến trình thực hiện đồng thời th Tiến trình hệ điều hành Thực hiện mã lệnh hệ thống Tiến trình người dùng Thực hiện mã lệnh người dùng ng Tiến trình có thể chứa một hoặc nhiều luồng điều khiển Trách nhiệm của Hệ điều hành: Đảm bảo họat động của tiến o trình và tiểu trình (luồng ) du Tạo/xóa tiến trình (người dùng, hệ thống) Điều phối tiến trình Cung cấp cơ chế đồng bộ, truyền thông và ngăn ngừa tình u trạng bế tắc giữa các tiến trình CuuDuongThanCong.com https://fb.com/tailieudientucntt 3 / 220
  4. Chương 2: Quản lý tiến trình o .c Nội dung chính ng co 1 Tiến trình Luồng (Thread) an 2 3 Điều phối CPU th ng 4 Tài nguyên găng và điều độ tiến trình o 5 Bế tắc và xử lý bế tắc du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 4 / 220
  5. Chương 2: Quản lý tiến trình o 1. Tiến trình .c Nội dung chính ng co 1 Tiến trình Luồng (Thread) an 2 3 Điều phối CPU th ng 4 Tài nguyên găng và điều độ tiến trình o 5 Bế tắc và xử lý bế tắc du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 5 / 220
  6. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c ng 1 Tiến trình co Khái niệm tiến trình Điều phối tiến trình (Process Scheduling) an Thao tác trên tiến trình th Hợp tác tiến trình Truyền thông liên tiến trình o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 6 / 220
  7. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Tiến trình ng Trạng thái hệ thống Vi xử lý: Giá trị các thanh ghi Bộ nhớ: Nội dung các ô nhớ co Thiết bị ngoại vi: Trạng thái thiết bị an th o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 7 / 220
  8. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Tiến trình ng Trạng thái hệ thống Vi xử lý: Giá trị các thanh ghi Bộ nhớ: Nội dung các ô nhớ co Thiết bị ngoại vi: Trạng thái thiết bị Thực hiện chương trình ⇒Trạng thái hệ thống thay đổi an Thay đổi rời rạc, theo từng câu lệnh được thực hiện q0 q1 th q2 qn ... o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 7 / 220
  9. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Tiến trình ng Trạng thái hệ thống Vi xử lý: Giá trị các thanh ghi Bộ nhớ: Nội dung các ô nhớ co Thiết bị ngoại vi: Trạng thái thiết bị Thực hiện chương trình ⇒Trạng thái hệ thống thay đổi an Thay đổi rời rạc, theo từng câu lệnh được thực hiện q0 q1 th q2 qn ... ng Tiến trình là một dãy thay đổi trạng thái của hệ thống Chuyển từ trạng thái này sang trạng thái khác được thực hiện o theo yêu cầu nằm trong chương trình của người sử dụng du Xuất phát từ một trạng thái ban đầu u CuuDuongThanCong.com https://fb.com/tailieudientucntt 7 / 220
  10. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Tiến trình ng Trạng thái hệ thống Vi xử lý: Giá trị các thanh ghi Bộ nhớ: Nội dung các ô nhớ co Thiết bị ngoại vi: Trạng thái thiết bị Thực hiện chương trình ⇒Trạng thái hệ thống thay đổi an Thay đổi rời rạc, theo từng câu lệnh được thực hiện q0 q1 th q2 qn ... ng Tiến trình là một dãy thay đổi trạng thái của hệ thống Chuyển từ trạng thái này sang trạng thái khác được thực hiện o theo yêu cầu nằm trong chương trình của người sử dụng du Xuất phát từ một trạng thái ban đầu   Tiến trình là sự thực hiện chương trình u   CuuDuongThanCong.com https://fb.com/tailieudientucntt 7 / 220
  11. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Tiến trình >< chương trình ng co an th o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 8 / 220
  12. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Tiến trình >< chương trình ng Chương trình: thực thể thụ động (nội dung file trên đĩa) Mã chương trình: Lệnh máy (CD2190EA...) Dữ liệu: Biến được lưu trữ và sử dụng trong bộ nhớ co Biến toàn cục Biến được cung cấp động (malloc, new,..) Biến stack (tham số hàm, biến cục bộ ) an Thư viện liên kết động (DLL) Không được dịch & liên kết cùng với chương trình th Khi chương trình đang thực hiện, tài nguyên tối thiểu cần có Bộ nhớ cho mã chương trình và dữ liệu ng Các thanh ghi của VXL phục vụ cho quá trình thực hiện o du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 8 / 220
  13. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Tiến trình >< chương trình ng Chương trình: thực thể thụ động (nội dung file trên đĩa) Mã chương trình: Lệnh máy (CD2190EA...) Dữ liệu: Biến được lưu trữ và sử dụng trong bộ nhớ co Biến toàn cục Biến được cung cấp động (malloc, new,..) Biến stack (tham số hàm, biến cục bộ ) an Thư viện liên kết động (DLL) Không được dịch & liên kết cùng với chương trình th Khi chương trình đang thực hiện, tài nguyên tối thiểu cần có Bộ nhớ cho mã chương trình và dữ liệu ng Các thanh ghi của VXL phục vụ cho quá trình thực hiện Tiến trình: thực thể chủ động (bộ đếm lệnh, tập tài nguyên) o du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 8 / 220
  14. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Tiến trình >< chương trình ng Chương trình: thực thể thụ động (nội dung file trên đĩa) Mã chương trình: Lệnh máy (CD2190EA...) Dữ liệu: Biến được lưu trữ và sử dụng trong bộ nhớ co Biến toàn cục Biến được cung cấp động (malloc, new,..) Biến stack (tham số hàm, biến cục bộ ) an Thư viện liên kết động (DLL) Không được dịch & liên kết cùng với chương trình th Khi chương trình đang thực hiện, tài nguyên tối thiểu cần có Bộ nhớ cho mã chương trình và dữ liệu ng Các thanh ghi của VXL phục vụ cho quá trình thực hiện Tiến trình: thực thể chủ động (bộ đếm lệnh, tập tài nguyên) o Một chương trình có thể du Chỉ là một phần của trạng thái tiến trình Một chương trình, nhiều tiến trình( bộ dữ liệu khác nhau) gcc hello.c k gcc baitap.c u Gọi tới nhiều tiếnhttps://fb.com/tailieudientucntt CuuDuongThanCong.com trình 8 / 220
  15. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Dịch và thực hiên một chương trình ng co an th o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 9 / 220
  16. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Thực hiện một chương trình ng co an th o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 / 220
  17. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Thực hiện một chương trình ng Hệ điều hành tạo một tiến trình và phân phối vùng nhớ cho nó co an th o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 / 220
  18. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Thực hiện một chương trình ng Hệ điều hành tạo một tiến trình và phân phối vùng nhớ cho nó Bộ thực hiện (loader/exec) Đọc và dịch (interprets) file thực thi (header file) co Thiết lập không gian địa chỉ cho tiến trình để chứa mã lệnh và dữ liệu từ file thực thi an Đặt các tham số dòng lệnh, biến môi trường (argc, argv, envp) vào stack Thiết lập các thanh ghi của VXL tới các giá trị thích hợp và th gọi hàm "_start()" (hàm của hệ điều hành) o ng du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 / 220
  19. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Thực hiện một chương trình ng Hệ điều hành tạo một tiến trình và phân phối vùng nhớ cho nó Bộ thực hiện (loader/exec) Đọc và dịch (interprets) file thực thi (header file) co Thiết lập không gian địa chỉ cho tiến trình để chứa mã lệnh và dữ liệu từ file thực thi an Đặt các tham số dòng lệnh, biến môi trường (argc, argv, envp) vào stack Thiết lập các thanh ghi của VXL tới các giá trị thích hợp và th gọi hàm "_start()" (hàm của hệ điều hành) Chương trình bắt đầu thực hiện tại "_start()". Hàm này gọi ng tới hàm main()(hàm của chương trình) ⇒"Tiến trình" đang thực hiện, không còn đề cập đến o "chương trình" nữa du u CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 / 220
  20. Chương 2: Quản lý tiến trình o 1. Tiến trình 1.1 Khái niệm tiến trình .c Thực hiện một chương trình ng Hệ điều hành tạo một tiến trình và phân phối vùng nhớ cho nó Bộ thực hiện (loader/exec) Đọc và dịch (interprets) file thực thi (header file) co Thiết lập không gian địa chỉ cho tiến trình để chứa mã lệnh và dữ liệu từ file thực thi an Đặt các tham số dòng lệnh, biến môi trường (argc, argv, envp) vào stack Thiết lập các thanh ghi của VXL tới các giá trị thích hợp và th gọi hàm "_start()" (hàm của hệ điều hành) Chương trình bắt đầu thực hiện tại "_start()". Hàm này gọi ng tới hàm main()(hàm của chương trình) ⇒"Tiến trình" đang thực hiện, không còn đề cập đến o "chương trình" nữa du Khi hàm main() kết thúc, OS gọi tới hàm "_exit()" để hủy bỏ tiến trình và thu hồi tài nguyên u CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 / 220
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2