


















Preview text:
Đề thi giữa kỳ 60 phút bao gồm:
1. Câu hỏi trắc nghiệm có 45 câu (6 điểm) (chiếm 60%)
2. Phần bài tập tự luận: Chọn 1 trong 2 câu đề của giải 
thuật để làm (4 điểm) (chiếm 40%) Đề cương
Nội dung ôn tập chương I Câu 1:
1.1. Khái niệm Hệ Điều Hành?
- Hệ điều hành là một hệ thống chương trình chạy trên 
máy tính, dùng để điều hành, quản lý các thiết bị phần 
cứng và các tài nguyên phần mềm trên máy tính. 
- Hệ điều hành đứng trung gian giữa người sử dụng và 
phần cứng máy tính. Nó tạo ra một môi trường để người
sử dụng có thể dùng máy tính tiện lợi, dễ dàng, hiệu  quả hơn. 
- Hệ điều hành là một chương trình đặc biệt: tự động 
được thực hiện khi khởi động máy tính và khi thoát thì 
tự động tắt máy, hầu hết các chương trình khác khi 
hoạt động đều nhờ đến sự hỗ trợ của hệ điều hành.
1.2. Phân loại Hệ Điều hành? (Dưới góc độ loại 
máy tính, dưới góc độ chương trình sử dụng, dưới 
góc độ người dùng, dưới góc độ hình thức xử lý) 
• Dưới góc độ loại máy tính 
BC Hệ điều hành dành cho máy Mainframe 
BC Hệ điều hành dành cho máy Server 
BC Hệ điều hành dành cho máy nhiều CPU 
BC Hệ điều hành dành cho máy tính cá nhân (PC) 
BC Hệ điều hành dành cho máy PDA (Embedded OS - hệ  điều hành nhúng) 
BC Hệ điều hành dành cho máy chuyên biệt 
BC Hệ điều hành dành cho thẻ thông minh (Smart Card)
• Dưới góc độ số chương trình được sử dụng cùng lúc 
BC Hệ điều hành đơn nhiệm 
BC Hệ điều hành đa nhiệm 
• Dưới góc độ người dùng (truy xuất tài nguyên cùng  lúc)  BC Một người dùng  BC Nhiều người dùng     Mạng ngang hàng   
 Mạng có máy chủ: LAN, WAN, … 
1.2• Dưới góc độ hình thức xử lý 
BC Hệ thống xử lý theo lô (Batch systems)   
 Hệ thống đơn chương (uniprogramming OS)   
 Hệ thống đa chương (multiprogramming OS) 
BC Hệ thống chia sẻ thời gian (time-sharing system) 
BC Hệ thống song song (parallel system) 
BC Hệ thống phân tán (distributed system) 
BC Hệ thống xử lý thời gian thực (real-time system) 
BC Hệ thống nhúng (embedded system) 1.3. Máy tính là gì? Máy tính (Computer): 
• Là các loại máy thông minh, biết tính toán và xử lý  (điện thoại di động, 
Ipod, máy ATM, lò viba, ổ đĩa CD/DVD,…) 
• Một số máy tính lúc hoạt động cần phối hợp với các  máy tính khác, tạo 
thành một hệ thống máy tính (hệ thống máy PC)
1.4. Khái niệm Hệ Điều Hành với các chương trình khác?
Sự khác biệt với các chương trình khác: 
-Khả năng tự hoạt động ngay sau khi bật máy .
-Tác động đến máy tính khi chương trình kết thúc (tắt  máy).
-Là cần thiết bắt buộc đối với máy tính.
-Khả năng điều khiển tất cả phần cứng.
-Có thiết kế phức tạp hơn các phần mềm khác. 
-Phải cài hệ điều hành trước các phần mềm khác. 
-Mức độ sử dụng nhiều hơn hẳn (luôn luôn).
-Hệ điều hành quản lý các phần mềm khác. 
-Một máy tính chỉ cài một hoặc vài hệ điều hành. Câu 2:
2.1. Tiến trình là gì?
Chương trình đang thực thi trên máy     VD: mở 1 file word W
2.2. Tiểu trình là gì?  
 Một dòng xử lý trong 1 tiến trình   
 Một tiến trình có 1 hay nhiều tiểu trình   
 VD: trong tiến trình PW 
▪ Luồng nhận thao tác của người dùng  ▪ Luồng kiểm tra lỗi
2.3. Hệ thống là gì ? Là 
 các phần tử có quan hệ hữu cơ v tập hợp ới nhau, tác
động chi phối lẫn nhau theo các quy luật nhất định để 
trở thành một chỉnh thể. Từ đó xuất hiện thuộc tính mới
gọi là tính trồi của hệ thống mà từng phần tử riêng lẻ 
không có hoặc có không đáng kể. (?)
2.4. Cấu trúc của hệ thống máy tính phân 
chia thành mấy thành mấy thành phần? Phần cứng (hardware) 
Bao gồm các tài nguyên cơ bản của máy tính như CPU, 
bộ nhớ, các thiết bị IO,... 
Hệ điều hành (operating system) 
Phân phối tài nguyên, điều khiển và phối hợp các hoạt 
động của các chương trình trong hệ thống. 
 Chương trình ứng dụng (application programs) 
Sử dụng tài nguyên hệ thống để giải quyết một số vấn 
đề tính toán nào đó của người sử dụng, ví dụ: 
compilers, database systems, video games.....  Dữ liệu  
2.5. Các thành phần của một hệ thống nhập  xuất?
Một hệ thống nhập/xuất gồm ba thành phần sau: 
+ Hệ thống bộ nhớ đệm (buffer-caching system) 
+ Chương trình điều khiển thiết bị (Drivers for specific  hardware devices). 
+ Chương trình giao tiếp với chương trình điều khiển  thiết bị (A 
general device-driver interface).
2.6. Các chức năng chính của Hệ Điều Hành?
 Phân chia thời gian xử lý và định thời CPU.
Phối hợp và đồng bộ các hoạt động giữa các  processes.
Quản lý tài nguyên của hệ thống (thiết bị IO, bộ nhớ,  file chứa dữ liệu...). 
Thực hiện và kiểm soát access control, protection.
Duy trì sự nhất quán (integrity) của hệ thống kiểm 
soát lỗi và phục hồi hệ thống khi có lỗi (erroe recovery).
 Cung cấp giao diện làm việc cho users. Câu 3:
3.1. Hệ thống xử lý theo lô là gì? (Hệ thống 
đơn chương, Hệ thống đa chương) Hệ thống đơn chương 
BCTác vụ được thi hành tuần tự. 
BCBộ giám sát thường trực 
BCCPU và các thao tác nhập xuất:  Xử lý offline 
Đồng bộ hóa các thao tác bên ngoài – Spooling 
(Simultaneous Peripheral Operations Online) Hệ thống đa chương 
BC Nhiều công việc được nạp đồng thời vào bộ nhớ chính
BC Khi một tiến trình yêu cầu thực hiện I/O thì thời gian 
chờ sẽ lâu, trong thời gian này một tiến trình khác sẽ  được thực thi. 
BC Tận dụng được thời gian rảnh, tăng hiệu suất sử dụng CPU
3.2. Hệ thống chia sẻ thời gian là gì?
Hệ thống đa nhiệm (multitasking)  BC Lập lịch CPU 
BC Thời gian chuyển đổi giữa các tác vụ rất ngắn
3.3. Hệ thống song song? (Đa xử lý đối xứng, 
đa xử lý bất đối xứng)
Bộ xử lý: Có hai hoặc nhiều bộ xử lý 
Các bộ xử lý có vai trò ngang nhau hoặc 
Các bộ xử lý có vai trò khác nhau (Master/Slave : một 
bộ xử lý chính kiểm soát một số bộ xử lý I/O) 
Bộ nhớ: Có nhiều hình thức   
 Hai hoặc nhiều bộ xử lý cùng chia sẻ một bộ nhớ  hoặc   
 Chia sẻ một phần hoặc không chia sẻ bộ nhớ
Phân loại hệ thống song song 
BC Đa xử lý đối xứng (symmetric multiprocessor) 
Mỗi processor vận hành một bản sao hệ điều hành  giống nhau 
Các copy dữ liệu cho nhau khi cần (Windows NT, Solaris
5.0, Digital UNIX, OS/2, Linux) 
BC Đa xử lý bất đối xứng (asymmetric multiprocessor) 
Mỗi processor thực thi một công việc khác nhau Master 
processor định thời và phân công việc cho các slave  processors (SunOS 4.0)
3.4. Hệ thống phân tán là gì?
Mỗi processor có bộ nhớ riêng, giao tiếp với nhau qua 
các kênh nối như mạng, bus tốc độ cao.
BC Người dùng chỉ thấy một hệ thống đơn nhất.
Một ví dụ khác của hệ thống phân tán mà có thêm  “Shared Data”.
3.5. Hệ thống thời gian thực là gì?
BC Sử dụng trong các thiết bị chuyên dụng như điều 
khiển cácthử nghiệm khoa 
học, điều khiển trong y khoa, dây chuyền công nghiệp,  thiết bị gia dụng,  quân sự.
BC Ràng buộc về thời gian: hard và soft real-time: *Hard real-time 
Hạn chế (hoặc không có) bộ nhớ phụ, tất cả dữ liệu  nằm trong bộ nhớ  chính (RAM hoặc ROM) 
Yêu cầu về thời gian đáp ứng/xử lý rất nghiêm ngặt, 
thường sử dụng trong điều khiển công nghiệp, robotics  …  *Soft real-time 
Thường được dùng trong lĩnh vực multimedia, virtual  reality với yêu 
cầu mềm dẻo hơn về thời gian đáp ứng
3.6. Hê thống nhúng là gì?
Trong nhiều thiết bị điện tử (như điện thoại di động, 
máy tính bảng, xe ô tô …) 
BC Đặc trưng của các thiết bị này:
 Bộ nhớ nhỏ (512 KB - 128 MB - 4GB) 
 Tốc độ processor thấp (để ít tốn pin) 
 Màn hình hiển thị có kích thước nhỏ 
 Có thể dùng các công nghệ kết nối như IrDA,  Bluetooth, wireless 
 Có thể có một hoặc nhiều cảm biến khác nhau Câu 4: 
4.1. Chức năng của Hệ Điều Hành?
Quản lý và phân phối tài nguyên 1 cách hợp lý 
- Quản lý việc thực hiện các chương trình.
Tài nguyên phần cứng   Bộ xử lý    Bộ nhớ  
 Các thiết bị xuất nhập  Tài nguyên phần mềm 
Các file, chương trình dùng chung.... 
4.2. Trình bày quản lý tiến trình?
Để hoàn thành công việc, một tiến trình cần:  o CPU  o Bộ nhớ, File  o Thiết bị I/O, … 
Các nhiệm vụ chính: 
o Tạo và hủy tiến trình 
o Tạm dừng/ thực thi tiếp tiến trình  o Cung cấp các cơ chế 
o Đồng bộ hoạt động các tiến trình 
o Giao tiếp giữa các tiến trình  o Khống chế tắc nghẽn
4.2. Trình bày quản lý bộ nhớ chính?
 Bộ nhớ chính là trung tâm của các thao tác, xử lý 
 Để nâng cao hiệu suất sử dụng CPU, hệ điều hành 
cần có cách quản lý bộ nhớ thích hợp, tránh xung  đột   Các nhiệm vụ chính: 
o Theo dõi, quản lý các vùng nhớ trống và đã cấp  phát 
o Quyết định sẽ nạp chương trình nào khi có vùng  nhớ trống 
o Cấp phát và thu hồi các vùng nhớ khi cần thiết
4.3. Trình bày quản lý bộ nhớ phụ?
Để lưu trữ dữ liệu lâu dài, dữ liệu cần lưu trên đĩa dạng 
tập tin, ngoài ra đĩa còn lưu giữ các tiến trình khi bộ nhớ
RAM không còn đủ, vùng nhớ này gọi là bộ nhớ ảo. 
Các chức năng của dịch vụ quản lý bộ nhớ phụ 
+ Quản lý vùng trống trên đĩa (Free space  management) 
+ Xác định vị trí cất giữ dữ liệu (Storage allocation). 
+ Lập lịch cho đĩa (Disk scheduling)
4.4. Trình bày quản lý file?    Hệ thống file     File     Thư mục   
 Các dịch vụ chính:   
 Tạo và xóa file/ thư mục   
 Các thao tác xử lý file/ thư mục   
 “Ánh xạ” file/ thư mục vào thiết bị thứ cấp tương ứng   
 Sao lưu và phục hồi dữ liệu
4.5. Dịch vụ bảo vệ hệ thống?
Trong hệ thống cho phép nhiều user hay nhiều process  diễn ra  đồng thời phải:   
 Kiểm soát tiến trình người dùng đăng nhập/xuất  và sử dụng hệ thống   
 Kiểm soát việc truy cập các tài nguyên trong hệ  thống   
 Bảo đảm những user/process chỉ được phép sử 
dụng các tài nguyên dành  cho mình   
 Các nhiệm vụ của hệ thống bảo vệ: 
o Cung cấp cơ chế kiểm soát đăng nhập/xuất 
o Phân định được sự truy cập tài nguyên hợp pháp và
bất hợp pháp (authorized/unauthorized) 
o Phương tiện thi hành các chính sách (enforcement 
of policies) (ví dụ: cần bảo vệ dữ liệu của ai đối với  ai)
4.6. Hệ thống thông dịch dòng lệnh?
Việc giao tiếp giữa người sử dụng và hệ điều hành 
thông thường theo 2 cách cơ bản:  Dùng: o Command  o Interpreters  Hoặc:
command-line interface (Hệ thống thông dịch lệnh) 
Graphical User Interfaces (GUI; giao diện người dùng đồ họa) 4.7. Quản lý mạng?
Cung cấp các chức năng phân quyền, chia xẻ tài 
nguyên mạng, liên lạc giữa các 
tiến trình trên mạng, … 
4.8. Lời gọi hệ thống ?
Lời gọi hệ thống là tập lệnh do hệ điều hành cung cấp 
dùng để giao tiếp giữa tiến 
trình của người dùng và hệ điều hành, lời gọi hệ thống 
còn gọi là ngắt. Các lời gọi 
hệ thống có thể được chia thành các loại như là tập 
lệnh quản lý tiến trình, tập lệnh 
quản lý tập tin, tập lệnh quản lý thiết bị, tập lệnh dùng 
để liên lạc giữa các tiến  trình. 
Mỗi lời gọi hệ thống có một số hiệu duy nhất dùng để 
phân biệt lời gọi này với lời 
gọi khác. Các địa chỉ nơi chứa mã lệnh của các ngắt (lời
gọi hệ thống) được lưu 
trong một bảng gọi là bảng vectơ ngắt.
4.9. Vị trí Hệ Điều Hành? Operating System là  một chương trình hoạt 
động như một giao diện  giữa phần mềm và phần cứng máy tính. 
Nó là một tập hợp các  chương trình chuyên 
dụng được tích hợp được sử dụng để quản lý tài nguyên
tổng thể và hoạt động của máy tính. 
Nó là một phần mềm chuyên dụng kiểm soát và giám 
sát việc thực hiện tất cả các chương trình khác nằm 
trong máy tính, bao gồm các chương trình ứng dụng và 
phần mềm hệ thống khác.
4.10. Các thành phần của Hệ Điều Hành? 
- Bộ cấp phát tài nguyên (Resource allocator): Quản lý  và cấp phát tài nguyên.
- Chương trình kiểm soát (Control program):Kiểm soát 
việc thực thi chương trình và kiểm soát hoạt động của 
các thiết bị nhập/xuất.
- Phần nhân (Kernel):là chương trình “lõi” của hệ điều 
hành, được thực thi trước tiên và tồn tại trong bộ nhớ 
cho đến khi tắt máy (các chương trình khác gọi là  chương trình ứng dụng).
4.11.Vì sao nói quản lý tài nguyên là vai trò quan 
trọng nhất của Hệ Điều Hành?
Quản lý tài nguyên là vai trò quan trọng nhất của HĐH, 
do đó cần có một số thành phần quản lý CPU, quản lý  bộ nhớ, …   
 CPU : quản lý tiến trình(bao gồm quản lý CPU)  
 RAM: quản lý bộ nhớ chính   
 Input/Output : quản lý nhập/xuất (thấy rõ ở DOS)   
 Hệ thống tập tin :   Quản lý tập tin   Hệ thống bảo vệ   Quản lý mạng 
 Shell (giao tiếp người dùng)
Cơ chế cấp phát tài nguyên phải kết hợp chặt chẽ với 
tiện ích quản lý tiến trình và tài nguyên. Cơ chế này bao
gồm việc biểu diễntài nguyên; thực hiện cấp phái và sử 
dụng tài nguyên theo chính sách định trước. 
Câu 5: Cấu trúc của Hệ Điều Hành?
5.1. Trình bày cấu trúc đơn giản (monolithic)?
MS-DOS: khi thiết kế, do giới hạn về dung lượng bộ nhớ 
nên không phân chia thành các module 
(modularization) và chưa phân chia rõ chức năng giữa 
các phần của hệ thống.
5.2. Trình bày cấu trúc phức tạp (more  complex)?
UNIX: gồm hai phần có thể tách rời nhau 
Nhân: Kernel, cung cấp file system, CPU scheduling, 
memory management, và một số chức năng khác  System program
5.3. Trình bày cấu trúc phân tầng? Lớp dưới cùng: hardware.  
 Lớp trên cùng là giao tiếp với user.  
 Lớp trên chỉ phụ thuộc lớp dưới.  
 Một lớp chỉ có thể gọi các hàm của lớp dưới và các 
hàm của nó được gọi bởi lớp trên.  
 Mỗi lớp tương đương một đối tượng trừu tượng: cấu  trúc dữ liệu + thao tác.
Phân lớp có lợi ích gì?  o Gỡ rối (debugger). o Kiểm tra hệ thống. o Thay đổi chức năng.
5.4. Trình bày cấu trúc máy ảo?
Với hệ điều hành máy ảo, một máy được giả lập thành 
nhiều máy, tài nguyên của hệ thống như là CPU, bộ 
nhớ, đĩa,… được chia xẻ để tạo các máy ảo. Mỗi máy ảo
được cô lập với máy ảo khác nên tài nguyên dùng 
chung được bảo vệ nhưng cũng dẫn đến việc không 
được chia xẻ tài nguyên trực tiếp
5.5. Trình bày cấu trúc Client – Server
Hệ điều hành được chia thành nhiều phần (gọi là các 
tiến trình server), mỗi tiến trình thực hiện một dịch vụ 
như là dịch vụ quản lý tập tin, quản lý tiến trình, quản 
lý bộ nhớ, … Các tiến trình yêu cầu (gọi là tiến trình 
client) sẽ gửi yêu cầu đến một tiến trình server, tiến 
trình server thực hiện và gửi kết quả trở lại cho tiến 
trình client. Hạt nhân chỉ có nhiệm vụ kiểm soát quá 
trình liên lạc giữa các tiến trình client và server. 
Ưu điểm của cấu trúc client-server 
o Hạt nhân rất nhỏ, chỉ gồm các lệnh cơ bản, nên dễ  bảo vệ, dễ nâng cấp. 
o Mỗi dịch vụ của hệ điều hành do một tiến trình 
server đảm nhận, các tiến trình này độc lập với 
nhau nên khi một tiến trình server bị lỗi, hệ thống  vẫn hoạt động. 
o Các tiến trình server được thực hiện ở chế độ người
dùng (user-mode), không phải ở chế độ hạt nhân 
(kernel-mode), nên không truy xuất trực tiếp.  
Nội dung ôn tập chương II
Câu 6: Phân loại quá trình (CPU-bound, I/O- bound)?
CPU-bound process có thời gian sử dụng CPU nhiều hơn  thời gian sử dụng I/O
I/O-bound process dùng phần lớn thời gian để đợi I/O
Câu 7: Chiến lược định thời CPU?
Chiến lược định thời CPU là chiến lược giải quyết vấn đề
phân chia, lựa chọn tiến trình thực thi sao cho hiệu quả  nhất
Câu 8: Phân loại các hoạt động định thời?
Định thời dài hạn (long-term scheduling): xác định 
process mới (new) nào được tiếp tục vào “sâu hơn”  trong hệ thống. 
– Thường chỉ có trong batch system 
• Định thời trung hạn (medium-term scheduling): xác 
định process nào được đưa vào (swap in), đưa ra khỏi  (swap out) bộ nhớ chính. 
– Swap in/out có thể tốn đến vài giây thời gian chu kỳ 
định thời trung hạn có thể là vài phút. 
• Định thời ngắn hạn (short-term scheduling): xác định 
process nào được thực thi tiếp theo.
Câu 9: Tiêu chí định thời? 1.Tiêu chí định thời.
• CPU utilization (% sử dụng CPU, Độ lợi CPU)  • Throughput (Thông năng) 
• Turnaround-time (Thời gian quay vòng) 
• Response time (Thời gian đáp ứng) 
• Waiting time (Thời gian chờ) 
– Thời gian một process ở trong hàng đợi ready 
• Average turn-around time (Thời gian quay vòng trung  bình) 2.Tiêu chí định thời. 
• CPU utilization (% sử dụng CPU, Độ lợi CPU) 
– CPU utilization CPU: [0% - 100%] 
– Lightly loaded system: < 40%, heavy-loaded: > 90%  – Maximize CPU utilization  • Thông năng (throughput) 
– Số lượng process hoàn tất trong một đơn vị thời gian  – Maximize throughput  3.1.Tiêu chí định thời.
• Thời gian đáp ứng (response time) 
– Thời gian từ lúc có yêu cầu của người dùng (user  request) đến khi có đáp  ứng đầu tiên 
– Thường là vấn đề với các I/O-bound process  – Minimize response time 
• Waiting time (Thời gian chờ) 
– Thời gian một process ở trong hàng đợi ready  – Minimize waiting time 
• Thời gian quay vòng (turn-around time) 
• Thời gian quay vòng trung bình (average turnaround  time) 3.2.Tiêu chí định thời.
• Thời gian đáp ứng (response time) 
• Waiting time (Thời gian chờ)
• Thời gian quay vòng (turn-around time) 
– Thời gian để một process hoàn tất, kể từ lúc vào hệ 
thống (submission) đến lúc kết thúc (termination) 
– Là một trị đặc trưng cần quan tâm với các process  thuộc dạng CPUbound  – Minimize turn-around time 
• Thời gian quay vòng trung bình (average turnaround  time) 4.Tiêu chí định thời. 
• Độ lợi CPU – giữ CPU càng bận càng tốt  – Tối đa hóa 
• Thông năng – số lượng process kết thúc việc thực thi 
trong một đơn vị thời gian 
• Turnaround time – thời gian kể từ lúc đưa vào 
(submission) đến lúc kết thúc  – Tối thiểu hóa 
• Thời gian chờ – thời gian một process chờ trong hàng  đợi ready 
• Thời gian đáp ứng – thời gian từ khi đưa yêu cầu đến 
khi có đáp ứng đầu tiên 
Câu 10: Định thời CPU là gì?
Là việc chọn một process từ ready queue để thực thi.
 Đối với một multithreaded kernel, việc định thời CPU 
là do OS chọn kernel thread được chiếm CPU.
Câu 11: Cơ chế điều phối?
Preemptive (không độc quyền): Công việc đang thực thi
có thể bị ngắt và chuyển vào trạng thái Ready. 
Non-preemptive (độc quyền): một khi tiến trình ở trong  trạng thái.
Running, nó sẽ tiếp tục thực thi cho đến khi kết thúc 
hoặc bị block vì I/O hay các dịch vụ của hệ thống.
Câu 12: Giải thuật điều phối FCFS (Frist come  first served)
o Lập lịch các công việc theo thứ tự xuất hiện của  chúng. 
 Off-line FCFS lập lịch theo thứ tự xuất hiện trong dữ liệu đầu vào của nó 
o Thi hành lần lượt mỗi công việc cho đến khi hoàn  thành 
 Nguyên thủy: hoàn thành kể cả tính I/O 
 Hiện đại: dừng lại khi bị block (gặp I/O) 
o Có cả on-line lẫn off-line 
o Đơn giản, dùng làm cơ sở để phân tích các phương  pháp khác 
o Thời gian phản hồi kém 
Câu 13: Giải thuật điều phối Round Robin (RR)
 Mỗi tiến trình sẽ nhận được một khoảng thời gian sử 
dụng CPU khá nhỏ (time quantum), thường là 10-100  milli giây 
 Sau khi khoảng thời gian này kết thúc, tiến trình sẽ bị
cưỡng chế chuyển vào hàng đợi sẵn sàng (không cho  dùng CPU nữa). 
 Giả sử có n tiến trình trong hàng đợi và time quantum là q:
◦ Mỗi lần chạy tiến trình sẽ có tối đa q đơn vị thời  gian 
◦ Không có tiến trình nào phải đợi quá (n-1)q đơn vị  thời gian
Câu 14: Giải thuật điều phối Shortest Job First  (SJF)
 Là thuật toán cải tiến từ FCFS. 
 Chọn tiến trình có thời gian chạy là ít nhất (không 
phụ thuộc thứ tự vào) 
 Tất cả các công việc và thời gian thi hành phải  được biết trước P
 Độ ưu tiên được gán với mỗi tiến trình và CPU được 
cấp phát tới tiến trình có độ ưu tiên cao nhất. 
 Các tiến trình có độ ưu tiên bằng nhau được điều phối theo FCFS. 
Giải thuật SJF là giải thuật ưu tiên đơn giản ở đó độ ưu
tiên là nghịch đảo với chu kỳ CPU đ c đoán tếếp theo. Chu kỳ CPU  ượ l n h ớ n có đ ơ  ộ u  ưtến thấếp hơn và ng c l ượ i. ạ 
