현 컴퓨터 구조는 폰 노이만이 제안한 구조를 따르고 있다. 이게 무슨 소리냐 하면, 컴퓨터가 할 수 있는 일들에 대한 명령은 메모리에 저장을 해 두고 CPU가 클럭마다 메모리에 접근하여 명령어를 가져오고, 해독하고, 실행하는 구조라는 소리다. > 클럭이란? 간단히 말해 CPU가 작업을 수행하는 순간을 말한다. 흔히 "CPU가 3.0 GHz다" 라고 한다면...
Instruction decode란? 지난 글에서 CPU가 메모리를 참조해 명령을 받아오고, 실행하는 대략적인 과정에 대해 살펴보았다. 위 그림이 CPU가 인식하는 Instruction의 구조이다. 여기서 Opcode는 연산의 종류. 즉, operator라 볼 수 있다. Operands는 연산의 대상. 즉, 피연산자를 뜻한다. 위 그림에서는 2개의...
레지스터는 메모리의 일종이다 그런데 메모리에는 RAM만 있는 게 아니다 컴퓨터 메모리라고 하면 통상적으로 손바닥 절반 정도 크기 되는 막대기 그러니까 이걸 생각하곤 하는데 보다 큰 의미의 메모리는 저 RAM 뿐만 아니라 이렇게 많은 종류의 메모리들이 있다. 삼각형 안을 보면 power on이라고 되어 있는 위쪽 3개가 주 메모리, power of...
개요 컴퓨터는 외부 환경과 통신하지 않으면 썩 유용한 결과물을 내놓기 힘들다. 그렇기에 입출력 장치를 갖추고 이를 통해 외부 환경과 통신 할 필요가 있다. 입출력 통신의 가장 기본적인 요구사항을 설명하자면 다음과 같다. I/O terminal은 직렬로 정보를 주고 받는다. 이때의 각 정보는 8비트의 alphanumeric code로 이루어져 있다. ...
OS란? 간단히 말해 S/W와 H/W를 이어주는 역할을 하는 system S/W이다. 조금 더 정확히 말하자면, S/W와 H/W가 맞물려 잘 돌아가게 해주는 것은 OS의 내의 Kernel이고, 그 위에 이 kernel의 기능을 이용할 수 있도록 제공되는 시스템 콜과, 이 시스템 콜의 사용을 돕는 각종 API와 유저와 OS사이의 소통을 도와주는 Shell...
프로세스 스케쥴러 컴퓨터가 동작 중에는 여러 프로세스가 돌아가게 된다. 그래서 현 프로세스 다음에 어떤 프로세스를 실행시킬 것인가를 결정하는 여러 방법이 있다. FCFS (FIFO) Scheduler FIFO를 보자마자 Queue가 생갔났다면 맞다. FCFS는 First Come First Serve의 약자로 FIFO와 마찬가지로 먼저 온 녀석을 먼...
InterProcess communication (IPC) 다음의 이유로 IPC 기법의 필요성이 생긴다. 프로세스는 다른 프로세스의 공간에 접근할 수 없다. 성능을 높이기 위해 여러 프로세스를 만들어서 동시 실행 시, 프로세스 간 상태 확인 및 데이터 송수신이 필요하다. 해서, 파일을 통해서든 커널을 통해서든 어떻게든 통신을 할 수 있는 여러 방법들이 ...
Thread Light weight process라고도 불린다. 각기 고유의 Stack, Counter, Register set을 가지는 실행 단위이다. Thread가 실행되면 각기 고유의 Counter, Stack, Register set을 참조해 프로세스를 실행한다. 아래 그림을 보자. 좌: 프로세스 / 우: 쓰레드의 그림으로 보면 된다. T...
등장 배경 여러 프로세스를 동시에 돌리려니 모든 프로세스를 전부 메모리에 올리기에는 메모리 크기의 한계에 봉착함 -> 이를 극복할 어떤 기술의 필요성 대두 프로세스 내에는 여러 데이터들이 들어가 있지만 그 모든 데이터들이 계속해서 빈번하게 프로세서에 의해 사용되지는 않음 -> 당장 쓰이지 않는 데이터는 굳이 메모리에 올려두지 않아도 프로세스 실행에는 문...
파일 시스템 연관되는 데이터들을 모조리 비트로 관리하기에는 너무 큰 오버헤드 때문에 등장 데이터들을 묶어 블록 단위로 관리 (보통 4kb) 블록마다 고유 번호를 부여 사용자가 각 블록들을 하나하나 세세히 관리하기에는 어려움 연관된 블록들의 집합체인 추상적이고 논리적인 객체의 필요성 대두 => 사용자는 파일을 관리하고 파일 내부에서 각 블록을 관리...