본문 바로가기

전체 글

(231)
[OS] RAID RAID RAID는 Redundant Array of Inexpensive(Independent) Disks의 앞글자를 딴 것으로, 저렴한 가격에 디스크를 여러개 사용하여 용량이 크고 품질이 우수한 디스크 하나를 갖고 있는 것과 같은 효과를 내는 디스크의 구성방법이다. 디스크가 각각 독립적으로 동작을 한다는 의미에서 Independent 단어를 쓰기도 한다. 개인용 컴퓨터에는 비교적 싼 디스크를 사용하는 것이 일반적이다. 그러다보니 용량도 적고, 하드웨어의 신뢰성도 떨어진다. 일반적으로 높은 품질을 요구하는 용량이 큰 디스크는 개인보다는 기업이나 공공기관에서 공공 데이터를 저장하는데 이용된다. 그래서 저장장치가 고장이 나는 등의 문제가 발생하면 큰 문제가 되기 때문에, 수명도 오래 가고 고장도 잘 나지 ..
[OS] 디스크 스케줄링 📁 Disk Scheduling 디스크 스케줄링은 디스크라는 디바이스에 대한 스케줄링이다. 일반적으로 입출력 장치 스케줄링에는 선입선출 알고리즘을 사용하는데, 디스크의 경우에는 그렇지 않다. 먼저 디스크 장치의 구조를 보자. 디스크 뚜껑을 열면 사진처럼 금속판 한장 혹은 여러장이 있다. 위 사진은 금속판이 3장 있는 하드디스크이다. 이 금속판의 위, 아래 표면에 정보가 기록되는 것이다. 이 사진은 디스크 3장, 표면 6개가 된다. 디스크 한 면을 위에서 바라보면 왼쪽 그림처럼 둥근 띠 모양이 여러개 있는데, 이 띠 한줄 한줄을 트랙이라고 말한다. 바깥쪽부터 0번으로 시작하여 n-1번까지 번호를 붙인다. 하나의 면에는 보통 20개부터 1500개 정도의 트랙이 있다. 실린더란 모든 디스크에서 같은 번호의 트..
[OS] I/O Control 운영체제가 디바이스 드라이버를 통해 장치를 제어하는 방법. 운영체제는 장치의 상태를 체크하면서 장치를 제어하는데, 이 방법은 총 3가지가 있다. 1. Polling 2. Interrupt-driven I/O 3. Direct Memory Access (DMA) Polling 사용자 프로그램에 printf라는 인스트럭션이 있다고 하자. 이 printf 문장은 컴파일되면서 출력에 해당하는 시스템콜로 바뀐다. 출력을 하기 위해서는 프린트 장치를 제어해야하는데, 사용자 프로그램에서 장치를 직접 제어할 권한이 없기 때문에 권한을 가진 운영체제가 일을 대신할 수 있도록 시스템콜로 요청하는 것이다. 이 시스템콜을 부른 사용자 프로세스는 유저모드에서 커널모드로 모드체인지하여 커널 스페이스로 들어가, 커널로 바뀌어서 운..
[OS] Interrupt Handling 인터럽트란, 디바이스가 자신에게 발생한 어떤 일을 처리해달라고 커널에게 신호를 보내 요청하는 방법이다. 발생 가능한 상황별로 대처 코드가 운영체제 내부에 구현되어 있으므로, 해당 이벤트를 처리하는 커널 코드를 실행해야한다. 이때 커널에서 이벤트를 처리하는 코드를 실행하게끔 유도하는 방법이 총 3가지 있다. 여기서 커널 코드를 실행한다는 것은 커널에 들어가야하기 때문에 커널 진입 방법, kernel entry point라고도 한다. 1. interrupt 인터럽트가 걸리면 디바이스가 커널에게 처리해달라고 신호를 보내고, 결국 커널에서 실행되므로 커널에 진입하는 방법이 된다. 2. trap 소프트웨어 인터럽트라고도 말한다. 인터럽트의 한 종류이므로 이것도 커널에 들어갈 수 있는 방법이다. 3. system ..
[OS] 파일 시스템의 사례 유닉스 운영체제의 기본 파일 시스템과 리눅스 파일 시스템 사례에 대해 알아보자. 유닉스 파일 시스템에서 파일의 종류에는 일반 파일, 디렉토리, 특수 파일이 있다. 파일 시스템은 부트 블록, 슈퍼블록, inode list, 데이터 블록들로 구성된다. 이때 inode list는 inode들의 1차원 배열이다. inode란 유닉스 파일 시스템에서 FCB를 부르는 이름이며, 하나의 길이가 128바이트이다. 파일의 타입, 수정날짜, 파일 만든 사람, 파일의 내용에 해당되는 블럭의 주소, 링크 카운트 등 파일 속성(attribute) 정보가 들어간다. 링크 카운트란 몇개의 디렉토리에서 이 파일을 가리키느냐를 뜻한다. 파일을 구성하는 데이터 블록들의 주소를 어떤 식으로 유지하는 지에 대한 정보도 저장한다. 유닉스 파..
[OS] 데이터 블럭들의 관리 파일 시스템에서 파일 컨트롤 블록 리스트 다음에 데이터 블록 영역이 있다. 📁 File Allocation 방법 데이터 블록에는 파일의 내용이 저장된다. 만약 파일 크기가 크다면 데이터 블록 여러개가 필요할 것이고, 이들을 연결해주어야 한다. 이 연결 문제를 운영체제의 파일 시스템이 관리하는 방법에 대해 살펴보자. 파일 하나가 만들어질 때 생기는 파일 내용을 담은 데이터 블록을 어떻게 연결할지의 문제를 file allocation이라고 한다. Contiguous allocation(연속 할당) 결론적으로 지금은 사용하지 않는 방법. 디스크 안에 존재하는 연속된 블록들을 할당해서 파일을 저장하는 방법. 그림을 보면 파일 allocation 테이블이라는 것이 있다. 여기 보면 파일 a가 있는데, 파일 a는 ..
[DB] WHERE절 📁 WHERE절 사용자가 자신이 원하는 데이터만을 조회하고 싶을때 SQL문에 제한을 두기 위해 사용한다. SELECT [DISTINCT/ALL]칼럼명 [ALIAS명] FROM테이블명 WHERE조건식; WHERE절은 조회하려는 테이블의 데이터에 조건을 부여할 목적으로 사용되기 때문에, 조회할 테이블을 정의하는 FROM절 뒤에 온다. --조건식 구성: 칼럼(Column)명 (보통 조건식 좌측 위치) + 비교 연산자 + 문자/숫자/표현식 (보통 조건식 우측 위치) or 비교 칼럼명 (JOIN 사용시) WHERE AGE = 30; 조건식은 칼럼명, 연산자, 표현식 으로 구성된다. AGE가 칼럼명, '='이 비교연산자, 30이 숫자, 즉 표현식이다. 이때 칼럼명에 ALIAS명을 사용할 수 없다. ALIAS명은 A..
[IP] Compression(압축) 이미지와 비디오는 크기가 크므로, 저장이나 파일 교환을 위해서는 Compression(압축)이 필수적이다. Compression에는 두 가지 다른 방법이 있다. 1. 모든 정보를 남기는 Lossless 압축 2. 어느정도 정보의 손실이 생기는 Lossy 압축 📁 Huffman Coding 가장 빈번한 정보에 더 짧은 비트를 할당해라. 픽셀 당 비트의 평균 개수는 확률론적 의미에서 기댓값과 같다. 정보의 손실 없이 이미지를 인코드하기 위한 픽셀 당 이론적인 최소 비트 수를 Entropy H라고 한다. 절차는 다음과 같다. 영상에서 각 gray value의 확률을 결정한다, 즉 히스토그램을 작성한다. 가장 낮은 확률 두 개를 추가하여 binary tree를 만든다. 루트에서 트리의 각 분기에 0과 1을 임의..