Chương 2 - Các Mô Hình X Lý Đ NG Hành

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 20

Môn: HỆ ĐIỀU HÀNH THỜI GIAN THỰC

Chương 2:
Các mô hình xử lý đồng hành
Nội dung
1. Nhu cầu xử lý đồng hành
2. Khái niệm tiến trình(process) và mô hình đa
tiến trình (multiprocess)
3. Khái niệm tiểu trình (thread) và mô hình đa
tiểu trình(multithread)
I. NHU CẦU XỬ LÝ ĐỒNG HÀNH
Có 2 động lực chính khiến cho các hệ điều hành
hiện đại thường hỗ trợ môi trường đa nhiệm
(multitask) trong đó chấp nhận nhiều tác vụ thực
hiện đồng thời (concurrency) trên cùng một máy
tính :
• Tăng hiệu suất sử dụng CPU
• Tăng tốc độ xử lý
I. NHU CẦU XỬ LÝ ĐỒNG HÀNH
Tăng hiệu suất sử dụng CPU:
• Khi tác vụ (tiến trình) đang xử lý IO, thì CPU sẽ
rãnh rỗi.
• Vì thế, CPU sẽ được tận dụng lúc rãnh, để dùng
cho một tác vụ khác.
TH1: Task 1 CPU IO CPU IO

TH2: Task 1 CPU IO CPU IO


Task 2 CPU IO CPU
I. NHU CẦU XỬ LÝ ĐỒNG HÀNH
Tăng tốc độ xử lý:
• Với bài toán có bản chất xử lý song song
nếu được xây dựng thành nhiều module
hoạt động đồng thời thì sẽ tiết kiệm được thời
gian xử lý.
• Ví dụ : Xét bài toán tính giá trị biểu thức
kq = a*b + c*d .
Cách tính 1: Cách tính 2:
X = a*b X = a*b Y = c*d
Y = c*d Kq = X + Y
Kq = X + Y
II. TIẾN TRÌNH(PROCESS) &
MÔ HÌNH ĐA TIẾN TRÌNH (MULTIPROCESS)

• Việc điều khiển nhiều hoạt động song song ở


cấp độ phần cứng là rất khó khăn.

• Vì thế các nhà thiết kế đề xuất một mô


hình song song giả lập, bằng cách chuyển đổi
bộ xử lý qua lại giữa các chương trình để duy trì
hoạt động của nhiều chương trình cùng lúc.
II. TIẾN TRÌNH(PROCESS) &
MÔ HÌNH ĐA TIẾN TRÌNH (MULTIPROCESS)

• Các phần mềm trong ht được tổ chức thành một


số những tiến trình (process).

Hệ điều hành

Tiến trình 1 Tiến trình 2


Không gian địa chỉ A Không gian địa chỉ B
Con trỏ lệnh + thanh ghi Con trỏ lệnh + thanh ghi
Stack Stack
Tài nguyên # Tài nguyên #
Câu hỏi
1. Mỗi tiến trình cần những gì để thực thi ?
II. TIẾN TRÌNH(PROCESS) &
MÔ HÌNH ĐA TIẾN TRÌNH (MULTIPROCESS)

Phân biệt 2 khái niệm: chương trình và tiến trình.


CHƯƠNG TRÌNH TIẾN TRÌNH
- Một thực thể thụ động, - Một thực thể hoạt động,
- Chứa đựng các chỉ thị để - Có 1 con trỏ lệnh xác định
tiến hành một tác vụ chỉ thị kế tiếp sẽ thi hành,
nào đó . - Kèm theo các tài nguyên,
stack, không gian địa chỉ,
ngoại vi.
II. TIẾN TRÌNH(PROCESS) &
MÔ HÌNH ĐA TIẾN TRÌNH (MULTIPROCESS)

• Bộ phận điều phối hoạt động của các tiến trình,


được gọi là bộ điều phối (scheduler).

• Scheduler cung cấp giải thuật để giúp các tiến


trình chạy song song.
II. TIẾN TRÌNH(PROCESS) &
MÔ HÌNH ĐA TIẾN TRÌNH (MULTIPROCESS)
III. TIỂU TRÌNH (THREAD) &
MÔ HÌNH ĐA TIỂU TRÌNH(MULTITHREAD)
• Tiến trình được chia nhỏ ra thành nhiều tiểu
trình (Thread) .
Tiến trình A
Không gian địa chỉ A
Tài nguyên toàn cục
Thông tin thống kê

Tiểu trình 1 Tiểu trình 2


Con trỏ lệnh + thanh ghi
Stack
Con trỏ lệnh + thanh ghi
Stack

Tài nguyên cục bộ Tài nguyên cục bộ
III. TIỂU TRÌNH (THREAD) &
MÔ HÌNH ĐA TIỂU TRÌNH(MULTITHREAD)
• Ví dụ: 1 server luôn phải đợi kết nối của các
người chơi đăng nhập mới, đồng thời cũng phải
xử lý các nhiệm vụ khác (tải chương trình, cập
nhật thông tin,…). Vì vậy, cần 1 dòng xử lý riêng
để đợi đăng nhập.

1 tiến trình trên Server

Tiểu trình 1 Tiểu trình 2


Xử lý sự kiện Login. Xử lý chương trình.
III. TIỂU TRÌNH (THREAD) &
MÔ HÌNH ĐA TIỂU TRÌNH(MULTITHREAD)
• Một tiểu trình là một đơn vị xử lý cơ bản trong hệ
thống.

• Các tiểu trình chia sẻ CPU với nhau giống như


cách chia sẻ giữa các tiến trình: một tiểu trình xử
lý trong khi các tiểu trình khác chờ đến lượt.
Câu hỏi
1. So sánh sự giống và khác nhau giữa:
Tiến Trình và Tiểu trình ?
So sánh Tiến trình & Tiểu trình
• Giống nhau: Đều có:
– 1 con trỏ lệnh,
– Stack ,
– Các thanh ghi
– không gian địa chỉ.
So sánh Tiến trình & Tiểu trình
Khác nhau:
Tiến trình Tiểu trình
• Trao đổi thông tin phải • Trao đổi thông tin trực
thông qua hệ điều hành. tiếp với nhau.
• Khác không gian địa chỉ. • Chung không gian địa chỉ.
IV. TỔNG KẾT

• Tiến trình là một chương trình đang hoạt động.


• Để sử dụng hiệu quả CPU, sự đa chương
cần được đưa vào hệ thống.
• Sự đa chương được tổ chức bằng cách lưu trữ
nhiều tiến trình trong bộ nhớ tại một thời điểm,
và điều phối CPU qua lại giữa các tiến trình trong
hệ thống.
• Mô hình đa tiểu trình cho phép mỗi tiến trình có
thể tiến hành nhiều dòng xử lý đồng thời trong
cùng một không gian địa chỉ nhằm thực hiện tác
vụ hiệu quả hơn trong một số trường hợp.
END !!!
Củng cố bài học
Các câu hỏi cần trả lời được sau bài học này :
• 1. Tại sao các hệ điều hành hiện đại hỗ trợ môi trường đa
nhiệm ?
• 2. Phân biệt multitask, multiprogramming và
multiprocessing.
• 3. Khái niệm tiến trình được xây dựng nhằm mục đích gì ?
• 4. Sự khác biệt, mối quan hệ giữa tiến trình và tiểu trình ?
Bài tập
• Bài 1. Nhiều hệ điều hành không cho phép xử lý đồng
hành. Thảo luận về các phức tạp phát sinh khi hệ điều hành
cho phép đa nhiệm ?
• Bài 2. Tìm một số ứng dụng thích hợp với mô hình đa tiến
trình; và một số ứng dụng thích hợp với mô hình đa tiểu
trình.

You might also like