본문 바로가기
운영체제/Linux

리눅스 개념 및 명령어 3 - Managing Software

by Riverandeye 2020. 4. 17.

 

1. Linux kernel

- 리눅스 OS의 메인 컴포넌트이며, 하드웨어와 프로세스 간 Interface로서의 역할을 한다.

- OS 내부에 존재하며 하드웨어의 주요 기능들을 제어함.

 

kernel에 대한 정보가 담겨있다.

 

2. Linux kernel의 역할

Memory Management: 메모리가 얼마나 사용되었는지 추적한다.

- Process Management: 어떤 프로세스가 얼마 기간동안 CPU를 사용하는지에 대해 결정

- Device drivers: 하드웨어와 프로세스 간 조정 및 통역을 해줌

- System calls and security: 프로세스로부터 요청을 받아 특정 역할을 수행한다.

 

3. ps [options] : 현재 실행중인 Process의 목록을 보여준다.

현재 실행중인 프로세스의 목록

보면, tony의 ps -af는 PPID가 106번째 PID 프로그램으로, bash 임을 알 수 있다. 이 구조를 tree 구조로 확인할 수 있다.

u 태그와 함께 작성하면 Process의 user 관점의 정보들이 등장한다.

각 항목들의 의미는 다음과 같다

- user : 사용자 이름

- PID : 프로세스 ID ( process를 kill 혹은 modify 할 때 사용됨 )

- PPID : 부모 프로세스 ID

- TTY (teletype) : terminal을 구별하는데 사용되는 코드. 모든 프로그램이 tty를 갖고 있지는 않고, console을 가리키고 잇는 text-mode program 들이 이를 가지고 있다. 

- CPU : 해당 명령어를 실행할 때 점유한 CPU Time을 의미함

- MEM : 해당 프로그램이 사용하고 있는 메모리를 의미

- VSZ (Virtual memory SiZe) : 가상 메모리 크기. 해당 프로세스가 접근할 수 있는 모든 메모리의 크기. 

- RSS (Resident Set Size) : RAM에 해당 프로그램이 얼마나 많은 용량을 차지하고 잇는가.

 

top - ps를 dynamic 하게 조회하는 명령어 

top 시 등장하는 화면

nice - cpu 스케줄링 우선순위(niceness)를 정하는 리눅스 명령어 

nice의 기본 값은 부모 프로세스의 것을 따르며, 보통 0이다. 

 

kill - 프로세스를 제거하는 명령어

kill -s signal pid

해당하는 pid의 프로세스에 signal을 전달 후 종료한다. 

 

signal은 kill 할 때 process에 signal을 전달하는데, number 혹은 signal으로 전달한다. kill -l 하면 전달 가능한 signal의 종류를 알 수 있다.

 

killall - kill의 variant, PID가 아니라 이름으로 제거할 수 있다. 

pkill - username, user ID, group ID로 제거할 수 있다.

 

### Reference

https://www.redhat.com/ko/topics/linux/what-is-the-linux-kernel

댓글