스레드란 무엇인가? 스레드 (Thread) --스레드는프로세스에서 동작(구성)하는 실행의 흐름 단위로,간단하게 "실행의 단위"라고 생각하면 된다. 하나의 프로세스는 여러 개의 스레드를 가질 수 있으며,스레드를 이용하면 하나의 프로세스에서 여러 부분을 동시에 실행할 수 있다. -- 프로세스와 스레드 --스레드라는 개념이 없을 당시의 프로세스는 한 번에 하나의 일만 처리했다.그래서 프로세스의 모든 동작은 [ A작업 끝 -> B작업 시작 -> B작업 끝 -> C작업 시작 ... ]처럼 순차적으로 동작한다.한 번에 하나의 작업만 처리하는 프로세스를 "단일 스레드 프로세스"라고 부르기도 한다. 스레드라는 개념이 도입되면서하나의 프로세스가 한 번에 여러 작업을 동시에 처리할 수 있게 되었다.즉, 여..
프로세스는 무엇일까? 프로세스 (Process) --프로세스는실행 중인 프로그램을 의미한다. 프로그램은 실행되기 전까지는그저 보조기억장치에 저장되어 있는 데이터일 뿐이지만,해당 프로그램을 보조기억장치에서 메모리에 적재하고 실행하는 순간해당 프로그램은 프로세스가 된다. (실행 중인 프로그램) 윈도우는 [작업 관리자]를 통해 확인할 수 있다. 포그라운드 프로세스 (foreground process)는현재 크롬 브라우저, 작업 관리자처럼 사용자가 보는 앞에서 실행 중인 프로세스를 의미한다. 백그라운드 프로세스 (background process)는사용자가 보지 못하는 뒤(내부)에서 실행 중인 프로세스를 의미한다.그리고 백그라운드 프로세스 중에서 사용자와 상호작용하지 않고그저 묵묵히 정해진 일만 수..
캐시 메모리는 무엇이며, 어떻게 동작할까? 저장 장치의 계층 구조 (Memory Hierarchy) --용량이 크면서 빠른 저장 장치가 있다면 저장 장치들의 구조를 생각할 필요가 없지만"빠른 저장 장치"와 "용량이 큰 저장 장치"는 양립하기 어렵다. 저장 장치의 일반적인 명제CPU와 가까운 저장 장치는 빠름 / 멀리 있는 저장 장치는 느림속도가 빠르면 용량이 적고, 비쌈 일반적인 저장 장치 비교레지스터 (CPU 내부)메모리 (RAM, 주기억장치)USB (보조기억장치) CPU와 가까운 순레지스터 > 메모리 > USB CPU 접근 속도(시간) 빠른 순레지스터 > 메모리 > USB 저장 용량 큰 순USB > 메모리 > 레지스터 저장 용량 대비 가격이 비싼 순레지스터 > 메모리 > USB 즉, 대용량..
운영체제는 무엇이고 어떠한 역할을 하고 있나? 운영체제 --모든 프로그램들은 하드웨어가 필요하다. 어떠한 동작(계산)을 하기 위해서는 "CPU"가 필요하고,이미지처럼 데이터를 저장하기 위해서는 "하드 디스크(보조기억장치)"가 필요한 것처럼프로그램을 실행할 때 필요한 요소(하드웨어)들을 "시스템 자원" or "자원"이라고 부른다. CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품들은 모두 "자원"이라고 볼 수 있으며,모든 프로그램은 실행되기 위해서는 반드시 자원이 필요하다. 운영체제는실행할 프로그램이 올바르게 실행되도록 필요한 자원을 할당해 주고,사용자와 컴퓨터 간의 상호작용을 원활하게 해주는 소프트웨어(프로그램)다. 운영체제는브라우저, 게임과 같은 프로그램으로,운영체제 또한 메..
메모리의 종류와 역할이 무엇일까? RAM --RAM은주기억장치 중의 하나로 일반적으로 "메모리"라고 지칭하기도 한다. RAM 특징휘발성 저장 장치CPU가 빠르게 접근 가능 (= 빠르게 데이터를 읽고, 쓰기 가능)현재 실행 중인 프로그램의 데이터 및 명령어를 임시로 저장 (= 보조기억장치에서 복사하여 저장) RAM 용량에 따른 성능 변화 용량이 작음 (하나의 프로그램의 데이터만 담을 수 있을 정도)A프로그램을 실행시키기 위해 "보조기억장치"에서 해당 데이터를 "RAM"에 복사A프로그램 실행 후 B프로그램을 실행시키기 위해 다시 해당 데이터 "보조기억장치"에서 "RAM"에 복사B프로그램 실행 가능 (= A프로그램 실행 불가능)동시에 실행할 수 있는 프로그램의 수 제한프로그램 간의 전환이 느려짐사용..
ISA, CISC와 RISC는 무엇인가? ISA (명령어 집합 구조, Instruction Set Architecture) --ISA는CPU가 수행할 수 있는 (이해할 수 있는) 명령어들의 집합 or 해당 집합의 아키텍처(구조)를 의미한다. 이는하드웨어와 소프트웨어 간의 인터페이스 역할을 하며,CPU가 지원하는 명령어의 종류, 데이터 형식, 레지스터, 주소 지정 모드 등을 포함한다. CPU의 제조사마다 CPU의 규격, 기능 만듦새가 다르기 때문에CPU마다 ISA가 다를 수 있다. 명령어의 기본적인 구조와 작동 원리는 비슷하지만명령어의 세부적인 생김새, 명령어로 할 수 있는 연산, 주소 지정 방식 등은 차이가 있을 수 있다. 사용하는 ISA가 다르다 => CPU가 이해할 수 있는 명령어가 다르다 ..
명령어를 병렬로 처리는 방법의 종류는 무엇이 있을까? 명령어 병렬 처리 기법 (ILP, Instruction-Level Parallelism) --속도가 빠른 CPU를 만들기 위해높은 클럭 속도, 멀티코어, 멀티스레드를 지원하는 CPU를 만드는 것도 중요하지만,CPU가 놀지 않고 시간을 알뜰하게 사용하며 동작하도록 하는 것도 중요하다. 바로 명령어 병렬 처리 기법이명령어를 병렬로 동시에 처리하는 방법으로CPU가 쉬지 않고 끊임없이 동작하게 하는 기법이다. 대표적인 "명령어 병렬 처리 기법"명령어 파이프라인(파이프라이닝)슈퍼스칼라비순차적 명령어 처리-- 명령어 파이프라인 --명령어 파이프라인은명령어 처리에 대한 과정을 각 단계로 분리하고해당 단계를 동시에 실행할 수 있도록 하는 기술이다. 비..
클럭, 멀티코어, 멀티스레드가 무엇이길래 CPU 성능 향상에 사용될까? 클럭 (Clock) --클럭은CPU의 제어장치와 전체 CPU가 동작하는 데 중요한 역할을 하는 신호로,해당 신호를 이용하여 CPU 내의 모든 동작을 동기화하는 데 사용된다. 조금 더 설명하자면일정한 주기로 반복되는 신호를 클럭이라고 부르며해당 신호의 각 주기는 CPU가 한 명령어를 처리하는 데 필요한 클럭의 단위로 구분 짓는 데 사용된다. 간단하게 컴퓨터의 모든 부품을 알맞게 동작할 수 있도록 하는 시간 단위라고도 할 수 있다. 그래서 CPU의 동작 속도를 나타내는 척도로CPU 내부에서 발생하는 전기적 펄스의 빈도를 의미한다.(해당 펄스는 CPU가 명령어를 처리하는 속도를 결정하게 된다.) 정리컴퓨터 부품들은 정해진 "클럭 ..