HỆ ĐIỀU HÀNH LINUX (Quản lý tiến trình)

15 216 0
HỆ ĐIỀU HÀNH LINUX (Quản lý tiến trình)

Đ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

1 HỆ ĐIỀU HÀNH LINUX (Quản lý tiến trình) Phạm Nguyên Khang, Đỗ Thanh Nghị Email: pnkhang,dtnghi@cit.ctu.edu.vn Nội dung Tiến trình Thực thi Tạo tiến trình Các hàm khác Thực thi chương trình chế độ Liệt kê tiến trình Các hàm quản lý tiến trình khác Tiến trình Tiến trình = chương trình thực thi Ảnh nhớ (memory image) bao gồm: Text: mã thực thi chương trình Data: lưu trữ liệu Stack: ngăn xếp người dùng Định danh: phân biệt tiến trình với chương trình khác Cấu trúc u (user: người dùng) Ngăn xếp (stack) hệ thống Vùng định danh truy xuất chế độ hệ thống (system mode) Thực thi Điều khiển tiến trình (sched swapper) Tiến trình (không) không gian hệ thống Sử dụng CPU theo mức độ ưu tiên tiến trình Tiến trình thực thi chế độ người dùng (user mode) chuyển sang chế độ hệ thống hàm đặc biệt nhân Chỉ có tiến trình chạy không gian hệ thống: trình quản lý nhớ ảo (pagedaemon) Tạo tiến trình fork: Ví dụ: (viết ngôn ngữ C) Tạo tiến trình cách chép vùng nhớ tiến trình cha Kết trả về: -1 N thất bại tiến trình tiến trình cha với N PID (định danh) tiến trình cha pid = fork(); if (pid == -1) { /*lỗi*/ } else if (pid == 0) { /*mã lệnh chương trình con*/ } else { /*mã lệnh chương trình cha */ } Các hàm khác exec: Thay ảnh nhớ nội dung file thực thi khác wait: Chờ tất tiến trình kết thúc exit: Kết thúc tiến trình kill: Gởi tín hiệu đến tiến trình (thường dùng để đồng tiến trình buộc tiến trình kết thúc) signal: Chọn cách xử lý phải thực hiên nhận tín hiệu pipe: Tạo ống dẫn để giao tiếp hai tiến trình Chế độ Mặc định tiến trình thực thi (foreground), tiến trình thực xong đến tiến trình khác Ví dụ: người dùng gõ lệnh date (hiển thị ngày hệ thống) Shell tạo tiến trình (sử dụng hàm fork) Chờ tiến trình kết thúc (dùng hàm wait) Trong chương trình gọi thực thi lệnh /bin/date (bằng lệnh exec) Để thực thi tiến trình chế độ (background) ta thêm dấu & vào cuối lệnh Ví dụ: người dùng gõ lệnh date& Shell tạo tiến trình (fork) Không chờ tiến trình kết thúc Tiến trình gọi thực thi lệnh /bin/date (bằng lệnh exec) Tiến trình cha tiến trình chạy song song Có thể kế hiển thị bị lẫn lộn (vì sử dụng chung hình) Tạm dừng tiến trình Các trạng thái tiến trình active (đang hoạt động), waiting (chờ), … Trạng thái tạm dừng = tiến trình bị ngắt có khả chạy lại cách sử dụng lệnh fg (chạy lại chương trình chế độ foreground) bg (chạy lại chương trình chế độ background) Tạm ngưng chương trình cách gõ Ctrl + Z Mục đích: Thực thi chương trình khác mà không cần phải kết thúc tiến trình chạy Liệt kê tiến trình ps: Các OPTIONS Liệt kê tiến trình thực thi Hiển thị tất thuộc tính tiến trình Mặc định liệt kê tiến trình người dùng Cú pháp: ps [OPTIONS] Ví dụ: -a: hiển thị tiến trình user liên kết tới tty -e (-A): hiển thị tất tiến trình -f: hiển thị PID tiến trình cha thời điểm bắt đầu -l: tương tự –f a: hiển thị tiến trình users liên kết tới tty x: hiển thị tiến trình ngoại trừ tiến trình controlling tty (e.g /sbin/mingetty tty*) u: dạng hiển thị hướng đến người dùng Ví dụ: ps –ux ps ps l ps aux (liệt kê tất tiến trình) Liệt kê tiến trình 10 Xem tiến trình Lệnh pstree với -p: hiển thị PID -h: highlight tiến trình hành tiến trình cháu tiến trình hành 10 Các lệnh khác 11 thông số hệ thống như: nhớ sử dụng, % sử dụng CPU, ang thực thi 11 Các lệnh khác 12 kill: Gởi tín hiệu đến tiến trình Cú pháp: kill [-signal | -s signal] pid Các signal HUP INT KILL TERM STOP 15 19 (hangup) (tương đương CTRL + C) (buộc kết thúc) (mặc định, kết thúc êm ái) (tạm dừng, tương đương CTRL + Z) Ví dụ: kill -1 1234 kill -s 3456 kill -l (gởi tín hiệu HUP đến tiến trình 1234) (gởi tín hiệu KILL đến tiến trình 3456, buộc tiến trình kết thúc) liệt kê tất tín hiệu id = -1 có nghĩa tất tiến trình trừ tiến trình kill tiến trình init Các lệnh khác 13 Tránh HUP: nohup Tiến trình nhận tín hiệu HUP người dùng logout khỏi session Sử dụng nohup để bỏ qua tín hiệu HUP Ví dụ: nohup find / –name log.txt& Các lệnh khác 14 jobs: Liệt kê tất job gồm Tiến trình thực thi chế độ Tiến trình tạm ngưng Tiến trình bị ngẽn (chờ vào/ra) Chú ý: job có số hiệu job (khác với định danh tiến trình) Các lệnh bg, fg, kill làm việc với số hiệu job thay pid Để sử dụng số hiệu job ta dùng % nice: Chạy chương trình với độ ưu tiên Cú pháp: nice –n Độ ưu tiên từ -20 (ưu tiên cao nhất) đến 19 (ưu tiên thấp nhất) Độ ưu tiên mặc định = Ví dụ: nice -n 12 xcalc Các lệnh khác 15 renice: Thay đổi độ ưu tiên tiến trình Cú pháp: renice -n -p Hoặc: renice Ví dụ: renice 4567 Chú ý: người dùng bình thường thay đổi độ ưu tiên nhỏ (không)

Ngày đăng: 24/10/2016, 21:20

Từ khóa liên quan

Mục lục

  • HỆ ĐIỀU HÀNH LINUX (Quản lý tiến trình)

  • Nội dung

  • Tiến trình

  • Thực thi

  • Tạo tiến trình

  • Các hàm cơ bản khác

  • Chế độ nền

  • Tạm dừng tiến trình

  • Liệt kê tiến trình

  • Slide 10

  • Các lệnh khác

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

Tài liệu cùng người dùng

Tài liệu liên quan