본문 바로가기

자격증/정보처리기사 3과목

3-12강. 응용 SW 기초 기술 활용-운영체제 기초 활용(2)

[ 목차 ]

 

1. 운영체제의 기억장치 관리 전략

1) 보조기억장치의 정보를 주기억장치로 가져오는 것

2) 반입전략 Fetch : 보조기억장치의 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지 결정

  1] 요구 반입 : 요구할 때

  2] 예상 반입 : 미리 예상

3) 배치전략 placement : 주기억장치의 어디에 위치시킬 것인지 결정

  1] 최초 적합 : 첫 번째 배치, 속도 상, 공간 하

  2] 최적 적합 : 단편화 fragmentation 를 가장 작게 남기는 분할 영역에 배치. 속도 하, 공간 상

  3] 최악 적합 : 단편화를 가장 많이 남기는 분할 영역에 배치, 속도 하, 공간 하

      - 내부 단편화 : 사용되고 남은 것/ 외부단편화 : 사용되지 않은 것

4) 교체전략 : 주기억장치 모든 영역이 이미 사용중일 때 어느 영역을 교체하여 사용할지 결정

 

2. 단편화 해결 방법

1) 통합 coalescing 기법 : 주기역장치 내 인접해 있는 단편화 공간을 하나의 공간으로 통합

2) 집약 compaction 기법, 압축, 쓰레기수집 : 주기억장치 내 분산되어 있는 단편화 공간을 결합해 하나의 큰 가용 공간 생성

 

3. 주기억장치 할당 기법

1) 연속 할당 기법 : 프로그램을 주기억장치에 연속으로 할당

  1] 단일 분할 할당

      - 스와핑 : 하나의 프로그램 전체를 주기억장치에 할당해 사용하다 필요에 따라 다른 프로그램과 교체

      - 오버레이 : 실행 할 작업의 크기가 커서 수용될 수 없을 때(스와핑 단점) 작업을 분할해 필요한 부분만 교체

  2] 다중 분할 할당

      - 고정 분할(정적) : 주기억장치를 미리 여러 개의 고정된 크기로 분할해 준비상태 큐에서 준비중인 각 프로그램을 할당하는 것으로, 내부 단편화와 외부 단편화가 발생되어 주기억장치 낭비가 커서 현재는 사용하지 않음

      - 가변 분할(동적) : 고정 분할 할당 기법의 단편화를 줄이기 위한 것으로, 미리 주기억장치를 분할하지 않고 프로그램을 주기억장치에 적재하며 필요한 만큼의 크기로 영역을 분할

2) 분산 할당 기법 : 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내 분산하여 할당하는 방법, = 가상 메모리 기법

  1] 페이징 기법

      - 가상기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램(페이지)을 동일하게 나눠진 주기억장치의 영역(페이지 프레임)에 적재시켜 실행하는 방법

      - 매핑 : 가상주소 -> 실주소

      - 매핑을 위해 페이지 매핑 테이블이 필요

      - 페이지 부재 : 참조한 페이지가 주기억장치에 없는 현상

      - 페이지 크기가 작을 경우 페이지 수가 증가해 페이지 매핑 테이블이 커지고 매핑 속도가 느려지고 기;억 공간 낭비 발생 -> 디스크 접근 횟수 증가 -> 전체적 입출력 시간 증가

      - 한 개의 페이지를 주기억장치로 이동하는 시간이 감소

      - 필요한 내용만 주기억장치에 적재할 경우 유용도와 기억장치 효율이 높아져 내부 단편화가 감소

  2] 세그먼테이션 기법 

      - 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법으로, 메모리 절약 가능

      - 논리적 크기로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기를 보유

      - 다른 세그먼트에 할당된 영역 침입은 불가능하며, 이를 위해 기억장치 보호키가 필요

가상 기억장치
1) 보조기억 장치의 일부분을 주기억장치처럼 사용하는 것
2) 용량이 작은 주기억장치를 마치 큰 용량이 있는 것처럼 사용하는 것
3) 프로그램을 여러 개의 작은 블록으로 나눠서 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리
4) 주기억장치보다 용량이 큰 프로그램을 실행하기 위해 사용
5) 가상기억장치에 저장된 프로그램을 실행하려면 가상깅거 장치의 주소를 주기억장치의 주소로 변환하는 매핑작업이 필요

4. 가상기억장치의 성능에 영향을 미치는 요인

1) 워킹 셋 

  1] 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합

  2] 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상을 줄임

2) 스래싱

  1] 프로세스의 처리 시간보다 페이지 교체 시간이 더 많아지는 현상으로 cpu 이용률 저하

  2] 페이지 오류율이 크면 스래싱 많이 발생

  3] 다중 프로그래밍의 정도가 높을수록 스래싱의 발생 빈도가 높아짐

  4] 스래싱 방지 방법 : 다중 프로그래밍 정도를 줄이고 cpu 이용률을 높이고 워킹 셋 방법 사용

3) 구역성(locality, 국부성) 

  1] 프로세스가 실행되는 동안 일부페이지만 집중적으로 참조하는 성질

  2] 시간구역성 : 최근 참조된 기억 장소가 가까운 장래에도 계속 참조될 가능성 높음 / loop, sub routine, 함수, 스택, 카운팅, 집계 <-예시 암기

  3] 공간구역성 : 하나의 기억장소가 참조되면 그근처의 기억장소가 계속 참조될 가능성이 높음 / 순차적 코드 실행, 배열 순회, 같은 영역 변수 참조 <-예시 암기

 

5. 페이지 교체 알고리즘

1) 페이지 부재가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치의 어떤 페이지 프레임을 선택, 교체해야 하는가를 결정하는 기법

2) FIFO first in first out

  1] 가장 먼저 들어온 페이지를 먼저 교체시키는 방법(주기억장치 내 가장 오래 있던 페이지)

  2] 벨레이디의 모슨 현상 : 페이지 프레임 수가 증가하면 페이지 부재가 더 증가

3) OPT 최적교체 : 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 것으로 실현 불가능

4) LRU least recently used

  1] 가장 최근에 오랫동안 사용하지 않은 페이지를 교체

  2] 각 페이지마다 계수기를 두어 현 시점에서 볼 떄 가장 오래 전 사용된 페이지를 교체

5) LFU least frequently used : 가장 사용 횟수가 적은 페이지를 교체

6) NUR not user recently

  1] 최근에 사용하지 않은 페이지를 교체

  2] 근래에 쓰이지 않은 페이지들은 가까운 미래에서도 쓰이지 않은 가능성이 높다는 이론에 근거

  3] 각 페이지마다 2개의 하드웨어 비트(호출, 변형)가 사용

  4] 가장 우선적 교체 대상은 참조도 안되고 변형(갱신)도 안된 페이지

 

6. 디스크 스케줄링(보조기억장치)

1) 사용할 데이터가 디스크상의 여러 곳에 저장되어 있을 경우 데이터를 액세스하기 위해 디스크 헤더가 움직이는 경로를 결정하는 기법

2) 목적 : 처리량 최대화, 응답시간 최소화, 응답시간 편차차이 최소화

3) FCFS first come fisrt service

  1] 입출력 요청 대기 큐에 들어온 순서대로 서비스를 하는 방법

4) SSTF shortest seek time first

  1] FCFS보다 처리량 많으며 응답시간 짧음

  2] 탐색 거리가 가장 짧은 트랙에 대한 요청을 먼저 서비스하는 기법

  3] 디스크 스케줄링 기법 중 현재 헤드위치의 가까운 곳에 있는 모든 요구를 먼 곳보다 먼저 처리

  4] 탐색 시간 편차가 높은데, 안쪽이나 바깥쪽 트랙이 가운데 트랙보다 서비스를 덜 받는 경향 존재

  5] 헤드에서 멀리 떨어진 요청은 기아상태 starvation 발생 가능

  6] 응답시간의 편차가 크기에 대화형 시스템에 부적합하며 처리량 많은 일괄처리 시스템에 유용

5) SCAN

  1]한 방향으로 가장 짧은 거리

  2] SSTF가 갖는 탐색 시간 편차를 해소하기 위한 기법

  3] 현재 진행중인 방향으로 가장 짤븡ㄴ 탐색 거리에 있는 요청을 먼저 서비스

  4] 현재 헤드의 위치에서 진행 방향이 결정되면 짧은 순서에 따라 모든 요청을 서비스하고 끝까지 이동 후 역방향의 요청 사항을 서비스

  5] 끝까지 이동하지 않을 경우 LOCK 기법

5) C-SCAN

  1] 바깥 -> 안 가장 짧은 거리

  2] 항상 바깥쪽에서 안쪽으로 움직이며 가장 짧은 탐색거리를 갖는 요청을 서비스

  3] 디스크 스케줄링 기법 중 가장 안쪽과 가장 바깥쪽의 실린더에 대한 차별대우를 없앤 기법

  4] 헤드는 트랙의 바깥쪽에서 안쪽으로 한 방향으로만 움직이며 서비스하여 끝가지 이동 후 안쪽에 더 이상의 요청이 없으면 헤드는 가장 바깥족의 끝으로 이동한 후 다시 안쪽으로 이동하면서 요청을 서비스

  5] 끝까지 이동하지 않을 경우 C-LOOK기법

6) N-step SCAN

  1] 스캔의 무한 대기 발생 가능성을 제거한 것

  2] 스캔보다 응답시간의 편차가 적고 스캔과 같이 진행 방향상의 요청을 서비스하지만 진행 중에 새로이 추가된 요처은 서비스하지 않고 다음 진행시에 서비스하는 디스크 스케줄링