응용SW기초기술활용
프로세스의 개념
- 처리기, CPU에 의해 처리되는 사용자 프로그램
 - 정의
- PCB(Process Controll Block)을 가지는 프로그램
 - 실기억장치에 저장된 프로그램
 - 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
 - 프로시저가 활동 중인 것
 - 서로 규칙적이거나 연속적이지 않고 독립적으로 실행되므로 비동기적 행위를 일으키는 주체
 - 지정된 결과를 얻기 위한 일련의 계통적 동작
 - 목적 또는 결과에 따라 발생되는 사건들의 과정
 - 운영체제가 관리하는 실행 단위
 
 
PCB; Process Control Block, 프로세스 제어 블록
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
 - 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거됨
 - PCB에 저장되는 정보의 종류
- 프로세스의 현재 상태
 - 포인터
- 부모 프로세스의 주소 기억
 - 자식 프로세스의 주소 기억
 - 현재 프로세스가 위치한 주소 기억
 - 프로세스에 할당된 각 자원에 대한 주소 기억
 
 - 프로세스 고유 식별자
 - 스케줄링 및 프로세스의 우선순위
 - CPU 레지스터 정보
 - 주기억장치 관리 정보
 - 입출력 상대 정보
 - 계정 정보
 
 
Thread 스레드
- 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당 받아 실행하는 프로그램 단위
 - 하나의 프로세스에 하나의 스레드가 존재하는 경우는 단일 스레드, 하나 이상의 스레드가 존재하는 경우는 다중스레드
 - 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고 함
 - 스레드 기반 시스템에서는 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할 담당
 - 장점
- 하드웨어, 운영체제의 성능과 응용 프로그램 처리율 향상
 - 응용 프로그램의 응답 시간 단축
 - 실행 환경을 공유 시켜 기억장소의 낭비를 줄임
 - 프로세스들 간의 통신 향상
 
 - 프로세스 내부의 작업 단위
 
Scheduling 스케줄링의 개념
- CPU나 자원을 효율적으로 사용하기 위한 정책
 - 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
 - 프로세스가 생성되어 완료될 때 까지 프로세스는 여러 종류의 스케줄링 과정을 거침
 
스케줄링의 목적
- 모든 프로세스에게 공정하게 할당
 - 단위 시간당 프로세스를 처리하는 비율 증가
 - CPU가 순수하게 프로세를 실행하는데 사용되는 시간 비율 증가
 - 우선 순위가 높은 프로세를 먼저 실행
 - 오버헤드를 최소화
- 오버헤드
- 시스템에서 목적으로 하는 효과를 얻기 위해 본질적인 것은 아니지만 요구되는 작동, 또는 그 때문에 필요한 자원
 
 
 - 오버헤드
 - 작업을 지시하고 반응하는 응답시간 최소화
 - 프로세스를 제출한 시간부터 실행이 완료될 때까지 걸리는 반환시간을 최소화
 - 프로세스가 준비상태 큐에서 대기하는 시간을 최소화
 - 메모리, 입력장치 등의 자원을 균형 있게 사용
 - 자원을 사용하기 위해 무한정 연기되는 상태를 회피
 - 프로세스에게 CPU를 할당하고 문맥 교환을 하는 프로세스 관리기능
 
Non-Preemptive 비선점 스케줄링
- 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
 - 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용
 - 모든 프로세스에 대한 요구를 공정하게 처리
 - 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합
 - 짧은 작업이 긴 작업을 기다리는 경우 발생할 수 있음
 - 종류
- FIFO(FCFS)
 - SJF
 - HRN
 - Priority
 
 
Preemptive 선점 스케줄링
- 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
 - 우선순위가 높은 프로세를 빠르게 처리
 - 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됨
 - 많은 오버헤드를 초래
 - 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록 필요
 - 종류
- RR
 - SRT
 - Preemptive
 - Priority
 - MLQ
 - MFQ
 
 
프로세스 스케줄링 종류 및 특징

        

