관리 메뉴

드럼치는 프로그래머

[리눅스마스터 2급] 1-3. 프로세스 관리 본문

★─License 's/☆─리눅스마스터

[리눅스마스터 2급] 1-3. 프로세스 관리

드럼치는한동이 2007. 8. 6. 19:58

1. 리눅스 운영 및 관리

(1) 파일시스템 관련 명령어

(2) Sell

(3) 프로세스 관리

(4) 에디터

(5) 소프트웨어 설치

(6) 장치 설정


2. 리눅스 활용

(1) X윈도

(2) 인터넷 활용

(3) 리눅스 신기술

========================================================================================

1. 리눅스 운영 및 관리

(3) 프로세스 관리

 

명령어

*priority: 프로세스가 들어온 프로세스의 우선순위를 보여줌.

*nice: 우선순위 설정. 기본적으로 아무런 옵션없이 nice를 사용하면 상속받은 현재 순서의 우선권을 출력

           수치가 낮을수록 높은 우선순위를 갖게된다.

           (renice: 이미 실행된 프로세스의 우선순위를 바꿔주는 명령어)

*ps: 프로세스 상태를 알기 위한 명령어

        #ps u: 사용자와 프로세스번호(PID)등이 출력됨

        r옵션: 현재 실행상태에 있는 프로세스만 보고자 할 경우 사용.

       -u옵션: 사용자이름과 프로세스가 시작된 시간 출력.

                    지정한 사용자가 실행한 프로세스만 보고싶을 경우 사용하는 옵션.

         -j옵션: 작업에 관련된 ID를 출력한다.

         -a옵션: 모든 프로세스 나열

        -w옵션: 출력결과를 생략하지 않고 출력

         -f옵션: 프로세스 간 상관관계를 트리구조로 나타냄.

        (PID: 프로세스마다 주어지는 번호, RSS:프로세스가 사용하는 메모리의 크기

         WCHAN: 프로세스가 실행하고 있는 커널루틴, STAT:실행되고 있는 프로세스 상태)

*STAT( R:실행 중 혹은 실행될 수 있는 상태, S:sleep, I:idle 비활동상태 T:정지된 상태.서스펜드)


*fork: 리눅스에서 프로세스를 복제하는 기능.

           사용자가 새로운 프로세스를 생성하는 유일한 방법.

*fsck: 예상치못한 시스템 종료시 파일시스템의 불일치성을 체크

           (-v옵션: 명령이 실행되는 과정을 화면으로 출력한다.)

*uname: 시스템 이름과 다른 정보를 보고자 할때

*shutdown -r now: reboot 명령과 같음 [예] shutdown -r +5 : 5분후에 시스템 재부팅

*pstree: 프로세스의 상관관계를 보고자 할때

*jobs: 백그라운드로 수행중인 작업확인

*top: 시스템의 프로세스 수, 사용중인 데몬, CPU프로세스의 상황 등을 보여줌.

*cron프로그램은 시스템이 부트될 때 한번만 시작된다. 개별 사용자는 cron을 직접 실행할 권한이 없다.

  또한 시스템 관리자는 명령의 이름을 입력하여 cron을 실행해서는 안된다.

  [예] 5 10 6 5 *echo Happy birthday : 5월 6일 10시 5분에 echo Happy birthday를 실행한다.

  [예] *****echo Excuse me !!One Minute

        >dev/tty1

        : Excuse me !!One Minute을 매 분 터미널 장치 dev/tty1에 보낸다.

  (시분일시 순서)

*nohup: 부모프로세스가 죽거나 종료되어도 자식프로세스는 백그라운드 모드에게 계속 실행하도록 함.



프로세스 특성

*프로세스 관리 블록에 저장되는 프로세스 관련 정보들이 유지하는 정보

  :프로세서가 할당받은 자원들의 리스트 및 이에대한 포인터. 프로세스 고유번호(PID)

*하나의 프로그램을 실행시키면 하나 이상의 프로세스가 생긴다.

*시스템 호출은 핵심으로 하여금 프로그램에 일부 서비스를 제공하도록 하는 서브루틴이다.

*프로세스는 실행 중인 프로그램이라고 할 수 있다. 커널에 등록되어 커널의 관리하에 있는 작업으로

  이를 일반적으로 주기억 장치에서 실행중인 프로그램.

*리눅스 시스템에서 명령을 타이프하면 그 쉘은 명령의 실행을 관리한다.

*프로세스를 할당받은 상태, 즉 기억장치를 할당받은 상태: 프로세스의 실행상태일 때의 특성.

*프로세스를 요청하는 상태: 기억장치를 잃은 상태.

*많은 양의 CPU시간을 이용하는 프로세스들은 낮은 우선권을 갖는다.

*가장 낮은 수준에서 프로세스는 fork 시스템 호출에 의해 창출된다.


기타 기출문제

*임계영역 밖의 프로세서가 다른 프로세서의 임계영역 진입을 막아서는 안된다.

*파이프: 유닉스 환경하에서 프로세스 간 통신의 고전적인 방법.

*signal: 프로세스가 다른 프로세스에게 메시지를 보내기 위한 수단(프로세스간 통신수단)

              HUP-1: Hangup (실행종료, 로그아웃하거나 모뎀접속 끊을때 발생)

              KILL-9: kill(프로세스 강제종료)

              SEGV -11: Segment Violation (허가되지 않은 메모리 영역 접근)

              TERM -15: Termination(가능한 한 정상종료)

              INIT -2: Interrupt(실행종료,Ctrl-c키를 누루면 발생)

              TSTP -20: STOP(실행정지 후 다시 실행위해 대기, Ctrl-Z키 누르면 발생)


*시스템모드: 시스템 함수가 초기화될때 프로세스가 선택하는 모드

*대기: 프로세스들이 외부적인 사건을 기다리는 것.(S)

*exec 시스템호출: 프로세스가 지정된 파일을 실행할 수 있도록 해주는 것.

 (exec: 하나의 프로세스가 다른 프로세스를 생성하여 원래 프로세스가 더이상 남아있을 필요 없을때)

*Swapping: 프로세스 관리 및 메모리 관리와 관련있음.

*init: 리눅스에서 실행되는 최초의 프로세스.

           init가 실행되면 /etc/inittab 파일을 읽는데, 이 파일의 설정에 따라 프로세스들을 실행시킨다.


*좀비프로세스: 실행이 끝났는데도 종료되지 못하고 있는 프로세스.(z)

                     프로세서 테이블에 각각의 프로세서 아이디와 사용하는 자원을 올려놓는다.

                     [ex]운영중인 서버의 프로세스 확인과정에서 프로세스는 종료되었으나 부모프로세스는

                           해당 프로세스가 종료되었음을 인지하지 못하고 defunct로 표현되어 있음.

*프로세스 교착상태: 두 개 이상의 프로세서가 동시에 서로 사용하는 자원을 요구하려 할 때 발생

                            (자원에 대한 배타적 사용이 원인)

*프로세스 스케쥴링: 프로세스의 시스템을 향상시키기위한 목적

*데몬: 프로세스들 중에는 특별한 이름을 가진 것들이 있음. 데몬 프로세스는 백그라운드로 실행되면서

         서버역할을 하거나 그 기능을 도와주는 프로세스를 가리키는 말이다.

         (슈퍼데몬의 관리를 받지 않고 독립적으로 메모리에 계속 상주해있으면서, 클라이언트에게

          서비스를 해주는 방식: standalone 방식)

           - crond: 사용자가 지정한 프로그램을 특정 시간에 주기적으로 실행시켜 주는 표준 유닉스 데몬

           - inet방식: 데몬을 운영하는 방식 중 하나로, 사용자의 요구가 빈번하지 않은 서비스들을

                            중심으로 이루어지며, TCP Wrapper를 이용하여 해당서비스 요청에 대한 로그기록

           -inetd: 주로 인터넷 서비스에 이용되는 여러개의 데몬을 관리하는 슈퍼데몬의 이름.


*dev 디렉터리: 파일시스템중에서 주변장치 파일이 저장되어 있는 디렉터리

*리눅스에서 백그라운드 작업을 위해서는 실행 시 프로그램 이름뒤에 &를 붙인다.

*포그라운드로 실행되는 프로그램을 Ctrl -Z를 누르면 서스펜드된다.

*백그라운드를 포그라운도 전환하려면 fg, 포그라운드를 백그라운드로 전환하려면 bg

*RunLevel 1: 단일 사용자 모드/ RunLevel 3: 풀 멀티유저 모드

  RunLevel 5: GUI환경으로의 부팅모드/ RunLevel 6: 재부팅모드

Comments