티스토리 뷰

프로세스와 스레드 

(1) 프로세스

- 프로세서에 의해 처리되는 사용자 프로그램이나 시스템 프로그램을 의미

- 실행 중인 프로그램을 의미하며 작업 혹은 태스크라고도 함

- 개별 처리 독립성이 높음

- 하지만 생성 시 CPU 부하가 높음

- 프로세스가 메모리 공간을 공유 할 수 없는 것은 아님 

 

PCB(Process Control Block)

- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓은 곳

- 프로세스가 생성될 때마다 고유의 PCB를 생성하고 프로세스 완료 시 제거됨

- PCB에 저장되는 정보

    -> 프로세스 현재 상태, 포인터, 프로세스 고유 식별자, 스케줄링 및 프로세스의 우선순위,  CPU 레지스터 정보, 주기억장치 관리 정보, 입출력 상태 정보, 계정 정보

 

 

 

프로세스 상태 전이 관련 용어

- Dispatch : 준비 상태에 대기하고 있는 프로세스 중 하나가 프로세스를 할당받아 실행 상태로 전이되는 과정

- Wake up : 입출력 작업이 완료되어 프로세스가 대기 상태에서 준비 상태로 전이되는 과정

- Spooling : 입출력 장치의 공유 및 상대적으로 느린 입출력장치의 처리 속도를 보완하기 위해 입출력할 데이터를 직접 장치에 보내지 않고 나중에 한꺼번에 입출력하기 위해 디스크에 저장하는 과정

- 교통량 제어기 : 프로세스의 상태에 대한 조사와 통보를 담당

 

 

 

(2) 스레드(Thread) 

- 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당받아 실행하는 프로세스 단위

- 프로세스의 일부 특성을 가지고 있어 경량 프로세스라고도 함

- 동일 프로세스 환경에서 독립적인 다중 수행 가능

- 생성 시 부하가 낮음

- 하지만 메모리 공간을 공유하기 때문에 의도 하지 않는 데이터 읽기 쓰기가 발생할 수 있음

 

 

 

 


스케쥴링 

(1) 스케줄링의 개요

- 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업

- 멀티 프로세스 운영체제에서 하나의 CPU가 복수의 프로세스를 실행하기 위해서는 스케쥴링이 필요 

- 프로세스가 생성되어 완료될 때까지 여러 종류의 스케줄링 과정을 거침

- 그 종류에는 장기, 중기, 단기 스케줄링이 있음

- 문맥 교환

    -> 하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생되는 것

    -> 새로운 프로세스에 CPU를 할당하기 위해 현재 CPU가 할당된 프로세스의 상태 정보 저장

    -> 새로운 프로세스의 상태 정보를 설정한 후 CPU를 할당하여 실행하도록 하는 작업


(2)  스케줄링의 목적

- CPU나 자원을 효율적으로 사용하기 위한 정책

- 공정성 : 모든 프로세스에게 공정하게 할당

- 처리율(처리량) 증가 : 단위 시간당 프로세스를 처리하는 비율 혹은 양을 증가

- CPU 이용률 증가 : CPU의 낭비 시간을 줄이고 CPU가 순수 프로세스를 실행하는 데 사용되는 시간 비율 증가

- 우선순위 제도 : 우선순위가 높은 프로세스를 먼저 실행

- 오버헤드 최소화 : 어떤 처리를 하기 위해 들어가는 간접적인 처리시간이나 메모리를 최소화

- 응답 시간 최소화 : 작업을 지시하고 반응하기 시작하는 시간을 최소화

- 반환 시간 최소화 : 프로세스를 제출한 시간부터 실행이 완료될 때까지 걸리는 시간 최소화

- 대기 시간 최소화 : 프로세스가 준비상태 큐에서 대기하는 시간 최소화

- 균형 있는 자원의 사용

- 무한 연기 회피

 

 


(3)  프로세스 스케줄링의 기법

- 멀티 프로세스 운영체제에서 하나의 CPU가 복수의 프로세스 실행위해서는 스케쥴링 필요 

- 프로세스 스케쥴링 방식에 따라 OS 두가지 방식으로 나눌 수 잇음 

- Preemptive scheduling vs Non-Preemptive Scheduling

 

 

선점 알고리즘 (Preemptive Scheduling) 

    -> 강제 종료 가능

    -> 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있음

    -> 우선순위가 높은 프로세스를 빠르게 처리할 수 있음

    -> 빠른 응답 시간을 요구하는 대화식 시분할 시스템에 사용

    -> 많은 오버헤드를 초래함

    -> 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록이 필요

    -> Round Robin, 선점 우선순위, SRT, 다단계 큐, 다단계 피드백 큐 등의 알고리즘

    -> 최근의 모든 OS는 선점형 OS를 사용하고 있음 

 

✓  선점 우선순위 알고리즘 

- 각각의 우선순위 부여해서 우선순위가 높은 프로세스를 먼저 실행시키는 알고리즘 

 

✓  Round Robin 스케쥴링 알고리즘 

- 우선 순위 스케쥴링 방식의 예외를 처리하기 위해 고안된 알고리즘 

- 이때 예외란? 우선순위가 같을 때 

 

 

비선점 스케줄링 (NON-Preemptive OS) 

    -> 강제 종료 불가능 = 비선점 스케줄링은 앞에 처리중이던 프로세스의 처리가 완료 되어야지만 다음 프로세스를 실행할 수 있음

    -> 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없음

    -> 프로세스가 CPU를 할당받으면 완료될 때 까지 사용

    -> 프로세스 응답 시간 예측이 용이

    -> 일괄 처리 방식에 적합

    -> 중요한(짧은) 작업이 중요하지 않은() 작업을 기다리는 경우가 발생할 수 있음

    -> FCFS, SJF, 우선순위, HRN, 기한부 등의 알고리즘

 

 

'컴퓨터 > Computer' 카테고리의 다른 글

운영체제(OS; Operating System)  (0) 2020.08.19
캐시(cache)  (0) 2020.02.29
서버안에는 뭐가 있을까?  (0) 2020.02.29
IT 아키텍쳐  (0) 2020.02.29
컴퓨터 컴파일러란?  (0) 2019.10.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함