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 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 đề Quản Lý Tiến Trình Trong Linux
Tác giả Trương Võ Hoàng Thanh, Võ Hoàng Long, Nguyễn Văn Hiếu, Nguyễn Đức Thắng
Người hướng dẫn GVHD: Nguyễn Kim Tuấn
Trường học Đại Học Duy Tân
Chuyên ngành Khoa Kỹ Thuật Mạng Máy Tính & Truyền Thông
Thể loại Đồ Án Nhóm
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 22
Dung lượng 856,83 KB

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Â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ÍNH

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 DUNG1.1 tổng quan hệ điều hành

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ừ

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

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ànhnà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êmtố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ềutá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 động của chương trình

Tiến trình là những chương trình có khả năng thi hành và đang được thi hànhtrong máy tính

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áctiế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ếntrì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ửithô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ếntrì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ạngthá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

Trang 16

Tiến trình là một môi trường thực hiện, bao gồm một phân đoạn lệnh và một phân đoạn dữ liệu Cần phân biệt với khái niệm chương trình chỉ gồm tập hợp lệnh.

Trên hệ điều hành Linux, tiến trình được nhận biết thông qua số hiệu của tiến trình, gọi là pid Cũng như đối với user, nó có thể nằm trong nhóm Vì thế để phân biệt tanhận biết qua số hiệu nhóm gọi là PRGP Một số hàm của C cho phép lấy được những thông số này:

int getpid() : trả về giá trị int là pid của tiến trình hiện tại

int getppid() : trả về giá trị int là pid của tiến trình cha của tiến trình hiện tại.int getpgrp() : trả về giá trị int là số hiệu của nhóm tiến trình

int setpgrp() : trả về giá trị int là số hiệu nhóm tiến trình mới tạo ra

Ví dụ:

Lệnh : printf("Toi la tien trinh %d thuoc nhom %d",getpid(),getgrp());

Kết quả sẽ là: Toi là tien trinh 235 thuoc nhom 231

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

int fork() tạo ra một tiến trình con Fork() cho phép một tiến trình lập một bản sao của nó, trừ bộ định dạng tiến trình Tiến trình gốc tự nhân bản chính nó được gọi là tiến trình cha và bản sao tạo ra được gọi là tiến trình con Giá trị trả lại là 0 cho tiến trình con

và dấu hiệu pid cho tiến trình cha Giá trị sẽ là -1 nếu không tạo được tiến trình mới.Theo nguyên tắc cơ bản của hệ thống, tiến trình con và cha sẽ có cùng đoạn mã Đoạn dữ liệu của tiến trình mới là một bản sao chép chính xác đoạn dữ liệu của tiến trình cha Tuy nhiên tiến trình con vẫn khác tiến trình cha ở pid, thời gian xử lý,

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