제 9 장 기억장치의 관리
기억 장치는 각각 자신의 주소를 가지는 워드 또는 바이트들로 구성된 대
규모 배열이다. 중앙 처리 장치는 기억 장치로부터 처리할 내용을 가져오거
나 처리 결과를 기억장치에 저장한다. 프로세스가 수행되기 위해서는 기억
장치 내에 적재되어야한다. 이 장에서는 주 기억 장치의 여러 가지 관리 기
법과 가상 기억 장치의 관리, 윈도우즈 95에서의 기억 장치 관리, 보조 기억
장치의 관리에 대하여 설명한다.
9.1 기억 장치 관리 기법
9.1.1 계층적인 저장 장치의 구성
주 기억 장치의 구성과 관리는 운영체제에 가장 중요한 영향을 미친다. 모
든 컴퓨터는 계층적인 기억 장치를 가진다. 크게 주 기억 장치와 보조 기억
장치로 나눌 수 있다. 모든 프로그램은 주 기억 장치에 탑재되어야만 실행이
가능하다. 중앙 처리 장치가 주 기억 장치의 프로그램을 가져와서 실행하기
때문이다. 주 기억 장치는 비교적 비싼 자원이며 소량의 자료를 임시로 기억
할 수 있고 영구히 저장할 수는 없다. 이러한 주 기억 장치 용량의 한계는
주 기억 장치 관리를 필요로 하게 되었다. 프로그램 중에서 현재 실행되지
않는 부분은 보조 기억 장치에 두는 개념이 요구된다. 이러한 요구는 기억
장치를 계층적으로 구성할 필요성이 대두되게 되었다. 계층적인 기억장치의
구성은 주 기억 장치보다 훨씬 빠른 기억 장치를 요구하게 되었다. 이것은
중앙처리장치 내에 존재하게 된다. 이것을 캐시(cache)기억 장치라고 한다.
다음 그림 9-1은 계층적인 기억 장치 구성에 대한 관계를 나타낸다. 캐시기
억 장치는 시스템에서 왕복 작업의 수준을 하나 더 증가시킨다. 주기억 장치
에 있는 프로그램을 실행하기 전에 고속의 캐시 기억 장치로 프로그램을 적
재함으로써 보다 빠르게 프로그램을 실행 할 수 있다.
9.1.2 프로그램의 실행 과정
기억장치는 각기 자신의 주소를 가지고 있다. 프로그램이 주 기억 장치에
그림 9-1 계층적인 기억 장치의 구성
적재될 때는 이 주소(address)를 이용한다. 특히 기억 장치는 주소를 읽거나
기록함으로써 상호 작용을 한다. 중앙 처리 장치는 주 기억 장치로부터 처리
할 프로그램을 가져오고 처리 결과를 기억 장치에 저장한다. 중앙 처리 장치
는 주 기억 장치에서 읽어온 프로그램 명령어를 해독하고 기억 장치에서 피
연산자를 가져와서 이것에 대한 계산을 수행한 후에 계산 결과를 기억 장치
에 저장한다. 기억 장치는 주소와 주소에 저장되는 데이터 공간의 연속으로
본다.
(1) 주소 연결(address binding)
프로세스가 실행되기 위해서는 주 기억 장치 내에 탑재가 되어야 한다. 일
반적으로 프로세스는 이진 파일로 하드 디스크 상에 존재한다. 하드 디스크
상의 프로그램이 실행되기 위해서는 순차적으로 주 기억 장치에 적재된다.
정상적인 프로세스의 주 기억 장치 적재 절차는 주 기억 장치로 불려 들여지
기 위한 대기 큐에서 하나의 프로세스를 선택하여 주 기억 장치에 적재한다.
이러한 기법은 때때로 주소를 재배치하거나 필요시에 엔트리 포인터에 대한
외부 참조를 연결하는 결과를 가져온다. 프로세스가 중앙 처리 장치에서 실
행될 때 프로세스는 주 기억 장치의 명령어와 데이터에 접근한다. 이러한 프
로세스들의 수행이 끝나게 되면 사용했던 주 기억 장치 공간은 다른 프로세
스에게 반환되어야 한다.
이와 같이 사용자 프로세스는 실제 기억 공간의 임의의 주소에 상주할 수
있다. 비록 컴퓨터의 주소 공간이 0에서 시작한다고 하더라도 사용자 프로세
스의 주 기억 장소 공간은 0이 될 필요가 없다. 사용자가 느끼게 되는 컴퓨
터 주소 공간은 상대 주소 개념이기 때문이다. 이러한 주소 공간의 재배치는
사용자 프로그램이 사용할 수 있는 주 기억 장소에 영향을 미친다. 대부분의
경우 사용자 프로그램은 수행되기 전에 여러 단계를 거친다. 이들 단계를 거
치는 동안 주소들은 다른 방식으로 표현될 수 있다. 원시프로그램(source
program)에서 사용하는 주소는 일반적으로 프로그램에서 사용하게 되는 심
볼(symbol)들이다. 컴파일러(compiler)는 이 심볼 주소를 재배치 가능 주소로
연결하고(binding) 다음에는 연결 편집기(linkage editor)나 적재기(loader)가
이 재배치 가능 주소를 절대 주소(absolute address)로 연결한다. 전통적인
기억 장치 주소 공간에서 명령어와 자료의 연결 방식에 따라 다음과 같은 단
계로 수행된다.
① 컴파일 시간(compile time): 만일 프로세스가 기억 장치 내에 적재될 위치
를 컴파일 시간에 알 수 있으면 컴파일러는 절대 코드를 생성한다. 예를
들어 사용자 프로세스 위치가 R로 부터 시작해서 적재된다는 것이 알려
지면 생성된 컴파일러 코드는 그 위치에서 시작해서 확장해 나갈 것이다.
만약 그 이후에 시작해서 위치가 변하면 이 코드를 다시 컴파일 할 필요
가 없다.
② 적재시간(load time): 만일 프로세스가 기억 장치 내의 어디에 상주할 것
인지를 컴파일 시간에 알 수 없을 경우 컴파일러는 절대코드를 생성할 수
없다. 이 경우에 최종 바인딩은 적재 시간이 될 때까지 연기된다.
③ 수행시간(execution time): 만약 프로세스가 수행 중에 기억 장치 세그먼
트로부터 다른 세그먼트로 이동될 수 있다면 바인딩은 수행 시간까지 연
기되어야 한다.
(2) 동적 적재(Dynamic loading)
기억 장치 공간 이용의 효율을 위해서 프로세스를 일시에 주 기억 장치로
적재하지 않고 필요시에 필요한 부분만을 적재하는 동적 적재 개념을 사용한
다. 즉 동적 적재는 특정 부분이 호출될 때까지 주 기억 장치 내에 적재되지
않는다. 한 루틴이 다른 루틴을 호출할 때 호출 루틴은 호출되는 루틴이 주
기억 장치 내에 저장되었는지를 조사한다. 만약 적재되지 않았을 경우는 재
배치 연결 적재기는 요구된 루틴을 주 기억 장치 내로 적재하기 위해 호출하
고 이러한 변화를 반영하기 위해서 동적 적재 관리를 위한 테이블을 갱신한
다. 동적 적재의 장점은 사용되지 않는 루틴들은 결코 주 기억 장치로 적재
되지 않는다는 것이다. 이러한 구조는 여러 가지 오류 루틴을 간혹 발생하지
만 많은 양의 프로그램 수행 시에 유용한 메모리 관리 기법이다.
(3) 동적 연결(dynamic linking)
대부분의 운영체제는 라이브러리가 어떤 객체 모듈로 취급되고 적재기에
의해서 이진 프로그램 이미지와 결합되는 정적 연결만을 지원한다. 동적 연
결의 개념은 동적 적재와 연동해서 동작한다. 프로그램 연결이 수행 시간까
지 지연되는 개념이다. 이러한 동적 연결은 시스템 라이브러리 등을 필요시
까지 연결을 지연시킴으로써 주 기억 자치의 낭비를 막을 수 있다. 또한, 이
프로그램 방식의 장점은 새로운 라이브러리가 갱신되었을 경우에 쉽게 교체
가 가능하다는 것이다. 윈도우즈 95에서 DLL(Dynamic Linking Library)개념
이 동적 적재에 해당된다. UNIX에서는 SVR4.0이후부터 동적 적재 개념을
지원해 주고 있다.
(4) 중첩(Overlay)
프로세스의 모든 논리 주소 공간은 그 프로세스가 수행되기 전에 실제 기
억 공간 내에 존재해야 하므로 프로세스의 크기는 실제 기억 장치의 크기로
제한된다. 한 프로세스는 프로세스에게 할당된 기억 장소보다 클 수가 있는
데 이를 해결하기 위해서 중첩(overlay)기법을 사용한다. 중첩의 개념은 어느
주어진 시간에 필요한 명령어와 자료를 기억 장치에 유지시키는 것이다. 다
른 명령어들이 필요한 경우에 더 이상 사용되지 않는 기억 공간으로 명령어
들이 적재되는 것이다.
한 예로써 2패스의 어셈블러를 생각해 보자. 패스 1동안에 심볼 테이블을
작성하고 패스2 동안에 기계어 코드를 생성한다. 그러한 어셈블러를 패스 1
코드, 패스 2코드, 심볼 테이블, 패스 1과 패스2 모두에서 사용된 공통 자원
루틴들로 분리할 수 있다. 이러한 요소의 크기는 다음과 같다고 가정하자.
패스 1: 70K, 패스 2: 80K, 심볼테이블: 20K, 공통루틴: 30K
한번에 모든 부분을 적재하기 위해서는 200K가 필요하다. 만약 150K만 사용
가능하다면 프로세스느 더 이상 수행될 수 없다. 그러나 어셈블러 동작 원리
상 패스 1과 패스 2코드가 동시에 주 기억 장소에 있을 필요가 없기 때문에
이 부분은 중첩 공간을 사용할 수 있다. 이와 같은 형태로 동작할 경우 실제
필요한 주 기억 장소 공간은 130K이면 충분하다.
(5) 스와핑(swapping)
프로세스는 수행되려면 주 기억 장소 내에 있어야 하지만 일시적으로 주
기억 장소에서 보조 기억 장소로 이주 될 수 있고 계속 수행되기 위해 다시
주 기억 장소로 되돌아온다. 어떤 프로세스가 중앙처리장치의 사용 기간이
만기(expire)되어 더 이상 사용할 수 없을 경우 이 프로세스는 더 이상 주 기
억 장소에 있을 필요도 없다. 이런 프로세스를 잠시 주 기억 장소에서 보조
기억 장소로 이주시킨다. 이와 같이 프로세스가 주 기억 장소에서 보조 기억
장소로 물러나는 것을 swap-out이라고 하고, 보조 기억 장소에서 주 기억
장소로 불려 들여지는 것을 swap-in이라고 한다.
9.1.2 단일 분할 할당 기법
가장 간단한 기억 장치 구성 방식으로 사용자에게 비어있는 상태의 주소
공간을 제공하면 사용자가 모든 권한을 가지는 것이다. 이러한 방식은 몇 가
지 장점을 갖는다. 이것은 사용자에게 최대한의 융통성을 부여하고 최대의
단순성과 최소의 비용을 요구한다. 이 방식의 단점은 사용자가 모든 권한을
가지고 있기 때문에 운영체제가 관리할 것이 없다. 즉 인터럽트나 시스템 호
출, 시스템 오류 등을 제어할 수 없다.
다음으로 단순한 기법은 기억 장치를 사용자를 위한 공간과 운영체제 상주
를 위한 공간으로 나누는 방법이다. 이 기법은 사용자가 운영체제 공간에 접
근하는 것을 통제한다. 이러한 운영체제 공간에 대한 통제 수단으로 경계 레
지스터를 사용한다. 사용자 프로그램이 메모리 주소를 참조할 때마다 사용자
가 운영체제 영역을 침범하지 않도록 하기 위해서 경계 레지스터를 검사한
다.
그림 9-2 단일 분할 할당 기법
9.1.3 고정 분할 다중 프로그램 기법
다중 프로그램 기법은 여러 프로세스가 주 기억 장치에 동시에 존재하도록
하여 중앙 처리 장치가 이들을 처리하도록 하는 것을 말한다. 다중 프로그램
기법에서 가장 간단한 방법은 모든 프로세스에게 일정한 크기의 공간을 할당
하는 고정 크기 방식이다. 각 분할 공간은 정확히 한 프로세스만이 사용할
수 있다. 이 방식에서 다중 프로그램의 정도는 고정 분할 공간의 수에 제한
받는다. 이 방식은 주 기억 장치의 대해서 작업 큐를 두고 이 작업 큐에는
해당 분할 공간을 사용하고자 하는 프로세스들이 대기하는 곳이다. 기억 장
치의 분할된 영역에 작업을 할당하기 위한 방법은 2가지가 있다. 그림 9-3의
(a)는 분할된 영역에 개별적인 큐를 두어서 들어오는 작업의 크기에 따라 해
당되는 큐에 보관시켜 해당 영역으로 입력시켜서 처리되는 방법이다. 이 방
법은 작업 대기 큐에 있는 프로세스가 자신의 분할 공간은 이미 다른 프로세
스에 의해서 사용중인 경우에 다른 분할 공간이 비어있더라도 대기 상태로
있어야 한다. 이러한 제약은 저장 장치의 낭비를 초래한다. 이러한 방법을 개
선한 형태로 그림 9-3의 (b)는 개별적인 큐의 작업을 하나의 통합된 형태를
지닌 큐에 보관시켜서 할당하는 방법이다.
그림 9-3 고정 분할 다중 프로그램 수행 기법
이렇게 함으로써 주 기억 장치의 관리를 앞에서 언급한 방식보다는 효율적으
로 사용할 수 있다. 고정 분할 다중 프로그래밍의 단점은 분할된 영역의 크
기가 일정하기 때문에 프로세스의 크기가 영역보다 훨씬 작을 경우 메모리가
낭비되는 문제가 생긴다는 것이다.
9.1.4 가변 분할 다중 프로그램 기법
가변 분할 다중 프로그램 기법은 고정 분할 다중 프로그래밍의 문제점을
해결하기 위해서 각 작업이 필요한 만큼의 기억 장치만 할당하게 한다. 즉
고정된 경계를 없애고, 각 작업은 필요한 만큼의 기억 장치를 할당받는다. 가
변 분할 다중 프로그래밍에서 작업의 분할 할당의 예를 그림 9-4에 보였다.
초기에 기억 장치의 분할된 영역중 2개의 영역이 할당되어 있다. 그리고
거기에는 대응되는 크기의 작업들이 각각 나타나 있다. (b)에서 3개의 작업
들이 들어오면 비어있는 기억 장치 공간에 작업을 할당시킨다. 가변 분할 할
당은 작업 큐에 있는 작업을 기억 장치의 어떤 가용 공간에 할당하는 것이
가장 좋은지를 결정해야 한다. 최초 적격(first-fit), 최상 적격(best-fit), 최악
그림 9-4 가변 분할 다중 프로그래밍
적격(worst-fit)은 이용 가능한 가용 공간 집합에서 한 가용 공간을 선택하는
데 사용되는 가장 일반적인 방법이다.
(1) 최초 적격은 작업을 할당할 수 있을 만큼의 충분히 큰 첫 번째 가용 공
간에 할당한다. 검색은 충분히 큰 가용 공간을 찾았을 때 검색을 끝
낼 수 있다.
(2) 최상 적격은 충분히 큰 가용 공간들 중에서 가장 작은 가용 공간을 할당
한다. 리스트가 크기순으로 되어 있지 않으면 전 리스트를 검색해야 한
다.
(3) 최악 적격은 가장 큰 가용 공간에 할당하는 것이다. 크기순으로 정렬되어
있지 않으면 전 리스트를 검색해야 한다.
이 기법은 외부 단편화(external fragmentation) 문제가 있다. 프로세스들이
기억 장치에 적재되고 제거될 때, 가용기억 공간은 작은 조각으로 나누어진
다. 외부 단편화는 전체 기억 공간이 한 작업이 필요로 하는 공간을 만족시
키지만 연속되어 있지 않는 것을 말한다. 그림 9-4에서 (b)는 124k 용량의
새로운 작업이 들어오면 전체 메모리 용량은 124k를 넘지만 그것이 분할되어
있기 때문에 작업을 수행할 수가 없다. 이러한 단편화는 가변 분할 할당의
가장 큰 단점이다.
9.1.5 압축(Compaction)
기억 장치 내에 흩어져 있는 공백들이 상당한 양의 메모리를 차지하고 있
는 경우가 있다. 때때로 하나의 작업이 일정 양의 기억 장치를 요청할 때, 모
든 공백의 합은 그 작업이 요구하는 기억 장치 보다 클지라도 각 공백은 그
작업을 수용할 만큼 크지 않은 경우가 있다. 메모리 압축(Compaction)은 사
용되고 있는 기억 장치의 공간을 주 기억 장치의 한쪽 끝으로 옮기는 것이
다. 이렇게 하면 가변 분할 기법에서 발생하는 수많은 작은 공백들 대신 하
나의 커다란 공백이 남게 된다. 이제 모든 이용 가능한 메모리는 연속해 있
으므로 대기중인 작업이 저장 장치의 압축으로 생긴 하나의 공백보다 작으면
그 작업을 실행할 수 있다. 이것을 "쓰레기 수집(garbage collection)"이라고
도 부른다.
9.2 가상 메모리 관리 기법
가상 메모리란 용어는 특정 컴퓨터 시스템의 주 기억 장치 용량보다 훨씬
더 큰 저장용량을 지정할 수 있도록 한 능력과 연관되어 있다. 가상 메모리
장치를 구현하는 두가지 일반적인 방법은 페이징과 세그먼테이션이다. 어떤
가상 저장 장치 시스템은 두 가지 기법 중 어느 하나를 사용하나 어떤 시스
템에서는 두 가지 방법을 모두 사용하고 있다.
9.2.1 페이지 기법
기억 장치 공간을 분할할 때 블록의 크기가 일정할 경우 그것을 페이지
(page)라고 하며 그와 관련된 가상 기억 장치 구성을 페이징 기법이라 한다.
그림 9-5는 페이지 기법에서의 주소변환을 나타낸다. 페이징 시스템의 가상
주소는 (p, d)로 구성된다. p는 가상 저장 장치 내에서 참조될 항목이 속해있
는 페이지 번호이며, d는 p내에서 참조될 항목이 위치하고 있는 곳의 변위
(displacement)이다.
그림 9-5 페이지 기법에서 주소 변환
만일 어느 프로세스가 현재 참조하는 페이지의 주 기억 장치에 있다면 그 프
로세스는 수행될 수 있다. 페이지는 블록 단위로 보조 기억 장치로부터 주
기억 장치로 옮겨져서 페이지 프레임이라 불리는 주 기억 장치의 한 블록에
자리잡게 되며 각 페이지 프레임은 들어오는 페이지와 같은 크기이다. 페이
지 기법의 동적 주소 변환은 다음과 같이 진행된다. 수행중인 프로세스가 가
상 주소 v=(p, d)를 참조한다. 프로세스의 수행을 시작하기 전에 운영체제는
주 기억 장치 내의 페이지 사상표의 주소를 페이지 사상표 시작점 레지스터
에 싣는다. 페이지 사상표의 시작주소 b를 페이지 번호 p에 더하여 페이지
사상표 내의 p에 관한 항목의 주 기억 장치 주소 b+p를 얻는다. 이 항목은
페이지 프레임 p`가 가상 페이지 p에 대응함을 가리킨다. 이어 p`를 변위 d
와 접속하여 실주소 r을 얻는다.
9.2.2 세크먼트 기법
기억 장치 공간을 분할할 때 블록의 크기가 서로 다를 경우 세그먼트라 하
며 그와 관련된 가상 기억 장치의 구성을 세그먼트 기법이라 한다. 가변 분
할 다중 프로그램 기법에서는 수행 프로그램이 실제 기억 장치의 연속된 블
록에 있어야 한다는 제약이 있다. 세그먼트 기법은 이런 제약을 없애고 프로
그램 및 데이터가 여러 개의 분리된 실제 기억 장치 블록을 차지할 수 있도
록 한다. 각 블록은 같은 크기일 필요는 없으나 연속된 메모리로 구성되어야
한다. 그러나 서로 다른 블록이 인접할 필요는 없다. 세그먼트 기법에서는 각
사용자 공간이 다른 사용자에게 침해당하지 않도록 보호하는 문제가 더욱 복
잡하다. 한 쌍의 경계 레지스터(bound register)로서는 불충분하다. 가상 주소
는 순서를 가진 쌍 v=(s, d)로 표시되며 s는 참조될 항목이 속해 있는 가상
메모리에서 세그먼트 번호이며, d는 세그먼트 s내에서 참조될 항목이 위치해
있는 곳까지의 변위이다. 한 프로세스는 현재 참조하는 세그먼트가 메인 메
모리 내에 있어야만 수행이 가능하다. 전체 세그먼트가 하나의 단위로서 보
조 메모리에서 주 메모리로 이동된다. 세그먼트 내의 모든 메모리는 주 기억
장치 내의 연속된 공간에 들어가게 된다. 새로 들어오는 세그먼트는 그 세그
먼트를 수용할 수 있을 만큼 충분히 큰 주 메모리의 연속된 메모리 어느 곳
에나 들어갈 수 있다. 세그먼트 기법에 사용되는 배치 전략(placement
strategy)은 주로 최초 적합(first-fit)과 최적 적합(best-fit)이다. 그림 9-6은
세그먼트 기법하에서 동적 주소 변환을 나타낸다
그림 9-6 세그먼트 기법에서 주소 변환
현재 수행중인 프로세스가 가상주소 v=(s, d)를 참조한다. 세그먼트 번호 s
는 세그먼트 사상표 시작점 레지스터에 있는 시작 주소 b와 더해져 세그먼
트 사상표 내의 세그먼트 s에 해당하는 항목의 실제 메모리 주소 b+s가 만
들어진다. 세그먼트 사상표에는 그 세그먼트가 시작되는 주소 s`이 있으며,
변위 d를 s`에 더하여 가상주소 v=(s, d)에 해당하는 실 주소 r=d+s`이 형성
된다.
9.3 윈도우즈 95의 메모리 관리
윈도우즈 95의 메모리 모형은 세그먼트형과 플랫형이 있다. 둘 중에서는
플랫형이 더 효율적이라고 할 수 있지만 윈도우즈 95는 호환성 때문에 두 가
지 방법을 다 유지한다. 윈도우즈 3.1 에서는 세그먼트형 메모리 구조를 사용
한다. 윈도우즈 95 또한 16비트 응용 프로그램을 위하여 이 모델을 사용한다.
9.3.1 윈도우즈의 세그먼트화된 메모리 구조
세그먼트화된 메모리는 주소를 가지기 위해서 두 개의 16비트 레지스터를
사용한다. 실제 모드에서 프로세서는 세그먼트와 오프셋을 사용한다. 세그먼
트는 길 번호라고 생각하고, 오프셋은 그 길에서의 특정한 집이라고 생각하
면 된다. 프로세서는 8086을 위해서는 20비트 주소를, 80286을 위해서는 24비
트 주소를 만들어내기 위해서 세그먼트를 오프셋과 결합시킨다. 프로세서는
세그먼트 레지스터의 내용을 4비트 오른쪽으로 밀어서 변환하게 된다. 20비
트 주소는 1MB의 주소 공간이 되어 우리가 보통 아는 도스에 쓰이게 된다.
물론 응용 프로그램에 대해 중요한 것은 운영 체제가 아니라 응용 프로그램
자신이 사용 메모리를 제어한다는 것이다.
윈도우즈는 실제 모드에서 작동하지 않고 보호 모드를 사용한다. 보호 모
드에서의 세그먼트 메모리 구조에 대한 이론은 실제 모드에서와는 조금 다르
다. 그림 9-7은 보호 모드의 세그먼트화된 메모리를 보여주고 있다.
더 이상 세그먼트:오프셋 쌍을 사용하지 않는 실렉터:오프셋(selector:
offset) 쌍을 사용한다는 데 유의한다. 세그먼트와 실렉터 사이에는 큰 차이
가 있다. 세그먼트는 메모리에서의 실제 위치를 나타내고, 실렉터는 기술 테
이블(descriptor table)에서의 한 위치를 나타낸다. 지시 테이블은 메모리에서
의 실제 위치를 포함한다.
그림 9-7 세그먼트화된 메모리 구조
기술 테이블은 무슨 일을 하는지 알아보자. 프로세서가 메모리에 접근해야
할 필요가 있을 때, 응용 프로그램은 프로세서에게 두 개의 값을 보낸다. 첫
번째 값은 프로세서가 메모리를 열기 위한 실렉터이며 두 번째 값은 그 범위
안에서의 정확한 위치인 오프셋이다. 실렉터를 이용해 운영 체제는 시스템의
전 메모리에 대한 통제권을 확보할 수 있다. 응용 프로그램은 그 메모리를
여는 열쇠를 사용해야 하는데, 프로세서만이 그 메모리의 물리적 위치를 알
고 있기 때문에 시스템의 보안은 꽤 안전해진다.
실제로 실렉터는 운영 체제에 몇 가지 보안 정보를 제공하는 일을 한다.
실렉터의 비트 0번과 1번은 운영 체제에게 우선 등급을 알려줍니다. 여기서
는 0은 접근의 우선 순위가 가장 높다는 것이고 3은 우선 순위가 가장 낮다
는 것이다. 윈도우즈 95에서 돌아가는 모든 응용 프로그램은 우선 등급 3에
서 작동하고 단지 운영 체제만이 등급 0에서 작동한다. 비트 2번에는 윈도우
가 메모리에 접근하기 위해 사용해야 할 테이블의 개수가 들어간다. 여기에
는 전역 기술 테이블(Global Descriptor Table)과 지역 기술 테이블(Local
Descriptor Table) 두 개의 기술 테이블이 있다. 1이라는 값은 LDT를 선택하
는 것이다. 윈도우즈는 모든 공통 자료에 대해 GDT를 사용하고 있다. 시스
템 전체를 위해서는 오직 하나의 GDT만이 있으며, 각 응용 프로그램 또한
비공개적인 자료에 대한 자신만의 LDT를 갖고 있다. 마지막으로, 3비트에서
15비트까지는 테이블 안으로 들어가는 실제 자료를 갖고 있다.
윈도우즈 95는 응용 프로그램의 보안 등급이 그 프로그램이 보고자 하는
데이터에 접근할 만큼 높은 등급인지 확인한다. 그 다음에는 기술 테이블에
서 지정된 위치에 있는 베이스 주소값(세그먼트에 대한 보호 모드의 용어)을
취하여 오프셋과 결합한 다음 요청된 데이터의 물리적 위치를 메모리에서 찾
게 된다.
세그먼트형 메모리 구조에는 몇 가지 문제가 있다. 특히 프로그래머에게
가장 큰 문제는 64KB 이하의 메모리만 할당할 수 있다는 것이다. 여기서 주
소는 실렉터와 오프셋으로 만들어진다는 것을 상기하자. 오프셋 레지스터는
16비트밖에 되지 않기 때문에 겨우 64KB 메모리밖에 다루지 못한다. 이것은
프로그래머가 각각 다른 64KB 메모리를 지시하는 여러 개의 실렉터들을 운
영하는 응용 프로그램을 써 주어야 한다는 것을 의미한다. 응용 프로그램이
더욱 더 많은 메모리를 사용할수록 이러한 실렉터 중에서 하나를 망가뜨릴
가능성이 커진다. 왜 16비트 윈도우 응용 프로그램이 엉클어져서 메모리의
엉뚱한 부분에 쓰기 작업을 하는지 쉽게 이해할 수 있다. 그 결과 대부분은
참담하게 컴퓨터가 다운되는 것으로 끝나버린다. 아이콘, 대화상자, 메뉴, 시
스템 자원 등 뭐든 간에 이런 것들은 윈도우즈가 사용할 수 있도록 메모리의
어딘가로 가야만 한다. 마이크로 소프트가 처음 윈도우 3.0을 설계할 때는 모
든 자원들이 보통 프로그래머들이 근거리 힙(near heap)이라고 일컫는 64KB
의 전역 메모리에 들어가는 것으로 했다. 근거리 힙을 사용하면 특히 시간을
잡아먹는 화면 그리기 작업과 같은 경우에 실행 속도를 증가시킨다. 운영 체
제가 계속해서 여러 개의 64KB 메모리 덩어리에 접근하지 않아도 되기 때문
이다. 아이콘 하나가 766바아트 크기라는 것을 생각하면 64KB 힙은 금방 꽉
차게 된다.마이크로소프트는 윈도우 3.1에 두 개의 힙을 마련했다. 그 첫 번
째인 GDI 힙에는 아이콘과 기타 그래픽 자원이 들어있다. 또 다른 하나인
USER 힙에는 비그래픽 자원인 대화상자와 같은 것이 들어있다. 64KB 힙이
두 개가 되었어도 윈도우 3.1은 메모리 부족 문제가 있었다.
9.3.2 윈도우즈의 플랫 메모리 구조
80386 이상의 프로세서에 의해 지원되는 플랫 메모리 구조를 살펴보자. 운
영체제가 프로세서를 이 모드에 두게 되면, 결론적으로 모든 것이 똑같은 세
그먼트를 사용하게 된다. 프로세서에서 세그먼트화가 없어진 것은 아니지만
운영 체제는 이러한 기능을 무시한다. 프로그래머는 더 이상 세그먼트 레지
스터에 대해 걱정할 필요가 없다. 단지 주소만이 문제가 된다.
(1) 주소 찾기
세그먼트화 기법 아래에서는 프로세서가 실렉터의 기술 테이블을 통해서
메모리 통제를 유지했다. 응용 프로그램은 64KB 메모리를 여는 열쇠로서 실
렉터를 사용했다. 플랫 주소 모드는 세그먼트형보다 훨씬 더 많은 융통성을
제공한다. 그림 9-8은 플랫 메모리 구조를 나타낸다.
그림 9-8 플랫 메모리 구조
그림 9-8에 나타나 있는 바와 같이 두 단계의 4 KB 테이블을 이용해서 32
비트 가상 주소를 물리적 페이지 및 페이지내 오프셋에 효율적으로 매핑시킨
다. 각 32비트 주소에는 세 개의 항목이 있다. 각 항목은 플랫 메모리형 하에
서 프로세서에 의해 주어지는 하나의 보호 등급에 해당한다. 프로그래머는
응용 프로그램을 작성할 때 이러한 항목에 대해 신경 쓸 필요가 없다 해도,
운영체제와 프로세서는 그것을 잘 알아야 한다. 그 첫 번째 항목은 비트 22
번부터 31에 있다. 이것은 페이지 테이블 디렉토리에 있는 항목을 가리킨다.
세그먼트 구조와 아주 유사하게 플랫 메모리형에서는 응용 프로그램에게 실
제 위치가 아니라 특정 조각의 메모리로 가는 열쇠를 준다. 올바른 페이지
테이블을 찾는 것은 주소를 찾는 첫 단계이다.
세그먼트화된 메모리형에서 응용 프로그램은 64KB 단위 안에서 메모리를
할당해야만 했었다. 만일, 이것이 더 큰 할당을 필요로 한다면, 그 응용 프로
그램은 여러 덩이들을 요구해야 한다. 페이지 테이블은 이런 문제를 해결한
다. 즉, 응용프로그램은 그것이 필요로 하는 총 메모리 양을 요구하고 윈도우
즈는 그것을 제공한다.
윈도우가 지정된 페이지 테이블을 찾으면, 지정된 페이지를 찾기 위해서
비트 21에서 12까지의 주소 값을 사용한다. 모든 응용 프로그램은 최고 4GB
의 메모리를 사용할 수 있다. 윈도우에서 페이지에 대해 비트수가 10개라는
것을 알 수 있다. 또한 페이지 테이블 목록의 항목들에 대해서도 10 비트가
할당되어 있으므로 페이지 테이블 목록의 210 항목페이지 테이블 210개
4KB 페이지를 계산해보면 바로 4GB가 된다. 윈도우가 특정 페이지 테이블
안에 있는 특정 페이지를 찾아 낸 후에는 거기서 찾은 주소를 취하여, 주소
의 비트 11번에서 0번의 오프셋에 더한다. 이 12비트로 응용 프로그램은
4KB 페이지 내에서 어떤 바이트도 선택할 수 있게 된다. 이 칩의 CR3 레지
스터는 디렉토리 페이지를 가리키는 포인터를 저장하므로, 윈도우즈는 한 프
로세스에서 다른 프로세스로 전환할 때 CR3를 갱신한다.
(2) 가상 메모리 관리 기법
4KB 페이지를 사용한다는 것은 메모리 관리에 있어서는 많은 유리한 점들
을 제공한다. 첫째로 이런 테이블들을 사용하는 주목적은 어떤 것을 가리키
는 것이다. 비트 31에서 12까지가 하는 일이다. 페이지 테이블 디렉토리에서
그들은 페이지 테이블을 가리킨다. 페이지 테이블에서 그들은 원래 주소에서
오프셋과 결합된 물리적 주소를 내포한다.
비트 6번에는 D(dirty) 비트가 들어간다. 응용 프로그램이 한 페이지 분량
의 메모리 내용물을 변경할 때마다, 윈도우즈는 D 비트를 변경한다. 이것은
프로세서가 디스크에 내용 변화를 저장하지 않았다는 것을 상기시키는 것이
다. 만일 프로세서가 몇 가지 다른 목적을 위해 이쪽의 물리적 메모리를 사
용하기를 원한다면 이것은 기존 페이지를 윈도우즈 스왑 파일에 기록해야
한다. 비트 5번은 A(access) 비트 부분이다. 응용 프로그램이 4KB의 메모리
를 쓰고, 읽고, 실행시킬 때마다 윈도우즈는 이 비트의 상태를 변경하게 된
다. 비트 2번에는 U/S(User /Supervisor) 비트가 들어간다. 이것은 80386의
보호 체계의 일부분이다. 만일 비트가 0으로 맞춰진다면 여기엔 관리자 페이
지가 들어간다. 응용 프로그램은 절대 관리자 페이지에 접근할 수 없다. 관리
자 페이지는 운영 체제에 속하기 때문이다. 다른 한편으로, 1에 비트를 맞추
면 이것은 사용자 페이지를 의미한다. 응용 프로그램은 그들에게 속하는 어
떠한 사용자 페이지에도 접근할 수 있다. 비트 1은 R/W (Read/Write) 비트
이다. 여러분은 응용 프로그램이 어떤 페이지에 있는 문자를 덮어쓰기를 원
하지 않을 것이다. 이 비트를 0에 맞추면 응용 프로그램이 그렇게 하는 것을
막는다. 데이터 페이지가 1에 맞춰지면 코드 페이지들도 0에 맞춰진다. 비트
0에는 P(present) 비트가 들어간다. 윈도우즈 95는 페이지 물리적인 메모리에
있는지 없는지를 알 필요가 있다. 응용 프로그램은 스왑 파일에 있는 디스크
메모리 페이지를 사용할 수 없다. 페이지는 반드시 물리적 메모리에 있어야
만 한다. 만일 응용 프로그램이 디스크 상에 있는 한 페이지의 메모리에 접
근을 요구한다면, 프로세서는 예외 상황이라고 알린다. 이 예외 상황은 윈도
우즈에게 응용 프로그램이 이것에 접근할 수 있도록 이것이 디스크 상에 있
는 임시 파일로부터 그 페이지를 회복해야 한다는 것을 말해준다.
윈도우즈 3.1에서는 고정된 크기의 가상 메모리를 지정해야 했지만, 윈도우
즈 95는 필요한 메모리 양만큼만 자동으로 가상 메모리를 잡는다. 일반 사용
자는 윈도우즈에서 가상 메모리 설정을 관리 옵션을 선택하면 무난하게 사용
할 수 있다. 이 옵션은 기본적으로 C:드라이브를 사용한다. 만약 C:드라이브
의 빈 하드 디스크 공간이 부족하면 별도의 드라이브를 지정한다. 이때는 사용자가 가상 메모리 설정을 선택하여 특정한 드라이브와 가상 메모리로 사용할 공간을 설정하면 된다. 가상 메모리의 설정을 위해 시스템 등록 정보의 성능 항목을 선택한다. 가상 메모리 항목을 선택하면 그림 9-9와 같은 대화 상자가 나타난다. 가상 메모리 설정을 원하는 드라이브와 가상 메모리에 할당하고자 하는 양을 선택한다.
그림 9-9 가상 메모리 설정
9.4 디스크 관리
대부분의 컴퓨터 시스템은 주 기억 장치를 지원하기 위하여 보조 메모리를
사용한다. 디스크 관리는 디스크를 최적화 하거나 시스템의 성능을 향상시키
는 역할을 한다. 디스크 검사는 디스크의 물리적, 논리적 오류를 수정해주는
프로그램으로 도스의 SCANDISK와 CHKDSK의 향상된 기능을 가지고 있고,
디스크 조각 모음은 디스크의 조각을 하나로 묶어주어 디스크의 성능을 향상
시켜준다.
9.4.1 디스크 검사
디스크 검사는 디스크 공간 늘림이나, 더블 스페이스로 압축한 디스크를
포함한 모든 디스크의 상태 검사를 하기 위한 기능이다. 디스크 검사를 통해
파일 구성에 대한 메모리 관리 및 다른 데이터 구조에 관련된 논리적 오류와
불량 섹터와 같은 물리적 오류를 찾아내고 수정할 수 있다. 디스크 검사 프
로그램은 윈도우즈의 시스템 보조 프로그램의 시스템 도구에서 선택할 수 있
다. 디스크 검사 프로그램에서 먼저 검사할 디스크를 선택한다.
그림 9-10 디스크 검사 프로그램
디스크 검사 프로그램에서 테스트 종류를 표준과 정밀 중에서 선택한다. 표
준은 파일과 폴더의 오류를 검사하는 것이고 정밀은 표준 테스트를 수행한
다음 디스크 표면까지 검사하는 것이다. 일반적인 경우 표준을 선택한다. 오
류 자동 수정을 설정하면 검사도중 오류가 자동 수정된다. 검사가 끝나면 오
류 정보 및 총 디스크 공간, 불량 섹터, 폴더 수, 숨겨진 파일, 사용할 수 있
는 공간 등의 디스크 정보를 보여준다.
디스크 검사의 고급 버턴을 누르면 디스크 검사에 관련된 여러 옵션을 설
정할 수 있다. 그림 9-11은 디스크 검사의 고급 옵션을 나타낸다. 요약 정보
표시 항목은 디스크 검사 결과를 나타내는 정보 화면을 언제 나타낼지를 결
정한다. 디스크 검사 프로그램은 디스크 검사가 끝날 때마다 그 결과를 디스
크 검사를 실행한 드라이브의 최상위 폴더에 SCANDISK.LOG라는 이름의
파일로 저장하는데, 각 옵션에 따라서 기록을 바꾸거나 추가하거나 기록 파
일을 만들지 않는다. 교차 연결된 파일과 손실된 파일 조각은 파일 오류 중
의 한 가지인데 여기서는 이를 수정하는 방법을 지정한다. 파일 검사 항목은
그림 9-11 디스크 검사의 고급 옵션
파일의 잘못된 날짜와 시간 및 파일 이름을 검사한다. 호스트 드라이브 우선
검사는 디스크가 압축된 경우 압축 안된 드라이브를 먼저 검사하는 것이다.
9.4.2 디스크 공간 정리
디스크 조각 모음은 사용한 디스크에 수록된 파일의 위치를 재정렬함으로
써 디스크의 접근 속도를 향상시키는 기능이다. 파일을 저장하기 위해 디스
크에 할당된 공간은 파일을 지우고 새로 만들기를 반복하게 되면 쓸 수 없는
작은 공간들이 존재하는데 이러한 현상을 디스크의 단편화라고 한다. 이러한
단편화는 파일을 찾는데 많은 시간을 낭비하게 하고 프로그램이 작동이 잘
안되는 경우가 있다. 따라서 디스크 조각 모음은 디스크 상에 흩어져 있는
파일들을 순차적으로 위치시켜 파일을 찾는 시간을 줄일 수 있는 중요한 역
할을 하므로 주기적으로 실행하는 것이 좋다. 디스크 조각 모음을 시작하기
위해서 먼저 드라이브를 선택한다. 그림 9-12는선택한 드라이브에 대하여 디
스크 조각 모음이 필요한지에 대한 정보를 나타낸다.
고급 버턴을 눌러 고급 옵션을 선택한다. 그림 9-13은 디스크 조각 모음의
고급 옵션을 나타낸다.
그림 9-12 디스크 조각 모음
그림 9-13 디스크 조각 모음의 고급 옵션
여기서는 디스크 조각 모음 대상을 선택할 수 있고 조각 모음을 실행하기 전
에 드라이브의 오류를 검사할 수 있으며, 설정한 옵션의 저장 유무를 선택할
수 있다. 파일의 단편화 정도에 따라 적당한 옵션을 선택하면 된다. 시작 버
턴을 누르면 그림 9-14와 같이 조각 모음이 실행되면서 진행 정도를 알려주
는 막대 그래프가 표시된다. 만일 조각 모음을 하는 중에 그 드라이브를 사
용하게 되면 처음부터 다시 시작하게 되므로 가능하면 조각 모음 중에는 해
당 드라이브를 사용하지 않도록 한다.
그림 9-14 디스크 조각 모음의 진행
자세히 단추를 누르면 조각 모음 과정을 클러스터 배치와 함께 볼 수 있는
데, 이 경우 얼마나 많은 클러스터가 단편화되었는지를 확인할 수 있기 때문
에 시각적으로 많은 정보를 얻을 수 있다. 그러나 디스크 조각 모음 속도는
떨어질 수 있다.
9.4.3 디스크 백업
백업은 파일을 분실하거나 하드 디스크가 고장났을 때를 대비하여 파일을
보호하기 위해 실행한다. 적은 양의 데이터를 보관하기 위해 사용할 수도 있
지만 대부분은 많은 양의 데이터를 보관하고자 할 때 사용한다. 도스 6.0에서
부터 도스 자체적으로 백업 프로그램을 지원하였는데 윈도우즈 95에서도 윈
도용 프로그램으로 제공되고 있다. 이 프로그램은 원래 테이프 백업 장치를
지원하고 있으나 플로피 디스크 드라이브도 사용할 수 있다. 그림 9-15의 백
업 프로그램을 통해서 백업하고자하는 파일을 선택할 수 있다.
화면에는 탐색기와 유사한 창이 나오고 원하는 드라이브나 폴더, 혹은 파
일을 체크 표시를 통해서 선택할 수 있다. 화면의 아래쪽 상태 표시줄에는
선택된 파일의 크기나 파일의 개수가 표시된다. 다음 단계로 넘어가는 다음
단계 버턴을 누르면 실제로 백업할 내용을 저장할 매체를 선택하게 된다. 백
업은 주로 테이프 백업 드라이브나 플로피 디스크를 사용하며, 원하는 경우
특정한 하드 디스크 드라이브의 폴더로도 백업이 가능하다. 백업할 위치를
그림 9-15 백업 프로그램
지정하고 나서 백업 시작 버턴을 누른 뒤 백업 제목을 백업 세트 이름표에
입력한다. 이때는 나중에 이름만으로도 쉽게 알아볼 수 있도록 정하는 것이
좋다. 이름을 지정하고 나면 백업이 시작되고 백업 중인 내용이 화면에 표시
된다. 이 백업 상태 표시창에서는 전체에 대한 백업의 진행 상황과 경과된
시간 등을 보여 준다. 백업의 기능을 설정하기 위해서 설정 메뉴를 선택한다.
거기에는 파일 골라내기, 끌어서 놓기, 옵션이 있다. 파일 골라내기에 대한
대화상자는 그림 9-16에 나타나 있다.
파일 골라내기는 데이터의 범위에 따라 파일을 제외시킨다. 예를 들어 이
번 주의 파일만을 백업하고자 한다거나 파일 종류에 따라서 백업에 대한 선
택을 가능하게 한다. 사용자가 제외시키기 위해 선택할 수 있는 모든 파일의
종류는 그림 9-16의 위의 목록 상자에 나타나고 백업할 때 제외될 파일들은
아래 상자에 나타난다. 사용자는 네 개의 버턴을 사용하여 파일 종류를 제외
시키거나 포함시킬 수 있다. 전체 선택은 파일 형식 목록에 있는 모든 파일
을 선택한다. 제외는 선택된 파일 형식을 제외할 파일 형식 목록에 위치시킨
다.
그림 9-16 파일 골라내기/파일 형식
삭제를 이용하면 제외할 파일 형식에서 파일 형식을 제거할 수 있다. 끝으로
기본값 복원 버턴은 제외 파일 형식 목록에서 파일 형식을 모두 제거한다.
끌어 놓기 대화 상자는 그림 9-17에 나타나 있다. 이 안에는 세 가지 항목이
있다. 처음 항목은 백업 프로그램이 시작될 때 자동으로 최소화되도록 해 준
다. 두 번째 항목은 백업하기 전에 확인하는 대화상자가 보이도록 한다. 세
번째는 백업이 끈나면 자동으로 프로그램을 끝내도록 한다. 프로그램의 기본
값으로 이들 세 항목은 모두 체크되어 있다.
그림 9-17 끌어놓기 대화상자
옵션 대화상자에서 일반 항목은 그림 9-18과 같이 두 개의 선택상자가 있다.
첫 번째는 백업이 끝나면 소리를 내도록 하는 것이다. 예를 들어, 테이프 하
나를 다 마치면 백업은 삐하는 소리를 내고 다른 테이프를 넣으라고 요청한
다. 이전 상태 기록 파일에 겹쳐쓰기 옵션은 백업이 이전 정보를 저장하지
않도록 한다. 이전의 백업 상태를 유지하면서도 디스크 공간을 차지하지 않
게 한다.
그림 9-18 옵션 대화상자의 일반 항목
백업 항목은 그림 9-19에서 보듯이 세부분으로 나뉜다. 작업 완료후 백업 프
로그램 종료는 말 그대로 백업 작업이 끝나면 바로 백업 프로그램을 종료하
게 된다. 백업 항목의 백업 종류에는 두 개의 라디오 버턴이 있다. 전체는 드
라이브의 선택된 파일을 모두 백업하고 싶을 때 선택한다. 추가는 차등 백업
을 하게 한다. 백업 프로그램은 백업 세트로부터 기록 등록 정보가 있는 비
트 세트를 가진 파일만 골라 백업하게 된다. 백업 프로그램은 사용자의 파일
을 백업할 때마다 이 등록 정보를 초기화시킨다. 파일을 변경하면 윈도우즈
는 기록 등록 정보를 설정한다. 이 등록 정보의 상태를 통해 백업은 그 파일
을 마지막으로 디스크에 저장한 이후로 파일이 바뀌었는지 알 수 있게 된다.
그림 9-19 옵션 대화상자의 백업 항목
백업에는 여러 가지 옵션을 설정 메뉴의 옵션 항목을 선택하여 지정할 수 있
는데, 플로피 디스크의 포맷 방법이나 백업의 방법을 지정할 수 있다. 백업
종류에는 백업할 때의 갱신된 내용만 백업을 수행할 것인지, 아니면 전체를
다시 백업할 것인지를 지정이 가능하며, 백업이 끝나고 나서 자동으로 비교
작업을 수행하게 할 수 있다.
이렇게 해서 저장된 백업 내용을 나중에 다시 복원시키기 위해서는 복원
항목을 사용하여 마찬가지 방법으로 백업 세트를 지정하여 복원할 수 있다.
또한 비교 항목을 사용하면 백업한 내용과 현재의 내용을 비교해서 갱신된
내용을 확인할 수 있다. 그림 9-20은 복원에 대한 설정 항목을 나타내는 대
화상자이다. 첫 번째 항목은 복원을 마치면 자동으로 프로그램을 종료한다.
복원 위치에서 원래 위치는 원래 파일이 복사되었던 디레토리와 같은 곳을
선택하게 된다. 선택한 위치를 사용하면 다른 경로에 복원시킬 수 있다. 모든
파일을 한 디렉토리에 집어넣으려면 선택한 위치, 단일 디렉토리를 선택하면
된다. 고급 옵션은 백업 프로그램이 파일을 복원하는 방식을 바꿀 수 있다.
그림 9-20 옵션 대화상자의 복원 항목
9.4.4 디스크 공간 확장
디스크 공간 늘림은 하드 디스크 용량이 작은 사용자들에게 유용한 기능이
다. 용량이 부족한 하드 디스크를 압축하여 많은 공간을 이용할 수 있도록
하는 프로그램이다. 이것은 기존의 MS-DOS의 'double space', 'drvspace'와
같은 기능으로 더욱 향상된 기능을 제공하면서 기존의 압축 드라이브와도 호
환성을 유지하고 있다. 디스크를 압축하면 파일을 더 작은 공간에 많이 위치
시키기 때문에 파일 접근 속도를 향상시키고, 파일을 클러스터 단위로 저장
하지 않기 때문에 디스크를 효율적으로 사용할 수 있는 부가적인 효과도 있
다. 드라이브 압축을 선택하면 그림 9-21의 드라이브 압축 전 및 압축 후의
용량을 그래프로 보여준다.
압축 정보 화면에서 옵션 버턴을 눌러 압축 옵션을 선택할 수 있다. 옵션
에서는 디스크 공간 늘림을 통해서 만들어질 새로운 드라이브의 이름과 사용
가능한 공간을 지정할 수 있으며, 호스트 드라이브 자체를 숨기는 기능도 제
공한다. 모든 설정이 끝났다면 시작 단추를 눌러 디스크를 압축하면 된다.
그림 9-21 드라이브 압축의 대화 상자
9.4.5 탐색기를 통한 디스크 관리
윈도우즈 탐색기를 이용하면 여러 가지 디스크 관리를 편하게 할 수 있다.
윈도우즈 탐색기에서 마우스의 오른쪽 버턴을 클릭하면 디스크의 복사, 디스
크 포맷, 디스크 등록 정보를 볼 수 있다.
(1) 디스크 복사 작업
디스크 복사를 하기 위해서는 탐색기의 왼쪽 창에서 원하는 디스크 명을
선택한 후 마우스 오른쪽 버튼을 클릭하면 디스크 복사라는 메뉴가 있다. 이
를 선택하고 복사할 디스크의 원본 및 복사될 대상을 선택한 후 확인창의 시
작 버튼을 클릭하게 되면 원본을 읽은 후 대상 디스크에서 넣어 준다. 원본,
대상 디스크의 드라이브 명을 변경할 경우는 마우스로 원하는 드라이브 명에
클릭해 주면 된다. 그림 9-22는 B:에서 B:로 복사하는 경우이다.
(2) 디스크 포맷 작업
디스크 포맷 역시 디스크 복사처럼 탐색기 내의 왼쪽 창에서 포맷을 원하
그림 9-22 디스크 복사
는 디스크 드라이브 명을 선택한 후 마우스 오른쪽 버튼을 누르게 되면 포맷
이라는 메뉴가 있는데 이를 선택하면 된다. 선택하면 그림 9-23과 같은 대화
상자가 나오게 된다.
그림 9-23 디스크 포맷
하나씩 살펴보면 먼저 대상 드라이브 명을 선택할 수 있으며, 포맷 종류에서
는 빠른 포맷, 보통 포맷, 시스템 파일 복사까지 하는 포맷을 고를 수 있다.
옵션 항목에서는 디스크 라벨 명을 직접 사용자가 입력할 수 있으며, 디스크
이름을 아예 붙이지 않는 경우에는 라벨 창에 입력을 하지 않거나 이름 선택
항에 체크 표시를 마우스로 해 주면 된다. 그 밑의 옵션은 포맷 후 작업에
대한 정보를 화면에 보여 주는 옵션이고, 밑의 항목은 시스템 항목에 복사해
주는 항목이다. 빠른 포맷 옵션을 쓰게 되면 디스켓의 내용이 완전히 지워지
게 되어 UNDELETE를 할 수 없으니 신중히 선택해야 한다.
(3) 디스크 등록 정보
각 디스크 드라이브 명에서 마우스 오른쪽 버튼을 누르면 단축메뉴가 나타
나고 이 단축메뉴에서 메뉴의 제일 마지막의 등록 정보 부분을 선택하면 그
림 9-24와 같은 창이 열리게 된다.
그림 9-24 디스크 등록 정보
먼저 현재 디스크의 라벨명과 디스켓의 종류, 하드 디스크의 용량(사용량과
남은 양)이 색깔로 표시된다. 도구 창으로 전환하면 SCANDISK(디스크 표면
검사)와 디스크 단편화 제거 작업과 백업을 할 수 있는 창이 생긴다. 주목할
만한 사항은 여기서 바로 SCANDISK를 쓸 수 있다는 점이다. 이 기능으로
사용자는 더 이상 스캔 디스크까지 찾아서 실행할 필요 없이 디스크 관리에
서 쉽게 사용할 수 있게 되었다.
실 습
1. 3½ 플로피 디스크로 디스크 조각 모음을 해보자.
2. 3½ 플로피 디스크로 디스크 공간 늘림을 해보자.
3. 3½ 플로피 디스크로 디스크 검사를 해보자.
4. 윈도우즈 탐색기를 이용하여 3½ 플로피 디스크를 포맷해보자.
5. 윈도우즈 탐색기를 이용하여 3½ 플로피 디스크를 복사해보자.
문 제
1. 논리 주소와 실제 주소의 차이점을 설명하시오.
2. 다음의 할당 알고리즘을 설명하시오.
(1) 최초 적격(first-fit)
(2) 최상 적격(best-fit)
(3) 최악 적격(worst-fit)
3. 내부 단편화 (internal fragmentation)와 외부 단편화 (external
fragmentation) 사이의 차이점을 설명하시오.
4. 페이지 기법의 주소 변환 과정을 설명하시오.
5. 세그먼트화된 메모리 구조의 단점을 설명하시오.
6. 윈도우즈 95의 플랫 메모리 구조를 설명하시오.
7. 윈도우즈 95의 가상 메모리 관리 기법에 대하여 설명하시오.

Comments List