Bài giảng Hệ điều hành Linux căn bản - Program và Process - Lê Ngọc Sơn
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành Linux căn bản - Program và Process - Lê Ngọc Sơn", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_he_dieu_hanh_linux_can_ban_program_va_process_le_n.pdf
Nội dung text: Bài giảng Hệ điều hành Linux căn bản - Program và Process - Lê Ngọc Sơn
- HỆ ĐIỀU HÀNH LINUX CĂN BẢN Lê Ngọc Sơn lnson@fit.hcmus.edu.vn
- PROGRAM & PROCESS Một program là một file thực thi trong hệ thống, ví dụ /sbin/shutdown, /sbin/init Process là một instance của một program đang thực thi (ví dụ khi ta chạy cùng lúc nhiều của sổ Word, mỗi cửa sổ là một instance của ứng dụng Word). Process đôi khi còn được gọi là task. Kernel của hệ điều hành Linux cho phép nhiều process cùng thực thi tại 1 thời điểm, chia sẻ chung tài nguyên CPU của hệ thống.
- PRIORITY Mỗi process có một độ ưu tiên (priority) ứng với nó. Priority quyết định process đó sẽ được sử dụng nhiều hay ít tài nguyên CPU hơn so với các process khác Có thể điều chỉnh thông số priority qua câu lệnh nice và renice
- PHÂN LOẠI PROCESS Có 5 loại process trong một hệ thống Linux Daemon Parent Child Orphan Zombie or defunct
- DAEMONS Daemon là các process quan trọng, thường đảm nhận chức năng hệ thống (system functions) Các daemon process thường không gắn với một terminal cụ thể (không truy xuất qua bàn phím, màn hình), mà thường là các process chạy ngầm bên dưới hệ thống. Khi sử dụng câu lệnh ps sẽ thấy ký hiệu ? tại trường TTY. Daemons thường lắng nghe một sự kiện cụ thể (signal, data input from network, time out ). Khi sự kiện xảy ra, daemon process sẽ xử lý, phục vụ sự kiện sau đó lại trở lại trạng thái sleep.
- ZOMBIE, ORPHAN Zombie process là những process đã hoàn tất nhưng vẫn còn lưu entry trong bảng process table. Orphan process là process mà process cha đã hoàn thành và kết thúc nhưng nó vẫn còn chạy
- CÁC ĐẶC TÍNH CỦA PROCESS Mỗi một process có một mã process, gọi là process ID (PID) Ngoài ra, giống như một file, mỗi process còn có khái niệm owner và group: tượng trưng bởi UID và GID để tượng trưng có các quyền hạn truy cập của process trong hệ thống. Các process còn có các process cha, tượng trưng bởi Parent process ID
- FOREGROUND PROCESS, BACKGROUND PROCESS Foreground process: Các process có tương tác với người dùng ( có input, output, GUI .) Ví dụ: ls –l /etc Background process: Các process chạy nền, không tương tác với người dùng. Ví dụ : Service httpd start
- CÁC CÂU LỆNH XEM THÔNG TIN PROCESS ps pstree top
- PS Xem thông tin các process đang thực thi trong hệ thống Cú pháp ps [options] -l thể hiện dưới dạng long list -w thể hiện dưới dạng wide output -x Xem cả các process không gắn với terminal (daemon) -a process của các user khác -U user xem process của một user cụ thể
- Ví dụ ps ps aux ps aux | grep httpd
- $ ps aux UID PID PPID C STIME TTY TIME CMD root 1 0 80 16:46:44 ? 0:40 /etc/init root 2 0 27 16:46:44 ? 0:00 pageout aster 1292 1 80 06:48:51 console 0:01 -ksh henry 231 1 80 06:48:51 pts/1 0:01 bash
- PSTREE Xem danh sách các process theo dạng cây, từ parent đến các children Tham số: -p: in cả process ID.
- TOP Có tính năng tương tự như ps nhưng danh sách các process được refresh liên tục (tương tự task manager trong windows) Các thông số về CPU , Ram usage cũng được thể hiện và update Tham số thường dùng: -d delay: khoảng thời gian refresh giữa 2 lần -n number: chạy number lần và ngưng
- GỬI TÍN HIỆU ĐẾN CHO PROCESS Lệnh kill Cú pháp: kill Các loại signal chính Signal Num Ý nghĩa ber SIGINT 2 Interrupt, được gửi khi ấn phím Ctrl – C SIGKILL 9 Kill, stop process unconditionally SIGTERM 15 Terminate, nicely if possible SIGTSTP 20 Stop executing, ready to continue (tạm dừng) SIGCONT 18 continue execution, tiếp tục 1 process đã tạm dừng
- THAY ĐỔI THÔNG SỐ PRIORITY Lệnh: nice renice
- NICE NUMBER Mỗi process có một priority, tượng trưng bởi số nice number từ -20 -> +19 -20: highest +19: lowest Một process được khởi động bởi user thường có giá trị nice = 0
- NICE . Cú pháp: nice [–n number] [command] . Câu lệnh nice dùng để thay đổi nice number của các process tại thời điểm start time . User thông thường có thể đặt các giá trị nice từ 0 đến 19, user quản trị (super user) có thể đặt giá trị nice từ -20 đến 19. Nếu số number không được nhập trong lệnh nice, số mặc định sẽ là +10 Lệnh nice không có tham số -n và command sẽ in giá trị nice number mặc định của hệ thống
- Ví dụ: nice –n -10 vi /root/data.txt nice –n -15 find / -name *.txt nice 10 ls –R / (number =-10)
- RENICE Thay đổi thông số nice number của các process đã chạy Cú pháp: renice priority PID [[-g] group] [[-u] user] Ví dụ: # renice -2 203 Set nice number is -2 to PID=203 # renice 5 –u henry Set nice number is 5 to all processes started by henry
- CAN THIỆP VÀO HOẠT ĐỘNG &: Cho một job hoạt động ở background. Ví dụ: # ls –l –R / > /root/list.txt & Ứng dụng ls sẽ chạy nền bên dưới.
- NGƯNG VÀ TẠM NGƯNG JOB Ctrl C: Ngưng job đang thực thi Ctrl Z: Tạm ngừng job đang thực thi. Sau khi ấn Ctrl Z ta có thể dùng 2 câu lệnh: bg: tiếp tục job vừa ngừng ở trạng thái background fg: tiếp tục job vừa ngừng ở trạng thái foreground
- QUẢN LÍ KHỞI ĐỘNG
- QUÁ TRÌNH KHỞI ĐỘNG • Kiểm tra BIOS, thực hiện POST • Tìm load boot loader ( giả sử GRUB) – GRUB đọc file /boot/grub/grub.conf để chọn hệ điều hành khởi động • Load kernel, chạy chương trình /sbin/init (cha của mọi tiến trình trong Linux) để kiểm tra hệ thống tập tin, chạy một số chương trình giúp hệ điều hành hoạt động bình thường.
- RUN LEVEL • Đọc file /etc/inittab xác định runlevel • Dựa vào runlevel được chạy, tiến trình init thực thi các script đặt trong các thưc mục /etc/rc.d
- /ETC/RC.D S: tập tin chạy khi khởi động K: tập tin chạy khi shutdown Thứ tự chạy từ lớn ->bé Thường các chương trình khởi động được đặt trong /etc/init.d và đặt symbolic link (pointer) trong /etc/rc.d
- /ETC/INITTAB • Runlevel khởi động mặc định được định nghĩa ở /etc/inittab • Lưu ý: - Hầu hết người dùng bình thường sử dụng level 5 ( GUI như Windows) - Sử dụng command line : level 5 - Không được set là 6 (khởi động lại máy tính) hoặc 0 ( máy không khởi động được ) - Từ command line chuyển sang GUI sử dụng: startx hoặc init 5
- Tắt máy: init 0 hoặc shutdown Khởi động lại: init6 hoặc reboot
- START/STOP/RESTART DAEMON Start/Stop/Restart daemon: Nếu script khởi động tồn tại trong /etc/init.d thì daemon có thể khởi động bằng cách: Hoặc:
- CHKCONFIG Quản lí các dịch vụ trên Linux Thường dùng để bật tắt các chương trình chạy khi hệ điều hành khởi động Liệt kê trạng thái cấu hình các dịch vụ:
- CHKCONFIG Bật một chương trình khởi động cùng hệ điều hành: Hoặc: Tắt:
- CRON Cron là một tiện ích cho phép thực hiện các tác vụ (các lệnh, các script) một cách tự động theo định kỳ, ở chế độ nền của hệ thống. Thêm các script của job vào các thư mục /etc/cron.hourly, /etc/cron.daily, để lên lịch chạy các job Crontab (CRON TABle) là một file chứa đựng bảng biểu (schedule) của các entries được chạy. Một cron schedule đơn giản là một text file. Mỗi người dùng có một cron schedule riêng, file này thường nằm ở /var/spool/cron. Crontab files không cho phép tạo hoặc chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi dùng lệnh crontab. Một số lệnh thường dùng: crontab -e: tạo hoặc chỉnh sửa file crontab crontab -l: hiển thị file crontab crontab -r: xóa file crontab
- Cấu trúc của crontab Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc như sau: Code:
- Khởi động lại crontab khi đã thực hiện xong /etc/init.d/crond restart
- Q & A 40