프로세스란?

  • 프로세스는 자신이 사용하는 컴퓨터나 기기의 저장공간 (ex. 하드디스크)에 저장되어 있는 실행 코드 (프로그램)가 메모리(ex.램)에 올려져 로딩되어 활성화 되어 있는 것
  • 예를 들어 웹 브라우저인 크롬을 사용
    • 크롬은 하드디스크 어딘가에 저장이 되어 있을 것
    • 이런 식으로 하드디스크에 저장되어 있는 파일을 프로그램이라고 함
    • 이를 실행시켜서 윈도우에 뜨거나 메모리에 로딩이 되어 있으면 이 것을 프로세스라고 함
      1. 포그라운드와 백그라운드 처리

    1. 포그라운드
      • 크롬을 실행하게 되면 배경화면에 크롬창이 열림
      • 이와같이 화면에서 유저와 상호작용을 하게되는 프로세스가 포그라운드 프로세스
        1. 사용자가 명령을 입력하고 실행 결과를 바로 확인할 수 있는 프로세스
        2. 포그라운드에서 실행 중인 프로세스가 완료되기 전에는 다른 명령을 입력할 수 없음
    2. 백그라운드(Background)
      • 포그라운드와 다른 개념으로 포그라운드 뒤의 배경 뒤, 화면에 안떠서 안보이는 형태
      • 화면 뒤에서 프로그램이 돌아가는 바이러스 백신이나 서버 데몬 등이 이에 해당
        1. 사용자가 실행한 명령을 백그라운드에서 실행하는 프로세스
        2. 백그라운드에서 실행 중인 프로세스는 사용자가 다른 명령을 입력할 수 있으며, 실행 결과는 나중에 확인할 수 있음
        3. 백그라운드에서 실행할 때는 명령어 뒤에 & 기호를 붙여주면 작업 번호와 PID를 출력한 후 명령을 실행한 다음 명령을 입력받을 수 있는 대기 상태가 됨
        4. 키보드의 입력 없이 프로세스를 장시간 실행해야하는 경우에 사용하는 방법
        5. 시스템 부팅 시에 동작하는 대부분의 프로세스들은 이러한 백그라운드 방식으로 동작
        6. 백그라운드로 동작하는 프로세스는 kill 명령어를 사용하여 종료 가능
        7. 프로세스 스케줄러

    1. 프로세스 스케줄러(Process Scheduler)는 CPU 자원을 여러 프로세스가 공유하면서 프로세스를 스케줄링하는 역할
    2. 스케줄링 방식에는 라운드 로빈(Round Robin), 우선순위(Priority), 멀티레벨 큐(Multi-Level Queue) 등이 있음

      • 운영체제는 스케줄링 큐에서 대기하는 각 프로세스들의 우선순위를 고려하여 자원을 배분
        • 스케줄링 큐: 프로세스들이 대기하는 공간 , 반드시 선입선출 방식은 아님
  1. 시작 프로그램 처리
    1. 리눅스에서 시작 프로그램(Startup Program)은 시스템 부팅 시 자동으로 실행되는 프로그램을 말함
    2. 시작 프로그램은 시스템 설정 파일에 등록되어 있으며, 설정 파일을 수정하여 시작 프로그램을 추가하거나 삭제할 수 있음
    3. 대표적인 시작 프로그램 설정 파일
      • /etc/rc.local
      • /etc/init.d/
      • /etc/systemd/system/

시작 프로그램을 추가하거나 삭제할 때는 해당 설정 파일을 수정하여 등록 또는 삭제합니다. 등록된 시작 프로그램은 시스템 부팅 시 자동으로 실행됩니다.

서브목차