Study/정보처리기사

[정보처리기사 실기] 11. 응용 SW 기초 기술활용-Chapter 1. 운영체제 특징

tnddj1219 2022. 1. 26. 02:11
728x90

정리 내용은 [수제비 2020 정보처리기사 실기]책을 기반으로 작성하였습니다.

 

2020 수제비 정보처리기사 실기(1권+2권 합본세트)

NCS 반영! 출제기준으로 전면개편한 교재이다. NCS 기반 반영 문제(예상문제 340제, 단원종합문제 360제, 모의고사 100제, 2020년기출문제)를 수록하였다. 수제비는 합격만을 위한 다양한 학습 콘텐츠


1. 운영체제

개념
사용자가 컴퓨터 하드웨어를 쉽게 사용할 수 있도록 인터페이스를 제공해주는 소프트웨어한정된 시스템 자원을 효과적으로 사용할 수 있도록 관리 및 운영 
 편리성을 제공
컴퓨터 시스템 - 사용자 간 인터페이스 기능을 담당

 

윈도즈 운영체제

MS-DOS의 멀티태스킹 기능과 GUI 환경을 제공하는 응용 프로그램. 마이크로소프트사가 개발한 운영체제

GUI 제공 / 선점형 멀티태스킹 / 자동감지 기능 제공 / OLE 사용

 

유닉스 운영체제
범용 다중 사용자 방식의 시분할 운영체제. 처음부터 다양한 시스템에 서로 이식할 수 있고, 멀티테스킹과 다중 사용자를 지원

 

대화식 운영체제 기능 제공 / 다중 작업 기능 제공 / 다중 사용자 기능 제공 / 이식성 제공 / 계층 트리 구조 파일 시스템 제공

* 프롬프트: 컴퓨터 터미널에서 CLI 의 명령 대기 모드유닉스 운영체제 종류
(1) 리눅스 운영체제: 유닉스를 기반으로 개발되고, 소스코드가 공개된 오픈소스 기반의 운영체제. 유닉스 계열의 운영체제이므로 대화식 운영체제, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템을 가짐

(2) 맥 운영체제: 애플이 유닉스 기반으로 개발한 그래픽 인터페이스
(3) 안드로이드 운영체제: 휴대전화를 비롯한 휴대용 장치를 위한 운영체제와 미들웨어, 사용자 인터페이스 그리고 표준 응용프로그램을 포함하고 있는 운영체제. 리눅스 기반 / 자바와 코틀린 언어 / 런타임 라이브러리 / 안드로이드 소프트웨어 개발 키트(SDK)

 

2. 운영체제 기본 명령어 활용

운영체제 제어
CLI: Command Line Interface. 사용자가 직접 명령어를 입력, 컴퓨터에 명령을 내리는 방식
GUI: Graphic User Interface. 마우스로 화면을 클릭하여 그래픽 위주로 컴퓨터를 제어하는 방식

 

윈도즈 운영체제 명령어
CLI 명령어를 입력하기 위해서는 명령창이 필요함
Help를 명령 창에 입력함으로써 검색이 가능
윈도즈 내에서는 파일을 이동하고 프로그램을 실행하는 것과 같은 행동을 GUI 명령으로 제어

종류 설명
ATRRIB 파일 속성을 표시하거나 바꿈
CALL 한 일관 프로그램에서 다른 일괄 프로그램 호출
CD 현재 디렉터리 이름을 보여주거나 바꿈
CHKDSK 디스크 검사하고 상태보고서 표시
CLS 화면을 지움
CMD 윈도우 명령 프롬프트 창을 열어줌
COMP 두 개 이상의 파일을 비교
DISKPART 디스크 파일 속성을 표시하거나 구성
ECHO 메시지를 표시하거나 ECHO를 사용 또는 사용하지 않음
ERASE 하나이상 파일을 지움
EXIT CMD.EXE 프로그램을 마침


리눅스/유닉스 운영체제 명령어
명령어는 쉘에서 입력할 수 있다.리눅스는 최상위 유저를 cli 환경에서 #으로 표시하며, 일반유저는 $로 표시

도움말은 help, -h, -man을 명령어 뒤에 붙임으로써 확인

종류 설명
uname a 시스템의 모든 정보를 확인하는 명령어
시스템이름, 사용중인 운영체제 와 버전, 호스트명, 하드웨어 정보 등을 표시
uname r 운영체제 배포버전을 출력하는 명령어
cat 파일의 내용을 화면에 출력하는 명령어
uptime 시스템의 가동 시간과 현재 사용자 수, 평균 부하량 등을 확인하는 명령어
id 사용자의 로그인명, id, 그룹 id 등을 출력하는 명령어
last 시스템의 부팅부터 현재까지의 모든 사용자의 로그인/로그아웃에 대한 정보를 표시하는 명령어
who 현재 접속 사용자 정보를 표시하는 명령어
ls 자신이 속해 있는 폴더 내에서의 파일 및 폴더를 표시하는 명령어
pwd 현재 작업중인 디렉토리의 절대 경로를 출력하는 명령어
rm 파일 삭제 명령어
cp 파일 복사 명령어
mv 파일 이동 명령어
ps 현재 실행되고 있는 프로세스 목록을 출력하는 명령어
pmap 프로세스 ID 기준으로 메모리 맵 정보를 출력하는 명령어
kill 특정 PID 프로세스 종료 명령어
chmod 특정 파일 또는 디렉토리 퍼미션 수정 명령어
chown 파일이나 디렉토리 소유자, 소유그룹 수정 명령어
ifconfig 네트워크 인터페이스 설정하거나 확인하는 명령어
host 도메인 명은 알고 있는데, ip 주소를 모르거나 혹은 그반대의 경우에 사용하는 명령어
tar 여러 개 파일을 하나로 묶거나 풀 때 사용하는 명령어
gzip 파일을 묶거나 풀 수는 없지만 압축을 담당하는 명령어
grep 입력으로 전달된 파일을 내용에서 특정 문자열을 찾고자 할 때 사용하는 명령어
find 특정 파일을 찾는 명령어
cp 디렉토리를 복사할 때 사용하는 명령어
rsync 로컬 또는 원격에 파일과 디렉토리를 복사하고 동기화하는 명령어
df 시스템에 마운트된 하드디스크의 남은 용량을 확인할 때 사용하는 명령어
du 파일 사이즈를 킬로 바이트 단위로 보여주는 명령어
cd 디렉토리를 이동하는 명령어

* 쉘: 컴퓨터 내부를 관리하는 커널과 사용자간 연결하는 명령어

 

3. 운영체제 핵심기능 파악

운영체제 핵심기능
중앙처리 장치, 메모리, 스토리지, 주변 기기 등을 적절하게 관리
초기에는 메모리 용량에 제한이 많아 소프트웨어 개발 시 메모리 관리가 중요했으나 최근 들어서는 운영체제엣 대부분 자동으로 관리해줌
개발 및 시스템 환경이 클라우드화되면서 자원에 대한 관리 노력이 줄었다.

 

메모리 관리
프로그램의 실행이 종료될 때까지 메모리를 가용한 상태로 유지 및 관리하는 기능
프로그램 실행 중 메모리가 꽉 차면서 시스템의 속도가 느려지고 때로는 시스템이 멈추는 현상 발생
메모리에 있는 프로그램은 CPU로 이동하여 처리CPU는 가상주소를, 메모리는 물리주소를 사용하는데 MMU가 주소를 매핑하는 역할 수행

종류 설명 세부 기법
반입 기법 주기억장치에 적재할 다음 프로세스의 반입시기를 결정하는 기법
메모리로 적재 시기 결정(When)
요구 반입 기법
호출관리 기법
배치 기법 디스크에 있는 프로세스를 주기억장치의 어느 위치에 저장할 것인지 결정하는 기법
메모리 적재 위치 결정(Where)
최초 적합(First-fit)
최적 접합(Best-fit)
최악 접합(Worst-fit)
할당 기법 실행해야 할 프로세스를 주기억장치에 어떤 방법으로 할당할 것인지 결정하는 방법
메모리 적재 방법 결정(How)
연속 할당 기법
분산 할당 기법
교체 기법 재배치 기법으로 주기억장치에 있는 프로세스 중 어떤 프로세스를 제거할 것인지 결정하는 기법
메모리 교체 대상 결정(Who)
프로세스의 Swap In/Out
FIFO, Optimal, LRU, LFU, 시계 알고리즘, MFU


페이지 교체기법
FIFO: 각 주기억장치에 적재될때마다 그때의 시간을 기억시켜 가장 먼저 들어와 가장 오래있던 페이지 교체
LRU: 가장 오랫동안 사용하지 않은 페이지 선택하여 교체하는 기법
LFU: 사용된 횟수 확인하여 참조된 횟수가 가장 적은 페이지를 선택하여 교체하는 기법
OPT: 앞으로 가장 오랫동안 사용하지 않을 페이지 교체하는 기법NUR: 최근 사용하지 않은 페이지 교체하는 기법. LRU와 비슷

CR: 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 기법

 

프로세스 관리
CPU와 데이터를 송수신하는 상황에서 현재 메모리 사용 부분, 메모리 입출력 순서, 메모리 공간 확보 등 프로세스에 대한 종합적인 관리 기법
프로세스 관리 기법에는 일 중지 및 재실행, 동기화, 통신, 교착상태 처리, 프로세스 생성 삭제 등이 있음

 

프로세스 상태
하나의 프로세스는 여러가지 이벤트에 의해 일련의 서로 구분되느 상태 변화

종류 설명
생성 상태(Create) 사용자에 의해 프로세스가 생성된 상태
준비 상태(Ready) CPU를 할당받을 수 있는 상태
준비리스트: 각각 우선순위를 부여하여 가장 높은 우선순위를 갖는 프로세스가 다음 순서에 CPU를 할당 받음
실행 상태(Running) 프로세스가 CPU를 할당받아 동작중인 상태
대기 상태(Waiting) 프로세스 실행 중 입출력 처리 등으로 인해 CPU를 양도하고 입출력 처리가 완료까지 대기 리스트에 기다리는 상태
대기리스트: 우선순위가 존재하지 않음
완료 상태(Complete) 프로세스가 CPU를 할당받아 주어진 시간 내에 완전히 수행을 종료한 상태


프로세스 상태 전이
하나의 작업이 컴퓨터 시스템에 입력되어 완료되기까지의 상태가 준비, 실행 및 대기 상태로 변하는 활동
활동상태: 프로세스가 기억장치를 할당받은 상태 / 지연상태: 프로세스가 기억장치를 할당받지 못한 상태

종류 설명
디스패치(Dispatch) 준비상태에 있는 여러 프로세스 중 실행될 프로세스를 선정하여 CPU 할당 문맥교환 발생
프로세스는 준비상태  실행상태로 전이
타이머 런아웃
(Time run Out)
CPU를 할당 받은 프로세스는 지정된 시간을 초과하면 스케줄러에 의해 PCB 저장, CPU 반납 후 다시 준비 상태로 전이. 타임 슬라이스 만료, 선점 시 타임아웃발생
프로세스는 실행상태  준비상태로 전이
블록(Block) 실행 상태에 있는 프로세스가 할당시간을 초과하기 전에 입출력이나 기타 사건이 발생하면 CPU를 스스로 반납하고 입출력 완료될 때까지 대기 상태로 전이
프로세스는 실행상태  준비상태로 전이
즉시 실행 불가능한 시스템 콜, I/O 작업 시작, 프로세스 간 통신 시 블록 발생
웨이크업(Wake-Up) 입출력이 종료되면 대기 상태의 프로세스에게 입출력 종료 사실을 wait & signal 등에 의해 알려주고, 준비상태로 전이됨
프로세스는 대기상태  준비상태로 전이 
Swap-In 프로세스에게 다시 기억장치를 할당될 경우
지연 준비 상태나 지연 대기 상태  준비 상태나 대기 상태로 전이
Swap-Out 프로세스가 기억장치를 잃는 경우
준비 상태나 대기 상태  지연 준비 상태나 지연 대기로 전이

* 문맥교환: CPU 현재 실행하고 있는 프로세스의 문맥상태를 프로세스제어블록(PCB)로부터 문맥을 복원하는 작업

프로세스 상태 전이

프로세스 스케줄링

CPU 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업처리율과 CPU 이용률을 증가시키고, 오버헤드, 응답시간, 반환시간, 대기시간을 최소화 시키기 위한 기법특정 프로세스가 적합하게 실행되도록 프로세스 스케줄링에 의해 프로세스 사이에 CPU 교체가 일어남
장기, 중기, 단기 스케줄러가 있음

종류 설명
서비스 시간 프로세스가 결과를 산출하기까지 소요되는 시간
응답시간
(반환시간)
Response Time 또는 Turnarround Time
프로세스들이 입력되어 수행하고 결과를 산출하기까지 소요되는 시간
응답시간=대기시간+수행시간
평균응답시간
(평균반환시간)
대기 큐의 프로세스가 결과를 산출하기 소요되는 시간 평균
대기시간 프로세스가 프로세서에 할당대기까지 큐에 대기하는 시간
프로세스가 도착 즉시 프로세서에 할당되면 대기 시간은 0이 됨
평균 대기시간 프로세스가 대기 큐에 대기하는 평균시간
대기시간이 0인 프로세스도 평균 대기시간에 합산하여 결과 도출
종료시간 요구되는 Processing Time을 모두 수행하고 종료된 시간
시간할당량
(Time Slice)
한 프로세스가 프로세서를 독점하는 것을 방지하기 위해 서비스 되는 시간 할당량
응답률 (대기시간 + 서비스 시간)/서비스시간
HRN(Highest Response ratio Next) 스케줄링에서 사용

HRN 스케줄에서 응답률이 높으면 우선순위 높다고 판단

 

프로세스 스케줄링 유형

종류 선점형 스케줄링 비선점형 스케줄링
개념 하나의 프로세스가 CPU를 차지하고 있을 때, 우선순위가 높은 다른 프로세스가 현재 프로세스를 중단시키고 CPU를 점유하는 스케줄링 방식 한 프로세스가 CPU를 할당 받으면 작업 종료 후 CPU 반환 시까지 다른 프로세스는 CPU 점유가 불가능한 스케줄링 방식
장점 비교적 빠른 응답
대화식 시분할에 적합
응답시간 예상이 용이
모든 프로세스에 대한 요구를 공정하게 처리
단점 높은 우선순위 프로세스들이 들어오는 경우 오버해드 처리 짧은 작업을 수행 프로세스가 긴 작업 종료 시 까지 대기
알고리즘 라운드로빈 / SRT
다단계 큐 / 다단계 피드백 큐
우선순위 / 기한부 / FCFS HRN / SJF
활용 실시간 응답 환경, DeadLine 응답 환경 처리시간 편차가 적은 특정 프로세스 환경

 

5. 프로세스 스케줄링 알고리즘

선점형 스케줄링 알고리즘 유형

종류 설명
라운드로빈
(Round Robin)
프로세스는 같은 크기의 CPU를 시간을 할당(시간할당량), 프로세스가 할당된 시간 내 처리 완료를 못하면 준비 큐 리스트이 가장 뒤로 보내지고, CPU는 대기 중인 다음 프로세스로 넘어감
균등한 .CPU 점유 시간 / 시분할 시스템을 사용
SRT
(Shortest Remaining Time First)
가장 짧은 시간이 소요되는 프로세스를 먼저 수행하고 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨
짧은 수행시간 프로세스 우선 수행
다단계 큐
(Multi Level Queue)
작업들을 여러 종류 그룹으로 분할, 여러 개의 큐를 이용하여 상위단계 작업에 의한 하위단계 작업이 선점 당함
각 큐는 자신만의 독자적인 스케줄링을 가짐
독립된 스케줄링 큐
다단계 피드백 큐
(Multi Level
Feedback Queue)
입출력 위주와 CPU위주인 프로세스 특성에 따라 큐마다 서로 다른 CPU시간할당량 부여
FCFS와 라운드 로빈 혼합한 방식. 
새로운 프로세스는 높은 우선순위, 프로세스의 실행 시간이 길어질수록 점점 낮은 우선순위 큐로 이동하고 마지막 단계는 라운드 로빈 방식을 적용

큐마다 다른 시간 할당 / 마지막 단계는 라운드 로빈 방식 처리

* 시간 할당량: 프로세스가 선점 방식의 다중 작업 시스템에서 작업을 실행할 수 있는 시간대
* 시분할 시스템: CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 해주는 대화식 시스템

 

비선점형 스케줄링 알고리즘 유형

종류 설명
우선수위
(Priority)
프로세스별 우선순위가 주어지고, 우선순위에 따라 CPU를 할당함. 동일 순위는 FCFS
주요, 긴급 프로세스에 대한 우선 처리 / 설정 자원 상황 등에 따른 우선순위 선정
기한부
(Deadline)
작업들이 명시된 시간이나 기한 내 완료되도록 계획
요청에 명시된 시간 내 처리를 보장
FCFS(First Come 
First Service)
프로세스가 대기 큐에 도착한 순서에 따라 CPU를 할당
FIFO 알고리즘이라고도 함 도착한 순서대로 처리
SJF(Shortest
Job First)
프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료 시까지 자원 점유. 준비 큐 작업 중 가장 짧은 작업부터 수행, 평균 대기 시간 최소
CPU 요구시간이 긴 작업과 짧은 작업 간 불평등이 심함  CPU 요구시간이 긴 프로세스는 기아현상 발생
HRN(Highest Response 
Ratio Next)
대기 중인 프로세스 중 현재 응답률이 가장 높은 것 선택
SJF 약점인 기아현상을 보안한 기법으로 긴 작업과 짧은 작업 간 불평등 완화
HRN 우선순위=(대기시간 + 서비스 시간)/서비스시간
기아현상 최소화 기법

* 기아현상: 시스템 부하가 많아서 준비 큐에 있는 낮은 등급의 프로세스가 무한정 기다리는 현상. 기아현상을 해결하기 위해서는 오랫동안 기다린 프로세스에게 우선순위를 높여주도록 처리하는 기법인 에이징을 활용

 

SJF와 SRT 비교

종류 설명
SJF(Shortest
Job First)
프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료시까지 자원 점유 일괄처리 환경에서 구현에 용이
작업시간이 적은 프로세스가 계속 들어오면 기존 작업 시간이 긴 프로세스는 기아현상 발생
SRT에 비해 평균 대기시간 김
SRT(Shortest
Remaining Time First)
가장 짧은 시간이 소요되는 프로세스를 먼저 수행, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점됨
시분할 시스템에 활용 시 유용
SJF에 비해 평균 대기시간이나 반환시간이 짧음

준비상태 큐에 있는 각 프로세스의 서비스 시간을 지속적으로 추적해야 하므로 오버해드 증가


4. 가상화

개념
물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는 기술
대부분 서버는 용량의 20% 정도만을 사용하는데, 가상화를 통해 서버 가동률을 60~70% 이상 올릴 수 있음

 

종류
플랫폼 가상화: 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어 낸 것처럼 보여주는 기법
리소스 가상화: 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법. 메모리, 저장장치, 네트워크 등을 결합하거나 나누기 때문에 사용자는 가상화된 물리적 장치들이 어떤 위치에 있는지 알기 어려움

 

기술요소

컴퓨팅 가상화: 물리적으로 컴퓨터 리소스를 가상화하여 논리적인 단위로 리소스를 활용할 수 있도록 하는 기술. 서버 가상화를 통해 하나의 시스템에서 1개 이상의 운영체제를 동시에 가동시킬 수 있으므로 서버 이용률이 크게 향상(하이버바이저)

스토리지가상화: 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술. 이기종 스토리지 시스템의 통합을 가능하게 하는 기술

I/O 가상화: 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층, 서버의 I/O 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술

컨테이너: 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 하는 기술. 하이버바이저가 없이 운영체제가 격리된 프로세스로 동작하기 때문에 오버헤드가 낮음

분산처리기술: 여러 대의 컴퓨터 계산 및 저장 능력을 이용하여 커다란 계산문제나 대용량의 데이터를 처리하고 저장하는 기술

네트워크 가상화기술: 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계장치(라우터, 스위치 등)의 가상화를 통한 가상 네트워크를 지원하는 기술

 

5. 클라우드 컴퓨팅

개념
인터넷을 통해 가상화된 컴퓨터 시스템 리소스를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드 에 연결된 다른 컴퓨터로 처리하는 기술
구성 가능한 컴퓨팅 자원에 대해 어디서나 접근 할 수 있음

 

분류

사설클라우드: 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원을 사용하여 내부에 구축되어 운영되는 클라우드
자체 컴퓨팅 자원으로 모든 하드웨어, 소프트웨어, 데이터를 수용. 직접적인 통제가 가능하며 보안성을 높일 수 있음

공용클라우드: 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드. 일정한 비용을 지불하고 하드웨어, 소프트웨어 등을 사용. 확장성, 유연성이 뛰어남

하이브리드클라우드: 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드
사설 클라우드 약점인 구축 비용 문제와 공용 클라우드의 약점인 보안성 확보 문제 해결. 사용 업무의 중요도, 보안성 확보의 중요도 등에 따라 이용 형태 변경 가능


유형

종류 설명
인프라형 서비스
(IaaS: Infrastructure 
as a Service)
서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스
컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행
하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해서는 제어권을 가짐
플랫폼 서비스
(PaaS: Platform 
as a Service)
인프라를 생성, 관리하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스
SaaS의 개념을 개발 플랫폼에도 확장한 방식. 개발을 위한 플랫폼을 구축할 필요 없이 필요한 개발 요소를 웹에서 빌려 쓸수 있게 하는 모델
OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권을 가짐
소프트웨어 서비스
(SaaS: Software 
as a Service)
소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스
주문형 소프트웨어라고도 함

 

6. Locality(지역성)

개념
프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질

스래싱을 방지하기 위한 워킹셋의 기반이 됨. 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법

 

시간 구역성
프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상
한번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높다.
Loop(반복,순환), 스택(Stack), 부 프로그램(Sub Routine), Counting(1씩 증감), 집계에 사용되는 변수

 

공간 구역성
프로세스 실행시 일정 위치의 페이지를 집중적으로 액세스 하는 현상
어느 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음.
배열 순회(Array Traversal), 순차적 코드의 실행, 프로그래머들이 관련된 변수(데이터를 저장할 기억 장소)들을 서로 근처에 할당되는 기억장소, 같은 영역에 있는 변수

 

워킹 셋(Working Set)
프로세스가
 일정시간 동안 자주 참조하는 페이지들의 집합. 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로서 페이지 부재 및 페이지 교체 현상을 줄이고 프로세스의 기억 장치 사용이 안정됨. 
시간이 지남에 따라 자주 참조하는 페이지들이 집합이 변화하기 때문에 워킹셋은 시간에 따라 변함.

 

프리페이징(Prepaging)
처음 
과도한 페이지 부재 방지하기 위해 필요할 것 같은 페이지를 페이지 프레임에 한꺼번에 적재하는 기법

 

스래싱(Thrashing)
프로세스의
 처리 시간 보다 페이지 교체에 소요되는 시간이 더 많아지는 현상. 
다중 프로그래밍 시스템이나 가상 기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정 중 자주 페이지 부재가 발생함으로 나타나는 현상으로, 전체 시스템의 성능이 저하됨. 
다중 프로그래밍 정도가 상승하면 CPU의 이용률은 어느 특정 시점까지 높아지며, 정도가 더욱 커지면 스래싱이 발생해 CPU의 이용률이 급격히 감소하게 된다.
|스래싱
현상 방지 방법 : 다중 프로그래밍 정도를 적정 수준으로 유지, 페이지 부재 빈도를 조절하여 사용, 워킹 셋 유지, 부족한 자원을 증설, 일부 프로세스 중단

 

7. 가상기억장치

개념
보조기억장치의 일부를 주기억 장치처럼 사용하는 것
주기억 장치 용량보다 큰 프로그램을 실행하기 위해 사용

 

페이징기법-내부단편화
가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일하게 나눈 후, 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임) 에 적재시켜 실행하는 방법
외부 단편화는 발생않으나 내부 단편화 발생
주소변환을 위해 페이지 위치 정보를 가지고 있는 페이지 맵 테이블 필요
페이지 맵 테이블로 인해 비용 증가 & 처리속도 감소
내부단편화: 분할을 사용하고 남은 일부분

 

세그멘테이션 기법-외부단편화
가상기억장치에 보관되어 있는 프로그램을 다양한 크기와 논리적 단위로 나눈 후 주기억장치에 적재시켜 실행하는 방법각 세그먼트는 고유한 이름과 크기를 갖음

기억공간을 절약하기 위해 사용
주소변환을 위해 세그먼트가 존재하는 위치 정보를 갖고 있는 세그먼트 맵 테이블 필요
세그먼트가 주 기억장치에 적재될 때 다른 세그먼트가 침법할 수 없고, 이를 위해 기억장치 보호키가 필요외부단편화가 발생

728x90