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ài quản lý tiến trình trong linux

22 0 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

Nội dung

Việc quản lý tiến trình hiệu quả là rất quan trọng để đảm bảo hệ thống hoạt động ổn định và hiệu quả.Đề tài "Quản lý tiến trình trong Linux" sẽ giúp sinh viên hiểu rõ về các vấn đề liên

Trang 1

ĐẠI HỌC DUY TÂN TRƯỜNG KHOA HỌC MÁY TÍNH

KHOA 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ÍNH Tên đề tài:

QUẢN LÝ TIẾN TRÌNH TRONG LINUX GVHD : NGUYỄN KIM TUẤN

LỚP : CR250 C NHÓM : 07

Thành viên 1 : Trương Võ Hoàng Thanh – 5240 Thành viên 2 : Võ Hoàng Long – 1275 Thành viên 3 : Nguyễn Văn Hiếu – 3563 Thành viên 3 : Nguyễn Đức Thắng – 4495

Đà Nẵng, 10/2023

Trang 2

MỞ ĐẦU 1 Lý do chọn đề tài

2 Mục tiêu của đề tài 3 Phạm vi nguyên cứu đề tài

MỤC LUC

PHẦN\CHƯƠNG 1: Giới thiệu hệ điều hành linux 1

1.1 Tổng quan về hệ điều hành

1.1.1 Khái niệm

1.1.2 Chức năng của hệ điều hành

1.1.3 Nhiệm vụ cơ bản của hệ điều hành

1.1.4 các thành phần hệ thống của hệ điều hành bao gồm

1.2 Hệ điều hành linux 2

CHƯƠNG 2: Một vài vấn đề liên quan đến tiến trình

2.1 khái niệm về tiến trình 4

2.2 Các loại tiến trình 5

2.3 Các trạng thái của một tiến trình 8

2.4 Quan hệ giữa các tiến trình 10

CHƯƠNG 3: Quản lý tiến trình trên linux 11

3.1 Tại sao để quản lý tiến trình

3.2 Tạo một tiến trình 12

3.3 Dừng một tiến trình

3.4 Giao tiếp giữa các tiến trình 13

3.5 Liên lạc giữa hai tiến trình 15

3.6 Lập lịch đa tiến trình 17

Trang 3

3.7 Liên lạc giữa tiến trình cha và tiến trình con 3.8 Giám sát và điều khiển các tiến trình 21

MỞ ĐẦU 1 Lý do chọn đề tài

Hệ điều hành Linux là một hệ điều hành đa nhiệm, trong đó có thể chạy nhiều tiến trình cùng một lúc Việc quản lý tiến trình hiệu quả là rất quan trọng để đảm bảo hệ thống hoạt động ổn định và hiệu quả.

Đề tài "Quản lý tiến trình trong Linux" sẽ giúp sinh viên hiểu rõ về các vấn đề liên quan đến quản lý tiến trình trong hệ điều hành Linux Đây là một kiến thức quan trọng đối với sinh viên ngành công nghệ thông tin, đặc biệt là những sinh viên có định hướng làm việc với hệ điều hành Linux.

2 Mục tiêu của đề tài

Nâng cao kiến thức và kỹ năng về quản lý tiến trình trong hệ điều hành Linux Chuẩn bị cho sinh viên làm việc với hệ điều hành Linux.

Mục tiêu cụ thể:

Nắm vững các khái niệm cơ bản về tiến trình trong hệ điều hành Linux Hiểu rõ cách hệ điều hành Linux tạo ra và quản lý các tiến trình.

Hiểu được các loại tiến trình và trạng thái của tiến trình trong hệ điều hành Linux Hiểu được quan hệ giữa các tiến trình trong hệ điều hành Linux.

Nắm vững cách tạo, dừng, hủy bỏ và giải phóng tài nguyên cho các tiến trình trong hệ điều hành Linux.

Hiểu được cách giao tiếp giữa các tiến trình trong hệ điều hành Linux Hiểu được cách lập lịch cho các tiến trình trong hệ điều hành Linux Nắm vững cách giám sát và điều khiển các tiến trình trong hệ điều hành Linux 3 Phạm vi nguyên cứu đề tài

Khái niệm về tiến trình và các loại tiến trình

Trang 4

Chương 2 của đề tài sẽ giới thiệu các khái niệm cơ bản về tiến trình, bao gồm định nghĩa, cách tạo ra, các loại tiến trình và các trạng thái của tiến trình.

Quản lý tiến trình

Chương 3 của đề tài sẽ nghiên cứu các vấn đề liên quan đến quản lý tiến trình, bao gồm:

* Cách tạo ra tiến trình mới

* Cách dừng, hủy bỏ và giải phóng tài nguyên của tiến trình * Cách giao tiếp giữa các tiến trình

* Cách lập lịch cho các tiến trình * Cách giám sát và điều khiển các tiến trình Các công cụ quản lý tiến trình

Đề tài cũng sẽ giới thiệu một số công cụ quản lý tiến trình trong hệ điều hành Linux, bao gồm ps, top và kill.

NỘI DUNG 1.1 tổng quan hệ điều hành

1.1.1 Khái niệm

Hệ điều hành là một phần mềm hệ thống 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 vai trò trung gian trong việc giao tiếp giữa người sử dụng và phần cứng máy tính, cung cấp một môi trường cho phép người sử dụng phát triển và thực hiện ứng dụng của họ một cách dễ dàng.Khi khởi động máy tính, phần mềm hệ điều hành được khởi động đầu tiên, sau đó người sử dụng mới có thể sử dụng được các chưomg trình ứng dụng khác thông qua giao diện tương tác do hệ điều hành cung cấp.

Chương trình hệ diều hành luôn thường trực trong suốt quá trình máy hoạt động Khi tắt máy tính, phần mềm hệ điều hành được tắt cuối cùng để kết thúc phiên làm việc với máy.

1.1.2 Chức năng của hệ điều hành

- Chức năng chủ yếu của hệ điều hành đó là: Quản lí chia sẻ tài nguyên (CPU, bộ nhớ trong, bộ nhớ ngoài…) và Giả lập một máy tính mở rộng.

Trang 5

- Ngoài ra còn có thể chia chức năng của hệ điều hành theo bốn chức năng là: Quản lí quá trình (Proccess manament)

Quản lí bộ nhớ (Memory manament) Quản lí hệ thống lưu trữ

Giao tiếp với người dùng (User interaction) 1.1.3 Nhiệm vụ cơ bản của hệ điều hành là Điều khiển và quản lí trực tiếp các phần cứng.

Thực hiện một số thao tác cơ bản trong máy tính như các thao tác đọc, viết tập tin, quản lí hệ thống tập tin và các kho dữ liệu.

Cung cấp một hệ thống giao diện sơ khai cho các ứng dụng, thường thông qua một hệ thống thư viện các hàm chuẩn để điều hành các phân cứng mà từ đó các ứng dụng có thể gọi tới.

Cung cấp một hệ thống lệnh cơ bản để điều hành máy Các lệnh này gọi là lệnh hệ thống (system command).

Ngoài ra, hệ điều hành còn cung cấp một số phần mềm ứng dụng cơ bản như: trình duyệt web, chương trình soạn thảo văn bản, chương trình nghe nhạc,

Trang 6

Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của hệ điều hành Nó có lẽ là một ví dụ nổi tiếng nhất của phần mềm tự do và của việc phát triển mã nguồn mở.

Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn là một sinh viên của Đại học Helsinki tại Phần Lan Ông làm việc một cách hăng say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm 1994 Bộ phận chủ yếu này được phát triển và tung ra trên thị trường dưới bản quyền GNU General Public License Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn của Linux “Linux” được sử dụng để chỉ Nhân Linux, nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều hành giống Unix (còn được biết dưới tên GUN/Linux) được tạo ra bởi việc đóng gói nhân Linux cùng với các thư viện và công cụ GNU, cũng như là các bản phân phối Linux.

Torvalds – Người “cha đẻ” của Linux Linus.

Trang 7

Khởi đầu Linux được phát triển cho dòng vi xử lý 386 Hiện tại hệ điều hành này hỗ trợ một số lượng lớn các siêu thị máy tính và các thiết bị nhúng như là các máy điện thoại di động.

Ban đầu, Linux được phát triển và sử dụng bởi những người say mê Tuy nhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và Hewlett-Packard, đồng thời nó cũng bắt kịp được các phiên bản được các phiên bản Unix độc quyền và thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực Sở dĩ Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (khi so sánh với Windown) cũng như các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung cấp Một đặc tính nổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm nguồn mở hiệu quả.

Chim cánh cụt Tux- biểu trưng và vật may mắn của Linux.

Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rất khiêm tốn so với Windown vì các trình điều khiển thiết bị tương thích với Window

Trang 8

nhiều hơn là Linux Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho Linux sẽ tăng lên Hiện nay, Linux có nhiều bản phân phối khác nhau, một phần là bời vì mã nguồn mở của nó.

2.1 Khái niệm về tiến trình

Để hỗ trợ hoạt động đa nhiệm, hệ thống máy tính cần phải có khả năng thực hiện nhiều tác vụ xử lí đồng thời những việc điều khiển hoạt động song hành ở cấp độ phần cứng là rất khó khăn Vì vậy các nhà thiết kế hệ điều hành đề xuất một mô hình song hành giả lập bằng cách chuyển đổi bộ xử lí qua lại giữa các chương trình để duy trì hoạt động của nhiều chương trình tại cùng một thời điểm trong mô hình này, các chương trình trong hệ thống được tổ chức thành các tiến trình (process).

Vậy tiến trình (process) là thời gian thực hiện (instance of execution) của một chương trình và việc thực hiện hiện đó chỉ xảy ra trong một khoản thời gian nhất định (gọi là slice time).

Tiến trình là sự biến đổi từ trạng thái này sang trạng thái khác dưới sự tác

Tiến trình tuần tự :là các tiến trình mà điểm khởi tạo của nó là điểm kết thúc của tiến trình trước đó.

Tiến trình song song : là các tiến trình mà điểm khởi tạo của tiến trình này nằm ở thân của các tiến trình khác, tức là có thể khởi tạo một tiến trình mới khi các tiến trình trước đó chưa kết thúc Tiến trình song song được chia thành nhiều loại:

-Tiến trình song song độc lập:

+ Các tiến trình hoạt động song song nhưng không có quan hệ thông tin với nhau, trong trường hợp này hệ điều hành phải thiết lập cơ chế bảo vệ dữ liệu của các tiến trình, và cấp phát tài nguyên cho các tiến trình một cách hợp lý.

Trang 9

-Tiến trình song song có quan hệ thông tin:

+ Trong quá trình hoạt động các tiến trình trao đổi thông tin với nhau Hai tiến trình A và B được gọi là có quan hệ thông tin với nhau nếu tiên trình này có gửi thông báo cho tiến trình kia Tiến trình gửi thông báo có thể không cần biết tiến

trình nhân có tồn tại hay không ? Ở đâu? Và đang ở giai đoạn nào?

Trang 10

- Tiến trình song song phân cấp

+Trong qua trình hoạt động một tiến trình có thể khởi tạo các tiến trình khác hoạt động song song với nó, tiến trình khởi tạo được gọi là tiến trình cha, tiến trình được tạo gọi là tiến trình con Trong mô hình này hệ điều hành phải giải quyết vấn đề cấp phát tài nguyên cho các tiến trình con Tiến trình con nhận tài nguyên ở đâu? Từ tiến trình cha hay từ hệ thống.

- Tiến trình song song đồng mức

+Là các tiến trình hoạt động song song sử dụng chung tài nguyên theo nguyên tắc lần lượt, mỗi tiến trình sau một khoảng thời gian chiếm giữ tài nguyên phải tự động trả lại tài nguyên cho tiến trình kia

Trang 11

*Các loại tiến trình chính trên Linux:

+ Tiến trình tương tác (Interactive processes) là tiến trình khởi động và quản lý bởi shell, kể cả tiến trình forceground hay background.

+ Tiến trình theo lô ( Batch processes) tiến trình không gắn liền với bàn điều khiể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 process) là các tiến trình chạy ẩn bên dưới hệ thống (background) Các tiến trính này được khởi tạo – tự động – sau khi hệ thống khởi động Đa số các chương trình server cho các dịch vụ chạy theo phương thức này Đây là các chương trình này được gọi lên bộ nhớ, đợi (thụ động) các yêu cầu từ chương trình khách (client) để trả lời các socket xác định, tên của nó thường được kết thúc bằng ký tự “d”.

Mỗi tiến trình thực hiện nếu sinh ra nhiều tiến trình con được gọi là tiến trình cha Khi tiến trình cha bị dừng thì các tiến trình con cũng bị dừng theo.

2.3 Các trạng thái của một tiến trình

Là một thực thể động, tiến trình có thể thuộc những trạng thái khác nhau Có nhiều cách phân biệt trạng thái tiến trình Theo cách đơn giản nhất, tiến trình thuộc một trong hai trạng thái: chạy và không chạy Chạy là khi các lệnh của tiến trình được CPU thực hiện và không chạy là trường hợp ngược lại, ví dụ khi CPU đang được phân phối cho tiến trình khác hoặc khi

Trang 12

tiến trình phải dừng để chờ kết quả vào/ra.

Cách sử dụng hai trạng thái tiến trình là quá đơn giản và không đủ để phản ánh đầy đủ thông tin về trạng thái tiến trình Trên thực tế, hệ điều hành thường phân biệt năm trạng thái khác nhau của tiến trình Ý nghĩa cụ thể năm trạng thái như sau:

- Trạng thái khởi tạo( New) : tiến trình đang được tạo lập.

- Trạng thái sẵn sàng( Ready) : tiến trình chờ được cấp phát CPU để xử lý.

- Trạng thái thực hiện( Running) : tiến trình được xử lý.

- Trạng thái đợi( Waiting): tiến trình phải dừng vì thiếu tài nguyên hoặc chờ 1 sự kiện nào đó.

- Trạng thái kết thúc( Halt) : tiến trình đã hoàn tất công việc xử lý.

Hình 1 Mô tả chuyển trạng thái của tiến trình.

Tại 1 thời điểm chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lí nào đó Trong khi đó, có thể có nhiều tiến trình ở trạng thái waitting hay ready Các cung chuyển tiếp trong sơ đồ trạng thái biểu diễn sáu sự chuyển trạng thái xảy ra trong các điều kiện sau:

+Cung 1: Tiến trình mới tạo, nếu bộ nhớ còn trống, sẽ được đưa vào bộ nhớ và sẵn sàng nhận CPU, khi đó tiến trình từ trạng thái New được chuyển sang Ready

+Cung 2: Bộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU và cho tiế trình thực hiện khi đó tiến trình từ trạng thái Ready được

Trang 13

chuyển sang trạng thái Running.

+Cung 3: Khi tiến trình kết thúc việc thực hiện, khi đó tiến trình từ trạng thái Running được chuyển sang trạng thai terminated.

+Cung 4: Khi tiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng hoặc tiến trình chờ thao tác nhập/xuất hoàn tất hoặc tiến trình chờ 1 sự kiện nào đó, khi đó tiến trình được chuyển từ trạng thái Running sang trạng thái Waiting

+Cung 5: Khi tiến trình tạm dừng vì hết thời gian sử dụng CPU, bộ điều phối sẽ chọn một tiến trình khác để cho xử lí, khi đó tiến trình được chuyển từ trạng thái Running sang trạng thái Ready

+Cung 6: Khi tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát, hay sự kiên hoặc thao tác nhập/ xuất mà tiến trình đang đợi đã hoàn tất, khi đó tiến trình được chuyển từ trạng thái Waiting sang trạng thái Ready.

2.4 Quang hệ giữa các tiến trình

-Các tiến trình hoạt động trong hệ thống tồn tại 2 mối quan hệ: độc lập và hợp tác (song hành).

+Quan hệ độc lập: tiến trình được gọi là độc lập nếu hoạt động của nó không gây ảnh hưởng hoặc không bị ảnh hưởng của các tiến trình khác cũng đang hoạt động của hệ thống.

Tiến trình độc lập có những đặc trưng sau:

- Trạng thái của nó không bị chia sẻ với bất kì tiến trình nào khác - Việc thực hiện tiến trình là đơn định (kết quả chỉ phụ thuộc vào đầu vào) - Tiến trình có thể tái hiện (lặp lại).

- Tiến trình có thể dừng hoặc bắt đầu lại mà không gây ảnh hưởng tới các tiến trình khác trong hệ thống.

+ Quan hệ hợp tác:

Trang 14

- Tiến trình được gọi là hợp tác (song hành) nếu hoạt động của nó gây ảnh hưởng hoặc bị ảnh hưởng bởi các tiến trình khác cũng đang hoạt động trong hệ thống.

Tiến trình hợp tác có những đặp trưng sau: - Trạng thái của nó bị chia sẻ cho các tiến trình khác.

- Việc thực hiện tién trình không đơn điệu (kết quả của tuến trình phụ thuộc vào dãy thực hiện tương ứng và không dự báo trước).

- Việc thực hiện tiến trình không đơn định (kết quả của tiến trình không giống nhau với cùng một giá trị đầu vào).

Trang 15

CHƯƠNG 3: QUẢN LÝ TIẾN TRÌNH TRÊN LINUX

3.1 Tại sao phải quản lý tiến trình.

- Trong hệ thống luôn tồn tại nhiều luồng tiến trình.

- Mặt khác trong hệ thống có những tài nguyên hữu hạn khả năng phục vụ nhưng trong một khoảng thời gian nào đó có nhiều tiến trình muốn sử dụng tài nguyên đó -> dẫn đến xung đột, bế tắc xảy ra, giao thông trong máy bị đình trệ -> treo máy Vì vậy cần quản lý tiến trình.

* Nhiệm vụ của quản lý tiến trình : - Tạo lập, hủy bỏ tiến trình - Tạm dừng, tái kích hoạt tiến trình

- Tạo cơ chế thông tin liên lạc giữa các tiến trình - Tạo cơ chế đồng bộ hóa giữa các tiến trình

Ngày đăng: 25/04/2024, 16:17

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

TÀI LIỆU LIÊN QUAN

w