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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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, Ngắt)
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 ngắt: 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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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ự sung
độ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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
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 –
Khoa CNTT
Hệ điều hành 2 22
Các giải thuật điều độ
FCFS (FirstCome FirstServed )
Đế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
RoundRobin
ếp hàng vòng tròn
B X
ộ môn K
ỹ thuật máy tính & mạng –
Khoa CNTT
...
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 –
Khoa CNTT
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 –
Khoa CNTT
Hệ điều hành 2 25