프로세스란?
- 프로세스는 자신이 사용하는 컴퓨터나 기기의 저장공간 (ex. 하드디스크)에 저장되어 있는 실행 코드 (프로그램)가 메모리(ex.램)에 올려져 로딩되어 활성화 되어 있는 것
- 예를 들어 웹 브라우저인 크롬을 사용
- 크롬은 하드디스크 어딘가에 저장이 되어 있을 것
- 이런 식으로 하드디스크에 저장되어 있는 파일을 프로그램이라고 함
- 이를 실행시켜서 윈도우에 뜨거나 메모리에 로딩이 되어 있으면 이 것을 프로세스라고 함
- 포그라운드와 백그라운드 처리
- 포그라운드
- 크롬을 실행하게 되면 배경화면에 크롬창이 열림
- 이와같이 화면에서 유저와 상호작용을 하게되는 프로세스가 포그라운드 프로세스
- 사용자가 명령을 입력하고 실행 결과를 바로 확인할 수 있는 프로세스
- 포그라운드에서 실행 중인 프로세스가 완료되기 전에는 다른 명령을 입력할 수 없음
- 백그라운드(Background)
- 포그라운드와 다른 개념으로 포그라운드 뒤의 배경 뒤, 화면에 안떠서 안보이는 형태
- 화면 뒤에서 프로그램이 돌아가는 바이러스 백신이나 서버 데몬 등이 이에 해당
- 사용자가 실행한 명령을 백그라운드에서 실행하는 프로세스
- 백그라운드에서 실행 중인 프로세스는 사용자가 다른 명령을 입력할 수 있으며, 실행 결과는 나중에 확인할 수 있음
- 백그라운드에서 실행할 때는 명령어 뒤에 & 기호를 붙여주면 작업 번호와 PID를 출력한 후 명령을 실행한 다음 명령을 입력받을 수 있는 대기 상태가 됨
- 키보드의 입력 없이 프로세스를 장시간 실행해야하는 경우에 사용하는 방법
- 시스템 부팅 시에 동작하는 대부분의 프로세스들은 이러한 백그라운드 방식으로 동작
- 백그라운드로 동작하는 프로세스는 kill 명령어를 사용하여 종료 가능
- 프로세스 스케줄러
- 프로세스 스케줄러(Process Scheduler)는 CPU 자원을 여러 프로세스가 공유하면서 프로세스를 스케줄링하는 역할
-
스케줄링 방식에는 라운드 로빈(Round Robin), 우선순위(Priority), 멀티레벨 큐(Multi-Level Queue) 등이 있음
- 운영체제는 스케줄링 큐에서 대기하는 각 프로세스들의 우선순위를 고려하여 자원을 배분
- 스케줄링 큐: 프로세스들이 대기하는 공간 , 반드시 선입선출 방식은 아님
- 운영체제는 스케줄링 큐에서 대기하는 각 프로세스들의 우선순위를 고려하여 자원을 배분
- 시작 프로그램 처리
- 리눅스에서 시작 프로그램(Startup Program)은 시스템 부팅 시 자동으로 실행되는 프로그램을 말함
- 시작 프로그램은 시스템 설정 파일에 등록되어 있으며, 설정 파일을 수정하여 시작 프로그램을 추가하거나 삭제할 수 있음
- 대표적인 시작 프로그램 설정 파일
- /etc/rc.local
- /etc/init.d/
- /etc/systemd/system/
시작 프로그램을 추가하거나 삭제할 때는 해당 설정 파일을 수정하여 등록 또는 삭제합니다. 등록된 시작 프로그램은 시스템 부팅 시 자동으로 실행됩니다.
서브목차