[정처기 필기] 「4」 | 응용 SW 기초 기술 활용 - (3.4) 스케줄링, 주요 스케줄링 알고리즘, 환경 변수

728x90

[정처기 필기] 4」 | 응용 SW 기초 기술 활용 - (3.4) 스케줄링, 주요 스케줄링 알고리즘, 환경 변수

「1」 소프트웨어 설계

「2」 소프트웨어 개발

「3」 데이터베이스 구축

> 「4」  프로그래밍 언어 활용

- 서버 프로그램 구현, 프로그래밍 언어 활용, > 응용 SW 기초 기술 활용

「5」  정보시스템 구축 관리

 

1 운영체제의 개념

2 Windows

3 UNIX / LINUX / MacOS

4 기억장치 관리의 개요

5 가상기억장치 구현 기법 / 페이지 교체 알고리즘

6 가상기억장치 기타 관리 사항

7 프로세스의 개요

> 8 스케줄링

> 9 주요 스케줄링 알고리즘

> 10 환경 변수

11 운영체제 기본 명령어

12 인터넷

13 OSI 참조 모델

14 네트워크 관련 장비

15 TCP / IP

8. 스케줄링

스케줄링(Scheduling)의 개요

 

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

 

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

 

장기 스케줄링

: 어떤 프로세스가 시스템의 자원을 차지하도록 할 것인가 결정하여 준비상태 큐로 보내는 작업,

: == 작업 스케줄링, 상위 스케줄링

: 작업 스케줄러에 의해 수행

 

중기 스케줄링

: 어떤 프로세스들이 CPU를 할당받을지 결정하는 작업

: CPU를 할당받을 프로세스가 많은 경우, 프로세스를 일시 보류시킨 후 활성화하여 일시적으로 부하 조절

 

단기 스케줄링

: CPU를 할당받는 시기, 특정 프로세스지정하는 작업

: == 프로세서 스케줄링, 하위 스케줄링

: 프로세서 스케줄링 / 문맥 교환프로세서 스케줄러에 의해 수행

 

>문맥 교환(Context Switching)<

 

하나의 프로세스에서 다른 프로세스로 CPU가 할당되는 과정에서 발생, 새로운 프로세스에 CPU를 할당하기 위해 현재 CPU할당된 프로세스의 상태정보저장, 새로운 프로세스의 상태정보설정한 후 CPU할당하여 실행

 

프로세스 스케줄링의 기법

 

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

: 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법

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

: 모든 프로세스에 대한 요구를 공정하게 처리

: 응답 시간의 예측 용이, 일괄 처리 방식에 적합

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

: FCFS(First Come First Sevice), SJF(Shortest Job First), 우선순위, HRN, 기한부 알고리즘

 

선점(Preemptive) 스케줄링

: CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스강제로 빼앗아 사용하는 스케줄링 기법

: 우선순위가 높은 프로세스를 빠르게 처리

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

: 많은 오버헤드 초래

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

: RR(Round Robin), SRT(Shortest Remaining Time), 선점 우선순위, 다단계 큐, 다단계 피드백 큐 알고리즘

9. 주요 스케줄링 알고리즘

FCFS(First Come First Service, 선입 선출) = FIFO(First In First Out)

 

준비상태 큐(대기 큐, 준비 완료 리스트, 작업준비 큐, 스케줄링 큐)도착한 순서에 따라 차례로 CPU 할당, 가장 간단

 

- 공평성은 유지, 짧은 작업긴 작업을, 중요한 작업중요하지 않은 작업을 기다림

 

ex)

 

프로세스 번호 P1 P2 P3
실행 시간 20 4 6

 

진행시간 0 10 20 30
P1 |--------------------------------------------------------------|
0                                  20 실행                         20
도착                                                                 완료
실행
P2 |--------------------------------------------------------------|-----------|
0                                   20 대기                        20 4 실행 24
도착                                                                실행          완료
P3 |--------------------------------------------------------------------------|-----------------|
0                                   24 대기                                       24    6 실행   30
도착                                                                                실행             완료

 

// 평균 실행 시간 : (20 + 4 + 6) / 3 = 10

// 평균 대기 시간 : (0 + 20 + 24) / 3 = 14.6

// 평균 반환 시간 : (20 + 24 + 30) / 3 = 24.6

 

SJF(Shortest Job First, 단기 작업 우선)

 

준비상태 큐에서 기다리고 있는 프로세스들 중 실행 시간이 가장 짧은 프로세스에게 먼저 CPU 할당

 

: 가장 적은 평균 대기 시간

: 실행 시간이 긴 프로세스무기한 연기 상태가 발생될 수 있음

 

ex)

 

프로세스 번호 P1 P2 P3
실행 시간 20 4 6

 

진행시간 0 10 20 30
P1 |------------|
0 4 실행  4
도착      완료
실행
P3 |------------|------------------|
0 4 대기  4     6 실행    10
도착      실행               완료
P2 |-------------------------------|------------------------------------------------------------|
0             6 대기           10                             20 실행                            30
도착                            실행                                                                  완료

 

// 평균 실행 시간 : (4 + 6 + 20) / 3 = 10

// 평균 대기 시간 : (0 + 4 + 10) / 3 = 4.6

// 평균 반환 시간 : (4 + 10 + 30) / 3 = 14.6

 

ex)

 

프로세스 번호 P1 P2 P3
실행 시간 20 7 4
제출 시간 0 1 2

 

진행시간 0 10 20 30
P1 |-------------------------------------------------------------|
0                                    20 실행                      20
도착                                                                완료
실행
P3          |------------------------------------------------------|------------|
        2                            18 대기                       20 4 실행 24
      도착                                                          실행         완료
P2     |-----------------------------------------------------------------------|---------------------|
   1                                 23 대기                                       24      7 실행     31
 도착                                                                                실행                  완료

 

// 평균 실행 시간 : (20 + 4 + 7) / 3 = 10.3

// 평균 대기 시간 : (0 + 18 + 23) / 3 = 13.6

// 평균 반환 시간 : (20 + 22 + 30) / 3 = 24

 

HRN(Hightest Response-ratio Next)

 

실행 시간이 긴 프로세스에 불리한 SJF 기법 보완, 대기 시간실행 시간을 이용

 

- 우선순위 계산 공식, 실행 시간이 짧은 프로세스대기 시간이 긴 프로세스에게 우선순위 주어 CPU 할당

- 서비스 실행 시간이 짧거나 대기 시간이 긴 프로세스일 경우 우선순위 높아짐

- 숫자가 가장 높은 것부터 낮은 순으로 우선순위 부여

 

우선순위 계산식 = (대기 시간 + 실행 시간) / 실행 시간

 

ex)

프로세스 번호 P1 P2 P3
실행 시간 20 4 6
대기 시간 10 20 10
우선순위 계산 (20 + 10) / 20 = 1.5 (4 + 20) / 4 = 6 (6 + 10) / 6 = 2.6
우선순위 P2 > P3 > P1

10. 환경 변수

환경 변수(Environment Variable)의 개요

 

시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임

 

- 변수명으로 구성

- 시스템의 기본 정보

- 자식 프로세스상속

- 시스템 전반에 걸쳐 적용되는 시스템 환경 변수, 사용자 계정 내에서 적용되는 사용자 환경 변수

 

Windows의 주요 환경 변수

 

%ALLUSERPROFILE% : 모든 사용자의 프로필저장된 폴더

%APPDATA% : 설치된 프로그램의 필요 데이터저장된 폴더

%ComSpec% : 기본 명령 프롬프트사용할 프로그램명

%HOMEDRIVE% : 로그인한 계정의 정보저장된 드라이브

%HOMEPATH% : 로그인한 계정기본 폴더

%LOGONSERVER% : 로그인한 계정이 접속서버명

%PATH% : 실행 파일을 찾는 경로

%PATHEXT% : cmd에서 실행할 수 있는 파일의 확장자 목록

%PROGRAMFILES% : 기본 프로그램의 설치 폴더

%SYSTEMDRIVE% : Windows가 부팅드라이브

%SYSTEMROOT% : 부팅된 운영체제가 들어있는 폴더

%TEMP% 또는 %TMP% : 임시 파일이 저장되는 폴더

%USERDOMAIN% : 로그인한 시스템도메인명

%USERNAME% : 로그인한 계정 이름

%USERPROFILE% : 로그인한 유저의 프로필이 저장폴더명

 

UNIX / LINUX의 주요 환경 변수

 

환경 변수를 사용하려면 변수명 앞에 '$'를 입력해야 함, set, env, printenv, setenv 중 하나 입력하면 모든 환경 변수 표시

 

$DISPLAY : 현재 X 윈도 디스플레이 위치

$HOME : 사용자의 홈 디렉터리

$LANG : 프로그램 사용 시 기본적으로 지원되는 언어

$MAIL : 메일을 보관하는 경로

$PATH : 실행 파일을 찾는 경로

$PS1 : 쉘 프롬프트 정보

$PWD : 현재 작업하는 디렉터리

$TERM : 로긴 터미널 타입

$USER : 사용자 이름

 

 

 

 

 

 

 

출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)

 

728x90