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

phần bài làm thực hành lab 4 quản lý tiến trình trong linux

21 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

Thông tin cơ bản

Tiêu đề Quản Lý Tiến Trình Trong Linux
Tác giả Phạm Gia Khánh
Người hướng dẫn Gv. Võ Công Minh
Trường học Trường Đại Học Công Nghiệp Tp Hồ Chí Minh
Chuyên ngành Hệ Thống Máy Tính
Thể loại lab report
Năm xuất bản 2023
Thành phố Tp Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 3,73 MB

Nội dung

PHẦN BÀI LÀM THỰC HÀNHLAB 4: QUẢN LÝ TIẾN TRÌNH TRONG LINUXThời lượng: 3 tiếtNội dung:- Xem thông tin về tiến trình process bằng GUI và CMD- Liên lạc giữa các tiến trình- Độ ưu tiên của

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH

Khoa: Công Nghệ Thông Tin

Instructor : Gv Võ Công Minh

Faculty : Công Nghệ Thông Tin

Completed Date : 27/03/2023

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Điểm lab report:

Trang 3

PHẦN BÀI LÀM THỰC HÀNH

LAB 4: QUẢN LÝ TIẾN TRÌNH TRONG LINUX

Thời lượng: 3 tiết

Nội dung:

- Xem thông tin về tiến trình (process) bằng GUI và CMD

- Liên lạc giữa các tiến trình

- Độ ưu tiên của các tiến trình

- Tham khảo thêm các câu lệnh console trong lab 2

Quản lý tiến trình (Process Management)

1. Sử dụng lệnh top để xem thông tin về các tiến trình, và thông tin chung của hệ thống

- Mở Terminal rồi gõ lệnh top

PID: ID tiến trình của từng nhiệm vụ.

Trang 4

USER: Tên người dung sở hữu tiến trình.

PR: Ưu tiên lập lịch của một nhiệm vụ.

NI: Giá trị của một nhiệm vụ Số Am cho thấy mức độ ưu tiên cao hơn VIRT: Lượng bộ nhớ ảo đang được sử dụng.

RES: Lượng bộ nhớ thường trú đang được sử dụng.

SHR: Lượng bộ nhớ chia sẻ đang được sử dụng

S: Trạng thái của một tác vụ (R = đang chạy, S = đang ngủ).

%CPU: Phần trăm CPU hiện tại đang được sử dụng bởi một tác vụ/

TIME+: Thời gian CPU của một tác vụ.

COMMAN: tên lệnh được thực thi.

Lệnh: Lệnh dùng để sinh ra nhiệm vụ.

2. Sử dụng lệnh ps để xem thông tin về các tiến trình

a Xem tất cả các process : (dạng cây)

ps -eljH | pstree | more

b Xem tiến trình cha (tổ tiên) của lệnh ps vừa thực thi : xem cột PID, PPID

Trang 5

PPID: ID của tiến trình cha.

c Kiểm tra một số dịch vụ đã chạy chưa ? ( như cron, atd , sshd,

…) ps -e |grep cron

d Xem trạng thái của process (running, sleeping,…) : xem cột S

ps -eljH |more

Trang 6

- Z - Zombie (tiến trình đã kết thúc nhưng vẫn còn trong bảng tiến trình).

- I - các tiến trình hệ thống và các tiến trình đang chờ tương tác từ người dùng hoặc các sự

kiện I/O (Input/Output)

e Xem các process của user hiện hành

Trang 7

Mở một terminal mới (tty4), login vào bằng tài khoản user2 Chạy top.

Trên terminal của root, dùng lệnh:

ps -a //hiển thị các process đang chạy trên các terminal hay

Trang 8

- TTY - terminal nơi tiến trình được thực thi.

ps -af //hiển thị các process đang chạy trên các terminal và chủ nhân

3 Sử dụng lệnh kill và killall

a Xem danh sách các SIGNAL của lệnh kill

Trang 9

kill -l

b Xem ý nghĩa của 4 SIGNAL thường dùng (đọc manual)

1 SIGINT (signal interrupt): Đây là tín hiệu được gửi bởi bàn phím khi người dùng

nhấn Ctrl+C Tín hiệu này được sử dụng để yêu cầu tiến trình dừng lại hoặc hủy bỏ.Thông thường, các tiến trình như lệnh đang chạy trong terminal sẽ nhận tín hiệu này

và dừng lại ngay lập tức

2 SIGTERM (signal terminate): Tín hiệu này được sử dụng để yêu cầu tiến trình

dừng lại hoặc kết thúc một cách bình thường Điều này cho phép tiến trình kết thúccác tác vụ cần thiết trước khi dừng lại Đối với các tiến trình đang chạy dịch vụ, tínhiệu này được sử dụng để yêu cầu tiến trình dừng lại hoặc khởi động lại

3 SIGKILL (signal kill): Tín hiệu này được sử dụng để buộc tiến trình dừng lại một

cách tập trung mà không cần thông báo cho tiến trình để nó kết thúc các tác vụ cầnthiết Tín hiệu này là tuyệt đối và không thể bị bỏ qua hoặc xử lý bởi tiến trình

4 SIGUSR1 (signal user-defined 1): Tín hiệu này được sử dụng để yêu cầu tiến trình

thực hiện một tác vụ cụ thể, phụ thuộc vào cài đặt của tiến trình Nó thường được sửdụng để kích hoạt các tính năng bổ sung hoặc thực hiện các tác vụ đặc biệt của tiếntrình

c Chạy lệnh sau và thực hiện theo yêu cầu

find / -name "cron*"

o Khi lệnh đang thực thi, nhấn Ctrl_Z để dừng tiến trình

Trang 10

o Kiểm tra bằng lệnh ps -l xem lệnh còn hoạt động không ? (Tiến trình ứng với lệnh find

có PID nào? Ở trạng thái gì?)

PID: 2644

Trạng thái: “T” (tạm dừng)

o Chấm dứt hoạt động của tiến trình find bằng lệnh sau có được không?

kill -SIGTERM <PID_find>: lệnh này không thể chấm dứt hoạt

động của tiến trình find

(kiểm tra lại bằng lệnh ps)

o Chấm dứt hoạt động của tiến trình find bằng lệnh sau có được không?

kill -SIGINT <PID_find>: lệnh này không thể chấm dứt hoạt động của tiến trình

Trang 11

(kiểm tra lại bằng lệnh ps)

o Chấm dứt hoạt động của tiến trình find , bằng lệnh sau có được không ?

kill -SIGKILL <PID_find>: lệnh này chấm dứt hoạt động của tiến trình find

(kiểm tra lại bằng lệnh ps )

d Dùng kill huỷ terminal hiện tại : Terminal hiện tại tương ứng với tiến trình bash, vậynên huỷ terminal hiện tại có nghĩa là hủy tiến trình bash => kết quả là sẽ kết thúc bash,

và quay lại tiến trinh login (thấy xuất hiện dấu nhắc login)

Hãy viết lệnh hủy tiến trình bash bằng lệnh kill?

Dùng lệnh: kill -SIGKILL 2289

Sau đó của sổ Terminal sẽ đóng lại

e Dùng killall huỷ tất cả các bash shell hiện tại trong 1 terminal :

o Trên terminal tty1 , login vào hệ thống với user1

o Dùng lệnh su, chuyển sang dùng quyền của user2

o Tiếp tục , dùng lệnh su, chuyển sang dùng quyền của user3

o Xem toàn bộ các tiến trình phát sinh sau chuỗi lệnh trên

ps -aljH | grep tty2

Trang 12

Để kill tất cả các bash shell hiện tại (trong 1 terminal) , dùng lệnh

kill -SIGKILL <PID_của shell gốc trên cùng>

1 Dùng lệnh ps để xem PID của shell gốc trên cùng(shell đang sử dụng)

2 Dùng lệnh kill -SIGKILL 3920 để kill tất cả bash shell trong 1 terminal

Để kill tất cả các bash shell hiện tại trên tất cả các terminal, dùng

killall -SIGKILL bash

Sau khi thực hiện lệnh thì tất cả các bash shell trên terminal sẽ đóng lại

4. Tìm hiểu dịch vụ lập lịch cron:

a Lập lịch để mỗi phút ghi một chuỗi vào file test , Thao tác như sau :

Trang 13

o Dùng quyền của root, mở file /etc/crontab bằng vi (sudo vi /etc/crontab) hoặc nano

Nhập vào cuối file dòng sau :

* * * * * root echo “hello” >> /test.txt

Khi đã hoàn tất, nhấn Ctrl + X để lưu và thoát khỏi trình soạn thảo nano Nếu được yêu cầu, hãy nhập "Y" để xác nhận lưu lại file

o Kiểm tra bằng cách: chờ vài phút trôi qua, rồi mở file test.txt để xem Hoặc chỉnh lại

Trang 14

đồng hồ hệ thống rồi xem lại file.

- Để càng lâu thì nó sẽ xuất ra càng nhiều dòng

Trang 15

+ B2: Sử dụng lệnh: “wmic process where name="ProcessName" CALL

setpriority PriorityLevelID”

- Thay thế ProcessName trong lệnh trên với tên thực của tiến trình đang chạy.

- Thay thế PriorityLevelID trong l nh phía trên thông qua s (ví d ,ệ ố ụ “32768” )trong b ng bên dả ướ i cho m c đ u ái mu n đ t cho quy trình này.ứ ộ ư ố ặ

- VD muốn thay đổi độ ưu tiên của MS Word

Sử dụng Taskmanager thay đổi độ ưu tiên MS Word

+ B1: mở Task Manager

+ B2: Ở tab Processes click chuột phải vào tiến trình MS Word Rồi chọn Go to details.

Trang 16

Ở tab Details, click chuột phải vào WINWORD.EXE rồi chọn Set Priority, độ ưu tiênhiện tại là Above normal, ta có thể thay đổi bằng cách click chuột vào độ ưu tiên muốnthay đổi(high,low, ).

Sử dụng lệnh findstr tìm chuỗi “Windows” trong các file txt có trong ổ đĩa C:

- Sử dụng câu lệnh: findstr /s /i /m "Windows" C:\*.txt

Trang 17

- Giải thích :

+ : Tìm kiếm trong tất cả các thư mục con của đường dẫn được chỉ định./s

+ : Không phân biệt chữ hoa chữ thường trong việc tìm kiếm./i

+ /m: Chỉ liệt kê tên tệp chứa chuỗi khớp, không hiển thị nội dung tệp

Thay đổi độ ưu tiên của tiến trình từ Normal => High của Taskmanager

- B1: Mở Task Manager, ở tab Processes click chuột phải rồi chọn Go to details.

Trang 18

- B2: Click chuột phải vào Taskmgr.exe -> Set Priority -> High -> Change Priority.

Như vậy độ ưu tiên đã được thay đổi

Trang 19

Sử dụng Comman Prompt:

Dùng câu lệnh : wmic process where name="Taskmgr.exe" CALL setpriority 128

Đo lường thời gian và so sánh để thấy kết quả của thiết lập này?

- Sử dụng Dev C/C++ thực hiện chương trình sau:

Trang 20

+ Độ ưu tiên: Normal, kết quả của chương trình trả về là: 0,438 (s).

+ Khi đổi độ ưu tiên thành High thì kết quả chương trình trả về là: 0,33 (s)

Nhận xét: Qua ví dụ trên ta có thể thấy thời gian thực thi nhanh hơn khi thay đổi độ

ưu tiên, điều này có thể cho thấy rằng thiết lập độ ưu tiên từ Normal sang High đã giúp cải thiện hiệu suất của chương trình

Tham khảo về Task Manager và Priority:

https://technet.microsoft.com/en-us/library/cc938567.aspx //task manager

https://technet.microsoft.com/en-us/library/cc938611.aspx //priority

http://woshub.com/process-priority-management-in-windows/

Ngày đăng: 22/05/2024, 17:34

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

TÀI LIỆU LIÊN QUAN

w