You are on page 1of 7

1, Cách thức cài đặt 1 chương trình đơn giản bất kỳ (vd: netbin...

) bằng dòng lệnh trong linux.

B1: apt-get upgrade sẽ tìm nạp các


phiên bản mới của các gói hiện có trên
máy nếu APT biết về các phiên bản mới 

B2: kích hoạt kho phần mềm

Để kích hoạt kho lưu trữ


chính,
sudo add-apt-repository
main
Để kích hoạt kho vũ trụ,
sudo add-apt-repository
universe
Để kích hoạt kho đa vũ
trụ,
sudo add-apt-repository
multiverse
Để kích hoạt kho lưu trữ
bị hạn chế,
sudo add-apt-repository
restricted

B3: bắt đầu cài đặt phần mềm


netbean với câu lệnh:

sudo apt install netbeans

tiếp tục ấn c (có) hoặc k


(không).

Đợi cài đặt và sử dụng.


2, Tiến trình của hệ điều hành là gì? Trong hệ điều hành có các loại tiến trình nào (phân loại các
tiến trình của hệ điều hành)

Tiến trình (processes) được hiểu đơn giản là một chương trình đang chạy trong trong hệ điều
hành. Một tiến trình có thể phân thành một hay nhiều tiến trình con khác.
Tiến trình - process là một khái niệm cơ bản trong bất kì một hệ điều hành nào. Một tiến
trình có thể được định nghĩa là một thực thể chương trình đang được chạy trong hệ thống. Một
web server chạy trong thiết bị là một tiến trình, hoặc một chương trình soạn thảo văn bản đang
chạy trong thiết bị cũng là một tiến trình.

Phân loại tiến trình

1. Init process

Init process là tiến trình đầu tiên được khởi động sau khi bạn lựa chọn hệ điều hành trong
boot loader. Trong cây tiến trình, init process là tiến trình cha của các tiến trình khác. Init
process có đặc điểm sau:

 PID = 1
(Mỗi tiến trình có một định danh PID (Process Identify) duy nhất trong toàn bộ hệ thống vào
thời điểm tiến trình đang chạy)

 Không thể kill init process


(kill: Khi một tiến trình dừng chạy, tiến trình đó sẽ chết. Khi bạn muốn muốn 1 tiến trình chết,
bạn sẽ phải kill nó đi.)

2. Parents process – Child process

Trong hệ điều hành linux các tiến trình được phân thành parents process và child process.
Một tiến trình khi thực hiện lệnh fork() để tạo ra một tiến trình mới thì đưọc gọi là parents
process. Tiến trình mới tạo được gọi là child process.
Một parents process có thể có nhiều child process nhưng một child process chỉ có một parents
process. Khi quan sát thông tin của một tiến trình, ngoài PID (Processes ID) ta cần để ý tới PPID
(Parent Processes ID). Nó sẽ cho ta thông tin về parents process của tiến trình đó:
ps -ef
3. Orphan process – Zombie Process

(Zombie thực chất là một phần còn sót lại của một tiến trình đã ngừng hoạt động nhưng chưa được xử lý sạch.
Và, đúng vậy, zombie nghĩa là thây ma tức là tiến trình đó đã chết và bạn không thể “kill” nó thêm 1 lần
nữa  Những chương trình sau khi thoát để lại tiến trình Zombie thì điều đó đồng nghĩa với việc chương trình đó
được lập trình không tốt.)

(Orphan process : một quy trình máy tính có quá trình cha mẹ đã kết thúc hoặc kết thúc, mặc dù nó
vẫn tự chạy.)

Khi parents process – child process hoạt động sẽ xảy ra một số trường hợp đặc biệt. Lúc
đó Orphan process – Zombie Process sẽ được hình thành.

Khi một parents process bị tắt trước khi child process được tắt, tiến trình con đó sẽ trở
thành một orphan process. Lúc này init process sẽ trở thành cha của orphan processes và
thực hiện tắt chúng.

Khi một child process được kết thúc, mọi trạng thái của child process sẽ được thông báo
bởi lời gọi hàm wait() của parents process. Vì vậy, kernel sẽ đợi parents process trả về hàm
wait() trước khi tắt child process. Tuy nhiên vì một vài lí do mà parents process không thể
trả về hàm wait(), khi đó child process sẽ trở thành một zombie process. Khi ở trạng thái
này, tiến trình sẽ gần như giải phóng bộ nhớ hoàn toàn, chỉ lưu giữ một số thông tin như
PID, lượng tại nguyên sử dụng,… trên bảng danh sách tiến trình.

Tuy giải phóng bộ nhớ hoàn toàn nhưng các zombie process không bị kết thúc. Vì vậy
nếu lượng zombie process lớn sẽ nắm giữ lượng lớn các PID. Nếu lượng PID đầy, sẽ không
có tiến trình mới được tạo thêm. Các zombie process sẽ chỉ bị kết thúc nếu như parents
process của chúng bị kill.

Để tìm các zombie process ta gõ kiểm tra trạng thái của tiến trình theo lệnh sau:

ps -lA | grep '^. Z'grep '^. Z'

Daemon Process

Một Daemon Process là một tiến trình chạy nền. Nó sẽ luôn trong trạng thái hoạt động
và sẽ được kích hoạt bởi một điều kiện hoặc câu lệnh nào đó. Trong Unix, các daemon
thường được kết thúc bằng “d” ví dụ như httpd, sshd, crond, mysqld,…
Một daemon process là một tiến trình chạy nền (background). Các tiến trình này được bắt
đầu khi khởi động hệ thống và sẽ tiếp tục được chạy mãi.

3. Luồng (thread) là gì? Mô tả các trạng thái hoạt động (state) của luồng.

- Luồng là một đường dẫn thực thi trong tiến trinh (còn gọi là 1 đơn vị cơ bản của
CPU). Một tiến trình có thể có nhiều luồng.

Thread là một đơn vị cơ bản trong CPU. Một luồng sẽ chia sẻ với các luồng khác trong cùng
process về thông tin data, các dữ liệu của mình. Việc tạo ra thread giúp cho các chương trình có
thể chạy được nhiều công việc cùng một lúc.

- Khi 1 luồng chạy qua hệ thống, nó có 5 trạng thái:


1. Readyss
2. Running
3. Waiting
4. Delayed
5. Blocked
4. Mô tả về xử lý đa luồng trong hệ điều hành.

Multithreading (Đa luồng) là việc chạy nhiều luồng trong một tiến trình.Đa luồng tạo ra nhiều
luồng của một tiến trình đơn lẻ để tăng sức mạnh tính toán. Nhiều luồng của một tiến trình đơn
được thực hiện đồng thời. Đa luồng cho phép nhiều luồng của một tác vụ (chương trình,
quy trình) được xử lý bởi CPU cùng một lúc.

Một tiến trình có thể có nhiều luồng đồng thời và CPU chuyển đổi giữa các luồng này
thường xuyên tạo ấn tượng cho người dùng rằng tất cả các luồng đang chạy đồng thời
và điều này được gọi là đa luồng.

Đa luồng cho phép chia sẻ tài nguyên khi các luồng thuộc cùng một quy trình có thể chia sẻ
mã và dữ liệu của quy trình và nó cho phép một quá trình có nhiều luồng cùng lúc hoạt động
trong cùng một không gian địa chỉ .

Xử lí đa luồng có 3 mô hình:

1. Many-to-one.
2. One-to-one.
3. Many-to-many.

Cảm ơn thầy ạ !!!

You might also like