Technology/Computer Architecture 3

프로세스 vs 스레드 그리고 멀티 태스킹 vs 멀티 스레드

프로세스와 스레드 자바 스터디의 일환으로 자바의 멀티 스레드 프로그래밍을 학습하던 중 이를 다루기 위해서는 앞서 프로세스와 스레드의 차이 그리고 더 나아가서 멀티 태스킹과 멀티 스레드의 차이에 대해 명확히 알아야 할 필요성을 느꼈다. 우선 프로세스와 스레드의 차이에 대해 알아보자. 프로세스란? 먼저 프로세스란 무엇일까? 일반적으로 프로그램은 저장장치(하드디스크 등)에 저장되어 있는 정적인 상태(코드로 구성된 파일)을 뜻하는 반면, 프로세스는 실행 중인 프로그램(동적인 상태)으로서 프로그램 자체와 프로그램의 상태가 메모리 상에서 실행되는 작업 단위를 뜻한다. 참고로 프로그램이 실행 시에는 운영체제가 실행에 필요한 코드와 데이터를 메모리에 가져오고, 프로세스 제어 블록을 생성 및 부여하고, 작업에 필요한 메..

부동 소수점 방식에 대한 이해

부동 소수점의 등장 배경 부동 소수점(floating point)는 원어 그대로 둥둥 떠다니는 소수점수를 의미한다. 이는 컴퓨터가 2진수밖에 인식하지 못하기 때문에 생긴 것이다. 사람은 직관적으로 무한한 수를 제외한 어느 소수점의 수도 인식할 수 있다. 예를 들면, 사람은 십진수 0.1을 있는 그대로 0.1로 인식하고 표현할 수 있다. 하지만 컴퓨터는 2진수만을 인식하므로 2진수를 통해서 간신히(?) 십진수 0.1을 표현할 수 있다. 즉, 1/2, 1/4, 1/8, 1/16, ... 등의 2진수 조합으로 0.1을 만들어야 하는 것이다. 아주 작은 소수들을 무한에 가까울 정도로 합쳐 0.1에 거의 근접한 수(이진 무한 소수점수)를 만들 수 있겠다만 문제는 컴퓨터의 저장 공간은 유한하다는 것이다. 즉, 컴퓨..

보수의 개념(2진법과 비트, 바이트, 1의 보수, 2의 보수)

2진법과 비트 2진법은 컴퓨터에서 입력과 출력을 표현하기 위한 표준 방법으로서 오직 0과 1(이진수)로만 데이터(정보)를 표현한다. 컴퓨터는 이러한 0과 1만의 숫자를 통해 글자, 사진, 영상, 소리 등을 저장할 수 있다. 컴퓨터의 가장 기본적인 단위는 트랜지스터라고 불리는 아주 작고 간단한 전기 스위치로, 이 트랜지스터의 on/off 상태를 통해 0과 1을 표현한다. 이때 2진수 상 각 하나의 자릿수를 표현하는 단위를 비트(bit)라고 하며 컴퓨터는 비트 단위로 정보를 처리한다. 바이트 비트 한 개만으로는 많은 양의 정보를 처리하기 부족하므로 바이트(byte)를 사용한다. 바이트는 8개의 비트열로서, 1바이트에는 여덟 개의 비트가 있고, 비트 하나는 0과 1로 표현될 수 있기 때문에 1바이트는 총 25..