Tải bản đầy đủ (.pdf) (60 trang)

Bài giảng Hệ điều hành: Chương 2 - ThS. Phạm Thanh Bình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (758.28 KB, 60 trang )

    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 (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
ế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


×