Các tiêu chí lập lịch CPU

Lập trình mô phỏng các phương pháp lập lịch cho CPU

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 (325.21 KB, 24 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
…o0o…

BÀI TẬP LỚN MÔN

NGUYÊN LÝ HỆ ĐIỀU HÀNH
ĐỀ TÀI
LẬP TRÌNH MÔ PHỎNG CÁC PHƯƠNG PHÁP
LẬP LỊCH CHO CPU

THỰC HIỆN: NHÓM 15_LỚP ĐHHTTT1_K6
GV HƯỚNG DẪN: NGUYỄN THANH HẢI

…HÀ NỘI 2012…

Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
…o0o…

BÀI TẬP LỚN MÔN

NGUYÊN LÝ HỆ ĐIỀU HÀNH
ĐỀ TÀI

LẬP TRÌNH MÔ PHỎNG CÁC PHƯƠNG PHÁP


LẬP LỊCH CHO CPU
THỰC HIỆN: NHÓM 15_LỚP ĐHHTTT1_K6:
1. ĐỖ VĂN CHÍ
2. TRỊNH VIỆT HÙNG
3. ĐOÀN VĂN HUY
4. TRẦN XUÂN KHÁNH
5. HOÀNG VĂN PHẨM

MỤC LỤC
2
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
CHƯƠNG 1. CƠ SỞ LÝ THUYẾT......................................................................4
1.1. GIỚI THIỆU .............................................................................................5
1.1.1. Mục tiêu lập lịch..............................................................................5
1.1.2. Các đặc điểm của tiến trình..............................................................5
1.1.3. Điều phối không độc quyền và điều phối độc quyền........................6
1.2. CÁC KHÁI NIỆM CƠ BẢN.........................................................................7
1.2.1. Khái niệm giờ CPU..........................................................................7
1.2.2. Các trạng thái của tiến trình liên quan đến giờ CPU........................7
1.2.3. Khái niệm lập lịch cho CPU.............................................................8
1.3. CÁC THUẬT TOÁN LẬP LỊCH..................................................................9
1.3.1. First Come First Served(FCFS)........................................................9
1.3.2. Round robin(RR)...........................................................................10
1.3.3. Shortest Job First(SJF)...................................................................11
1.3.4. Shortest Remain Time(SRT)..........................................................11
CHƯƠNG 2. CÀI ĐẶT THUẬT TOÁN............................................................12
2.1. MÔ HÌNH CÀI ĐẶT THUẬT TOÁN............................................................12


2.1.1. Cấu trúc dữ liệu..............................................................................12
2.1.2. Thuật toán xử lý chung..................................................................13
2.2. THUẬT TOÁN....................................................................................... 14
2.2.1. Thuật toán First Come First Served(FCFS) ...................................14
2.2.2. Thuật toán Round robin(RR).........................................................15
2.2.3. Thuật toán Shortest Job First(SJF).................................................18
2.2.4. Thuật toán Shortest Remain Time(SRT)........................................20

3
Nhóm 15 _ ĐH HTTT1 _ K6

LỜI NÓI ĐẦU
Hệ điều hành là phần gắn bó trực tiếp với phần cứng và là môi trường để cho
các chương trình ứng dụng khác chạy trên nó. Với chức năng quản lý và phân phối
tài nguyên một cách hợp lý, đồng thời giả lập một máy tính mở rộng và tạo giao
diện tiện lợi với người sử dụng, hệ điều hành là một thành phần then chốt không thể
thiếu được trong mỗi một hệ thống máy tính điện tử.
Một trong những chức năng quan trọng của hệ điều hành là quản lý CPU. Trong
môi trường xử lý đa chương, có thể xảy ra tình huống nhiều tiến trình đồng thời sẵn
sàng để xử lý. Mục tiêu của các hệ phân chia thời gian(time-sharing) là chuyển đổi
CPU qua lại giữa các tiến trình một cách thường xuyên để nhiều người sử dụng có
thể tương tác cùng lúc với từng chương trình trong quá trình xử lý.
Để thực hiện được mục tiêu này, hệ điều hành phải lựa chọn tiến trình được xử
lý tiếp theo. Bộ điều phối sẽ sử dụng một giải thuật điều phối thích hợp để thực hiện
nhiệm vụ này. Một thành phần khác của hệ điều hành cũng tiềm ẩn trong công tác
điều phối là bộ điều phối(dispatcher). Bộ phân phối sẽ chịu trách nhiệm chuyển đổi
ngữ cảnh và trao CPU cho tiến trình được chọn bởi bộ điều phối để xử lý.
Vì những lợi ích lớn lao mà giải thuật điều phối CPU đem lại và để tìm hiểu kĩ
hơn về nguyên tắc hoạt động của chúng, chúng em sẽ cùng nhau tìm hiểu, nghiên


cứu đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
Nhóm 15 sẽ trình bày nội dung chính như sau:
-

Tìm hiểu các thuật toán: First Come First Served(FCFS), Round Robin(RR),
Shortest Job First(SJF), Shortest Remain Time(SRT).

-

Chỉ ra được ưu và nhược điểm cả các thuật toán lập lịch CPU.

Mặc dù nhóm 15 chúng em đã cố gắng tìm hiểu kiến thức, tài liệu về các phương
pháp lập lịch CPU, cũng như cố gắng trong quá trình hoàn thiện bài tập. Song do
kiến thức, trình độ của chúng em còn nhiều hạn chế nên chắc chắn không tránh khỏi
những sai sót. Chúng em mong sự chỉ dẫn của thầy giáo và góp ý của các bạn, để
chúng em có thể hoàn thiện hơn bài tập.

Chương 1.

CƠ SỞ LÝ THUYẾT
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
1.1. Giới thiệu

1.1.1.

Mục tiêu lập lịch


Bộ điều phối không cung cấp cơ chế, mà đưa ra các quyết định. Các hệ điều
hành xây dựng nhiều chiến lược khác nhau để thực hiện việc điều phối, nhưng tựu
chung cần đạt được các mục tiêu sau:
- Sự công bằng: các tiến trình chia sẻ CPU một cách công bằng không có tiến
trình nào phải đợi vô hạn để được cấp phát CPU.
- Tính hiệu quả: Hệ thống phải tận dụng được CPU 100% thời gian.
- Thời gian đáp ứng hợp lý: cực tiểu hóa thời gian hồi đáp cho các tương tác của
người sử dụng.
- Thời gian lưu lại trong hệ thống: cực tiểu hóa thời gian hoàn tất các tác vụ xử
lý theo lô.
- Thông lượng tối đa: cực đại hóa số công việc được xử lý trong một đơn vị thời
gian.
Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân
chúng có sự mâu thuẫn với nhau mà chỉ có thể dung hòa chúng ở mức độ nào đó.
1.1.2.

Các đặc điểm của tiến trình

Điều phối hoạt động của các tiến trình là một vấn đề rất phức tạp, đòi hỏi hệ
điều hành khi giải quyết phải xem xét nhiều yếu tố khác nhau để có thể đạt được
những mục tiêu đề ra. Một số đặc tính của tiến trình cần được quan tâm như tiêu
chuẩn điều phối:
- Tính hướng xuất/nhập của tiến trình: Khi một tiến trình được nhận CPU, chủ
yếu nó chỉ sử dụng CPU đến khi phát sinh một yêu cầu nhập xuất. Hoạt động của
các tiến trình như thế thường bao gồm nhiều lượt sử dụng CPU, mỗi lượt trong một
thời gian khá ngắn.
- Tính hướng xử lý của tiến trình: Khi một tiến trình được nhận CPU, nó có
khuynh hướng sử dụng CPU đến khi hết thời gian dành cho nó? Hoạt động của các
tiến trình như thế thường bao gồm một số ít lượt sử dụng CPU, nhưng mỗi lượt
trong một thời gian đủ dài.


- Tiến trình tương tác hay xử lý theo lô: Người sử dụng theo kiểu tương tác
thường yêu cầu được hồi đáp tức thời đối với các yêu cầu của họ, trong khi các tiến
5
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
trình của các tác vụ được xử lý theo lô nói chung có thể trì hoãn trong một thời gian

chấp nhận được.
- Độ ưu tiên của tiến trình: Các tiến trình có thể được phân cấp theo một số tiêu
chuẩn đánh giá nào đó, một cách hợp lý, các tiến trình quan trọng hơn(có độ ưu tiên
cao hơn) cần được ưu tiên cao hơn.
- Thời gian đã sử dụng CPU của tiến trình: một số quan điểm ưu tiên chọn những
tiến trình đã sử dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít thời gian
nhất để hoàn tất và rời khỏi hệ thống. Tuy nhiên cũng có quan điểm cho rằng các
tiến trình nhận được CPU trong ít thời gian là những tiến trình đã phải chờ lâu nhất,
do vậy ưu tiên chọn chúng.
- Thời gian còn lại tiến trình cần để hoàn tất: Có thể giảm thiểu thời gian chờ
trung bình của các tiến trình bằng cách cho các tiến trình cần ít thời gian nhất để
hoàn tất được thực hiện trước. Tuy nhiên đáng tiếc là rất hiếm khi biết được tiến
trình cần bao nhiêu thời gian nữa để kết thúc xử lý.
1.1.3.

Điều phối không độc quyền và điều phối độc quyền

Thuật toán điều phối cần xem xét và quyết định thời điểm chuyển đổi CPU giữa
các tiến trình. Hệ điều hành các thể thực hiện cơ chế điều phối theo nguyên lý độc
quyền hoặc không độc quyền:
Điều phối độc quyền: Nguyên lý điều phối độc quyền cho phép một tiến trình


khi nhận được CPU sẽ có quyền độc chiếm CPU đến khi hoàn tất xử lý hoặc tự
nguyện giải phóng CPU. Khi đó quyết định điều phối CPU sẽ xảy ra trong các tình
huống sau:
- Khi tiến trình chuyển từ trạng thái đang xử lý (running) sang trạng thái bị
blocked (ví dụ chờ một thao tác nhập xuất hay chờ một tiến trình con kết thúc…).
- Khi tiến trình kết thúc.
Điều phối không độc quyền: Ngược với nguyên lý độc quyền, điều phối theo
nguyên lý không độc quyền cho phép tạm dừng hoạt động của một tiến trình sẵn
sàng xử lý. Khi một tiến trình nhận được CPU, nó vẫn được sử dụng CPU đến khi
hoàn tất hoặc tự nguyện giải phóng CPU, nhưng khi có một tiến trình khác có độ ưu
tiên có thể dành quyền sử dụng CPU của tiến trình ban đầu. Như vậy là tiến trình có

6
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
thể bị tạm dừng hoạt động bất cứ lúc nào mà không được báo trước, để tiến trình

khác xử lý. Các quyết định điều phối xảy ra khi:
- Khi tiến trình chuyển từ trạng thái đang xử lý(running) sang trạng thái bị
blocked.
- Khi tiến trình chuyển từ trạng thái đang xử lý(running) sang trạng thái ready(vì
xảy ra một ngắt).
- Khi tiến trình chuyển từ trạng thái chờ (blocked) sang trạng thái ready (ví dụ
một thao tác nhập xuất hoàn tất).
- Khi tiến trình kết thúc.
Trong các hệ thống sử dụng nguyên lý điều phối độc quyền có thể xảy ra tình
trạng các tác vụ cần thời gian xử lý ngắn phải chờ tác vụ xử lý với thời gian rất dài
hoàn tất. Nguyên lý điều phối độc quyền thường chỉ thích hợp với các hệ xử lý theo


lô.
Đối với các hệ thống tương tác (time sharing), các hệ thời gian thực (real time),
cần phải sử dụng nguyên lý điều phối không độc quyền để các tiến trình quan trọng
có cơ hội hồi đáp kịp thời. Tuy nhiên thực hiện hiện điều phối theo nguyên lý không
độc quyền đòi hỏi nhưng cơ chế phức tạp trong việc phân định độ ưu tiên, và phát
sinh thêm chi phí khi chuyển đổi CPU qua lại giữa các tiến trình.
1.2. Các khái niệm cơ bản
1.2.1.

Khái niệm giờ CPU

CPU là một loại tài nguyên quan trọng của máy tính. Mọi tiến trình muốn hoạt
động được đều phải có sự phục vụ của CPU(để xử lý, tính toán…). Thời gian mà
CPU phục vụ cho tiến trình hoạt động được gọi là giờ CPU.
Tại mỗi thời điểm nhất, chỉ có một tiến trình được phân phối giờ CPU để hoạt
động(thực hiện các lệnh của mình).
1.2.2.

Các trạng thái của tiến trình liên quan đến giờ CPU

Trong chế độ đa chương trình, có ba trạng thái của tiến trình liên quan mật thiết
đến giờ CPU bao gồm:
Running

Ready
Waiting

7
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.

Hình 1.1: Các trạng thái của tiến trình liên quan đến giờ CPU
Sẵn sàng(ready): là trạng thái mà tiến trình được phân phối đầy đủ mọi tài
nguyên cần thiết và đang chờ giờ CPU.
Thực hiện(running): là trạng thái mà tiến trình được phân phối đầy đủ mọi tài
nguyên cần thiết và giờ CPU.
Đợi(waiting): là trạng thái tiến trình không thực hiện được vì thiếu một vài điều
kiện nào đó(đợi dữ liệu vào/ra, đợi tài nguyên bổ sung…). Khi sự kiện mà nó chờ
đợi xuất hiện, tiến trình sẽ quay lại trạng thái sẵn sàng.
Như vậy, trong suốt thời gian tồn tại của mình, các tiến trình sẽ tuân thủ theo sơ
đồ thực hiện sau:
Sử dụng CPU
Bắt đầu

Sử dụng CPU
………

Đợi I/O

Sử dụng CPU

………

Kết thúc

đợi I/O

Hình 1.2: Sơ đồ thực hiện các tiến trình


Một tiến trình đang trong trạng thái thực hiện, nó có thể rời khỏi trạng thái bởi
một trong ba lý do:
- Tiến trình đã hoàn thành công việc, khi đó nó trả lại giờ CPU và chuyển sang
chờ xử lý kết thúc.
- Tiến trình tự ngắt: Khi tiến trình chờ đợi một sự kiện nào đó, tiến trình sẽ được
chuyển sang trạng thái thực hiện khi có xuất hiện sự kiện nó đang chờ.
- Tiến trình sử dụng hết giờ CPU dành cho nó, khi đó nó sẽ được chuyển sang
trạng thái sẵn sàng.
Việc chuyển tiến trình sang trạng thái sẵn sàng về bản chất là thực hiện vệc phân
phối lại giờ CPU.
1.2.3.

Khái niệm lập lịch cho CPU

Để điều khiển tiến trình ở nhiều trạng thái khác nhau, hệ thống thường tổ chức
các từ trạng thái(thực chất là các khối điều khiển tiến trình) để ghi nhận tình trạng

8
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
sử dụng tài nguyên và trạng thái tiến trình. Các từ trạng thái được tổ chức theo kiểu

hàng đợi như sau:

Read
Queue

CP


U
I/O Queue

I/O

I/O Queue

……

……

I/O

I/O Queue

I/O

Hình 1.3: Sơ đồ tổ chức hàng đợi các tiến trình
Như vậy lập lịch cho CPU có nghĩa là tổ chức một hàng đợi các tiến trình sẵn
sàng để phân phối giờ CPU cho chúng dựa trên độ ưu tiên của các tiến trình; sao
cho hiệu suất sử dụng CPU là tối ưu nhất.
Mỗi tiến trình ở trạng thái sẵn sàng sẽ được gắn với một thứ tự ưu tiên. Thứ tự
ưu tiên này được xác định dựa vào các yếu tố như: thời điểm hình thành tiến trình,
thời gian thực hiện tiến trình, thời gian kết thúc tiến trình.
1.3. Các Thuật Toán Lập Lịch
1.3.1.

First Come First Served(FCFS)

Trong thuật toán này, độ ưu tiên phục vụ tiến trình căn cứ vào thời điểm hình


thành tiến trình. Hàng đợi các tiến trình được tổ chức theo kiểu FIFO(First In First
Out – Vào trước ra trước, vào sau ra sau). Mọi tiến trình đều được phục vụ theo
trình tự xuất hiện cho đến khi kết thúc hoặc bị ngắt.
Ready list

A

B

C

CPU
9
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
Hình 1.4: Điều phối FIFO

Ưu điểm: giờ CPU không bị phân phối lại(không bị ngắt) và chi phí thực hiện
thấp nhất(vì không phải thay đổi thứ tự ưu tiên phục vụ, thứ tự ưu tiên là thứ tự của
tiến trình trong hàng đợi).
Nhược điểm: là thời gian trung bình chờ phục vụ của các tiến trình là như
nhau(không kể tiến trình ngắn hay dài), do đó dẫn tới ba điểm sau:
- Thời gian chờ trung bình sẽ tăng vô hạn khi hệ thống tiếp cận tới hạn khả năng
phục vụ của mình.
- Nếu độ phát tán thời gian thực hiện tiến trình tăng thì thời gian chờ đợi trung
bình cũng tăng theo.
- Khi có tiến trình dài, ít bị ngắt thì các tiến trình khác phải chờ đợi lâu hơn.
1.3.2. Round robin(RR)


Giải thuật định thời luân phiên (round-robin scheduling algorithm-RR) được
thiết kế đặc biệt cho hệ thống chia sẻ thời gian. Tương tự như định thời FIFO nhưng
sự trưng dụng CPU được thêm vào để chuyển CPU giữa các quá trình. Đơn vị thời
gian nhỏ được gọi là định mức thời gian (time quantum) hay phần thời gian (time
slice) được định nghĩa. Định mức thời gian thường từ 10 đến 100 mili giây. Hàng
đợi sẵn sàng được xem như một hàng đợi vòng. Bộ định thời CPU di chuyển vòng
quanh hàng đợi sẵn sàng, cấp phát CPU tới mỗi quá trình có khoảng thời gian tối đa
bằng một định mức thời gian.
Để cài đặt định thời RR, chúng ta quản lý hàng đợi sẳn sàng như một hàng đợi
FIFO của các quá trình. Các quá trình mới được thêm vào đuôi hàng đợi. Bộ định
thời CPU chọn quá trình đầu tiên từ hàng đợi sẵn sàng, đặt bộ đếm thời gian để ngắt
sau 1 định mức thời gian và gửi tới quá trình.
Sau đó, một trong hai trường hợp sẽ xảy ra. Quá trình có 1 chu kỳ CPU ít hơn 1
định mức thời gian. Trong trường hợp này, quá trình sẽ tự giải phóng . Sau đó, bộ
định thời biểu sẽ xử lý quá trình tiếp theo trong hàng đợi sẵn sàng. Ngược lại, nếu
chu kỳ CPU của quá trình đang chạy dài hơn 1 định mức thời gian thì độ đếm thời
gian sẽ báo và gây ra một ngắt tới hệ điều hành. Chuyển đổi ngữ cảnh sẽ được thực
thi và quá trình được đặt trở lại tại cuối của hàng đợi sẵn sàng. Sau đó, bộ định thời
biểu CPU sẽ chọn quá trình tiếp theo trong hàng đợi sẵn sàng.
Ready List

10
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.

A

B

C

A

CPU

Hình 1.5: Round Robin
Ưu điểm :
- Các quá trình sẽ được luân phiên cho CPU xử lý nên thời gian chờ đợi sẽ ít.
- Đối với các quá trình liên quan đến nhập/xuất người dùng thì rất hiệu quả.
- Việc cài đặt không quá phức tạp.
Nhược điểm :
- Thời gian chờ đợi trung bình của thuật toán RR thường là quá dài.
- Nếu thời gian định mức cho việc xử lý quá lớn thì RR thành FIFO.
- Nếu thời gian quá ngắn so với thời gian xử lý của một tiến trình trong danh
sách hàng đợi thì việc chờ đợi và xử lý luân phiên sẽ nhiều.
- Qui tắc là định mức thời gian nên dài hơn 80% chu kỳ CPU.
1.3.3. Shortest Job First(SJF)
Một tiếp cận khác đối với việc định thời CPU là giải thuật định thời công việc
ngắn nhất trước (shortest-job-first-SJF). Giải thuật này gán tới mỗi quá trình chiều
dài của chu kỳ CPU tiếp theo cho quá trình sau đó. Khi CPU sẵn dùng, nó được gán
tới quá trình có chu kỳ CPU kế tiếp ngắn nhất. Nếu hai quá trình có cùng chiều dài
chu kỳ CPU kế tiếp, định thời FIFO được dùng. Chú ý rằng thuật ngữ phù hợp hơn
là chu kỳ CPU kế tiếp ngắn nhất (shortest next CPU burst) vì định thời được thực
hiện bằng cách xem xét chiều dài của chu kỳ CPU kế tiếp của quá trình hơn là toàn
bộ chiều dài của nó.
Ưu điểm :
- Giải thuật được xem là tối ưu, thời gian chờ đợi trung bình giảm.
- Tận dụng hết năng lực của CPU.


Nhược điểm :
- Cài đặt thuật toán phức tạp,tốn nhiều xử lý cho quá trình quản lý.
- Mặc dù SJF là tối ưu nhưng nó không thể được cài đặt tại cấp định thời CPU
ngắn vì không có cách nào để biết chiều dài chu kỳ CPU tiếp theo.
- Giải thuật SJF có thể trưng dụng hoặc không trưng dụng CPU, dẫn tới giải
thuật này có nhiều dị bản khác nhau và sẽ tối ưu hay không tối ưu phụ thuộc vào
trưng dụng CPU.
1.3.4.

Shortest Remain Time(SRT)

Tương tự như SJF nhưng trong thuật toán này, độ ưu tiên thực hiện các tiến trình
dựa vào thời gian cần thiết để thực hiện nốt tiến trình(bằng tổng thời gian trừ đi thời
gian đã thực hiện). Như vậy, trong thuật toán này cần phải thường xuyên cập nhật
11
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
thông tin về giời gian đã thực hiện của tiến trình. Đồng thời, chế độ phân bổ lại giờ

CPU cũng phải được áp dụng nếu không sẽ làm mất tình ưu việc của thuật toán.
Ưu điểm :
- Thời gian chờ đợi,tồn tại trong hệ thống của mỗi tiến trình đều ngắn.
- Thuật toán tối ưu nhất.
Nhược điểm :
- Việc cài đặt thuật toán khá phức tạp.
- Cần quản lý chặt chẽ việc điều phối các tiến trình.
- Quản lý thời gian đến của mỗi tiến trình.


Chương 2.

CÀI ĐẶT THUẬT TOÁN

2.1. Mô hình cài đặt thuật toán
2.1.1.

Cấu trúc dữ liệu

Quản lý tiến trình:
Cấu trúc dữ liệu đề xuất cho việc quản lý tiến trình được xây dựng thành một
cấu trúc nhằm tạo điều kiện cho việc quản lý các tiến trình được dễ dàng.
Code:
struct process
{ int id;
int timexh;
int timeth;
};
Id: chứa số thứ tự tiến trình trong danh sách.
timexh: thời gian xuất hiện tiến trình.
timeth: thời gian thực hiện tiến trình.

Input:
Input được tổ chức theo cấu trúc mảng nhằm lưu trữ các giá trị khi nhập các
tiến trình và là dữ liệu để phục hồi lại các tiến trình nhằm để tránh các trường hợp
sai lệnh và mất dữ liệu khi xử lý.
Code:
process* input(int &n)
12
Nhóm 15 _ ĐH HTTT1 _ K6

Đề tài: Lập trình mô phỏng các phương pháp lập lịch cho CPU.
{ int i,j;

process *a,tg;
a=new process[n];
gotoxy(8,1);cout<<"Ten TT";
gotoxy(18,1);cout<<"Time XH";
gotoxy(28,1); cout<<"Time TH";
for(i=0;i