2019. 10. 6. 19:36ㆍ정보보안
(1) 프로그램이 주메모리에 적재되어 CPU에 의해 요청받은 작업을 수행하는 것을 프로세스라고 하며, 프로세스 관리는 요청받은 작업을 처리하기 위해 CPU, 메모리, 파일, 입출력장치와 같은 자원을 이용하여 수행되는 프로세스들에 대한 관리를 의미한다.
* 프로세스
- 프로그램이 주메모리에 적재되어 수행되는 작업 단위
- 각각의 프로세스는 서로 간에 독립적인 주메모리 영역을 할당받는다.
- 여러 프로세스 간의 작업전환 속도가 느리다.
* 스레드
- 프로세스 하위에서 수행되는 한 개 이상의 작업 단위
- 개별 프로세스에 할당된 주메모리의 존재하는 코드, 데이터, 힙 영역을 생성된 스레드끼리 서로 공유한다.
- 여러 스레드 간의 작업전환 속도가 빠르다.
(2) 프로세스 제어블록 : 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 저장소를 의미한다. 운영체제가 제어를 다른 프로세스에 넘겨줄 때 현재 실행 중인 프로세스의 정보를 해당 PCB에 저장 후 넘겨준다.
* PCB의 역할
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳이다.
- 각 프로세스가 생성될 때마다 PCB가 생성되고, 완료되면 PCB는 제거된다.
- 운영체제에게 프로세스에 대한 정보를 제공해 주는 자료구조 테이블이다.
- 부모 프로세스와 자식 프로세스는 PCB를 공유하지 않는다.
(3) 프로세스를 생성하는 데 필요한 작업
- 프로세스 이름 결정
- 프로세스 리스트에 생성된 프로세스를 추가
- 생성된 프로세스에 우선순위 부여
- 생성된 프로세스에 PCB를 생성
- 생성된 프로세스에 초기자원 할당
(4) 프로세스 상태 : 하나의 프로세스가 생성되어 완료될 때까지 여러 단계의 상태변화를 거치게 된다. 이러한 상태변화에서 단계별 상태는 아래와 같다.
- 생성 : 작업을 위해 프로그램을 하드디스크나 시디롬 등의 보조저장장치로부터 주기억장치에 적재하여 새로운 프로세스를 생성한 상태로 준비 상태가 되기를 기다린다.
- 준비 : 프로세스가 실행을 위해 CPU 할당을 기다리는 상태
- 시행 : 프로세스가 CPU 자원할당을 받아 실제로 실행되는 상태
- 대기 : 프로세스가 실행되다가 사용자 입력 혹은, 파일 열기와 같은 이벤트 발생을 기다리며 멈추어 있는 상태
- 종료 : 프로세스의 실행이 완료되어 CPU 할당이 해제되고 주메모리에서 제거되기를 기다리는 상태
(5) 프로세스 전이 상태
- Dispatch : 준비상태의 프로세스가 CPU 할당을 받아 실행상태로 전이되는 과정
- Timer Runout : 실행상태의 프로세스에 할당된 CPU 사용시간이 만료되어 준비상태로 돌아가는 과정
- Wake UP : 대기 상태에 있던 프로세스가 기다리던 이벤트가 완료되어 다시 나머지 부분의 실행을 위해 준비상태로 전이되는 과정
(6) 프로세스 구성 요소 : 프로세스는 코드 영역, 데이터영역, 스택 영역, 힙영역으로 구성된다.
- 코드 영역 : 프로그램 코드 자체를 구성하는 명령이나 기계어 명령을 위한 메모리 공간
- 데이터영역 : 프로그램의 전역변수나 정적변수의 할당을 위해 존재하는 공간
- 스택 영역 : 지역변수, 매개변수, 복귀번지, 함수 호출 시 전달되는 인수 값 저장을 위한 메모리 공간
- 힙영역 : 프로그램상에서 필요로 하는 일시적이고 동적인 메모리 할당을 위해 사용되는 메모리 공간
(7) 프로세스 스케줄링 : 멀티프로세스 시스템 내에 존재하는 여러 개의 프로세스 중 어떤 프로세스에 CPU 사용권을 넘겨줄 것인가를 결정하는 일이다. 즉 프로세스 실행 순서를 결정하는 일을 '프로세스 스케줄링'이라 한다.
* 프로세스 스케줄링 목적
- 자원배분의 공정성 유지
- 자원의 효율적인 사용과 처리능력의 극대화
- 특정 프로세스의 과다한 자원할당의 회피
- 응답시간 및 처리시간의 최소화
- 프로세스 실행을 위한 무한한 지연을 피하는 것
- 주요 자원들을 차지하고 있는 프로세스에 우선권 부여
(8) 스케줄링을 통한 CPU 성능요소
- CPU이용률 : 프로세스들이 CPU를 사용하는 비율로 실제로 CPU가 쉬는 시간을 측정하여 그 시간을 제외한 나머지 시간을 사용한다.
- 시스템 처리율 : 단위 시간당 완료된 작업 수
- 반환시간 : 작업에 수행되는 모든 소요시간으로 출력 장치의 속도 제한을 받는다.
- 대기시간 : 프로세스가 준비 큐에서 대기하는 시간으로 큐의 길이에 의해 측정할 수 있다.
- 반응시간 : 프로세스가 요구한 시간으로부터 첫 번째 반응이 시작되는 시간으로 대화형 시스템에서의 중요한 인자이다.
(9) 프로세스 스케줄링 정책구분
- 선점형 스케줄링 정책 : 어떤 프로세스가 CPU를 사용하고 있는 동안 다른 프로세스에 의해 그 CPU의 사용을 선점당할 수 있는 방식이다. 높은 우선순위의 프로세스로부터 요구되는 긴급처리에 유용하다. 실시간 프로세스, 대화식 시분할 시스템에서 빠를 응답이 가능하다. RR, SRT, 다단계 큐 등이 있다.
- 비선점형 스케줄링 정책 : 어떤 프로세스가 CPU 사용권을 다른 프로세스에 넘겨준 다음에 그 프로세스가 CPU를 사용할 수 있게 되는 방식을 말한다.
- 우선순위 스케줄링 : 프로세스에 부여된 우선순위대로 처리하는 방식으로 우선순위는 프로세스의 특성 및 종류에 따라 시스템에 의해 자동 부여되거나 외부적으로 부여될 수 있다.
- 기한부 스케줄링 : 작업들이 명시된 시간 내에 완료되도록 하는 방식으로 실시간 시스템과 같은 제한된 응답시간 요구분야에 유용하다.
- 프로세스 교착상태 : 서로 다른 둘 이상의 프로세스들이 상대 프로세스가 차지하고 있는 자원을 기다리는 무한대기 상태를 말한다. 즉 다중 프로그램 시스템하에서 서로 다른 프로세스가 일어날 수 없는 사건을 무한정 기다리며 더 이상 진행되지 못하는 상태를 말한다.