본문 바로가기
정보처리기사 실기

프로세스

by 도도대표 2022. 12. 5.

실행되고 있는 프로그램

 

스레드(Thread)

프로세스에서 돌아가는 경량 프로세스이다

실행 중인 프로세스 안에 여러 개의 스레드가 들어가 있고 공유자원들(데이터, 힙 영역, 코드) 공유하면서

각자가 가지고 있는 스택(Stack) 영역(나만 가지고 있는 지역변수)들이 존재

 

프로세스와 스레드스레드
스레드

메모리상의 프로세스 영역

①코드 영역:프로그램을 짠 거

②데이터 영역:프로그램이 종료되기 전까지 계속 상주하는 전역 변수, 정적 변수

③힙 영역:프로그래머가 동적으로 할당해주는 것(씨 언어에서 멀록 함수

④스택 영역:지역변수 들어가는 것(임시적으로 사용되는 것들이 들어가는 것)

메모리상의 프로세스 영역
메모리상의 프로세스 영역

프로세스 상태 전이☆

생성:프로그램 더블클릭 후 메모리에 올라가는 것

준비:큐

큐
큐(프로세스들이 대기큐에 들어가 있음)

실행:CPU에서 처리(디스패치 <->타임 런 아웃)

대기:가장 중요한 입출력이 들어오면 지금 현재 있는 것들을 잠깐 대기 상태로 뺀다

 

Spooling:모았다가 처리하는 것

문맥 교환(Context Switching):PCB에 저장해 놓고 동시에 여러 개가  수행되는 것처럼 보이게 문맥 교환은 멀티태스킹이 가능하게 해 줌(여러 개의 프로그램이 동시에 돌아가게)

PCB(Process Control Block):프로세스가 어디까지 처리되었는지 저장하고 있는 것(각각의 프로세스가 PCB를 가지고 있다)/PCB가 있어야 문맥 교환이라는 것이 가능하다

ex) 공유 아이디, 어디까지 처리, 변수가 어떤 값인지, 공유 아이디

 

 

문맥교환
문맥교환

프로세스 스케줄링

메모리에 올라온 프로세스들 중 어떤 프로세스를 먼저 처리할지 순서를 정하는 것

 

스케줄링 성능 척도

운영체제에서 성능 척도를 생각하면 다 비슷하다

처리량

사용률

반환시간

가용성

 

스케줄링 기법

①선점형 스케줄링(preemptive)

cpu를 강제로 뺏을 수 있는 권한이 운영체제에 있음(윈도우같은경우)

cpu 처리 시간이 긴 프로세스가 독점하는 것을 막을 수 있어 요즘은 대부분 선점형

잦은 문맥 교환으로 오버헤드(일처리가 많음)가 발생

ex) Round Robbin, SRT, 다단계 큐, 다단계 피드 백큐

 

②비선점형 스케줄링(Non-Preemptive)

프로세스가 cpu를 점유하고 있으면 뺏을 수 없는 방식

ex) FCFS, SJF, HRN, 우선순위, 기한부

 

스케줄링 알고리즘

선점형 기법

①Round Robin: 시간 단위로 cpu할당

Round Robin
Round Robin

②SRT(Shortest Remaining Time)

(SJF기법:실행시간이 빠른 순서대로 함)

SJF기법 변경한 시간이 짧은 프로세스에게 먼저 cpu를 할당

기아 현상이 발생할 수 있음(2시간짜리 이런 것들)

 

③다단계 큐(MQ, Muti-level Queue)

우선순위에 맞게 해당 큐에 넣어 처리

다단계 큐
다단계 큐

다단계 피드백 큐(Muti-level Feedback Queue)

처리를 못했을 경우 다음으로 넘기는 것

각각의 큐에 타임슬라이스를 할당(시간을 정해줌) 

맨 마지막으로 들어가면 Round Robin으로 처리

(마냥 기다리고 있다가 다처리되면 라운드 로빈으로 처리)

 

다단계 큐랑 다단계 피드백큐는 종류 정도만 나옴

 

비 선점형 기법

①FCFS(First Come, Frist Serve)

가장 먼저 들어온 것이 가장 먼저 처리

최대평균시간=가장오래걸리는 것들을 먼저 집어넣어 반환시간의 평균을 구함

최소평균시간=가장빠른거 먼저 집어넣어 반환시간의 평균을 구함

 

②SJF(Shortest Job First)

실행 시간이 빨은 순서대로함

(SRT는 계속 빼내어 짧은 것을 집어넣음)

 

③HRN(Highest Response Ratio Next)

대기 시간에 중점을 줌

우선순위(계산해서 값이 높은 순)=(대기시간+실행시간)/실행시간

 

④우선순위(Priority)

우선순위를 주어 우선순위가 높은 프로세스 전저 처리

 

⑤기한부(Deadline)

라운드로빈과 비슷하여 기한을 정해 처리

(라운드로빈가 다르게 그 시간안에 처리를 못하면 다시 시작한다) 

 

 

 

 

 

'정보처리기사 실기' 카테고리의 다른 글

디스크 스케줄링 종류  (0) 2022.12.06
병행 프로세스  (0) 2022.12.06
가상 기억 장치  (0) 2022.12.05
메모리 관리  (0) 2022.12.04
운영체제  (0) 2022.12.01

댓글