You are on page 1of 7

Scheduleng

Program: đoạn chương trình ko chạy nằm trên ổ cứng( một thực thể thụ động chứa lệnh và dữ liệu để
tiến hành một tác vụ( công việc)

Process: Quá trình có nhiều bước : đọc dịch đoạn chương trình bằng trình biên dịch thành mã máy nộp
vào bộ nhớ chính cung cấp input .

Thread: trong hệ thống có thể có nhiều dòng xử lý cùng chia sẻ một không gian địa chỉ bộ nhớ, các dòng
xử lý này hoạt động song song với nhau.

Nói một cách dễ hiểu, chúng ta viết các chương trình máy tính của mình trong một tệp văn bản
và khi chúng ta thực thi chương trình này, nó sẽ trở thành một quá trình thực hiện tất cả các tác
vụ được đề cập trong chương trình.
Khi một chương trình được tải vào bộ nhớ và nó trở thành một quá trình, nó có thể được chia
thành bốn phần ─ ngăn xếp, đống, văn bản và dữ liệu. Hình ảnh sau đây cho thấy một bố cục
đơn giản của một tiến trình bên trong bộ nhớ chính:

SN Thành phần & Mô tả

1
Cây rơm
Tiến trình Stack chứa các dữ liệu tạm thời như tham số phương thức / hàm, địa chỉ trả về và các biến cục b
2
Đống
Đây là bộ nhớ được cấp phát động cho một tiến trình trong thời gian chạy của nó.

3
Chữ
Điều này bao gồm hoạt động hiện tại được thể hiện bằng giá trị của Bộ đếm chương trình và nội dung của
thanh ghi của bộ xử lý.

4
Dữ liệu
Phần này chứa các biến toàn cục và biến tĩnh.

Khối điều khiển quy trình (PCB)


Khối điều khiển quá trình là một cấu trúc dữ liệu được Hệ điều hành duy trì cho mọi quá
trình. PCB được xác định bởi một số nguyên quá trình ID (PID). PCB lưu giữ tất cả thông tin cần
thiết để theo dõi quá trình như được liệt kê dưới đây trong bảng -

SN Thông tin & Mô tả

1
Trạng thái quy trình
Trạng thái hiện tại của tiến trình tức là nó đã sẵn sàng, đang chạy, đang chờ hay bất cứ điều gì.

2
Xử lý đặc quyền
Điều này là bắt buộc để cho phép / không cho phép truy cập vào tài nguyên hệ thống.

3
Xử lý ID
Nhận dạng duy nhất cho mỗi tiến trình trong hệ điều hành.

4
Con trỏ
Một con trỏ đến quy trình mẹ.

5
Bộ đếm chương trình
Bộ đếm chương trình là một con trỏ đến địa chỉ của lệnh tiếp theo sẽ được thực thi cho quá trình này.
6
Thanh ghi CPU
Nhiều thanh ghi CPU khác nhau nơi tiến trình cần được lưu trữ để thực thi cho trạng thái đang chạy.

7
Thông tin lập lịch CPU
Mức độ ưu tiên của quy trình và các thông tin lập lịch khác được yêu cầu để lập lịch trình.

số 8
Thông tin quản lý bộ nhớ
Điều này bao gồm thông tin của bảng trang, giới hạn bộ nhớ, bảng phân đoạn tùy thuộc vào bộ nhớ đượ
dụng bởi hệ điều hành.

9
Thông tin kế toán
Điều này bao gồm số lượng CPU được sử dụng để thực hiện quy trình, giới hạn thời gian, ID thực thi, v.

10
Thông tin trạng thái IO
Điều này bao gồm danh sách các thiết bị I / O được phân bổ cho quy trình.

Kiến trúc của PCB hoàn toàn phụ thuộc vào Hệ điều hành và có thể chứa các thông tin khác nhau
trong các hệ điều hành khác nhau. Đây là một sơ đồ đơn giản của PCB -
Lập lịch quy trình là hoạt động của trình quản lý quy trình xử lý việc loại bỏ quy trình đang chạy
khỏi CPU và lựa chọn quy trình khác trên cơ sở một chiến lược cụ thể.
Lập lịch trình là một phần thiết yếu của hệ điều hành Đa chương trình. Các hệ điều hành như vậy
cho phép nhiều quá trình được tải vào bộ nhớ thực thi tại một thời điểm và quá trình được tải
chia sẻ CPU bằng cách sử dụng ghép kênh thời gian.
QUẢNG CÁO

Các hạ ng mụ c lậ p lịch trình


Có hai loại lập lịch:

1. Không ưu tiên: Ở đây không thể lấy tài nguyên từ một quy trình cho đến khi quy trình hoàn
thành việc thực thi. Việc chuyển đổi tài nguyên xảy ra khi tiến trình đang chạy kết thúc và
chuyển sang trạng thái chờ.
2. Preemptive: Ở đây HĐH phân bổ tài nguyên cho một tiến trình trong một khoảng thời gian
cố định. Trong quá trình phân bổ tài nguyên, tiến trình chuyển từ trạng thái đang chạy sang
trạng thái sẵn sàng hoặc từ trạng thái chờ sang trạng thái sẵn sàng. Việc chuyển đổi này xảy
ra vì CPU có thể ưu tiên cho các tiến trình khác và thay thế tiến trình có mức ưu tiên cao hơn
với tiến trình đang chạy.

Xử lý hàng đợ i lậ p lịch
Hệ điều hành duy trì tất cả các Khối điều khiển Quy trình (PCB) trong Hàng đợi Lập lịch Quy
trình. Hệ điều hành duy trì một hàng đợi riêng biệt cho từng trạng thái quy trình và PCB của tất
cả các quy trình ở cùng trạng thái thực thi được đặt trong cùng một hàng đợi. Khi trạng thái của
một tiến trình bị thay đổi, PCB của nó được hủy liên kết khỏi hàng đợi hiện tại và chuyển sang
hàng đợi trạng thái mới của nó.
Hệ điều hành duy trì các hàng đợi lập lịch quy trình quan trọng sau:
 Hàng đợi công việc - Hàng đợi này giữ tất cả các tiến trình trong hệ thống.
 Hàng đợi sẵn sàng - Hàng đợi này giữ một tập hợp tất cả các tiến trình nằm trong bộ nhớ
chính, sẵn sàng và chờ thực thi. Một quy trình mới luôn được đặt trong hàng đợi này.
 Hàng đợi thiết bị - Các quy trình bị chặn do không có thiết bị I / O tạo thành hàng đợi
này.

Hệ điều hành có thể sử dụng các chính sách khác nhau để quản lý từng hàng đợi (FIFO, Round
Robin, Priority, v.v.). Bộ lập lịch hệ điều hành xác định cách di chuyển các quy trình giữa các
hàng đợi sẵn sàng và đang chạy mà chỉ có thể có một mục nhập cho mỗi lõi bộ xử lý trên hệ
thống; trong sơ đồ trên, nó đã được hợp nhất với CPU.

DEADLOCK

Trong một hệ thống nhiều quy trình, bế tắc là một tình huống không mong muốn phát sinh trong môi
trường tài nguyên được chia sẻ, nơi một quy trình chờ đợi vô thời hạn một tài nguyên được nắm giữ bởi
một quy trình khác.

Điều kiện xảy ra deadlock


Có bốn điều kiện cần thiết để deadlock có thể xảy ra.
1. Điều kiện loại trừ lẫn nhau: Một tài nguyên không thể sử dụng bởi nhiều hơn một
tiến trình tại một thời điểm
2. Điều kiện giữ và chờ: Các tiến trình giữ tài nguyên và chờ tài nguyên mới
3. Điều kiện không có trưng dụng tài nguyên: Các tài nguyên không thể bị đòi lại,
chúng chỉ có thể được giải phóng bởi chính tiến trình chiếm giữ chúng
4. Điều kiện chờ đợi vòng tròn: Các tiến trình giữ tài nguyên và chờ các tài nguyên bị
giữ bởi tiến trình khác, tạo thành một chu trình. Ví dụ: Tiến trình 1, chiếm A1, chờ
A2. Tiến trình 2 chiếm A2, chờ A3,... Tiến trình N chiếm An, chờ A1
Các cách đối phó với deadlock
1. Ngăn chặn deadlock: ngăn chặn ít nhất 1 trong 4 điều kiện để xảy ra deadlock nêu
trên. Chẳng hạn: cho phép chia sẻ tài nguyên, cho phép trưng dụng,...
2. Phòng tránh deadlock: dự đoán trước deadlock có xảy ra hay không trước khi tiến
hành phân phối tài nguyên cho tiến trình. Ví dụ: giải thuật nhà băng (Banker's
algorithm).
3. Phát hiện và khắc phục deadlock: nếu không thể phòng tránh hay ngăn chặn
deadlock, cứ để deadlock xảy ra và ta sẽ phát hiện và đi khắc phục chúng. Phuơng
pháp này phù hợp với hệ thống ít xảy ra deadlock và hậu quả của deadlock là ít
nghiêm trọng.

Lập lịch theo nguyên tắc FIFO:


Sau khi tiến trình được quyền sử dụng bộ xử lý, nó được thực hiện đến khi
kết thúc. Nguyên tắc FIFO là không hoán đổi, nghĩa là bộ xử lý không thực
hiện phục vụ quay vòng lần lượt các Ready Process mà phục vụ từng tiến
trình đến khi kết thúc. Nguyên tắc FIFO có tính xác định cao, có thể dựđoán
tương đối chính xác thời gian thực hiện các bài toán. Tuy nhiên vì nó là
không hoán đổi nên dễ xảy ra trường hợp tiến trình quan trọng hơn phải
chờ các tiến trình khác đứng trước trong danh sách kết thúc mới được thực
hiện.
Nguyên tắc quay vòng (Round robin-RR) :
Trong nguyên tắc này, việc điều hành thực hiện các tiến trình thực hiện theo
nguyên tắc FIFO nhưng có hoán đổi, nghĩa là mỗi tiến trình trong mỗi lần
được sử dụng bộ xử

lý không được vượt quá khoảng thời gian lượng tử (Quantum). Nếu nó không
tự giải phóng bộ xử lý sau khoảng thời gian đó thì hệđiều hành sẽ lấy lại
quyền điều khiển bộ xử lý và chuyển sang phục vụ tiến trình tiếp theo trong
danh sách. tiến trình bị tước quyền được đưa vào cuối danh sách
Lập lịch theo nguyên tắc SJF (Shortes Job First) Nguyên tắc SJF là nguyên
tắc không hoán đổi, theo đó bài toán có thời gian thực hiện ngắn nhất theo
dựđoán sẽđược thực hiện trước. Nguyên tắc này ưu tiên các bài toán nhỏ, vì
nói chung việc tạo điều kiện cho các bài toán nhỏ thực hiện và kết thúc
dễ dàng hơn. Từđó hàng đợi các bài toán giảm đi nhanh chóng. Tuy
nhiên, nguyên tắc này không tính đến mức ưu tiên, độ quan trọng của
các bài toán.
Lập lịch theo nguyên tắc SRT :
Nguyên tắc SRT cũng tương tự nguyên tắc SJF, nhưng SRT là có hoán
đổi. Theo nguyên tắc này, tiến trình được đánh giá là có khoảng thời
gian còn lại đến khi kết thúc là ngắn nhất hoặc tiến trình mới được tạo
sẽđược ưu tiên. Tiến trình được đưa vào thực hiện sẽđược chạy đến khi nó
kết thúc, hoặc khi có một tiến trình mới được đưa vào hệ thống mà có thời
gian hoạt động nhỏ hơn thời gian còn lại của tiến trình đang được thực hiện.
Để thực hiện nguyên tắc này, chúng ta lại gặp phải vấn đề dựđoán chính xác
thời gian còn lại của tiến trình. Nguyên tắc này đòi hỏi chi phí tính toán lớn
hơn so với nguyên tắc SJF. Cơ chế SRT đòi hỏi luôn phải theo dõi thời gian
thực hiện của các bài toán để có thể xử lý các tình huống ngắt. Các tiến
trình ngắn nói chung được thực thi ngay. Trong khi đó, những tiến trình
thực thi lâu sẽ phải chờ lâu hơn thời gian trung bình so với cơ chế

The banker `s algorithm

You might also like