1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án nhóm nền tảng hệ thống máy tính tìm hiểu về quản lý tiến trình trong hệ điều hành linux

34 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề TÌM HIỂU VỀ QUẢN LÝ TIẾN TRÌNH TRONG HỆ ĐIỀU HÀNH LINUX
Tác giả Ngô Cẩm Hồng, Nguyễn Đình Khoan, Mai Thị Hồng Nhung, Lê Phương Mỹ Trang
Người hướng dẫn NGUYỄN KIM TUẤN
Trường học ĐẠI HỌC DUY TÂN
Chuyên ngành NỀN TẢNG HỆ THỐNG MÁY TÍNH
Thể loại ĐỒ ÁN NHÓM
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 34
Dung lượng 2,04 MB

Nội dung

Mã nguồn mở của hệ điều hành và của các chương trình trên Linux là tài liệuvô giá để chúng ta học hỏi về kỹ thuật lập trình vốn là những tài liệu không được công bố đối với các ứng dụng

Trang 1

ĐẠI HỌC DUY TÂNTRƯỜNG KHOA HỌC MÁY TÍNHKHOA KỸ THUẬT MẠNG MÁY TÍNH & TRUYỀN THÔNG

🙦🕮 🙤

ĐỒ ÁN NHÓM MÔN HỌC: NỀN TẢNG HỆ THỐNG MÁY TÍNHTên đề tài:

TÌM HIỂU VỀ QUẢN LÝ TIẾN TRÌNHTRONG HỆ ĐIỀU HÀNH LINUX

Thành viên 1: Ngô Cẩm Hồng – 5363Thành viên 2: Nguyễn Đình Khoan - 9319Thành viên 3: Mai Thị Hồng Nhung – 2782Thành viên 4: Lê Phương Mỹ Trang - 4146

Đà Nẵng, 07/203

Trang 2

MỤC LỤC

MỞ ĐẦU 6

I LÝ DO CHỌN ĐỀ TÀI 6

II MỤC TIÊU CỦA ĐỀ TÀI 6

III PHẠM VI NGHIÊN CỨU ĐỀ TÀI 6

PHÂN CÔNG NHIỆM VỤ 8

PHẦN 1: TỔNG QUAN VỀ TIẾN TRÌNH 9

I KHÁI NIỆM 9

1 Tiến trình là gì? 9

2 Các loại tiến trình trong linux 9

3 Các trạng thái của tiến trình 11

Mô hình của 5 trạng thái 12

4 Tiến trình cha con 12

II LUỒNG THỰC HIỆN (THREAD/DÒNG) 13

1 Khái niệm 13

2 Phân biệt Luồng và Tiến trình 13

3 Phân loại luồng 14

PHẦN 2: QUẢN LÝ TIẾN TRÌNH TRONG HĐH LINUX 18

I MỤC ĐÍCH CỦA QUẢN LÝ TIẾN TRÌNH 18

1 Một số mục đích cụ thể của quản lý tiến trình trong Linux: 18

2 Ý nghĩa của việc quản lý tiến trình 19

III ĐIỀU ĐỘ TIẾN TRÌNH 21

1 Khái niệm 21

[2]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 3

4 Các thuật toán điều độ 23

4.1 Thuật toán đến trước phục vụ trước (FCFS): 23

4.2 Điều độ quay vòng (RR: round robin): 23

4.3 Điều độ có mức ưu tiên 23

4.4 Điều độ ưu tiên tiến trình ngắn nhất (SPF) 24

4.5 Điều độ ưu tiên thời gian còn lại ngắn nhất 24

PHẦN 3: CÁC TIẾN TRÌNH TRÊN HĐH LINUX 26

1 Tiến trình Background , Foreground 26

Trang 5

MỞ ĐẦU

Vài năm qua, Linux đã thực sự tạo ra một cuộc cách mạng trong lĩnh vực máy tính Sự phát triển và những gì chúng mang lại cho máy tính thật đáng kinh ngạc: Một hệ điều hành đa nhiệm, đa người dùng Với mã nguồn mở, sử dụng linux an toàn hơn các ứng dụng Windows

Linux đã đem lại cho chúng ta về lợi ích về kinh tế với rất nhiều phần mềm miễn phí Mã nguồn mở của hệ điều hành và của các chương trình trên Linux là tài liệuvô giá để chúng ta học hỏi về kỹ thuật lập trình vốn là những tài liệu không được công bố đối với các ứng dụng Windows

Thông qua đề này, hi vọng rằng các kiến thức cơ bản về quản lý tiến trình trongHĐH Linux sẽ được lan truyền đến mọi người

- Phần 1: Tổng Quan về tiến trình, giúp chúng ta hiểu rõ hơn về tiến trình tronghệ điều hành là như thế nào

- Phần 2: Quản lý tiến trình trong hệ điều hành linux, giúp chúng hiểu về mô hìnhquản lý các tiến trình trong hệ điều hành linux

- Phần 3: Các tiến trình trong HĐH Linux, giúp ta nắm được một số các tiến trìnhđược sử dụng trong HĐH Linux

III PHẠM VI NGHIÊN CỨU ĐỀ TÀI.

- Tiến trình là gì?- Quản lý tiến trình trong HĐH Linux- Các lệnh tiến trình trong HĐH Linux

[5]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 6

PHÂN CÔNG NHIỆM VỤ

hoànthành

1 Ngô Cẩm Hồng 5363 MỞ ĐẦU + Phần 2 (các tiêu

chí điều độ + các thuật toán)

Trang 7

động, thời gian thực thi - Và khi điều này xảy ra, thay vì gọi là chương trình, ta có một thuật ngữ khác là

tiến trình Và chính xác thì các tiến trình này là những thứ được quản lý bởi mộthệ thống/hệ điều hành Linux (hoặc Windows hay OSX)

2 Các loại tiến trình trong linux.

- Tiến trình với đối thoại (Interactive processes) : là tiến trình khởi động và quảnlý bởi shell, kể cả tiến trình forthground hay background

- Tiến trình batch (Batch processes) : Tiến trình không gắn liền đến bàn điềukhiển (terminal) và được nằm trong hàng đợi để lần lượt thực hiện

- Tiến trình ẩn trên bộ nhớ (Daemon processes) : Là các tiến trình chạy dưới nền(background)

- Các tiến trình này thường được khởi động từ đầu - Đa số các chương trình server cho các dịch vụ chạy theo cách này Đây là các

chương trình sau khi được gọi lên bộ nhớ, đợi thụ động các yêu cầu chươngtrình khách (client) để trả lời sau các cổng xác định (cổng là khái niệm gắn liền

[7]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 8

với giao thức TCP/IP BSD socket) - Ví dụ như các dịch vụ trên Internet như mail, Web, Domain Name Service …

cũng được chạy theo nguyên tắc này - Các chương trình được gọi là các chương trình daemon và tên của nó thường

kết thúc bằng ký tự "d" như named, inetd … Ký tự "d" cuối được phát âm rời ranhư "đê " trong tiếng việt Ví dụ named được phát âm là "nêm đê"

- Cách đơn giản nhất để kiểm tra hệ thống tiến trình đang chạy là sử dụng lệnh ps(process status) Lệnh ps có nhiều tùy chọn (option) và phụ thuộc một cách mặcđịnh vào người login vào hệ thống

- Ví dụ : $ psPID TTY STAT TIME COMMAND41 v01 S 0:00 -bash

+ Gạch nối – trước bash để thông báo đó là shell khởi động khi người sử dụng login

+ Để hiển thị tất cả các process, ta có thể sử dụng lệnh ps –a Một người sử dụng hệ thống bình thường có thể thấy tất cả các tiến trình, nhưng chỉ có thể điều khiển dược các tiến trình của mình tạo ra

+ Chỉ có superuser mới có quyền điều khiển tất cả các tiến trình của hệ thống Linux và của người khác

+ Lệnh ps –ax cho phép hiển thị tất cả các tiến trình, ngay cả những tiến trình không gắn liền đến có bàn điều khiển (tty)

+ Chúng ta có thể coi các tiến trình đang chạy cùng với dòng lệnh đầy đủ để khởi động tiến trình này bằng ps –axl Lệnh man ps cho phép coi các tham số tự chọn khác của lệnh ps

3 Các trạng thái của tiến trình.Mô hình của 5 trạng thái.

[8]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 9

- Mới khởi tạo: Tiến trình đang được tạo ra.- Sẵn sàng: Tiến trình chờ được cấp CPU để thực hiện lệnh của mình.- Chạy: Các lệnh của tiến trình được CPU thực thi

- Chờ: Tiến trình chờ một sự kiện nào đó xảy ra (blocked)- Kết thúc:Tiến trình đã kết thúc việc thực hiện nhưng vẫn chưa bị xóa

4 Tiến trình cha con.Khi một tiến trình sinh ra 1 tiến trình khác thì:

+ Tiến trình ban đầu gọi là tiến trình cha và được định danh bởi PPID (Parent PID)

+ Tiến trình mới được gọi là tiến trình con

Tương tác giữa tiến trình cha và tiến trình con.

+ Khi tiến trình con đang chạy thì tiến trình cha sẽ chờ.+ Khi tiến trình con hoàn thành thì tiến trình cha tiếp tục thực thi và tiến trình con sẽ được kết thúc

II LUỒNG THỰC HIỆN (THREAD/DÒNG)

Khi lập trình theo mô hình imperative hoặc hướng đối tượng, chúng ta xây dựng các phương thức và chỉ định trình tự (theo thời gian) thực hiện các phương thức đó

Trình tự (lời gọi) thực hiện các phương thức khi lập trình như vậy đượcgọi là dòng điều khiển (flow of control) hoặc dòng thực thi (flow of execution) Dòng điều khiển cho phép chúng ta hình dung ra thứ tự thực hiện (và tự thực hiện trong đầu!!!) các phương thức khi chương trình chạy

Khi chương trình thực sự chạy, hệ điều hành bố trí cho CPU lần lượt thực hiện các lệnh theo trật tự đã được chỉ định trong code Việc bố trí này được thực hiện bởi một chương trình đặc biệt của hệ điều hành gọi là scheduler (bộ lập lịch) Chuỗi lệnh mà scheduler có thể quản lý độc lập được gọi là một luồng thực thi (thread of execution)

Có thể hình dung luồng thực thi như là một người công nhân chuyên thực hiện các nhiệm vụ mà chương trình giao Nếu có một công nhân thì tại mỗi thời điểm chỉ có thể thực hiện được một nhiệm vụ (đơn luồng) Nếu muốn

[9]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 10

thực hiện nhiều công việc cùng lúc thì phải thuê thêm công nhân (đa luồng).

2 Phân biệt Luồng và Tiến trình

Khi một chương trình được tải vào bộ nhớ và thực thi, hệ điều hành bố trí cho chương trình một “không gian” độc lập (và biệt lập) có ít nhất là một luồng thực thi cho các lệnh “Không gian” dành cho chương trình như vậy được gọi là tiến trình (process)

Chúng ta phân biệt process và thread ở những điểm sau:Luồng tồn tại như một bộ phận của tiến trình Trong một tiến trình phải có ít nhất một luồng Khi tạo ra một tiến trình thì cũng đồng thời tạo ra luồng chính của tiến trình Giao diện của một ứng dụng luôn do luồng chính tạo ra

Các tiến trình tồn tại biệt lập Việc trao đổi thông tin giữa các tiến trình khá khó khăn, ví dụ, phải thông qua dịch vụ mạng hoặc cơ chế truyền thông liên tiến trình của hệ điều hành Trong khi đó, các luồng tồn tại trong cùng mộttiến trình cùng chia sẻ tài nguyên chung và các trạng thái của tiến trình (như không gian bộ nhớ)

Từ góc nhìn lập trình, các luồng có thể xem như là code của cùng một chương trình và có thể sử dụng chung biến với nhau, còn các tiến trình giống như các chương trình ứng dụng khác nhau

3 Phân loại luồng.a Mô hình đơn luồng (Single threading )

Mặc định trong mỗi tiến trình thường chỉ tạo ra một luồng thực thi Luồng thực thi tạo ra đầu tiên cùng với tiến trình được gọi là luồng chính (main thread) Chỉ có một luồng thực thi đồng nghĩa với việc tại mỗi thời điểm chỉ códuy nhất một lệnh được thực hiện Phương thức tiếp theo chỉ bắt đầu thực hiệnkhi phương thức trước đó kết thúc

Một ứng dụng chỉ sử dụng một luồng duy nhất được gọi là ứng dụng đơn luồng (single threading) Trong suốt quá trình học lập trình socket đến giờ (kể cả trong học lập trình căn bản) chúng ta đều chỉ xây dựng các ứng dụng theo mô hình đơn luồng

[10]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 11

Ứng dụng Udp theo mô hình đơn luồng (single threading)

Các ứng dụng này có chung một đặc điểm: tại mỗi thời điểm, server chỉ có thể phục vụ duy nhất một client Nếu số lượng client nhỏ và thời gian thực hiện công việc không dài, đây có thể không phải là một nhược điểm lớn Tuy nhiên, nếu số lượng client tăng lên, hoặc khối lượng tính toán để phục vụ cho mỗi client tăng lên (ví dụ, khi truyền tải một file lớn), lập trình đơn luồng cho server là không phù hợp

Đối với client, giao diện của ứng dụng luôn do luồng chính “vẽ” ra Khi phát ra các lệnh thực hiện trong thời gian dài (ví dụ, khi upload/download file lớn), giao diện có thể hoàn toàn bị treo Điều này ảnh hưởng đến trải nghiệm của người dùng

Các lý do trên cùng với một vài vấn đề khác đưa tới yêu cầu phải xây dựngcác chương trình với nhiều luồng thực thi để đảm bảo cùng thực hiện nhiều công việc đồng thời Các ứng dụng có khả năng thực hiện cùng lúc nhiều công

[11]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 12

việc như vậy được gọi là ứng dụng đa luồng (multithreading).

b Mô hình đa luồng (Multithreading)

Mô hình ứng dụng đa luồng gặp chủ yếu trong các hệ điều hành đa nhiệm Đây là mô hình lập trình và thực thi được sử dụng rất phổ biến Mô hình này cho phép tạo ra và sử dụng nhiều thread trong khuôn khổ một tiến trình Các Luồng chia sẻ tài nguyên của tiến trình nhưng lại có thể thực thi độc lập

So sánh với mô hình đơn luồng, mô hình này có nhiều ưu điểm:

Khả năng tương tác tốt hơn với người dùng do ứng dụng không bị “treo” khi thực hiện các nhiệm vụ kéo dài Khả năng có lợi ích lớn khi phát triển chương trình client Server có khả năng phục vụ đồng thời nhiều client

Thực thi nhanh hơn trên các hệ thống nhiều CPU hoặc nhiều lõi, vốn sử dụngphổ biến hiện nay

Giảm mức tiêu thụ tài nguyên khi phục vụ đồng thời nhiều client Tận dụng tốt hơn khả năng của hệ thống Ở chiều ngược lại, mô hình đa luồng cũng có những nhược điểm:

Vấn đề đồng bộ hóa khi nhiều Luồng cùng chia sẻ không gian địa chỉ Việc này có thể dẫn đến cạnh tranh tài nguyên, tình trạng deadlock và livelock (các luồng khóa lẫn nhau) Lỗi từ một Luồng có thể phá hỏng cả tiến trình

[12]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 13

PHẦN 2: QUẢN LÝ TIẾN TRÌNH TRONG HĐH LINUXI MỤC ĐÍCH CỦA QUẢN LÝ TIẾN TRÌNH.

- Mục đích chính của quản lý tiến trình trong hệ điều hành Linux là tối ưu hóa vàkiểm soát các quá trình (tiến trình) đang chạy trên hệ thống

- Quản lý tiến trình giúp hệ thống điều khiển và sắp xếp các tài nguyên của nó đểcung cấp hiệu suất và đáng tin cậy tốt nhất

1 Một số mục đích cụ thể của quản lý tiến trình trong Linux:

- Theo dõi tài nguyên: Hệ điều hành Linux sử dụng quản lý tiến trình để giám

sát việc sử dụng tài nguyên của các tiến trình như bộ nhớ, CPU, băng thông đĩavà các tài nguyên khác Điều này giúp hệ thống xác định xem một tiến trình cósử dụng quá nhiều tài nguyên hay không, điều này có thể gây ra các vấn đề vềhiệu suất và ảnh hưởng đến các tiến trình khác

- Điều phối tài nguyên: Quản lý tiến trình trong Linux cho phép hệ thống phân

phối tài nguyên một cách hợp lý giữa các tiến trình Hệ điều hành đảm bảo rằngcác tiến trình được chạy một cách công bằng và không gây ra xung đột lớn vềtài nguyên, nhằm đảm bảo hiệu suất tốt cho các ứng dụng và tiện ích trên hệthống

- Quản lý độ ưu tiên: Quản lý tiến trình giúp hệ thống xác định các tiến trình

quan trọng và ưu tiên chúng trong việc sử dụng tài nguyên Ví dụ, các tiến trìnhhệ thống quan trọng có thể được ưu tiên hơn các tiến trình người dùng thôngthường

- Kiểm soát tiến trình: Quản lý tiến trình cung cấp các công cụ để kiểm soát các

tiến trình, bao gồm tạo, kết thúc, tạm dừng, tiếp tục, và gửi tín hiệu cho các tiếntrình Điều này cho phép người dùng và hệ thống quản trị viên tương tác vớicác tiến trình và điều khiển chúng theo nhu cầu

- Bảo mật hệ thống: Quản lý tiến trình giúp giám sát các tiến trình chạy trên hệ

thống và phát hiện các hoạt động bất thường hoặc tiềm ẩn của malware hoặccác chương trình độc hại Điều này là một phần quan trọng trong việc duy trì anninh và độ tin cậy của hệ thống

- Tóm lại, quản lý tiến trình trong Linux chịu trách nhiệm quản lý và kiểm soát

[13]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 14

các tiến trình để đảm bảo hiệu suất và đáng tin cậy tốt nhất của hệ thống.

2 Ý nghĩa của việc quản lý tiến trình.

- Trong Linux, quản lý tiến trình (process management) đóng vai trò quan trọngtrong việc điều khiển và giám sát các tiến trình được chạy trên hệ thống Quảnlý tiến trình trong Linux có ý nghĩa quan trọng vì các tiến trình là các chươngtrình hoặc ứng dụng đang chạy trong hệ thống, và việc điều khiển chúng mộtcách hiệu quả đảm bảo sự ổn định và hiệu suất của hệ thống

- Tạo và kết thúc tiến trình: Quản lý tiến trình cho phép người dùng tạo mới

các tiến trình khi cần thiết và kết thúc các tiến trình không cần thiết hoặc gâyảnh hưởng đến hiệu suất hệ thống

- Kiểm soát ưu tiên: Người dùng có thể điều chỉnh ưu tiên của các tiến trình,

cho phép các tiến trình quan trọng hoạt động một cách mượt mà và đảm bảorằng các tiến trình ít quan trọng không ảnh hưởng đến hoạt động của hệ thống

- Tín hiệu và xử lý tình huống: Linux cho phép người dùng gửi tín hiệu đến các

tiến trình để điều khiển chúng, bao gồm tạm dừng (pause), tiếp tục (resume),kết thúc (terminate) và nhiều tín hiệu khác Điều này hữu ích khi phải xử lý cáctình huống đặc biệt hoặc gửi yêu cầu đến các tiến trình

- Giám sát hiệu suất: Các công cụ quản lý tiến trình trong Linux cho phép người

dùng giám sát hoạt động của các tiến trình, tài nguyên hệ thống sử dụng bởitừng tiến trình và thông tin chi tiết khác để đảm bảo hệ thống hoạt động ổn địnhvà tránh các vấn đề về hiệu suất

- Tiến trình cha con: Quản lý tiến trình giúp theo dõi và xử lý các tiến trình con

và tiến trình cha Khi một tiến trình cha kết thúc, hệ thống cần chắc chắn rằngcác tiến trình con cũng được xử lý chính xác để tránh tình trạng tiến trình con"hoang dã" (orphaned processes)

- Tránh tình trạng treo hoặc đóng băng: Quản lý tiến trình giúp ngăn chặn tình

trạng treo (hang) hoặc đóng băng (freeze) của các tiến trình, đảm bảo rằng cáctiến trình hoạt động một cách ổn định và không gây ảnh hưởng xấu đến các tiếntrình khác và hệ thống

II ĐIỀU ĐỘ TIẾN TRÌNH.

[14]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 15

với tiến trình- Hệ thống hỗ trợ dòng: Dòng mức nhân là đơn vị HĐH cấp CPU- Sử dụng thuật ngữ điều độ tiến trình rộng rãi điều độ dòng.

2.2 Điều đồ dài hạn và ngắn hạn- Điều độ dài hạn:

o Thực hiện khi mới tạo ra tiến trìnho HĐH quyết định tiến trình có được thêm vào danh sách đang hoạt động?o Ảnh hưởng tới mức độ đa chương trình

- Điều độ ngắn hạn: + Quyết định tiến trình nào được cấp CPU để thực hiện.+ Thực hiện với tiến tình ở trạng thái sẵn sàng

2.3 Điều độ có phân phối lại và không phân phối lại:

- Điều độ có phân phối lại (Preemptive)+ HĐH có thể sử dụng cơ chế ngắn để thu hồi CPU của một tiến trình đangtrong trạng thái chạy

- Điều độ không phân phối lại (nonpreemptive):+ Tiến trình đang ở trạng thái chạy sẽ được sử dụng CPU cho đến khi xảy ramột trong các tình huống sau:

+ Tiến trình kết thúc.+ Tiến trình phải chuyển sang trạng thái chờ đợi do thực hiện I/O

2.4 Điều độ hợp tác:

+ Chỉ thực hiện được khi tiến trình hợp tác và nhường CPU

[15]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 16

+ Nếu tiến trình không hợp tác, dùng CPU vô hạn các tiến trình khác khôngđược cấp CPU.

3 Các tiêu chí điều độ

- Lượng tiến trình thực hiện xong:+ Số lượng tiến tình thực hiện xong trong 1 đơn vị thời gian.+ Đo tính hiệu quả của hệ thống

- Hiệu xuất sử dụng CPU- Thời gian vòng đời trung bình của tiến trình:

+ Từ lúc có yêu cầu tạo tiến trình đến khi kết thúc.- Thời gian chờ đợi

4 Các thuật toán điều độ.4.1 Thuật toán đến trước phục vụ trước (FCFS):

- Tiến trình yêu cầu CPU trước sẽ được cấp trước.- HĐH xếp các tiến trình sẵn sàng vào hàng đợi FIFO- Tiến trình mới được xếp vào cuối hàng đợi.- Đơn giản, đảm bảo tính công bằng.- Thời gian chờ đợi trung bình lớn.- Ảnh hưởng lớn tới hiệu suất chung của toàn hệ thống.- Thường là thuật toán điều độ không phân phối lại

4.2 Điều độ quay vòng (RR: round robin):

- Sửa đổi FCFS dùng cho các hệ chia sẻ thời gian- Có thêm cơ chế phân phối lại bằng cách sử dụng ngắt của đồng hồ

- Hệ thống xác định những khoảng thời gian nhỏ gọi là lượng tử/ lát cắt thời giant

- Khi CPU được giải phóng, HĐH đặt thời gian của đồng hồ bằng độ dài lượngtử, lấy tiến trình ở đầu hàng đợi và cấp CPU cho nó

4.3 Điều độ có mức ưu tiên.

- Mỗi tiến trình có 1 mức độ ưu tiến- Tiến trình có mức ưu tiên cao hơn sẽ được cấp CPU trước.- Các tiến trình có mức ưu tiên bằng nhau điều độ theo FCFS

[16]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Trang 17

- Mức ưu tiên được xác định theo nhiều tiêu chí khác nhau.

4.4Điều độ ưu tiên tiến trình ngắn nhất (SPF)

- Chọn trong hàng đợi tiến có chu kỳ sử dụng CPU tiếp theo ngắn nhất để phânphối CPU

- Nếu có nhiều tiến trình với chu ỳ CPU tiếp theo bằng nhau, chọn tiến trìnhđứng trước

- Thời gian chờ đợi trung bình nhỏ hơn nhiều so với FCFS- Khó thực hiện vì phải biết độ dài chu kỳ CPU tiếp

4.5 Điều độ ưu tiên thời gian còn lại ngắn nhất

- SPF có thêm có chế phân phối lại (SRTF)- Khi 1 tiến trình mới xuất hiện trong hàng đợi, HĐH so sánh thời gian còn lại

của tiến trình đang chạy với thời gian còn lại của tiến tình mới xuất hiện.- Nếu tiến trình mới xuất hiện có thời gian còn lại ngắn hơn, HĐH thu hòi CPU

của tiến trình đang chạy, phân phối cho tiến trình mới.- Thời gian chờ đợi trung bình nhỏ

- HĐH phải dự đoán độ dài chu kỳ CPU của tiến trình

PHẦN 3: CÁC TIẾN TRÌNH TRÊN HĐH LINUX.1 Tiến trình Background , Foreground

- Các tiến trình nhận tương tác từ người dùng thì hoạt động ở chế độ mặt trước (foreground)

- Các tiến trình không nhận tương tác thì hoạt động ở chế độ nền (background).- Các tiến trình thường chuyển qua chuyển lại giữa hai trạng thái này trong quá trình hoạt động, việc chuyển trạng thái có thể thực hiện do người dùng, do lệnh từ shell hoặc do lập trình

- Tiến trình ở chế độ mặt trước thường nhận được nhiều CPU hơn một chút so với chế độ nền

[17]KHOA KỸ THUÂT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

Ngày đăng: 23/09/2024, 15:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w