[CS101] Part4. 운영체제 - 프로세스

이효원·2024년 2월 6일
0

한빛CS101

목록 보기
6/15
post-thumbnail

프로세스 : 실행 중인 프로그램
프로세스 제어 블록(PCB) : 프로세스에 대한 모든 정보를 가지고 있는 하나의 블록
-> PCB는 프로세스ID, 프로세스 상태, 주소레지스터 값, 주기억장치 정보 .. 등의 정보를 포함한다.

🖥️ 프로세스 상태

(괄호는 이해를 돕기 위해 은행 갔을 때와 비유한 내용)

  • 생성 상태 (번호표를 뽑음) : 하드디스크에 있던 프로그램이 램에 적재됨
  • 준비 상태 (내 순서될 때까지 기다림) : CPU를 사용할 때까지 기다림
  • 실행 상태 (내 순서가 돼서 들어감) : CPU를 사용할 수 있게 됨
    • 디스패치 : 준비(주기억장치)->실행(CPU) 상태로 가는 상태
    • 타이머 : 하나의 프로세스가 너무 길게 CPU를 독차지하지 못하게 하도록, 타이머가 끝나면 다시 실행->준비상태로 가야함
  • 종료 상태 (집에 감) : 프로세스를 출력해줌
  • 대기 상태 (주민센터가서 등본떼옴 / 집가서 민증 가져옴) : 추가적인 데이터의 입출력이 필요한 경우, 프로세스를 실행하는데 현재의 정보가 부족해서 외부에서 데이터를 더 가져와야 하는 경우

🖥️ 프로세스 스케슐링

프로세스를 어떤 순서로 실행시키냐에 따라서 CPU가 처리하는 속도가 달라진다.
이렇게 프로세스의 실행순서를 결정하는 것프로세스 스케슐링이라고 한다.
-> 프로세스 스케슐링을 하는 이유 : 시스템의 성능을 향상시키기 위해서

시스템 성능의 기준 4가지

  • 완료(응답)시간 : 프로세스가 생성 ~ 종료 까지의 시간
  • 대기시간 : 프로세스가 준비큐에서 대기하는 시간
  • 처리량 : 일정시간 내에 처리 완료된 프로세스의 수
  • 자원활용도 : 일정시간 내에 CPU가 활용된 시간

: 완료시간 ⬇️ / 대기시간 ⬇️ / 처리량 ⬆️ / 자원활용도 ⬆️ 일수록 성능이 좋다

프로세스 스케슐링 기법

각각 처리시간이 10, 3, 7인 프로세스 P1, P2, P3를 순서대로 실행시킨다.
위의 같은 조건에 따라 각 기법의 성능을 판단해보자.

기법특징순서완료/대기시간 계산
FCFS (P4) 기법준비 큐에 먼저 들어온 프로세스를 먼저 실행시킴 (FIFO)P1→P2→P3
SJF 기법작업이 끝나기까지의 실행시간 추정치가 가장 작은 프로세스를 먼저 실행시킴P2→P3→P1둘 다 FCFS보다 짧음
라운드로빈각 프로세스가 차례대로 일정한 시간 간격동안 CPU를 사용하고 다시 준비큐에서 대기하기를 반복Time slice(타이머)가 3일 때, P1→P2→P3→P1→P3→P1→P3→P1완료시간, 대기시간 가장 높음
우선순위우선순위가 가장 높은 프로세스에게 먼저 CPU를 할당함각 P1,P2,P3의 우선순위가 2,3,1일 때, P3→P1→P2

-> 이 네가지 스케슐링 기법 중 가장 효율이 좋은 것은 SJF기법으로 볼 수 있다.


✏️ 내가 만든 문제

Q1. 아래 사진에 해당하는 P1, P2, P3의 상태를 각각 말하시오.

스크린샷 2024-02-03 오후 8 20 09

Q2. 아래의 조건일 때, 모든 프로세스가 종료할 때까지의 프로세스 실행순서를 쓰시오.

<조건>
라운드로빈 기법 사용
타이머(Time slice) : 3
처리시간이 각각 10, 3, 7인 프로세스 P1, P2, P3를 순서대로 실행

<답변예시> 
P2->P3->P1->종료

Q3. 시스템 성능의 기준이 아닌 것을 고르시오.

➀ 응답시간 ➁ 대기시간 ➂ 처리량 ➃ 실행순서 ➄ 자원활용도

✏️ 해답

A1. P1: 대기상태, P2: 실행상태, P3: 준비상태

준비 상태일 때는 주기억장치의 준비 큐에 들어가고, 대기 상태일 때는 주기억장치의 대기 큐에 들어가고, 실행 상태일 때는 CPU에 들어간다.

생성 상태가 되면 주기억장치에 적재되고, 종료 상태가 되면 주기억장치와 CPU에서 모두 빠진다.

+) 큐는 들어온 순서대로 나간다 !

A2. P1->P2->P3->P1->P3->P1->P3->P1->종료

라운드로빈 기법은 
각 프로세스가 차례대로 일정한 시간 간격(타이머시간)동안 CPU를 사용하고 다시 준비큐에서 대기하기를 반복하는 기법

위 조건에서는 P1, P2, P3 순서대로 각 3초씩 사용하고 준비큐에서 대기한다.

1. P1(10)이 3초동안 CPU 사용 / 준비큐에는 P2(3), P3(7)이 대기 / 3초 소요
2. CPU : P2(3) / 준비큐 : P3(7), P1(10-3=7) / 3초 소요
3. CPU : P3(7) / 준비큐 : P1(7) / P2 종료 / 3초 소요
4. CPU : P1(7) / 준비큐 : P3(7-3=4) / 3초 소요
5. CPU : P3(4) / 준비큐 : P1(7-3=4) / 3초 소요
6. CPU : P1(4) / 준비큐 : P3(4-3=1) / 3초 소요
7. CPU : P3(1) / 준비큐 : P1(4-3=1) / 1초 소요
8. CPU : P1(1) / P3 종료 / 1초 소요
9. P1 종료

A3. ➃ 실행순서

- 완료(응답)시간 : 프로세스가 생성 ~ 종료 까지의 시간
- 대기시간 : 프로세스가 준비큐에서 대기하는 시간
- 처리량 : 일정시간 내에 처리 완료된 프로세스의 수
- 자원활용도 : 일정시간 내에 CPU가 활용된 시간
  
완료시간 ⬇️ / 대기시간 ⬇️ / 처리량 ⬆️ / 자원활용도 ⬆️ 일수록 성능이 좋다

0개의 댓글