Tar(파일 포맷)

 
: 타르(Tar)는 컴퓨터에서 테입 아카이브를 위해 고안된 파일 형식과 이런 형식의 파일을 다루는데 사용되는 프로그램을 의미

 

: 압축은 전혀 하지 않으며, 단순히 다수의 파일을 하나로 묶을 때 사용한다. 각 파일의 정보를 담아야 하기 때문에 용량이 오히려 소폭 늘어난다. 보통 파일을 하나로 묶는 역할만 하여 처리 속도가 빠르다. 일반적으로 유닉스 계열 운영체제에서 쓰인다.

 

: 초기에는 '테입(자기 테이프에 저장된 데이터를 읽고 쓰는 데이터 기억 장치)' 백업 목적으로, 순차적 입출력 장치에 직접 쓰도록 개발되었으나, 현재는 '배포' 또는 '아카이브(역사적 가치 혹은 장기 보존의 가치를 가진 기록이나 문서들의 컬렉션)' 용도로 많은 파일을 디렉토리 구조, 파일 속성들을 보존하면서 하나의 큰 파일로 묶는데 주로 사용한다.

 

트랜젝션

 

: 데이터베이스 트랜잭션은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. 

: 이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장한다. 이 성질을 첫글짜를 따 ACID라 부른다. 그러나, 실제로는 성능향상을 위해 이런 특성들이 종종 완화되곤 한다.

:어떤 시스템들에서는 트랜잭션들을 논리적 작업 단위(LUW, Logical Units of Work)로 불린다.

인터럽트

 

: 컴퓨터 작동 중에 예기치 않은 문제가 발생한 경우라도 업무 처리가 계속될 수 있도록 하는 컴퓨터 운영체계의 한 기능.

 

: 프로세서(CPU, 중앙처리장치)의 즉각적인 처리를 필요로 하는 이벤트를 알리기 위해 발생하는 주변 하드웨어나 소프트웨어로부터 요청을 말한다. 인터럽트가 발생하면 그 순간 운영체계 내의 제어프로그램에 있는 인터럽트 처리 루틴(routine)이 작동하여 응급사태를 해결하고 인터럽트가 생기기 이전의 상태로 복귀시킨다.

버퍼

 

: 데이터를 한 곳에서 다른 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역이다. 버퍼링이란 버퍼를 활용하는 방식 또는 버퍼를 채우는 동작을 말한다.

 

 

프로토콜 버퍼

 

: 언어중립적이며, 플랫폼 중립적이며, 데이터를 직렬화하기 위한 확장 가능한 메카니즘

: 구조화된 데이터를 직렬화하는 방식

: 유선이나 데이터를 저장을 목적으로 서로 통신할 프로그램을 개발할때 유용

데이터 스토리지

 

: 데이터 스토리지는 데이터를 보존하고 가능한 간편하게 액세스할 수 있도록 개발된 기술을 사용하여 정보를 보존하는 것을 의미한다.

: 데이터 스토리지는 기록 매체를 사용하여 컴퓨터나 기타 장치로 데이터를 보존하는 것을 의미한다. 가장 일반적인 형태의 데이터 스토리지로는 파일 스토리지, 블록 스토리지, 개체 스토리지가 있으며, 각 유형은 서로 다른 용도로 사용된다.

 

 

데이터 스토리지의 유형

 

- 파일 스토리지 

: 경제적이고 구성이 단순하며 데이터가 파일 및 폴더에 저장된다. 파일 스토리지는 하드 드라이브에서 사용되며, 하드 드라이브의 관점에서 보는 파일과 사용자의 관점에서 보는 파일이 동일하다.

 

블록 스토리지

: 데이터가 균일한 크기의 블록에 저장된다. 블록 스토리즈는 상대적으로 값비싸고 복잡하며 확장성이 떨어지지만, 액세스와 편집이 빈번하게 일어나는 데이터에 적합하다.

 

개체 스토리지

: 데이터가 메타데이터 및 고유 식별자와 함께 개체로 저장된다. 개체 스토리즈는 상대적으로 경제적이지만, 편집이 필요하지 않은 데이터에만 적합하다.

BMP 파일(BMP file)

 

BMP파일은 다른 영상 파일과 다르게 압축을 하지 않기 때문에 DIB구조를 그대로 파일로 저장한 형태이다. BMP파일의 구조는 비트맵 파일 헤더(BITMAPF ILEHADER)와 DIB구조인 비트맵 정보 헤더(BITMAPINFOHADER), 색상테이블(RGBQUAD), 픽셀 데이터로 구성되어 있다.

 

먼저 비트맵 파일 헤더는 BMP파일 자체에 대한 정보를 담고 있는 영역이고, 비트맵 정보 헤더는 비트맵 영상의 크기, 색상 수 등의 정보를 담고 있으며, 색상 테이블은 비트맵, 영상의 색상 정보를 담고 있다. 마지막으로 픽셀 데이터는 각 픽셀의 색상 정보를 표현하는 영역이다. BMP파일 구조 중 색상 테이블은 파일의 속성에 따라 존재하지 않을 수 있다. 즉, 트루 컬러 영상에는 색상 테이블 정보가 존재하지 않아서 BITMAPINFOHEADER 바로 뒤에 픽셀 데이터 정보가 나타낸다.

하이퍼바이저(Hyperviser)

 

하이퍼바이저란, 호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 논리적 플랫폼을 말한다. 가상화 머신 모니터 또는 가상화 메니저라도고 부른다.

시스템 호출(System call)

 

시스템 호출(System call)은 운영 체제의 커널이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다. 보통 C나 C++과 같은 고급 언어로 작성된 프로그램들은 직접 시스템 호출을 사용할 수 없기 때문에 고급 API를 통해 시스템 호출에 접근하게 하는 방법이다.

 

운영 체제의 구성상, 커널과 응용 프로그램은 CPU의 권한 수준이나 하드웨어 접근 등력이 다르다. 커널은 CPU 시스템의 RAM/FLASH 등에 물리 주소가 일치하는 링커구조를 가지고 특정 메모리 위치에서 동작한다. 이때 커널의 기계어 코드에서 사용하는 모든 주소는 물리 주소로 고정되어 컴파일되고 로드되어 실행된다. 따라서 커널은 부팅과정에서 전체 메모리 리소스 중에 일정하게 점유하여 동작하고 인터럽트 등 모든 하드웨어 접근이 가능하다. 그러나 응용 프로그램은 커널이 제공하는 자원을 사용하므로 메모리에서 상황에 따라 다른 위치를 점유하고 실행된다. 응용 프로그램은 사용자 요청에 따라 실행되는 프로그램이므로 물리 주소를 확정할 수 없다. 따라서 응용 프로그램이 작성되면 메모리 위치가 처음부터 로드된다고 생각하고 개발도구에서 링크된다. 보통 MMU을 통해 논리 주소를 물리 주소로 변환한다. 그리고 응용 프로그램은 CPU의 권한수준이 사용자 공간(user space)에서 동작하며 특정한 기계어 명령어 실행이 불가능하다. 이와 같은 상황에서 응용 프로그램이 파일 시스템을 사용하는 등 기타 여러 상황에서 커널에 의존해야만 한다. 응용 프로그램에서 커널의 서비스를 사용하는 방법이 시스템 호출이다. 커널의 인터럽트 처리 등의 과정을 프로그램하려면 어셈블리어와 C와의 혼용구조로 구성한다. 그리고 CPU나 컴퓨터 시스템의 구조나 상황이 다르므로 CPU에 따라 분리되어 작성되고 커널소스 폴더 구조에서 소스가 분리되어 작성되고 관리된다. asmlikage는 어셈블리와 관계가 있는 예약어이다.

 

분류

시스템 호출이란 프로그래밍 언어에서 지원하지 않는 기능에 대하여 운영 체제의 루틴을 호출하여 이용하는 것을 말한다. 시스템 호출의 세 가지 기능은 다음과 같다.

  1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 한다.
  2. 시스템 호출을 하면 사용자 모드에서 커널 모드로 바뀐다.
  3. 커널에서 시스템 호출을 처리하면 커널 모드에서 사용자 모드로 돌아가 작업을 계속한다.

시스템 호출의 유형

  1. 프로세서 제어(process Control)
  2. 파일 조작(file manipulation)
  3. 장치 관리(Device Management)
  4. 정보 유지(Information maintenance)
  5. 통신(Communication)

로더(Loader)

 

로더(loader)는 컴퓨터 운영 체제의 일부분으로, 하드디스크와 같은 오프라인 저장 장치에 있는 특정 프로그램을 - 대부분의 경우 응용 프로그램이지만, 경우에 따라서는 운영 체제 그 자신의 일부가 될 수도 있다. - 찾아서 주기억장치에 적재하고, 그 프로그램이 실행되도록 하는 역할을 담당한다.

 

적재되는 프로그램은 그 자체에 초기에는 주기억장치에 적재되지 않지만, 필요할 때 적재될 수 있는 요소들을 포함할 수 있다. 멀티태스킹이 지원되는 운영 체제에서, 디스패처(dispatcher)라는 프로그램은 서로 다른 태스크들 간에 컴퓨터 CPU의 할당시간을 조절하고, 특정 태스크와 관련된 프로그램이 주기억장치에 있지 않을 때에는 로더를 호출한다.

+ Recent posts