분류 전체보기

🍀 Knowledge/운영체제(OS)

[운영체제] 디스크 스케쥴링(Disk Scheduling)은 어떻게 일어날까

디스크의 구조  디스크 스케쥴링을 알아보기 전에 디스크의 구조에 대해 자세히 알아보자. 디스크는 아래와 같이 구성된다.  디스크는 크게 track과 sector로 구성된다.먼저 track은 한 면에 존재하는 것으로 위 그림에서 원의 안쪽으로 들어갈수록 트랙 번호가 커진다.약간 달리기 경주할 때 track으로 생각하면 쉽다. sector는 각 트랙에 존재하는 부분으로 한 sector를 읽음으로써 보통 데이터를 가져올 수 있다.cylinder는 같은 위치에 있는 트랙들을 의미하고, surface는 디스크의 한 면을 의미한다.디스크를 읽기 위해서는 디스크 암을 통해서 읽어야 한다. 이때, 디스크의 head에서 sector 값을 직접적으로 읽는다. sector와 sector 사이에는 보이지 않는 책선이 존재한다..

🍀 Knowledge/운영체제(OS)

[운영체제] I/O Control : Polling, Interrupt Driven I/O, DMA방법이란?

I/O, 즉 입출력을 제어하는 방법에는 여러 가지가 있다. PollingInterrupt Driven I/ODirect Memory Access(DMA) 위 방법 중에서 먼저 Polling 방법에 대해 알아보자.  Polling이란? Polling을 이해하기 위해서는 입출력이 이루어지는 과정부터 이해할 필요가 있다.   그림에서 System Call이 먼저 호출된다.앞서서 배웠던 것처럼, Interrupt에 의해 Kernel 영역으로 실행의 흐름이 옮겨진다.이때 I/O Management에서 실제로 입/출력을 담당하는 장치가 무엇인지 판단한다. 이게 가능한 이유는 중간에 Device-drive-interface가 존재하기 때문이다. Device-drive-interface는 실제 Device Driver..

🍀 Knowledge/운영체제(OS)

[운영체제] 인터럽트란 무엇이고, 어떻게 발생할까

커널로의 진입이 필요한 시점은 3가지 존재한다. InterruptTrap (software interrupt)System Call 이 중에서 인터럽트가 어떻게 커널 코드로 들어가고 어떤 처리가 일어나는지 알아보자.   인터럽트란? 인터럽트란 비동기적 이벤트가 발생했다는 사실을 주변장치로 알리는 방법을 뜻한다. 여기서 비동기란 이벤트가 언제 일어날 지 알 수 없다는 뜻인데, 이는 우리가 키보드를 언제 두드릴지 모르는 것과 같다고 생각하자. 반대로 동기란 이벤트가 일어날 시간이 정해져 있다는 뜻이다.    인터럽트가 발생하면 가장 먼저 PIC(Programmable Interrupt Controller)에 신호가 도착한다. PIC 칩은 곧장 CPU로 신호를 전달하는 프로세스를 거친다. 이때 Clock 인터럽..

🍀 Knowledge/운영체제(OS)

[운영체제] 입/출력 관리(I/O Management)

I/O Devices의 종류 I/O Devices는 입/출력을 관리하는 장치로 목적에 따라 여러 종류가 있다. 먼저, 키보드나 마우스, 디스플레이 등의 사람이 이용하는 장치가 있다. 그리고 센서나 Controllers, Actuators, Disk, tape driver 등의 기계가 이용하는 장치가 있으며 모뎀 등의 통신을 위한 장치가 존재한다. 세상에는 너무 많은 장치들이 있고, 운영체제 또한 다양하기 때문에 각 운영체제에 맞는 장치들을 적절히 잘 끼워넣을 필요가 있다. 어떤 방식으로 끼워넣는지 살펴보기 이전에 입/출력 장치의 일반적인 구성에 대해 알아보자.     I/O Devices  I/O Devices는 대개 3 개의 요소로 이루어진다.Controller Register, Status Regis..

🍀 Knowledge/운영체제(OS)

[운영체제] 파일 시스템 사례(Linux)

Unix에서의 파일 관리  이전에 알아보았듯이, Unix에서는 위와 같은 파일 시스템 구조를 지닌다.inode는 특정한 파일에 대한 주요 정보를 가지고 있는 제어 구조라고 했다. 여기에는 직/간접적으로 연결되어 있는 파일들의 개수인 Link Count 등의 정보가 들어간다고 하였다. 또한 unix에서의 inode가 파일에 대한 제어 정보를 가지고 있는 FCB와 대응된다는 것도 기억해 보자. 자 이제 기억해야 할 것은 각각의 inode는 파일에 대한 제어 정보를 가지고 있다는 것이고, 여기서 파일을 저장하기 위해 _indexed allocation_ 방식을 사용한다는 것이다. indexed allocation은 파일의 정보를 저장하기 위해 특정 Block을 Index를 관리하는 Block으로 두는 방식이었..

🍀 Knowledge/운영체제(OS)

[운영체제] 데이터 블록(Data Block)의 관리

파일 시스템에서의 Data Blcok 파일에서는 Block이라고 하는 것을 저장단위로 사용한다.이 Block 하나의 크기는 4096바이트이다.  디스크에서 파일을 저장할 때, Block을 무작위로 저장하지는 않는다. 어떻게 배치하느냐에 따라 그 전략이 달라진다.우선, 지금은 잘 사용하지 않는 _Contiguous Allocation_에 대해 알아보자.    Contiguous Allocation 이름을 보고 유추할 수 있듯이, _Contiguous Allocation_방식은 파일을 저장할 때 연속적으로 Block을 배치한다.이 방식을 사용하면 File Allocation Table을 사용하는데, 여기에 파일의 시작 Block과 Block의 길이를 저장한다. 물론 파일의 FCB에서도 파일의 시작 Block..

🍀 Knowledge/운영체제(OS)

[운영체제] 파일시스템이란?

File Systems 파일 시스템이란 파일들을 담아놓는 자료구조이자, 자료들을 처리하는 알고리즘을 포함하는 Logical storage unit을 말한다. 이러한 파일 시스템은 다음과 같은 요소로 구성한다. Boot blockPartition control block(super block)Directory structure운영체제에 따라 있을 수도 있고, 없을 수도 있다.File control blocksData blocks실제 파일의 내용을 저장하는 곳이다.      논리적으로 디스크를 나누어 놓은 것을 파티션이라고 하는데, 각 파티션에는 위와 같이 Partition Control Block이 존재한다. 여기에는 boot block, super block, FCB list와 data blocks로 이..

🍀 Knowledge/운영체제(OS)

[운영체제] 디렉토리를 알아보자.

File Directory 디렉토리는 파일들에 대한 정보를 가지고 있다.이때 각각의 파일들은 그 자체로 존재하는 것이 아니라, 파일 원보으로 이어지는 포인터로 존재한다.즉, 디렉터리는 각각의 파일 포인터인 FCB(File Control Block)를 지닌다. 디렉토리도 그 자체로 OS에 의해 소유되는 파일이다.        Hierarchical Directory 위 그림은 계층형 디렉토리(Hierarchical Directory)의 구조를 나타낸 것이다.가장 위에 있는 요소를 _root_ 혹은 _master_라고 한다. 특히 현재 디렉토리를 _working directory_라고 하는데, 이러한 개념이 없다면 특정 파일의 경로를 구할 때 매우 힘들 것이다. 이는 _root_로부터 매번 경로를 절대적으로..

🍀 Knowledge/데이터통신

[데이터통신] Physical Layer 알아보기

아날로그 데이터 vs. 디지털 데이터 데이터는 아날로그 혹은 디지털의 형태일 수 있다. 아날로그 데이터는 "연속적인 정보"를 나타내는 데이터이고, 디지털 데이터는 "이산적인 상태"를 가지는 정보를 나타낸다. 예를 들어, 시곗바늘이 연속적으로 움직여 시/분/초의 정보를 알려주는 아날로그시계는 아날로그 데이터의 형태이고, 12:30분에서 12:31분으로 한 번에 시간이 변하는 디지털시계는 디지털 데이터의 형태이다. 경우에 따라 이러한 디지털 형태의 데이터를 아날로그 형태로 변환하거나 아날로그 형태를 디지털 형태로 바꾸어야 하는 상황이 발생한다. 하지만, 데이터는 일관적이지 않을 수 있다. 아날로그에서 의도한 값이 디지털로 변환했을 때 그러한 값이 아닐 수도 있으며 그 반대의 경우도 마찬가지이다. 위와 같은 ..

🍀 Knowledge/데이터통신

[데이터통신] 데이터 통신에서 에러 감지하기

데이터 통신에서의 오류 정보를 주고받을 때 보낸 데이터가 반드시 받는 데이터와 일치한다는 보장은 없다. 어떠한 방식이 되었든, 데이터에 변조가 일어날 가능성이 있다. 데이터 통신에서는 이렇게 데이터가 변경되는 오류에도 얼마만큼 변경되냐에 따라 부르는 이름을 다르게 한다. 먼저 Single Bit Error는 데이터 중 하나의 비트만이 변경된 것을 말한다. 그리고 여기서 변조된 비트를 Corrupted Bit라고 부른다. 두 번째로 Burst Error는 이러한 Corrupted Bit가 두 개이상인 에러를 의미한다. 여기서 처음 변조가 일어난 Corrupted Bit와 마지막 Corrupted Bit까지 총 8비트를 에러가 난 부분이라고 판단한다. Error Detection 이전에 Block Codin..

TIlearn
'분류 전체보기' 카테고리의 글 목록