Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

운영체제 5주차 정리 - 1 본문

2-1/운영체제

운영체제 5주차 정리 - 1

김브래 2023. 3. 30. 23:09

스케줄링 및 IPC - 스케줄링 개요


스케줄링 개요


개념

프로세스들에 대하여 CPU에 할당 기회를 결정하고 수행하는 과정
프로세스가 작업을 처리하기 위해 CPU 할당을 위한 일정을 처리


목적

모든 프로세스들에게 공정하게 배정 - 공평성
단위 시간당 최대한 많이 처리 - 처리율 극대화

 

- 빠른 응답

- 오버헤드 최소화
- 프로세스 무한대기 최소화

 

필요성

작업(프로세스)은 주어진 일을 수행하기 위해 다양한 자원(resource)을 사용
- 자원 예: CPU, memory, storage, network, file, I/O etc.
- 자원의 특징 : 유한함


CPU는 작업(프로세스) 단위로 처리

 

작업의 개수가 많아지면 자원들을 선점하기 위한 경쟁이 필요

 

작업 간의 효율적인 자원의 할당 및 공유를 위한 관리자가 필요 = 스케줄러(Scheduler)

스케줄링 정책

정해진 시간(time slice, time slot)에 프로세서를 점유할 프로세스를 선택

 

고려사항
- 최대의 처리량 = 프로세서 활용도 극대화
- 최소 지연시간
- 무기한 연기(대기)를 방지(공평성)
- 요청 데드라인 전에 완료

 

스케줄링의 목표


스케줄링 단계



상위단계 스케줄링(High Level Scheduling)

= 장기/작업/승인 스케줄링(long-term/job/admission scheduling)

 

시스템에 부담이 되지 않도록 전체 작업 수를 조절

 

어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정

 

실행 가능한 프로세스의 총 개수를 정의

중간단계 스케줄링(Middle Level Scheduling)

중지(suspend) - 활성화(active) 상태 전환

 

활성화된 프로세스 조절 = 과부하를 해소

 

저수준 스케줄링의 부담을 완충하는 역할

하위단계 스케줄링(Low Level Scheduling)

= 단기 스케줄링(short-term scheduling)

 

짧은 시간에 처리

 

프로세스를 CPU에 할당

 

프로세스를 대기상태로 전환


선점형/비선점형 스케줄링


선점형 스케줄링(Preemptive Scheduling)

운영체제가 필요하다고 판단하면 실행 상태에 있는 프로세스의 작업 중단


다른 프로세스가 프로세서를 쟁취할 수 있음
- 새로운 작업을 시작할 수 있는 방식


하나의 프로세스가 CPU를 독점할 수 없음
- 빠른 응답이 가능


대화형 시스템이나 시분할 시스템에 적합

 

대부분의 저수준 스케줄러가 이 방식을 사용

 

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


한 프로세스가 CPU를 사용하면 종료 또는 자발적으로 나올 때까지 다른 프로세스는 대기

- 프로세스가 스스로 양보

 

과거의 일괄 작업 시스템에서 사용하던 방식

 

장점
- 선점형 스케줄링보다 스케줄러의 작업량이 적음
- 문맥 교환에 의한 프로세서 및 시간적인 낭비 감소

 

단점
- 덩치가 큰 프로세스는 CPU 사용이 길기 때문에, 타 프로세스의 대기시간을 길게 만듦

 

전체 시스템의 처리율이 떨어짐


전면/후면 프로세스


전면 프로세스(Foreground Process)

- GUI의 경우 운영체제 화면에서 맨 앞에 놓인 활성화 상태의 프로세스
- 현재 입력과 출력을 사용하는 프로세스
- 사용자와 상호작용이 가능 = 상호작용 프로세스


후면 프로세스(Background Process)

- 사용자와 상호작용이 없는 프로세스
- 사용자의 입력 없이 작동 (일괄 작업 프로세스라고도 함)
- 전면 프로세스 보다 우선순위가 낮음

 

실습

- 전면/후면 전환

 

- 관련 명령어:
• [Ctrl + Z] : 정지
• jobs : 동일 쉘내 작업들 출력
• fg : 전면으로 전환(Run상태 활성)
• bg : 후면으로 전환(Run상태 활성)

'2-1 > 운영체제' 카테고리의 다른 글

운영체제 5주차 정리 - 3  (0) 2023.03.30
운영체제 5주차 정리 - 2  (0) 2023.03.30
운영체제 4주차 정리  (0) 2023.03.23
운영체제 3주차 정리 - 2  (0) 2023.03.13
운영체제 3주차 정리 - 1  (2) 2023.03.13