리눅스 - 컴퓨터의 구조

김민재·2021년 7월 20일
0

Gotcha Linux!

목록 보기
8/22

process

프로세스가 무엇인가?

이 프로세스를 모니터링(현재 상태를 확인하는 방법)에 대해서도

<하드웨어에 대하여>

  • 사진 속 제일 밑에 있는 장치들은 SSD, HDD, SD카드 즉 저장장치, 영어로는 Storage
    스토리지라고 부른다.

  • 사진 속 가운데 장치는 램(RAM)이라 부르는데 포괄적으로 메모리라고 부른다.

  • 가장 상단에 있는 장치는 소위 cpu, 중앙처리장치 포괄적으로 프로세서라고 부른다.

  • 프로세스와 프로세서는 다르다

가장 밑에 있는 스토리지와 메모리는 둘다 정보를 저장한다는 공통점이 있다.
스토리지, 메모리가 컴퓨터 안에 공존하는 이유는 뭐냐하면 모든 면에서 최고의 메모리를 만드는 거에 인류가 아직 도달하지 못 했기 때문입니다

스토리지라고 분류되는 장치들은 첫번째로는 가격이 싸고 메모리는 가격이 비싸다.

스토리지는 저장용량이 크지만 속도가 느리며 메모리는 저장용량이 작지만 속도가 빠르다.
적다

이 프로세서 즉 cpu가 동작할 때 굉장히 빠르게 동작하여 이 스토리지가 갖고 있는 속도로 cpu의 처리 속도를 따라올 수 없다.
그래서 어떻게 컴퓨터를 동작시키냐면
프로그램을
프로그램은 스토리지에 깔려있는데 깔려있는 이 프로그램을 사용할 때는 그 프로그램을
읽어서 메모리에다가 적재를 시킨다. 그리고 사용하지 않는, 실행되지 않는 프로그램은
메모리에 올라오지 않는다.

메모리에 올라와 있는 상태의 프로그램만 cpu가 읽어서 거기에 적혀있는 대로
동작 한 다음에 데이터를 처리를 한다.

즉, cpu는 빠르기 때문에 느린 스토리지를 이용할 수 없고 빠른 메모리에다가 필요한 프로그램을 적재해서 사용을 한다

프로세스는 사용자가 입력하는 명령어, command 가령 mkdir, top, rm 이런 명령어는 /bin 이나 /sbin과 같은 디렉토리에 파일의 형태로 저장이 되어 있다.

그 파일은 기본적으로 스토리지에 파일이 저장이 되어 있다. 즉, 파일의 형태로 저장되어 있는 것을 프로그램이라고 한다.
그리고 프로그램을 실행을 하면 프로그램은 메모리에 적재되어서 cpu(프로세서)에 의해서 처리되어 실행되고 있는 상태의 프로그램을 프로세스, process라고 한다.

-프로세스를 처리하는 것이 프로세서
-명령어가 컴퓨터상에 존재하는 방식은 프로그램
-프로그램은 스토리지에 저장
-스토리지에 저장되어 있던것이 실행이 되면 메모리에 적재가 돼서 프로세서에 의해서 처리가 되는어 실행되고 있는 상태의 프로그램을 프로세스라고 한다.

프로세스 모니터링 (ps, top, htop)

컴퓨터에서 현재 실행되고 있는 프로세스의 리스트를 보는 방법들

ps : 이 명령은 프로세스 리스트를 보여주는 명령
ps aux : 옵션을 주면 백그라운드에서 돌아가고 있는 수많은 프로그램 리스트를 보여준다.
이렇게 많은 프로그램이 화면에 출력이 됩니다
ps aux | grep apache : apache 라는 이름을 가지고 있는 프로그램은 찾을 땐
파이프를 이용해 grep해서 apache를 치면 된다.

PID의 값이 나와있는 PID는 프로세스 아이디로, 각각의 프로세스마다 식별자를 가지고 있다.
sudo kill PID값: 만약 에러 있는 프로그램이 있으면 그 프로그램을 kill 할수 있다.
sudo top/htop : 각각의 항목들이 프로세스의 리스트를 보여준다.

cpu를 클릭하면 cpu를 기준으로해서 정렬이 되고요 메모리를 클릭하면 메모리를 기준으로 해서
정렬된다. 타임은 그 프로그램이 실행된 시간, 커맨드라고 하는건 그 프로세스가 어떤 명령으로 실행이 되었는지를 보여주는 내용이다.
mem은 물리적인 메모리의 크기로 프로세스가 얼마나 메모리를 쓰고있는가에 대한 퍼센트
res은 실제은 메모리의 사용량이다

Load average라고 되어있는 부분에
프로세서의 점유율과 관련된건데 이 첫번째 자리는
1분 간의 cpu점유율 두번째 자리는 5분 세번째 자리는 15분 간의
cpu 점유율의, cpu가 얼마나 바쁜지에 대한 평균치를 낸 것이다.

profile
자기 신뢰의 힘을 믿고 실천하는 개발자가 되고자합니다.

0개의 댓글