정보처리기사 필기 - 3과목 운영체제


4장 정보 관리


097 파일과 파일 시스템


① 파일


파일의 개요

· 파일은 사용자가 작성한 서로 관련 있는 레코드의 집합체

· 프로그램 구성의 기본 단위, 보조기억장치에 저장

· 각 파일마다 이름, 위치, 크기, 작성 시기 등의 여러 속성 가지고 있음


파일 특성을 결정하는 기준

· 소멸성(Volatility) : 파일을 추가하거나 제거하는 작업의 빈도수

· 활성률(Activity) : 프로그램이 한 번 수행되는 동안 처리되는 레코드의 수의 백분율(수행 레코드 수/전체 레코드 수 × 100)

· 크기(Size) : 파일에 저장되어 있는 정보량


② 파일 시스템


파일 시스템은 파일의 저장, 액세스, 공유, 보호 등 보조기억장치에서의 파일을 총괄하는 파일 관리 기술


파일 시스템의 기능 및 특징

· 사용자와 보조기억장치 사이에서 인터페이스 제공

· 사용자가 파일을 생성, 수정, 제거할 수 있도록 함

· 적절한 제어 방식을 통해 타인의 파일을 공동으로 사용할 수 있도록 함

· 파일  공유를 위해서 판독만 허용, 기록만 허용, 수행만 허용 또는 이들을 여러 형태로 조합한 것 등 여러 종류의 액세스 제어 방법 제공

· 사용자가 적합한 구조로 파일을 구성할 수 있도록 함

· 불의의 사태를 대비하여 파일의 예비(Backup)와 복구(Recovery) 등의 기능 제공

· 사용자가 물리적 장치 이름 대신에 기호화된 이름을 사용할 수 있도록 함

· 사용자가 파일을 편리하게 사용할 수 있도록 파일의 논리적 상태(디렉터리)를 보여주어야 함

· 파일을 안전하게 사용할 수 있도록 하고, 파일이 보호되어야 함

· 파일의 정보가 손실되지 않도록 데이터 무결성을 유지해야 함


파일 시스템의 파일 관련 주요 작업

· 파일 시스템이 파일에 대해 수행하는 작업은 파일 단위 작업과 레코드 단위 작업으로 분류

· 파일 단위 작업

 Open

 파일을 사용할 수 있는 상태로 준비

 Close

 파일의 변경된 내용을 저장고 사용 권한 종료

 Create

 새로운 파일 생성

 Copy

 파일 복사

 Destroy

 파일을 디스크에서 삭제

 Rename

 파일명 변경

 List

 디스크에 저장되어 있는 파일 목록 출력


· 파일 내의 레코드 단위 작업

 Read

 데이터 읽기

 Write

 데이터 기록

 Update

 데이터 갱신

 Insert

 새로운 데이터 추가

 Delete

 데이터 삭제

 Search

 데이터 검색


③ 파일 디스크립터(File Descriptor, 파일 서술자)


파일 디스크립터

· 파일을 관리하기 위한 시스템(운영체제)이 필요로 하는 파일에 대한 정보를 갖고 있는 제어 블록을 의미, 파일 제어 블록이라고도 함

· 파일 디스크립터는 파일마다 독립적으로 존재, 시스템에 따라 다른 구조를 가질 수 있음

· 보통 파일 디스크립터는 보조기억장치 내에 저장되어 있다가 해당 파일이 Open될 때 주기억장치로 옮겨짐

· 파일 디스크립터는 파일 시스템이 관리하므로 사용자가 직접 참조할 수 없음


파일 디스크립터

· 파일 이름 및 파일 크기

· 보조기억장치에서의 파일 위치

· 파일 구조 : 순차 파일, 색인 순차 파일, 색인 파일 등

· 보조기억장치의 유형 : 자기 디스크, 자기 테이프 등

· 액세스 제어 정보

· 파일 유형 : 텍스트 파일, 목적 프로그램 파일(2진 파일, 기계어 파일, 실행 파일)등

· 생성 날짜와 시간, 제거 날짜와 시간

· 최종 수정 날짜 및 시간

· 액세스한 횟수 : 파일 사용 횟수



098 파일의 구조


① 파일의 구조


· 파일의 구조는 파일을 구성하는 레코드들이 보조기억장치에 편성되는 방식을 의미하는 것으로, 편성 방법에 따라 순차 파일, 색인 순차 파일, 랜덤 파일, 분할 파일 등이 있음

· 파일 편성 방법에 따라 파일 접근 방법 분류 가능하므로 파일 접근 방법이라고도함


② 순차 파일(Sequential File, 순서 파일)


순차 파일은 레코드를 논리적인 처리 순서에 따라 연속된 물리적 저장공간에 기록하는 것을 의미


· 파일의 레코드들이 순차적으로 기록되어 판독할 때도 순차적으로 접근하기 때문에 순차 접근 방식이라고도 함

· 급여 업무처럼 전체 자료를 처리 대상으로 일괄 처리하는 업무에 사용됨

· 순차 접근이 가능한 자기 테이프를 모형화한 구조

· 대화식 처리보다 일괄 처리에 적합한 구조

· 순차 파일의 장점과 단점

장점

 · 파일의 구성이 용이, 순차적으로 읽을 수 있으므로 기억공간 이용 효율이 높음

 · 레코드만 저장하고 부가적인 정보는 저장하지 않으므로 기억공간의낭비 방지 가능

 · 물리적으로 연속된 공간에 저장하므로 접근 속도 빠름

 · 어떠한 기억 매체에서도 실현 가능

단점

 · 파일에 새로운 레코드를 삽입하거나 삭제하는 경우 파일 전체를 복사한 후 수행해야 하므로 시간 많이 걸림

 · 파이르이 특정 레코드를 검색하려면 순차적으로 모든 파일을 비교하면서 검색해야 하므로 검색 효율 낮음

· 순차 파일의 삽입/삭제 과정

1) 파일에 새로운 레코드를 삽입하거나 삭제하려면 파일 전체를 복사

2) 복사된 파일을 대상으로 레코드를 특정 위치에 삽입하거나 삭제한 후 모든 레코드의 위치를 순차적으로 재배치

3) 재배치된 복사 파일을 원래 파일로 저장


③ 직접 파일(Direct File)


직접 파일은 파일을 구성하는 레코드를 임의의 물리적 저장공간에 기록하는 것으로, 직접 접근 방식이락도 함


· 레코드에 특정 기준으로 키가 할당되며, 해싱 함수(Hashing Function)를 이용하여 이 키에 대한 보조기억장치의 물리적 상대 레코드 주소를 계산한 후 해당하는 주소에 레코드 저장

· 레코드는 해싱 함수에 의해 계산된 물리적 주소를 통해 접근할 수 있음

· 임의 접근이 가능한 자기디스크나 자기 드럼을 사용

· 직접 파일의 장점과 단점

장점

 · 직접 접근 기억장치(DASD)의 물리적 주소를 통하여 파일의 각 레코드에 직접 접근하거나 기록할 수 있으며, 접근 및 기록의 순서에는 제약 없음

 · 접근 시간 빠르고 레코드의 삽입, 삭제, 갱신이 용이

단점

 · 레코드의 주소 변환 과정이 필요하며, 이 과정으로 인해 시간 소요됨

 · 기억공간의 효율 저하될 수 있음

 · 기억자이의 물리적 구조에 대한 지식이 필요하고, 프로그래밍 복잡


④ 색인 순차 파일(Indexed Sequential File)


색인 순차 파일은 순차 파일과 직접 파일에서 지원하는 편성 방법이 결합된 형태


· 색인(인덱스)를 이용한 순차적인 접근 방법을 제공하여 색인 순차 접근 방식이락도 함

· 각 레코드를 키 값 순으로 논리적으로 저장하고, 시스템은 각 레코드의 실제 주소가 저장된 색인 관리

· 레코드를 참조하려면 색인을 탐색한 후 색인이 가리키는 포인터(주소)를 사용하여 참조 가능

· 일반적으로 자기 디스크에서 많이 사용되며, 자기 테이프에서는 사용 불가

· 색인 순차 파일 구성 영역

 기본 영역(Prime Area)

 실제 레코드가 기록되는 데이터 영역으로, 각 레코드들은 키 값 순으로 저장됨

 색인 영역(Index Area)

 기본 영역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 영역으로, 트랙 색인 영역, 실린더 색인 영역, 마스터 색인 영역으로 분류

 ※트랙 색인 영역 : 각 실린더마다 하나씩 만들어지며, 각 트랙에 기록된 데이터의 레코드 값 중 최대 키 값과 주소 정보가 기록되는 영역

 ※실린더 색인 영역 : 각 파일당 하나씩 만들어지며, 각 트랙 색인의 최대 키 값들로 구성된 영역

 ※마스터 색인 영역 : 실린더 색인이 많을 경우 그것을 일정한 크기의 블록으로 구성하고, 해당 레코드가 어느 실린더 색인 영역에 있는지 나타내는 영역

 오버플로 영역(Overflow Area)

 기본 영역에 빈 공간이 없어서 새로운 레코드의 삽입이 불가능할 때를 대비하여 예비로 확보해 둔 영역


· 색인 순차 파일의 장점과 단점

장점

 · 순차 처리와 임의 처리 모두 가능

 · 효율적인 검색 가능하고 삭제, 삽입, 갱신 용이함

단점

 · 색인 영역이나 오버플로 영역을 설정해야 하므로 기억공간 필요함

 · 색인을 이용하여 참조하기 때문에 접근 시간이 직접 파일보다 느림


⑤ 분할 파일


분할 파일은 하나의 파일을 여러 개의 파일로 분할하여 저장하는 형태


· 분할된 파일은 여러 개의 순차 서브파일로 구성된 파일이며 Backup과 같이 하드디스크에 있는 내용을 테이프와 같은 보조기억장치에 저장할 때 사용

· 일반적으로 파일의 크기가 클 경우에 사용됨



099 디렉터리 구조


① 디렉터리 구조의 개요


· 디렉터리는 파일 시스템 내부에 있는 것으로, 효율적인 파일 사용을 위해 디스크에 존재하는 파일에 대한 여러 정보를 가지고 있는 특수한 형태의 파일

· 디렉터리는 각 파일이 위치, 크기, 할당 방식, 형태, 소유자, 계정 정보 등의 정보를 가지고 있음

· 디렉터리 구조의 종류 : 1단계 디렉터리, 2단계 디렉터리, 트리 디렉터리, 비순환 그래프 디렉터리, 일반적인 그래프 디렉터리


② 1단계(단일) 디렉터리 구조


1단계 디렉터리는 가장 간단하고, 모든 파일이 하나의 디렉터리 내에 위치하여 관리되는 구조


· 모든 파일들이 유일한 이름을 가지고 있어야 함

· 모든 파일이 같은 디렉터리 내에 유지되므로 이해가 용이함

· 파일이나 사용자의 수가 증가하면 파일 관리가 복잡해짐

· 파일명은 일반적으로 내용과 관련된 이름을 사용하고, 파일명의 길이는 시스템에 따라 제한 받음


③ 2단계 디렉터리 구조


2단계 디렉터리는 중앙에 마스터 파일 디렉터리가 있고, 그 아래에 사용자별로 서로 다른 파일 디렉터리가 있는 2계층 구조


· 마스터 파일 디렉터리는 각 사용자의 이름이나 계정 번호, 그리고 사용자 파일 디렉터리를 가리키는 포인터를 갖고 있으며, 사용자 파일 디렉터리를 관리

· 사용자 파일 디렉터리는 오직 한 사용자가 갖고 있는 파일들에 대한 정보만 갖고 있으며, 해당 사용자의 파일을 관리함

· 하나의 사용자 파일 디렉터리에서는 유일한 파일 이름을 사용해야 하지만 서로 다른 사용자 파일 디렉터리에서는 동일한 파일 이름을 사용할 수 있음

· 각 사용자는 다른 사용자의 파일 디렉터리를 검색할 수 없으므로 업무 협력 및 파일의 공유 어려움

· 특정 파일을 지정할 때는 사용자 이름과 파일 이름을 함께 저장해야 하므로 파일 이름이 길어짐(사용자1\파일1)


④ 트리 디렉터리 구조


트리 디렉터리는 하나의 루트 디렉터리과 여러 개의 종속(서브) 디렉터리로 구성된 구조


· DOS, Windows, UNIX 등의 운영체제에서 사용되는 디렉터리 구조

· 각 디렉터리는 서브디렉터리나 파일을 가질 수 있음

· 서로 다른 디렉터리 내에 동일한 이름의 파일이나 디렉터리를 생성할 수 있음

· 디렉터리의 생성과 파괴가 비교적 용이

· 디렉터리의 탐색은 포인터를 사용하며, 경로명은 절대 경로명과 상대 경로명을 사용함

※ 절대 경로명 : 루트에서부터 지정된 파일 위치까지의 경로

※ 상대 경로명 : 현재 디렉터리를 기준으로 지정된 파일 위치까지의 경로


⑤ 비순환(비주기) 그래프 디렉터리 구조(Acyclic Graph Directory)


비순환 그래프 디렉터리는 하위 파일이나 하위 디렉터리를 공동으로 사용할 수 있는 것으로, 사이클이 허용되지 않는 구조


· 디스크 공간 절약 가능

· 하나의 파일이나 디렉터리가 여러 개의 경로 이름을 가질 수 있음

· 디렉터리 구조가 복잡하고, 공유된 하나의 파일을 탐색할 경우 다른 경로로 두 번 이상 찾아갈 수 있으므로 시스템 성능이 저하될 수 있음

· 공유된 파일을 삭제할 경우 고아 포인터 발생할 수 있음

(고아 포인터 : 여러 디렉터리에서 한 개의 파일을 공유하여 사용할 때 공유된 파일을 삭제하면 파일이 없어졌는데도 불구하고 다른 디렉터리에서는 그 파일을 가리키는 포인터가 남아있게 됨. 이와 같이 삭제된 파일에 대한 포인터를 끊어진 포인터, 즉 고아 포인터라 함)


⑥ 일반적인 그래프 디렉터리 구조


일반적인 그래프 디렉터리는 트리 구조에 링크(다른 파일이나 디렉터리를 가리키는 포인터)를 첨가시켜 순환(Cycle)을 허용하는 그래프 구조


· 디렉터리와 파일 공유에 완전한 융통성 있음

· 탐색 알고리즘이 간단하여, 파일과 디렉터리를 액세스하기 쉬움

· 사용되지 않은 디스크 공간을 되찾기 위해 쓰레기 수집이 필요

· 불필요한 파일을 제거하여 사용 공간을 늘리기 위하여 참조 계수기 필요


※ 파일 시스템을 탐색하는 것으로 접근할 수 있는 디스크의 모든 공간을 표시해 두고 다음 번 탐색시 표시되지 않은 공간을 사용 가능한 공간의 리스트로 수집하는 것을 쓰레기 수집이라 하며, 이때 사용되는 것을 참조 계수기라고 함



100 디스크 공간 할당 방법


① 디스크 공간 할당 방법의 개요


· 디스크 공간 할당은 파일을 효율적으로 저장하고 사용하기 위해 파일을 기억공간에 어떻게 할당할 것인가를 결정하는 방법

· 파일을 디스크 공간에 할당하는 방법에는 연속 할당 방법과 불연속 할당 방법이 있으며, 불연속 할당 방법에는 섹터 단위 할당과 블록 단위 할당이 있음


② 연속 할당(Contiguous Allocation)


연속 할당은 파일을 디스크의 연속된 기억공간에 할당하는 방법으로, 생성되는 파일 크기만큼의 공간이 있어야 함


· 논리적으로 연속된 레코드들이 물리적으로 인접한 공간에 저장되기 때문에 접근 시간이 빠름

· 디렉터리는 파일의 시작 주소와 길이에 대한 정보만 가지고 있으므로 디렉터리가 단순하고, 관리 및 구현 용이

· 파일 크기에 알맞은 연속 공간이 없을 경우 파일 생성되지 않음

· 파일의 생성과 삭제가 반복되면서 단편화 발생

· 단편화를 줄이기 위해 재배치에 의한 주기적인 압축 필요함

· 파일의 크기가 시간에 따라 변경될 경우 구현하기 어려움


③ 불연속 할당(Non-Contiguous Allocation)

 

불연속 할당은 파일의 크기가 변경될 경우 구현이 어려운 연속 할당의 단점을 보완하기 위한 것으로, 디스크 공간을 일정 단위로 나누어 할당하는 기법


섹터 단위 할당

· 섹터 단위 할당은 하나의 파일이 디스크의 섹터 단위로 분산되어 할당되는 방법으로, 하나의 파일에 속하는 섹터들이 연결 리스트로 구성

· 하나의 파일에 속하는 각각의 섹터는 연결을 위해 다음 내용이 있는 곳의 포인터를 가지고 있음

· 디렉터리는 파일의 시작과 마지막 주소에 대한 정보만 가지고 있음

· 섹터 단위로 저장되므로 디스크의 단편화가 발생되지 않고, 디스크 압축이 불필요

· 파일 생성 시 파일 크기를 알 필요가 없으며, 파일 크기만큼의 연속된 공간이 없어도 저장 가능

· 레코드를 검색할 경우 파일이 속한 레코드를 순차적으로 검색해야 하므로 탐색 시간이 오래 걸리고, 직접 접근 불가능

· 각 섹터의 포인터가 차지하는 공간만큼 실제 데이터가 저장될 공간이 감소함


블록 단위 할당

블록 단위 할당은 하나의 파일이 연속된 여러 개의 섹터를 묶은 블록 단위로 할당되는 방법


· 블록 체인 기법

- 블록 체인 기법은 섹터 단위 할당 기법과 비슷하나 할당 단위를 블록 단위로 구성하는 방법

- 하나의 블록은 여러 개의 섹터로 구성됨

- 디렉터리는 파일의 첫 번째 블록을 가리키는 포인터 가지고 있음

- 하나의 블록은 데이터와 다음 블록을 가리키는 포인터로 구성되어 있음

- 삽입과 삭제시 포인터만 수정하면 되므로 삽입·삭제가 간단

- 순차적으로 탐색해야 하므로 속도가 느림


· 색인(인덱스) 블록 체인 기법

- 색인 블록 체인 기법은 파일마다 색인 블록을 두고, 파일이 할당된 블록의 모든 포인터를 이 색인 블록에 모아 둠으로써 직접 접근을 가능하게 한 방법

- 색인 블록 하나로 파일을 전부 나타낼 수 없는 경우 여러 개의 연속된 색인 블록을 서로 링크하여 사용할 수 있음

- 디렉터리는 파일의 색인 블록에 대한 포인터를 가지고 있음

- 색인 블록의 포인터를 사용하여 직접 접근이 가능하며, 탐색 시간 빠름

- 삽입 시 색인 블록을 재구성해야 하고, 색인 블록이 차지하는 만큼의 기억장치 낭비가 발생함


· 블록 지향 파일 사상 기법

- 블록 지향 파일 사상 기법은 포인터 대신 파일 할당 테이블(디스크에 존재하는 파일에 대한 정보가 어느 위치에 저장되어 있는가를 표시해놓은 특수 영역)에 있는 블록 번호를 사용하는 기법

- 파일 할당 테이블에는 각 블록에 해당하는 항목이 있고, 각 항목은 블록 번호에 의해 색인됨

- 블록 번호에 의해 색인된 테이블의 각 항목은 다음 블록의 블록 번호를 가짐

- 디스크 구조의 특성상 블록 번호는 실제 기억공간의 주소로 쉽게 변환할 수 있음

- 데이터 삽입, 삭제 용이

- 디렉터리는 파일 할당 테이블의 시작 위치를 가지고 있음



101 자원 보호


① 자원 보호의 개요


· 자원 보호는 컴퓨터 시스템에서 사용자, 프로세스 등과 같은 주체가 프로세스, CPU, 기억장치 등과 같은 객체(자원)에 불법적으로 접근하는 것을 제어하고, 객체(자원)의 물리적인 손상을 예방하는 기법 의미

· 주체는 접근 권한이 부여된 객체에게만 접근 가능

· 자원을 보호하기 위한 기법 : 접근 제어 행렬, 전역 테이블, 접근 제어 리스트, 권한(자격) 리스트


② 접근 제어 행렬(Access Control Matrix) 기법


· 접근 제어 행렬은 자원 보호의 일반적인 모델로, 객체에 대한 접근 권한을 행렬로써 표시한 기법

· 행(Row)은 영역(사용자, 프로세스), 열(Column)은 객체, 각 항은 접근 권한의 집합


③ 전역 테이블(Global Table) 기법


· 전역 테이블은 가장 단순한 구현 방법으로, 세 개의 순서쌍인 영역, 객체, 접근 권한의 집합을 목록 형태로 구성한 기법

· 테이블이 매우 커서 주기억장치제 저장할 수 없으므로 가상기억장치 기법을 사용해야 하며, 주 기억장치에 저장될 경우 공간을 낭비하게 됨


④ 접근 제어 리스트(Access Control List) 기법


· 접근 제어 리스트는 접근 제어 행렬에 있는 각 열, 즉 객체를 중심으로 접근 리스트를 구성한 것

· 각 객체에 대한 리스트는 영역, 접근 권한의 순서쌍으로 구성되며, 객체에 대한 접근 권한을 갖는 모든 영역을 정의

· 접근 권한이 없는 영역은 제외됨


⑤ 권한(자격) 리스트(Capability List) 기법


· 권한(자격) 리스트는 접근 제어 행렬에 있는 각 행, 즉 영역을 중심으로 권한 리스트를 구성한 것

· 각 영역에 대한 권한 리스트는 객체와 그 객체에 허용된 조작 리스트로 구성됨

· 권한 리스트는 영역과 결합되어 있지만 그 영역에서 수행중인 프로세스가 직접 접근할 수 없음. 왜냐하면 권한 리스트는 운영체제에 의해 유지되며 사용자에 의해서 간접적으로만 접근되는 보호된 객체이기 때문


⑥ 록-키(Lock-Key) 기법


· 록-키는 접근 제어 리스트와 권한 리스트를 절충한 기법

· 각 객체는 Lock, 각 영역은 Key라 불리는 유일학도 독특한 값을 갖고 있어서 영역과 객체가 일치하는 경우에만 해당 객체에 접근 가능


⑦ 파일 보호 기법


파일 보호 기법은 자원 보호 기법과 마찬가지로 파일에 대한 일방적인 접근과 손상 및 파괴를 방지하기 위한 기법

파일 보호 기법

설명 

 파일의 명명(Naming)

 접근하고자 하는 파일 이름을 모르는 사용자를 접근 대상에서 제외시키는 기법

 비밀번호(Password, 암호)

 각 파일에 판독 암호와 기록 암호를 부여하여 암호를 아는 사용자에게만 접근을 허용하는 기법

 접근 제어(Access Control)

 사용자에 따라 공유 데이터에 접근할 수 있는 권한을 제한하는 방법, 즉 각 파일마다 접근 목록을 두어 접근 가능한 사용자와 동작을 기록한 후 이를 근거로 접근을 허용하는 방법



102 보안


① 보안의 정의


· 보안(Security)은 컴퓨터 시스템 내에 있는 프로그램과 데이터에 대하여 통제된 접근 방식을 어떻게 제공할 것인가를 다루는 것

· 물리적, 환경적 취약점을 이용한 침입, 방해, 절도 등의 행위로부터 컴퓨터 시스템 내의 자원을 보호하고 대응하기 위한 일련의 정책과 행위

· 컴퓨터 시스템에 의해 정의된 자원에 대하여 프로그램, 프로세스 또는 사용자의 허용된 권한 외의 접근을 제한하여 자원의 손상 및 유출 등을 방지하는 기법


② 보안 요건


요건

의미

 기밀성(Confidentiality, 비밀성)

 · 시스템 내의 정보와 자원은 인가된 사용자에게만 접근 허용됨

 · 정보가 전송중에 노출되더라도 데이터를 읽을 수 없음

 무결성(Integrity)

 시스템 내의 정보는 오직 인가된 사용자만 수정 가능

 가용성(Availability)

 인가받은 사용자는 언제라도 사용 가능

 인증(Authentication)

 · 시스템내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위

 · 대표저입 방법 : 패스퉈드, 인증용 카드, 지문 검사

 부인 방지(NonRepudiation)

 데이터를 송·수신한 자가 송·수신 사실을 부인할 수 없도록 송·수신 증거 제공


③ 보안 유지 기법


외부 보안(External Security)

외부 보안에는 컴퓨터 시스템의 물리적인 보안을 위한 시설 보안과 운용자의 정책을 통한 운용 보안이 있음

· 시설 보안 : 천재 지변이나 외부 침입자로부터의 보안을 의미하는 것으로, 연기나 열을 감지하고 사람의 음성, 지문 등을 확인할 수 있는 방법을 사용

· 운용 보안 : 전산소 관리 및 경영자들의 정책과 통제에 의해 이루어지는 보안으로, 사용자마다 인가된 등급, 즉 액세스 권리를 부여하여 프로그램과 데이터에 접근할 수 있도록 함


사용자 인터페이스 보안(User Interface Security)

운영체제가 사용자의 신원을 확인한 후 권한이 있는 사용자에게만 시스템의 프로그램과 데이터를 사용할 수 있게 하는 보안 방법


내부 보안(Internal Security)

· 하드웨어나 운영체제에 내장된 보안 기능을 이용하여 시스템의 신뢰성을 유지하고, 보안 문제를 해결하는 기법

· 외부의 불법 침입자가 프로그램, 데이터에 접근하는 것을 방지하기 위해 하드웨어나 운영체제에 접근 제어 코드 등을 내장하고 있도록 하는 기능


④ 보안 위험 감소 방법


사용자 감시(User Surveillance)

· 비인가된 사용자의 침입을 방지하기 위해 인가된 사용자만 인식할 수 있도록 하는 기법

· 인가된 사용자의 지문, 음성, 얼굴, 홍채와 같은 신체적 특징이나 신분증, 키(Key)등의 소유물 등을 사용


위험 탐지(Threat Monitoring)

· 컴퓨터 시스템의 자원 사용에 대한 제어권을 사용자가 직접 갖지 못하게 하고, 운영체제의 감시 프로그램이 갖도록 하는 기법

· 사용자가 자원에 대한 접근을 요구하면 운영체제의 감시 프로그램이 접근 여부를 결정함


확충(Amplification)

· 컴퓨터의 감시 프로그램이 일반 사용자보다 더 많은 권한을 부여하여, 데이터의 불법 사용을 방지하고 제어할 수 있도록 하는 기법

· 권한이 부여된 감시 프로그램은 불법 사용에 대한 정보를 확인하여 시스템 관리자에게 자동으로 보고하게 됨


패스워드(Password) 보호

· 각 사용자별로 로그인 이름과 패스워드를 만든 다음 입력하여 운영체제로부터 인증받은 후 시스템을 사용하는 기법

· 컴퓨터 시스템에서 가장 많이 사용되는 사용자 인증 방법



103 정보 보안 기법


① 암호화 기법


암호화(Encryption)는 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것이고, 복호화(Decryprion)는 암호화된 데이터를 원래의 평문으로 복구하는 것을 의미


비밀키 시스템(Private Key System, 개인키 시스템)

· 동일한 키로 데이터를 암호화하고, 해독(복호화)하는 대칭 암호화 기법

· 해독키를 아는 사람은 누구든지 암호문을 해독할 수 있으므로 해독키의 비밀성을 유지하는 것이 중오

· 암호화/복호화 속도가 빠르며 알고리즘이 단순하고, 파일 크기 작음

· 사용자의 증가에 따라 관리해야할 키의 수가 상대적으로 많아지고, 키의 분배가 어려움

· 비밀키 암호화 기법을 이용한 대표적인 암호화 방식 : DES(Data Encryption Standard)


공용키 시스템(Public Key System, 공개키 시스템)

· 서로 다른 키로 데이터를 암호화하고, 해독하는 비대칭 암호화 기법

· 암호키는 공개하고 해독키는 비밀로 하믕로써 누구나 암호문을 만들어 송신 또는 저장할 수 있으나, 해독키를 가진 사람만이 해독 가능

· 키의 분배 용이, 관리해야 할 키의 개수 적음

· 암호화/복호화 속도가 느리며 알고리즘이 복잡하고 파일의 크기 큼

· 공용키 암호화 기법을 이용한 대표적인 암호화 방식 : RSA(Rivest Shamir Adleman)


② 기타 정보 보안 기법


디지털 서명 기법(Digital Signature Mechanism)

· 손으로 쓴 서명과 같이 고유의 전자 서명으로 송신자가 전자 문서 송신 사실을 나중에 부인할 수 없도록 하고, 작성 내용이 송·수신 과정에서 변조된 사실이 없다는 것을 증명할 수 있는 기법

· 공개키 암호화 기법을 사용하는 데 송신자는 자신의 비밀키를 이용하여 다지털 서명을 하고 문서를 송신하면, 수신자는 송신자의 공개키로 디지털 서명과 문서 확인


여분 정보 삽입 기법(Traffic Padding Mechanism)

· 정상적인 데이터에 여분의 거짓 데이터를 삽입하여 불법적으로 데이터를 분석하는 공격을 방어할 수 있는 기법

· 여분으로 삽입한 거짓 데이터가 정상적인 데이터와 구별되지 않아야 함


인증 교환 기법(Authentication Exchange Mechanism)

수신자가 메시지 전송 도중에 변경되지 않았음을 확인할 수 있으며, 메시지가 정당한 상대방으로부터 전달된 것임을 확인할 수 있는 기법


접근 제어 기법(Access Control Mechanism)

데이터에 접근이 허가된 자에게만 데이터 사용을 허용하는 정책을 강화하기 위해 사용하는 기법


고장 방지 시스템, 결합 허용 시스템(Fault Tolerant System)

· 시스템의 부품 고장이나 프로그램에 버그가 있더라도 시스템 전체에 장애가 발생하지 않도록 시스템을 구성하는 방법으로, 대표적인 시스템으로는 Dual System

· Dual System은 고장으로 인해 작업이 중단되지 않도록 하기 위해서 같은 장치를 두 개로 구성하여 하나가 고장나면 다른 하나를 작동시켜 작업을 처리하는 시스템


출처 : 2017 시나공 정보처리기사 필기

'정보처리기사 > 운영체제' 카테고리의 다른 글

6장 운영체제의 실제  (0) 2017.02.12
5장 분산 운영체제  (0) 2017.02.12
3장 기억장치 관리  (0) 2017.02.10
2장 프로세스 관리  (0) 2017.02.10
1장 운영체제의 개요  (0) 2017.02.10


[DUFT&DOFT]

더프트앤도프트 스톡홀름로즈 너리싱 핸드크림

STOCKHOLM ROSE NOURISHING HAND CREAM


안녕하세요!


요즘 날씨가 쌀쌀하네요~~

이럴 때 피부가 건조해지기 쉬운데요ㅠ.ㅠ


그래서 저는 요즘 손이 많이 트고 그래서 핸드크림을 꼭꼭 챙겨발라요!

같은과 언니가 추천해준 핸드크림!


더프트앤도프트 스톡홀름로즈 너리싱 핸드크림입니다*^^*


향이 정말 좋아요!!!

발림성이랑 흡수력도 좋아요 끈적이지 않아서 더 맘에 들었어요ㅎㅎ


너무 맘에 들어서 올리브영에가서 얼른 구입했습니다ㅎㅎ



더프트앤도프트 스톡홀름로즈 너리싱 핸드크림!


스톡홀름로즈 너리싱 핸드크림은 랑방 메리미 향이에요!

로즈 페탈과 캐쉬미어 머스크의 로맨틱한 향기입니다ㅎㅎ


용량은 50ml로 가방이나 파우치 안에 쏙 들어가는 사이즈로

휴대용으로 추천합니다!


가격은 9800원입니다!


지금 더프트앤도프트 홈페이지에서

전품목 1+1 행사 중이에요!!


가격때문에 고민하셨으면 지금이 기회인거 같아요

얼른 gogo!


http://www.duftndoft.com/



모든 피부용이라고 하는데 민감한 피부라면

성분 체크하시고 구매하세요!



스톡홀름로즈 너리싱 핸드크림은 튜프 형식이에요!

구매하시면 처음에는 이렇게 막혀 있어요ㅎㅎ



스톡홀름로즈 너리싱 핸드크림은 백색의 핸드크림입니다!


쉐어버터, 비타민E, 콜라겐, 히알루론산이 네가지 핵심성분이래요!


이 핸드크림은 

정말 끈적이지 않고 촉촉해서 4계절 내내 사용할 수 있을거 같아요!



고급스럽고 오래가는 향기를 좋아한다

세련된 디자인과 휴대성을 갖춘 핸드퍼퓸을 원한다

겉돌지 않고 바르자마자 스며드는 핸드크림을 찾는다


이 세 가지를 원하시는 분이면

도프트앤더프트 스톡홀름로즈 너리싱 핸드크림 추천합니다!


더프트앤도프트의 제품을 이번에 처음 사용해보는데

너무 만족스러워서 다음에는 다른 제품도 사서 써봐야겠어요ㅎㅎ


올 겨울 저는 도프트앤더프트 스톡홀름로즈 너리싱 핸드크림과 함께 보내야겠어요❤


정보처리기사 필기 - 3과목 운영체제


3장 기억장치 관리


090 기억장치 관리의 개요


① 기억장치 계층 구조의 특징


· 기억장치는 레지스터, 캐시 기억장치, 주기억장치, 보조기억장치를 다음과 같이 계층 구조로 분류

[그림 1] 기억장치 계층 구조


· 계층 구조가 상위의 기억장치일수록 접근 속도와 접근 시간이 빠르지만, 기억 용량이 적고 고가

· 주기억장치는 각기 자신의 주소를 갖는 워드 또는 바이트들로 구성되어 있으며, 주소를 이용하여 액세스 가능

· 레지스터, 캐시 기억장치, 주기억장치의 프로그램과 데이터는 CPU가 직접 액세스 가능, 보조기억장치에 있는 프로그램이나 데이터는 직접 액세스 불가능

· 보조기억장치에 있는 데이터는 주기억장치에 적재된 후 CPU에 의해 액세스될 수 있음


② 기억장치의 관리 전략의 개요


· 기억장치의 관리 전략은 보조기억장치의 프로그램이나 데이터를 주기억장치에 적재시키는 시기, 적재 위치 등을 지정하여 한정된 주기억장치의 공간을 효율적으로 사용하기 위한 것으로 반입(Fetch) 전략, 배치(Placement) 전략, 교체(Replacement) 전략


③ 반입(Fetch) 전략


보조기억장치에 보관중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정하는 전략


· 요구 반입(Demand Fetch) : 실행중인 프로그램이 특정 프로그램이나 데이터 등의 참조를 요구할 때 적재하는 방법

· 예상 반입(Anticipatory Fetch) : 실행중인 프로그램에 의해 참조될 프로그램이나 데이터를 미리 예상해서 적재하는 방법


④ 배치(Placement) 전략


새로 반입되는 프로그램이나 데이터를 주기억장치의 어디에 위치시킬 것인지를 결정하는 전략


· 최초 적합(First Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 첫 번째 분할 영역에 배치시키는 방법

· 최적 적합(Best Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 작게 남기는 분할 영역에 배치시키는 방법

(단편화 : 주기억장치의 분할된 영역에 프로그램이나 데이터를 할당할 경우, 분할된 영역이 프로그램이나 데이터보다 작거나 커서 생기는 빈 기억공간)

· 최악 적합(Worst Fit) : 프로그램이나 데이터가 들어갈 수 있는 크기의 빈 영역 중에서 단편화를 가장 많이 남기는 분할 영역에 배치시키는 방법


⑤ 교체(Replacement) 전략


· 주기억장치의 모든 영역이 이미 사용중인 상태에서 새로운 프로그램이나 데이터를 주기억장치에 배치하려고 할 때, 이미 사용되고 있는 영역 중에서 어느 영역을 교체하여 사용할 것인지를 결정하는 전략

· 교체 전략 : FIFO, OPT, LRU, LFU, NUR, SCR



091 주기억장치 할당 기법


① 주기억장치 할당의 개념


주기억장치 할당 기법은 프로그램이나 데이터를 실행시키기 위해 주기억장치에 어떻게 할당할 것인지에 대한 내용

 연속 할당 기법

 프로그램을 주기억장치에 연속으로 할당하는 기법으로, 단일 분할 할당 기법과 다중 분할 할당 기법 있음

 · 단일 분할 할당 기법 : 오버레이, 스와핑

 · 다중 분할 할당 기법 : 고정 분할 할당 기법, 동적 분할 할당 기법

 분산 할당 기법

 프로그램을 특정 단위의 조각으로 나누어 주기억장치 내에 분산하여 할당하는 기법으로, 페이징 기법과 세그먼테이션 기법으로 나눌 수 있음


② 단일 분할 할당 기법


단일 분할 할당 기법은 주기억장치를 운영체제 영역과 사용자 영역으로 나누어 한 순간에는 오직 한 명의 사용자만의 주기억장치의 사용자 영역을 사용하는 기법


· 가장 단순한 기법으로 초기의 운영체제에서 많이 사용하던 기법

· 운영체제를 보호하고, 프로그램이 사용자 영역만을 사용하기 위해 운영체제 영역과 사용자 영역을 구분하는 경계 레지스터가 사용됨

(경계 레지스터 : 사용자 영역에 있는 사용자 프로그램이 운영체제 영역에 접근하지 못하도록 보호하는 레지스터로, 사용자 영역이 시작되는 주소를 기억하고 있음)

· 프로그램의 크기가 작을 경우 사용자 영역이 낭비될 수 있음

· 초기에는 주기억장치보다 큰 사용자 프로그램은 실행할 수 없었으나 오버레이 기법을 사용하면서 이 문제 해겨로딤


오버레이(Overlay) 기법

오버레이 기법은 주기억장치보다 큰 사용자 프로그램을 실행하기 위한 기법

· 보조기억장치에 저장된 하나의 프로그램을 여러 개의 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재하여 프로그램 실행

· 프로그램이 실행되면서 주기억장치의 공간이 부족하면 주기억장치에 적재된 프로그램의 조각 중 불필요한 조각이 위치한 장소에 새로운 프로그램의 조각을 중첩(Overlay)하여 적재함

· 프로그램을 여러 개의 조각으로 분할하는 작업은 프로그래머가 수행해야 하므로 프로그래머는 시스템 구조나 프로그램 구조를 알아야 함

※ 오버레이 기법이 가능한 이유 : 하나의 프로그램을 여러 개의 조각으로 분할하여 처리할 수 있는 것은 프로그램의 모든 부분이 동시에 실행되는 것이 아니기 때문


스와핑(Swapping) 기법

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

· 주기억장치에 있는 프로그램이 보조기억장치로 이동되는 것을 Swap Out, 보조기억장치에 있는 프로그램이 주기억장치로 이동하는 것을 Swap In이라고 함

· 하나의 사용자 프로그램이 완료될 때가지 교체 과정을 여러 번 수행 가능

· 가상기억장치의 페이징 기법으로 발점


③ 다중 분할 할당 기법


고정 분할 할당(Multiple contiguous Fixed parTition allocation, MFT) 기법 = 정적 할당(Static Allocation) 기법


고정 분할 할당은 프로그램을 할당하기 전에 운영체제가 주기억장치의 사용자 영역을 여러 개의 고정된 크기로 분할하고 준비상태 큐에서 준비중인 프로그램을 각 영역에 할당하여 수행하는 기법


· 프로그램을 실행하려면 프로그램 전체가 주기억장치에 위치해야 함

· 프로그램이 분할된 영역보다 커서 영역 안에 들어갈 수 없는 경우 발생 가능

· 일정한 크기의 분할 영역에 다양한 크기의 프로그램이 할당되므로 내부 단편화 및 외부 단편화가 발생하여 주기억장치의 낭비가 많음

· 실행할 프로그램의 크기를 미리 알고 있어야 함

· 다중 프로그래밍을 위해 사용되었으나 현재는 사용되지 않음

※ 내부 단편화 및 외부 단편화

· 내부 단편화 : 분할된 영역이 할당될 프로그램의 크기보다 크기 때문에 프로그램이 할당된 후 사용되지 않고 남아있는 빈 공간

· 외부 단편화 : 분할되 영역이 할당될 프로그램의 크기보다 작기 때문에 프로그램이 할당될 수 없어 사용되지 않고 빈 공간으로 남아 있는 분할된 전체 영역


가변 분할 할당(Multiple contiguous Variable parTition allocation, MVT) 기법 = 동적 할당(Dynamic Allocation) 기법


고정 분할 할당 기법의 단편화를 줄이기 위한 것으로, 미리 주기억장치를 분할해 놓는 것이 아니라 프로그램을 주기억장치에 적재하면서 필요한 만큼의 크기로 영역을 분할하는 기법


· 주기억장치를 효율적으로 사용할 수 있으며, 다중 프로그래밍의 정도를 높일 수 있음

· 고정 분할 할당 기법에 비해 실행될 프로세스 크기에 대한 제약이 적음

· 단편화를 상당 부분 해결할 수 있으나 영역과 영역 사이에 단편화가 발생할 수 있음



092 주기억장치 관리 기법의 문제점과 해결 방법


① 단편화


단편화(Fragmentation)는 분할된 주기억장치에 프로그램을 할당하고 반납하는 과정을 반복하면서 사용되지 않고 남는 기억장치의 빈 공간 조각을 의미하며, 내부 단편화와 외부 단편화가 있음


· 내부 단편화(Internal Fragmentation) : 분할된 영역이 할당될 프로그램의 크기보다 크기 때문에 프로그램이 할당된후 사용되지 않고 남아있는 빈 공간

· 외부 단편화(External Fragmentation) : 분할된 영역이 할당될 프로그래므이 크기보다 작기 떄문에 프로그램이 할당될 수 없어 사용되지 않고 빈 공간으로 남아 있는 분할된 전체 영역


② 단편화 해결 방법


· 주기억장치를 재사용할 수 있도록 단편화된 공간을 모아서 하나의 사용할 수 있는 공간으로 만드는 기법


통합(Coalescing) 기법

· 통합 기법은 주기억장치 내에 인접해 있는 단편화된 공간을 하나의 공간으로 통합하는 작업

· 주기억장치에 빈 공간이 발생할 경우 이 빈 공간이 다른 빈 공간과 인접되어 있는지 점검한 후 결합하여 사용


압축(Compaction) 기법

· 압축 기법은 주기억장치 내에 분산되어 있는 단편화된 빈 공간을 결합하여 하나의 큰 가용 공간을 만드는 작업, 집약 쓰레기 수집이라고도 함

· 여러 위치에 분산된 단편화된 공간을 주기억장치의 한 쪽 끝을 옮겨서 큰 가용 공간 만듦

· 압축이 실행되는 동안 시스템은 모든 일을 일시 중단함



093 가상기억장치 구현 기법


① 가상기억장치의 개요


· 가상기억장치는 보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 것으로, 용량이 작은 주기억장치를 마치 큰 용량을 가진 것처럼 사용하는 기법

· 프로그램을 여러 개의 작은 블록 단위로 나누어서 가상기억장치에 보관해 놓고, 프로그램 실행 시 요구되는 블록만 주기억장치에 불연속적으로 할당하여 처리

· 주기억장치의 용량보다 큰 프로그램을 실행하기 위해 사용

· 주기억장치의 이용률과 다중 프로그래밍의 효율을 높일 수 있음

· 가상기억장치에 저장된 프로그램을 실행하려면 가상기억장치의 주소를 주기억장치의 주소로 바꾸는 주고 변환 작업 필요함

· 블록 단위로 나누어 사용하므로 연속 할당 방식에서 발생할 수 있는 단편화를 해결 가능

· 가상기억장치의 일반적인 구현 방법에는 블록의 종류에 따라 페이징 기법과 세그먼테이션 기법으로 나눌수 있음

 페이징 기법

 프로그램을 동일한 크기로 나눈 단위를 페이지라 하며 이 페이지를 블록으로 사용하는 기법

 세그먼테이션 기법

 프로그램을 가변적인 크기로 나눈 단위를 세그먼트라 하며, 이 세그먼트를 블록으로 사용하는 기법


※ 주소 변환

· 주소 변환은 가상기억장치에 있는 프로그램이 주기억장치에 적재되어 실행될 때 논리적인 가상주소를 물리적인 실기억주소로 변환하는 것으로, 주소 사상 또는 주소 매핑이라고 함. 이때 연속적인 가상주소가 반드시 연속적인 실기억주소로 변환되지 않아도 되는데, 이를 인위적 연속성이라고 함

· 가상주소는 보조기억장치에 있는 프로그램 상의 주소로 논리 주소라고 하며, 실기억주소는 주기억장치에 있는 기억공간의 주소로 실주소라고 함


② 페이징(Paging) 기법


페이징 기법의 개요

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

· 프로그램을 일정한 크기로 나눈 단위를 페이지라고 하며, 페이지크기로 일정하게나누어진 주기억장치의 단위를 페이지 프레임이라고 함

· 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있음

· 주소 변환을 위해서 페이지의 위치 정보를 가지고 있는 페이지 맵 테이블 필요함

· 페이지 맵 테이블 사용으로 비용 증가되고, 처리 속도 감소


페이징 기법의 일반적인 주소 변환

· 주소 형식에 따른 페이지 맵 테이블의 구성

- 가상주소는 페이지 번호를 나타내는 p와 페이지 내에서 실제 내용이 위치하고 있는 곳까지의 거리를 나타내는 변위값 d로 구성됨

가상주소 형식    [페이지번호(p) | 변위값(d)]


- 실기억주소는 페이지 프레임 번호를 나타내는 p'와 페이지 프레임 내에서 실제 참조하는 위치까지의 거리를 나타내는 변위값 d로 구성됨

실기억주소 형식    [페이지 프레임(p') | 변위값(d)]


- 페이지 맵 테이블은 사용할 페이지가 주기억장치에 존재하는지의 여부를 나타내는 상태 비트와 페이지가 주기억장치에 없을 때의 보조기억장치 주소를 나타내는 디스크 주소, 페이지가 주기억장치에 있을 때의 페이지 프레임 번호로 구성됨

페이지 맵 테이블    [디스크 주소 | 페이지 프레임 번호 | 상태 비트]


· 주소 변환 순서

① 가상주소의 페이지 번호에 해당하는 페이지 프레임 번호와 가상주소의 변위값을 이용하여 실기억주소 만듦

② 만들어진 실기억주소를 이용하여 주기억장치를 액세스함


③ 세그먼테이션(Segmentation) 기법


세그먼테이션의 개요

· 가상기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적인 단위로 나눈 후 주기억장치에 적재시켜 실행시키는 기법

· 프로그램을 배열이나 함수 등과 같은 논리적인 크기로 나눈 단위를 세그먼트라고 하며, 각 세그먼트는 고유한 이름과 크기 가짐

· 기억장치의 사용자 관점을 보존하는 기억장치 관리 기법

· 세그먼테이션 기법을 이용하는 궁극적인 이유는 기억공간을 절약하기 위해서

· 주소 변환을 위해서 세그먼트가 존재하는 위치 정보를 가지고 있는 세그먼트 맵 테이블이 필요함

· 세그먼트가 주기억장치에 적재될 때 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해 기억장치 보호키 필요

· 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있음


세그먼테이션 기법의 일반적인 주소 변환

· 주소 형식에 따른 주소와 세그먼트 맵 테이블의 구성

- 가상주소는 세그먼트 번호를 나타내는 s와 세그먼트 내에서 실제 내용이 위치하고 있는 곳까지의 거리를 나타내는 변위값 d로 구성됨

가상주소 형식    [세그먼트 번호(s) | 변위값(d)]


- 실기억주소는 완전주소 형태를 사용하며 이는 세그먼트의 기준번지와 변위값을 더함으로써 얻을 수 있음

실기억주소 형식    [실기억주소(세그먼트 기준번지+변위값)]


- 세그먼트 맵 테이블은 세그먼트 번호 s와 세그먼트의 크기 L(한계 번지), 주기억장치 상의 기준번지(시작주소) b로 구성됨

세그먼트 맵 테이블    [세그먼트 번호(s) | 세그먼트 크기(L) | 기준 번지(b)]


· 주소 변환 순서

① 가상주소의 세그먼트 번호로 세그먼트 맵 테이블에서 해당 세그먼트의 기준번지와 세그먼트 크기를 구함. 세그먼트 번호는 세그먼트 맵 테이블에 대한 색인으로 사용됨

② 가상주소의 변위값과 세그먼트의 크기 비교

③ 변위값이 작거나 같으면 기준번지와 변위값을 더하여 실기억주소를 만들어 주기억장치 액세스함

 변위값이 크면 다른 영역을 침범하게 되므로 실행 권한을 운영체제에게 넘기고 트랩을 발생시킴(변위값이 크다는 것은 현재 찾는 세그먼트의 위치가 해당 세그먼트의 크기(한계번지)를 초과하였다는 의미)



094 페이지 교체 알고리즘


① 페이지 교체 알고리즘의 개요


· 페이지 교체 알고리즘은 페이지 부재가 발생했을 때 가상기억장치의 필요한 페이지를 주기억장치에 적재해야 하는데, 이때 주기억장치의 모든 페이지 프레임이 사용중이면 어떤 페이지 프레임을 선택하여 교체할 것인지를 결정하는 기법

· 페이지 교체 알고리즘 : OPT, FIFO, LRU, LFU, NUR, SCR


② OPT(OPTimal replacement, 최적 교체)


OPT는 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 기법


· 벨레이디(Belady)가 제안한 것으로, 페이지 부재 횟수가 가장 적게 발생하는 가장 효율적인 알고리즘

· 각 페이지의 호출 순서와 참조 상황을 미리 예측해야 하므로 실현 가능성 희박함


③ FIFO(First In First Out)


FIFO는 각 페이지가 주기억장치에 적재될 때마다 그때의 시간을 기억시켜 가장 먼저 들어와서 가장 오래 있었던 페이지를 교체하는 기법


· 이해학 쉽고, 프로그래밍 및 설계 간단함

· 벨레이디의 모순현상 발생(페이지 프레임 수가 많으면 페이지 부재의 수가 줄어드는 것이 일반적이지만, 페이지 프레임 수를 증가시켰느데도 불구하고 페이지 부재가 더 많이 일어나는 현상을 의미


④ LRU(Least Recently Used)


LRU는 최근에 가장 오랫동안 사용하지 않은 페이지를 교체하는 기법


· 각 페이지마다 계수기(Counter)나 스택(Stack)을 두어 현 시점에서 가장 오랫동안 사용하지 않은, 즉 가장 오래 전에 사용된 페이지 교체

· 계수기나 스택과 같은 별도의 하드웨어 필요, 시간적인 오버헤드 발생

· 실제로 구현하기 매우 어려움

※ LRU에서 교체 페이지 선정 방법

· 최근에 가장 오랫동안 사용하지 않은 페이지를 쉽게 선정하려면, 현 시점가지 참조된 페이지 번호 순서를 거꾸로검사하여 중복되지 않고 가장 나중에 나타나는 페이지를 선택

※ LRU 근사 알고리즘

· LRU 알고리즘은 실제 구현하기 어렵기 때문에 시스템에서는 LRU와 비슷한 알고리즘을 사용하게 되는데, 이를 LRU 근사 알고리즘이라고 함

· LRU 근사 알고리즘은 참조 비트를 사용하는 것으로 다음에서 배울 NUR 등이 있음


⑤ LFU(Least Frequently Used)


LFU는 사용 빈도가 가장 적은 페이지를 교체하는 방법


· 활발하게 사용되는 페이지는 사용 횟수가 많아 교체되지 않고 사용됨

· 프로그램 실행 초기에 많이 사용된 페이지가 그 후로 사용되지 않을 경우에도 프레임을 계속 차지할 수 있음


⑥ NUR(Not Used Recently)


NUR은 LRU와 비슷한 알고리즘으로, 최근에 사용하지 않은 페이지를 교체하는 기법


· 최근에 사용되지 않은 페이지는 향후에도 사용되지 않을 가능성이 높다는 것을 전제로, LRU에서 나타나는 시간적인 오버헤드 줄일 수 있음

· 최근의 사용 여부를 확인하기 위해 각 페이지마다 두 개의 비트, 즉 참조 비트와 변형 비트가 사용됨

- 참조 비트 : 페이지가 호출되지 않았을 때는 0, 호출되었을 때는 1로 지정됨

- 변형 비트 : 페이지의 내용이 변경되지 않았을 때는 0, 변경되었을 때는 1로 지정됨


⑦ SCR(2차 기회 교체)


SCR(Second Chance Replacement)은 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지하기 위한 것으로, FIFO 기법의 단점을 보완하는 기법


· 각 페이지마다 참조 비트를 두고, FIFO 기법을 이용하여 페이지 교체 수행중 참조 비트가 0일 경우에는 교체하고, 참조비트가 1일 경우에는 참조 비트를 0으로 지정한 후 FIFO 리스트의 맨 마지막으로 피드백시켜 다음 순서를 기다리게 함

· 교체 대상이 되기 전에 참조 비트를 검사하여 1일 경우 한 번의 기회를 더 부여하기 때문에 'Second Chance'라고도 함



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


가상기억장치를 구현할 때 시스템의 성능에 영향을 미치는 페이지 크기나 Locality, 워킹 셋, 페이지 부재 빈도, 프리페이징에 대해 


① 페이지 크기


페이징 기법을 사용하면 프로그램을 페이지 단위로 나누게 되는데, 페이지의 크기에 따라 시스템에 미치는 영향이 다름


페이지 크기가 작을 경우

· 페이지 단편화가 감소되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 줄어듦

· 불필요한 내용이 주기억장치에 적재될 확률이 적으므로 효율적인 워킹 셋을 유지할 수 있음

· Locality(국부성)에 더 일치할 수 있기 때문에 기억장치 효율이 높아짐

· 페이지 정보를 갖는 페이지 맵 테이블의 크기가 커지고, 매핑 속도가 늦어짐

· 디스크 접근 횟수가 많아져서 전체적인 입·출력 시간은 늘어남


페이지 크기가 클 경우

· 페이지 정보를 갖는 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐

· 디스크 접근 횟수가 줄어들어 전체적인 입·출력의 효율성이 증가됨

· 페이지 단편화가 증가되고, 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남

· 프로세스(프로그램) 수행에 불필요한 내용까지도 주기억장치에 적재될 수 있음


② Locality


Locality(국부성, 지역성, 구역성, 국소성)는 프로세스가 실행되는 동안 주기억장치를 참조할 때 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론


· 스래싱을 방지하기 위한 워킹 셋 이론의 기반이 됨

· 프로세스가 집중적으로 사용하는 페이지를 알아내는 방법 중 하나로, 가상기억장치 관리의 이론적인 근거가 됨

· Denning 교수에 의해 구역성의 개념이 증명되었으며 캐시 메모리 시스템의 이론적 근거


Locality의 종류

· 시간 구역성(Temporal Locality)

- 시간 구역성은 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스하는 현상

- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음을 의미함

- 시간 구역성이 이루어지는 기억 장소 : Loop(반복, 순환), 스택(Stack), 부 프로그램(Sub Routine), Counting(1씩 증감), 집계(Totaling)에 사용되는 변수(기억장소)


· 공간 구역성(Spatial Locality)

- 공간 구역성은 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스하는 현상

- 어느 하나의 페이지를 참조하면 그 근처의 페이지를 계속 참조할 가능성이 높음을 의미

- 공간 구역성이 이루어지는 장소 : 배열 순회, 순차적 코드의 실행, 프로그래머들이 관련된 변수(데이터를 저장할 기억장소)들을 서로 근처에 선언하여 할당되는 기억장소, 같은 영역에 있는 변수를 참조할 때 사용


③ 워킹 셋(Working Set)


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


· 데닝이 제안한 프로그램의 움직임에 대한 모델로, 프로그램의 Locality 특징을 이용함

· 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상이 줄어들어 프로세스의 기억장치 사용이 안정됨

· 시간이 지남에 따라 자주 참조하는 페이지들의 집합이 변화하기 때문에 워킹셋은 시간에 따라 변경됨


④ 페이지 부재 빈도 방식


페이지 부재(Page Fault)는 프로세스 실행 시 참조할 페이지가 주기억장치에 없는 현상이며, 페이지 부재 빈도는 페이지 부재가 일어나는 횟수


· 페이지 부재 빈도 방식은 페이지 부재율에 따라 주기억장치에 있는 페이지 프레임의 수를 늘리거나 줄여 페이지 부재율을 적정 수준으로 유지하는 방식

· 운영체제는 프로세스 실행 초기에 임의의 페이지 프레임을 할당하고, 페이지 부재율을 지속적으로 감시하고 있다가 부재율이 상한선을 넘어가면 좀 더 많은 페이지 프레임을 할당하고, 부재율이 하한선을 넘어가면 페이지 프레임을 회수하는 방식 사용


⑤ 프리페이징(Prepaging)


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

· 기억장치에 들어온 페이지들 중에서 사용되지 않는 페이지가 많을 수도 있음 


⑥ 스래싱(Thrashing)


스래싱은 프로세스의 처리 시간보다 페잊 교체에 소요되는 시간이 더 많아지는 현상


· 다중 프로그래밍 시스템이나 가상기억장치를 사용하는 시스템에서 하나의 프로세스 수행 과정 중 자주 페이지 부재가 발생함으로써 나타나는 현상으로, 전체 시스템의 성능이 저하됨

· 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용률은 어느 특정 시점까지는 높아지지만 다중 프로그래밍의 정도가 더욱 커지면 스래킹이 나타나고, CPU의 이용률은 급격히 감소함


· 스래싱 현상 방지 방법

- 다중 프로그래밍의 정도를 적정 수준으로 유지

- 페이지 부재 빈도를 조절하여 사용

- Working Set 유지

- 부족한 자원을 증설하고, 일부 프로세스를 중단시킴

- CPU 성능에 대한 자료의 지속적 관리 및 분석으로 임계치를 예상하여 운영함



096 디스크 스케줄링


보조기억장치에는 자기 디스크, 광 디스크, 자기 테이프 등이 있으나 일반적으로 자기 디스크를 가장 많이 사용함

운영체제가 수행하는 디스크 스케줄링 기법의 개념과 종류에 대해


① 디스크 스케줄링의 개요


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

· 디스크 스케줄링은 일반적으로 탐색 기간을 최적화하기 위해 수행되며, 다음과 같은 목저글 갖고 있음

 처리량 최대화

 일정 시간에 디스크 입·출력 요구를 서비스해 주는 수를 최대화

 응답 시간의 최소화

 어떤 요청이 있은 후 결과가 나올 때가지 걸리는 시간을 최소화

 응답 시간 편차의 최소화

 각 요청의 응답 시간과 평균 응답 시간의 편차를 최소화

· 디스크 스케줄링의 종류에는 FCFS, SSTF, SCAN, C-SCAN, N-step SCAN, 에센바흐, STLF 스케줄링 기법이 있음


② FCFS(First Come First Service) = FIFO(First In First Out)


FCFS는 가장 간단한 스케줄링으로, 디스크 대기 큐에 가장 먼저 들어온 트랙에 대한 요청을 가장 먼저 서비스하는 기법


· 디스크 대기 큐에 있는 트랙 순서대로 디스크 헤드를 이동시킴

· 디스크 대기 큐에 들어온 순서대로 서비스하기 때문에 더 높은 우선순위의 요청이 입력되어도 순서가 바뀌지 않아 공평성이 보장됨

· 디스크 오버헤드가 적을 때 효율적이며, 프로그래밍이 쉬움

· 헤드 이동 거리가 상당히 길어질 수 있음

· 디스크 오버헤드가 커지면 응답 시간이 길어짐

· 탐색 시간을 최적화하려는 시도가 없는 기법


③ SSTF(Shortest Seek Time First)


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


· 현재 해드 위치에서 가장 가까운 거리에 있는 트랙으로 헤드를 이동시킴

· FCFS보다 처리량이 많고, 평균 탐색 시간이 짧음

· 처리량이 많은 일괄 처리 시스템에 유용

· 현재 서비스한 트랙에서 가장 가까운 트랙에 대한 서비스 요청이 계속 발생하는 경우, 먼 거리의 트랙(안쪽이나 바깥쪽)에 대한 서비스는 무한정 기다려야 하는 기아 상태가 발생할 수도 있음

· 응답 시간의 편차가 크기 때문에 대화형 시스템에는 부적합


④ SCAN


SCAN은 SSTF가 갖는 탐색 시간의 편차를 해소하기 위한 기법


· Denning이 개발한 것으로, 대부분의 디스크 스케줄링에서 기본 전략으로 이용됨

· 현재 헤드의 위치에서 진행 방향이 결저되면 탐색 거리가 짧은 순서에 따라 그 방향의 모든 요청을 서비스하고, 끝까지 이동한 후 역방향의 요청 사항을 서비스함

· 헤드가 안쪽과 바깥쪽을 왔다갔다 하면서 지나는 길에 있는 대기 요청뿐만 아니라 새로운 요청도 서비스하며, 현재의 진행 방향에 더 이상의 요청이 없을 때에만 이동방향 바꿈

· SSTF에서 발생하는 응답 시간의 편차를 줄일 수 있음

· 오버헤드가 적을 경우 가장 효율적인 기법


⑤ C-SCAN(Circular SCAN)


C-SCAN은 항상 바깥쪽에서 안쪽으로 움직이면서 가장 짧은 탐색 거리를 갖는 요청을 서비스하는 기법


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

· 마치 처음과 마지막 트랙을 인접시킨 것과 같은 원형 형태로 Disk를 처리함

· 요청을 서비스하는 도중 새로운 요청 사항이 도착하면 다음 헤드가 진행될 때 서비스 함

· 트랙의 안쪽과 바깥쪽의 요처엥 대한 서비스가 공평함


⑥ N-SCAN(N-step SCAN)


N-step SCAN은 SCAN 기법의 무한 대기 발생 가능성을 제거한 것으로, 어떤 방향의 진행이 시작될 당시에 대기 중이던 요청들만 서비스하고, 진행 도중 도착한 요청들은 한데 모아서 다음 반대 방향 진행 때 서비스하는 기법


· SSTF나 SCAN 기법보다 응답 시간의 편차가 적음

· 특정 방향에 많은 수의 요청이 도착할 경우 반대방향에서의 무한 지연 발생을 방지할 수 있음

· 진행 도중 도착한 요청은 반대 방향 진행시 서비스하기 위해 디스크 대기 큐에 저장


⑦ 에션바흐(Eschenbach) 기법


· 에센바흐는 부하가 매우 큰 항공 예약 시스템을 위해 개발됨

· 탐색 시간과 회전 지연 시간을 최적화하기 위한 최초의 기법

· 헤드는 C-SCAN처럼 움직이며 예외적으로 모든 실린더는 그 실린더에 요청이 있던 없던 간에 전체 트랙이 한 바퀴 회전할 동안에 서비스 받음


⑧ SLTF(Shortest Latency Time First)


SLTF는 섹터 큐잉이라고 하며, 회전 지연 시간의 최적화를 위해 구현된 기법


· 디스크 대기 큐에 있는 여러 요청을 섹터 위치에 따라 재정렬하고, 가장 가까운 섹터를 먼저 서비스

· 헤드의 이동이 거의 없는 고정 헤드 장치인 드럼과 같은 장치에서 사용됨



출처 : 2017 시나공 정보처리기사 필기

'정보처리기사 > 운영체제' 카테고리의 다른 글

6장 운영체제의 실제  (0) 2017.02.12
5장 분산 운영체제  (0) 2017.02.12
4장 정보 관리  (0) 2017.02.12
2장 프로세스 관리  (0) 2017.02.10
1장 운영체제의 개요  (0) 2017.02.10

+ Recent posts