HỆ ĐIỀU HÀNH
Giảng viên: Ths Phạm Thanh Bình
Bộ môn Kỹ thuật máy tính & mạng
Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT
Hệ điều hành 2 - 1
Chương 2:
TIẾN TRÌNH VÀ LUỒNG
Các khái niệm
Các trạng thái của một tiến trình
Điều độ tiến trình
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 2
Bài 2.1 – Các khái niệm
Thực hiện tuần tự và song song
Tiến trình là gì?
Khối mô tả tiến trình
Các hình thức tổ chức tiến trình
Luồng là gì?
Phân biệt tiến trình và luồng
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 3
Thực hiện tuần tự và song song
Thực hiện tuần tự: Tại một thời điểm chỉ có thể
thực hiện một chương trình, khi chương trình đó
thực hiện xong thì mới chạy được chương trình
khác.
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 4
Thực hiện song song: Có thể chạy nhiều
chương trình cùng một lúc
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 5
Tiến trình là gì?
Một tiến trình (Process) là sự thực hiện một
chương trình
Mỗi tiến trình sẽ được chạy trong khoảng thời
gian (vài chục hay vài trăm mili giây), sau đó nó
sẽ chuyển CPU cho tiến trình khác
Tạo ra cảm giác các chương trình chạy song
song
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 6
Làm cách nào để phân biệt được tiến trình này
với tiến trình khác trong hệ thống?
Mỗi tiến trình cần có đặc trưng riêng, như ID
của tiến trình, tài nguyên của tiến trình...
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 7
Khối mô tả tiến trình
Là nơi chứa những đặc trưng của một tiến trình,
bao gồm:
Biến trạng thái: Lưu giữ trạng thái của tiến trình
(Sẵn sàng, Đang thực hiện, Dừng)
Vùng nhớ lưu giá trị các thanh ghi mà tiến trình
sử dụng
Thông tin về các tài nguyên mà tiến trình sử dụng
Thông tin phục vụ cho việc liên lạc với các tiến
trình khác (nếu có)
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 8
Hệ điều hành phải có công cụ để quản lý các
tiến trình
Mỗi hệ điều hành thường có một tập hợp các
hàm quản lý tiến trình như Khởi tạo tiến trình,
Huỷ tiến trình...
Ví dụ:
Chương trình “Windows Task Manager”
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 9
Các hình thức tổ chức tiến trình
Độc lập
Có quan hệ thông tin
Phân cấp
Đồng mức
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 10
Các hàm quản lý tiến trình trên Windows
Hàm API (Application Program Interface)
Các hàm Create, Terminate, Open...
Hàng đợi thông báo, các hàm trao đổi thông báo
PostMessage, SendMessage...
...
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 11
Luồng là gì?
Trong một chương trình có thể có nhiều công
việc cần làm
Các công việc đó cũng có thể được thực hiện
song song, mỗi công việc sẽ ứng với một luồng
(Thread)
Hệ điều hành cũng có các hàm quản lý luồng:
Khởi tạo luồng, Huỷ luồng... (tương tự như quản
lý tiến trình)
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 12
Phân biệt tiến trình và luồng
Các tiến trình sử dụng các không gian nhớ độc
lập
Các luồng có thể sử dụng chung không gian
nhớ của chương trình (biến toàn cục), và có thể
có vùng nhớ của riêng nó (biến cục bộ)
...
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 13
Cách sử dụng hàm API
Khai báo hàm (tuỳ từng ngôn ngữ):
+ Biết được các tham số của hàm
+ Biết được hàm nằm trong file DLL nào
Gọi hàm để sử dụng
BÀI TẬP
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 14
Bài 2.2 – Các trạng thái của một tiến trình
Tại một thời điểm, tiến trình có thể ở một trong
ba trạng thái sau:
Trạng thái thực hiện: là trạng thái mà tiến trình
đang sử dụng CPU để thực hiện lệnh
Trạng thái sẵn sàng: Tiến trình đã được phân
phối đầy đủ mọi tài nguyên, chỉ trừ CPU
Trạng thái dừng: Tiến trình còn thiếu một vài
điều kiện nào đó thì mới chuyển sang trạng thái
sẵn sàng
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 15
Quá trình chuyển đổi trạng thái
...
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 16
Bài 2.3 – Điều độ tiến trình
Tài nguyên găng
Điều độ tiến trình
Các giải thuật điều độ
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 17
Tài nguyên găng
Tài nguyên găng là loại tài nguyên mà tại một
thời điểm chỉ có thể phục vụ cho một đối tượng
Ví dụ: CPU, một ô nhớ, máy in...
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 18
Điều độ tiến trình
Điều độ tiến trình (theo nghĩa tổng quát) là sự
tổ chức thực hiện các tiến trình theo một giải
thuật nào đó, nhằm tránh sự xung đột giữa các
tiến trình về mặt tài nguyên
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 19
Công tác điều độ phải thoả mãn các yêu cầu sau:
Mỗi thời điểm chỉ có một tiến trình nằm trong
đoạn găng
Không tiến trình nào được phép ở lâu vô hạn
trong đoạn găng
Không tiến trình nào phải chờ vô hạn trước
đoạn găng
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 20
Điều độ tiến trình (theo nghĩa hẹp) là sự tổ
chức, phân phối tài nguyên CPU cho các tiến
trình theo một giải thuật nào đó, nhằm đảm bảo
tốc độ thực hiện của các tiến trình và hiệu quả
sử dụng CPU
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 21
Các thuật ngữ:
Điều độ = scheduling
Bộ phận điều độ = scheduler
Giải thuật điều độ = scheduling algorithm
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 22
Các giải thuật điều độ
FCFS (First-Come First-Served )
Đến trước phục vụ trước
SJF (Shortest Job First)
Ưu tiên tiến trình ngắn nhất
SRTN (Shortest Remaining Time Next)
Ưu tiên tiến trình có thời gian còn lại ít nhất
Round-Robin
Xếp hàng vòng tròn
...
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 23
BÀI TẬP
Mục đích:
Tìm hiểu về lập trình ngắt để chạy song song
hai chương trình
Tránh xung đột khi hai chương trình sử dụng
chung một tài nguyên
Ngôn ngữ lập trình: C/C++
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 24
Ôn tập:
Khái niệm ngắt
Phân loại ngắt
Các bước xử lý ngắt
Ngắt kép và các giải pháp xử lý
Tìm hiểu ngắt thời gian và ngắt bàn phím
Lập trình ngắt
Bộ môn Kỹ thuật máy tính & mạng –
Hệ điều hành 2 - 25