전체 글 1383

49_파일 할당 방법 (Allocation Method)

49_파일 할당 방법 (Allocation Method) 디스크의 직접 접근 특성이 파일의 구현에 융통성을 허용한다. 거의 모든 경우에 하나의 디스크에 여러 파일이 저장되며 이 파일들을 어떻게 디스크 공간에 배치해야 효율적으로 사용할 수 있을지 고민하게 된다. 디스크 공간을 할당 방법과 특성을 살펴 보자. [연속 할당 (Contiguous Allocation)] 연속 할당은 각 파일이 디스크 내에서 연속적인 공간을 차지하도록 요구 한다. 디스크 주소들은 디스크 상에서 선형 순서를 정의 한다. 이러한 순서를 따를 경우 단지 한 작업(job)이 디스크에 접근 한다고 가정하고 블록 b 다음에 블록 b+1을 접근 한다면 통상 헤드의 이동을 요하지 않는다. 헤드의 이동이 필요한 경우는 다음 섹터의 이동할 경우 이..

48_디렉토리 구현 (Directory Implementation)

48_디렉토리 구현 (Directory Implementation) 디렉토리를 구현하는 공간을 어떻게 할당하고 관리하는가? 파일 시스템의 효율, 성능과 이들 알고리즘 장단점을 알아 보자. [선형 리스트 (Linear List)] 디렉토리를 구현하는 가장 간단한 방법은 파일 이름과 자료 블록에 대한 포인터들의 선형 리스트를 디렉토리에 사용하는 것이다. 선형 리스트는 프로그래밍이 쉽지만 실행 시간이 길다. 새로운 파일을 생성하기 위해 먼저 디렉토리를 탐색하여 같은 이름의 존재 여부 확인 후 끝 부분에 새로운 항목을 첨가한다. 파일을 삭제 하려면 디렉토리에서 이름을 찾아 그 파일에 할당된 공간을 방출 한다. 파일 삭제 시간을 줄이기 위해 연결리스트를 사용할 수도 있다. 디렉토리 항목을 다시 사용하기 위해서는 ..

47_파일 시스템 구현 (File System Implementation)

47_파일 시스템 구현 (File System Implementation) 운영체제는 파일에 접근을 요구하는 프로세스를 위해 open(), close() 시스템 호출을 구현하며 디스크와 메모리 상에 존재하는 여러 구조가 파일 시스템을 구현하는데 사용된다. 디스크상의 구조는 다음과 같다. 부트 제어 블록(boot control block) : 볼륨 당 하나씩 존재하며 시스템이 그 파티션으로부터 운영체제를 부트 시키는 데 필요한 정보를 가지고 있다. 디스크가 운영체제를 가지고 있지 않다면 부트 제어 블록은 비어 있다. 부트 제어 블록은 일반적으로 한 파티션의 첫 번째 블록이다. UFS에서는 부트 블록, NTFS에서는 파티션 부트 섹터라 불린다. 볼륨 제어 블록 (volume control block) : 볼..

46_파일 시스템 구조 (File System Structure)

46_파일 시스템 구조 (File System Structure) 디스크는 여러 개의 파일을 저장하는데 다음 두 가지 중요한 특성을 가지고 있다. 디스크는 추가 장소를 사용하지 않고 재기록이 가능하다. 디스크로부터 한 블록을 읽고 변경하여 같은 장소에 재기록이 가능하다. 디스크에 있는 임의의 블록의 정보를 직접 접근 할 수 있다. 따라서 임의의 파일을 순차적 또는 무작위 방법으로 쉽게 접근 할 수 있다. 그리고 한 파일로부터 다른 파일로 전환이 요구 될 때 읽기-쓰기 헤드를 이동시키고 디스크가 회전하는 동안 기다리면 된다. 디스크는 한 번에 한 바이트를 전송하는 대신 입/출력 효율을 향상시키기 위해 메모리와 디스크간의 입/출력 전송은 블록 단위로 실행 된다. 각 블록은 하나 이상의 섹터이다. 디스크 드라..

45_파일 시스템 마운팅(File System Mounting)과 파티션 마운팅(Partition Mounting)

45_파일 시스템 마운팅(File System Mounting)과 파티션 마운팅(Partition Mounting) [파일 마운팅(File Mount)] 파일이 사용되기 전에 열리는 것처럼 파일 시스템은 프로세스들에 의해 사용되기 전에 장착(mount) 되어야 한다. 마운트 과정은 다음과 같다. 운영체제에게 장치 이름과 파일 시스템을 부착 할 수 있는 파일 구조 내의 위치가 주어진다. 일반적으로 마운트 포인트는 장착되는 파일 시스템이 부착될 비어있는 디렉토리이다. 운영체제는 장치가 유효한 파일 시스템을 포함하는지 확인 한다. 그 과정은 장치 드라이버가 장치 디렉토리를 읽고 디렉토리가 유효한 포맷을 가지고 있는지 확인하도록 요청 함으로써 이루어 진다. 운영체제는 파일 시스템이 지정된 마운트 포인트에 장착되..

44_디렉토리 구조 (Directory Structure)

44_디렉토리 구조 (Directory Structure) 디스크는 파일 시스템으로 사용 될 수 있다. 사용에 따라 하나의 디스크에 여러 개의 파일 시스템을 사용하거나 파일 시스템으로 일부분을 사용하고 나머지 부분은 스왑 공간이나 포맷되지 않은(raw) 디스크 공간으로 사용한다. 이러한 공간을 파티션(partition), 슬라이스(slice) 등 다양하게 부르기도 한다. 파일 시스템은 이러한 부분에 각각 생성될 수 있으며 각 부분은 볼륨(volume)이라고 불리는 좀 더 큰 구조를 형성하기 위해 합쳐질 수 있으며 여기에도 파일 시스템이 생성될 수 있다. 각 볼륨은 논리적인 가상 디스크(virtual disk)로 취급 될 수 있으며 볼륨은 한 개 이상의 시스템이 부팅되고 실행 될 수 있도록 여러 개의 운영..

43_파일 접근 방법 (Access Method)

43_파일 접근 방법 (Access Method) 파일이 사용될 때는 이 정보가 반드시 메모리로 적재되어야 한다. 어떤 시스템은 파일에 대해 단 하나의 접근 방법만 제공한다. IBM의 파일과 같은 다른 파일은 많은 접근 방법을 제공한다. [순차 접근 (Sequential Access)] 가장 간단한 접근 방법은 순차 접근이다. 디스크에 있는 파일을 마치 테이프를 재생하는 것처럼 접근한다. 여기서의 접근 방법은 저장되어 있는 레코드 순서로 접근함을 의미한다. 이 접근 모드는 가장 일반적이며 편집기나 컴파일러는 보통 이러한 형식으로 파일을 접근 한다. 파일에 대한 대부분은 읽기(read), 쓰기(write)이다. 읽기는 파일의 다음 부분부터 차례로 읽어 나가며 자동적으로 현재 위치를 추적하는 파일 포인터(o..

42_파일 개념 (File Concept)

42_파일 개념 (File Concept) 메모리는 통상적으로 프로그램과 자료를 영구 보관하기에는 용량이 작고 비용이 많이 들어가므로 보조 저장 장치를 사용한다. 컴퓨터에 부착되는 보조 저장 장치들은 여러 면에서 서로 다른 특징을 가지고 있으며 접근방법, 전송방법, 전용, 공용 등 다양한 특징이 있다. 또한 현재 컴퓨터의 구성 요소 중에서 가장 속도가 느리다. 운영체제의 입/출력 서브시스템의 중요 목적은 시스템에 대하여 간단한 인터페이스를 제공하고 각 장치들이 성능 병목을 피하기 위해 최대한의 동시성(concurrency)을 확보를 위한 입/출력의 최적화를 이루는 것이다. 파일은 운영체제에 의해서 물리 장치들로 매핑되며 이들 저장 장치들은 일반적으로 비휘발적 성질을 갖기 때문에 전원이 나가거나 시스템이 ..

41_커널 메모리 할당

41_커널 메모리 할당 사용자 모드에서 수행중인 프로세스가 추가적인 메모리를 요구하면 커널이 관리하는 자유 페이지 프레임의 리스트에서 페이지들이 할당된다. 페이지 교체 정책으로 인하여 물리 메모리 상에 흩어져 있는 자유 페이지들로 채워진다. 사용자 프로세스가 1바이트만 필요하더라도 프로세스가 한 페이지 프레임을 할당 받았으므로 내부 단편화가 발생 한다. 가상 메모리 프레임 할당 : http://sqlmvp.kr/140192392430 커널 메모리는 보통 사용자 모드 프로세스에게 할당해 주기 위한 페이지 리스트와는 별도의 자유 메모리 풀에서 할당 받는다. 이는 다양한 크기의 자료 구조를 할당 할 수 있으며 단편화에 의한 낭비를 최소화 한다. 또한 사용자 모드 프로세스에 할당되는 페이지들은 물리 메모리에서 ..

40_가상 메모리 매핑 파일 (memory Mapped File)

40_가상 메모리 매핑 파일 (memory Mapped File) Open(), read(), write() 시스템 호출을 사용하여 디스크에 있는 파일을 사용하면 파일이 매번 접근될 때마다 시스템 호출을 해야 하고 디스크를 접근해야 한다. 이와 같은 방법 대신 입/출력을 메모리 참조 방식으로 대신할 수도 있다. 메모리 매핑(memory mapping)이라고 불리는 접근 방식은 프로세스의 가상 주소 공간 중 일부를 관련된 파일에 할애하는 것을 말한다. 가상 메모리 : http://sqlmvp.kr/140191866773 파일의 메모리 매핑은 프로세스의 페이지 중 일부분을 디스크에 있는 파일의 블록에 매핑 함으로써 이루어진다. 첫 번째 접근은 일반적인 페이징 과정에 따라 페이지 부재를 발생 시킨다. 그 때 ..