컴퓨터구조 13

프로세스

프로세스 - 프로그램은 실행되기 전까지는 그저 보조기억장치에 있는 데이터 덩어리일 뿐이지만, 보조기억장치에 저장된 프로그램을 메모리에 적재하고 실행하는 순간 그 프로그램은 프로세스가 된다. 이 과정을 프로세스를 생성한다라고 표현한다. - 컴퓨터가 부팅되는 순간부터 수많은 프로세스들이 실행되는데 윈도우에서는 작업관리자의 프로세스 탭에서 확인할 수 있고, 유닉스 체계의 운영체제에서는 PS 명령어로 확인할 수 있다. - 사용자가 보는 앞에서 실행되는 프로세스는 포그라운드 프로세스라고 부르고, 사용자가 보지 못하는 뒤편에서 실행되는 프로세스는 백그라운드 프로세스라고 부른다. - 이러한 백그라운드 프로세스를 유닉스에서는 데몬이라고 부르고, 윈도우에서는 서비스라고 부른다. * 프로세스 제어 블록(Process Co..

운영체제

운영체제 - 운영체제는 매우 특별한 프로그램이기 때문에 항상 컴퓨터가 부팅될 때 메모리 내 커널 영역이라는 공간에 따로 적재되어 실행된다. - 커널 영역을 제외한 나머지 영역, 사용자가 이용하는 프로그램이 적재되는 영역을 사용자 영역 이라고 한다. - 운영체제는 실행할 프로그램을 메모리에 적재하고, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리를 관리한다. - 운영체제는 응용 프로그램과 하드웨어 사이에서 응용 프로그램에 필요한 자원을 할당하고, 올바르게 실행되도로 관리하는 역할을 한다. - 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 한다. - 운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스도 있는데, 사용자 인터페이스가 있다. 그 종류에는 그래픽 유저 인터페이..

RAID의 정의와 종류

RAID(Redundant Array of Independen Disks) - RAID는 주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안전성 혹은 높은 성능응 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술을 의미한다. - 여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 RAID를 구성하는 방법은 여라가지가 존재한다. - RAID 구성 방법을 RAID 레벨이라 표현하는데, RAID 레벨에는 대표적으로 RAID 0, 1, 2, 3, 4, 5, 6이 있다. * RAID 0 - RAID 0은 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식이다. - 이때 마치 줄무늬처럼 분산되어 저장된 데이터를 스트라입(stripe)이라 하고..

보조기억장치

하드디스크 - 자기적인 방식으로 데이터를 저장하는 보조기억장치. - 대용량 저장 장치가 필요한 작업이나 서버실에 자주 출입하는 작업을 한다면 하드디스크를 자주 접한다. - 하드디스크에서 실질적으로 데이터가 저장되는 곳을 플래터라고 한다. 플래터는 자기 물질로 덮여있어 수많은 N극과 S극을 저장한다. N극과 S극은 0과 1을 수행한다. - 플래터를 회전시키는 구성 요소를 스핀들이라고 한다. 스핀들이 플래터를 돌리는 속도는 분당 회전수를 나타내는 RPM이라는 단위로 표현한다. - 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소는 헤드라고 한다. 헤드는 원하는 위치로 헤드를 이동시키는 디스크 암에 부착되어 있다. - 플래터는 트랙과 섹터라는 단위로 데이터를 저장한다. 섹터는 하드디스크의 가장 작은 전송 단위이..

메모리의 주소, 캐시 메모리

물리주소와 논리주소 - 메모리가 사용하는 물리주소는 말 그대로 정보가 실제로 저장된 하드웨어상의 주소를 의미한다. - CPU와 실행중인 프로그램이 사용하는 논리주소는 실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소를 의미한다. - CPU가 이해하는 주소가 논리 주소라고는 해도 메모리와 상호작용하려면 논리주소와 물리주소 간의 변환이 이루어져야 한다. - 논리주소와 물리주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리장치(MMU)라는 하드웨어에 의해 수행된다. - MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다. - 베이스 레지스터는 프로그램의 가장 작은 물리 주소, 즉 프로그램의 첫 물리 주소를 저장하고, 논리주소는 프로그램의 ..

RAM의 특징과 종류

RAM의 특징 - RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다. 하지만 전원을 끄면 RAM에 저장된 명령어와 데이터가 모두 날아간다. 이렇게 전원을 끄면 저장된 내용이 사라지는 저장 장치를 휘발성 저장장치 라고 한다. - 전원을 꺼도 저장된 내용이 유지되는 저장 장치는 비휘발성 저장 장치 라고 한다. 대표적으로 하드디스크나 SSD, CD-ROM, USB 메모리와 같은 보조 기억 장치가 있다. - CPU는 보조기억장치인 비휘발성 저장 장치에는 보관할 대상을 저장하고, 휘발성 저장 장치인 RAM에는 실행할 대상을 저장한다. - CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장한 뒤 실행한다. - RAM 용량이 충분히 크면 보조기억장치에서 많은 데이터를 가져와 미..

CISC와 RI

CISC (Complex Instruction Set Computer ) - 약자를 해석하면 복잡한 명령어 집합을 활용하는 컴퓨터를 의미한다. CISC란 이름 그대로 복잡하고 다양한 명령어들을 활용하는 CPU 설계 방식이다. - 다양하고 강력한 기능의 명령어 집합을 활용하기 때문에 명령어의 형태와 크기가 다양한 가변 길이 명령어를 활용한다. - 적은 수의 명령어만으로도 프로그램을 동작시킬 수 있다는 점은 메모리 공간을 절약할 수 있다는 장점이 있다. - 단점으로는 활용하는 명령어가 워낙 복잡하고 다양한 기능을 제공하는 탓에 명령어의 크기와 실행되기까지의 시간이 일정하지 않다. CISC 명령어 집합은 복잡하고 다양한 기능을 제공하기에 적은 수의 명령으로 프로그램을 동작시키고 메모리를 절약할 수 있지만, 명..

명령어 병렬 처리 기법

- 명령어 병럴 처리 기법에는 대표적으로 명령어 파이프 라이닝, 슈퍼스칼라, 비순차적 명령어 처리가 있다. 명령어 파이프 라인 - 명령어 처리 과정을 클럭 단위로 나누어 보면 다음과 같이 나눌 수 있다. 1) 명령어 인출 2) 명령어 해석 3) 명령어 실행 4) 결과 저장 - CPU는 각 단계가 겹치지만 않는다면 동시에 실행할 수 있습니다. -> t1은 명령어 1,2를 동시에 처리하고 있는 것을 확인할 수 있습니다. 다른 것도 마찬가지입니다. -> 이처럼 마치 공장 생산 라인과 같이 명령어들을 명령어 파이프라인에 넣고 동시에 처리하는 기법을 명령어 파이프라이닝 이라고 한다. - 파이프라이닝이 높은 성능을 가져오기는 하지만 특정 상황에서는 성능 향상에 실패하는 경우도 있다. 이러한 상황을 파이프라인 위험이..

CPU 성능 향상 기법

클럭 - 컴퓨터 부품들은 클럭 신호에 맞춰 일사불란하게 움직인다. 즉, 클럭 신호가 빠르게 반복되면 CPU는 명령어 사이클을 더 빠르게 반복하고 다른 부품들도 그에 발 맞춰 더 빠르게 작동한다. - 실제로 클럭 속도가 더 높은 CPU는 일반적으로 성능이 좋다. - 클럭 속도는 헤르츠(Hz)단위로 측정한다. 이는 1초에 클럭이 몇 번 반복되는지를 나타낸다. ex) 1초에 100번 반복되면 CPU 클럭 속도는 100Hz인 것이다. -> 1GHz는 1,000,000,000(Hz)이다. 코어와 멀티코어 - CPU의 성능을 높이는 또다른 방법은 CPU의 코어와 스레드 수를 늘리는 방법이 있다. - 코어란 CPU 내에서 명령어를 실행하는 부품이고, CPU 내에 여러개가 있을 수 있다. - 코어를 여러 개 포함하고 ..

CPU의 작동 원리(명령어 사이클, 인터럽트)

플래그 - 연산 결과에 대한 추가적인 상태 정보를 플래그라고 한다. - ALU는 계산 결과와 더불어 플래그를 내보낸다. - ALU는 결과값 뿐만 아니라 연산 결과에 대한 추가적인 정보를 내보내야 한다. - 이러한 플래그는 CPU가 프로그램을 실행하는 도중 반드시 기억해야 하는 일종의 참고 정보이다. - 플래그들은 플래그 레지스터라는 레지스터에 저장됩니다. 제어장치 1) 제어장치는 클럭 신호를 받아들인다. - 클럭이란 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위이다. - 클럭의 주기에 맞춰 데이터가 이동되거나, 연산이 수행되거나, CPU가 메모리에 저장된 명령어를 읽어 들인다. 2) 제어장치는 해석해야 할 명령어를 받아들인다. - 제어장치는 명령어 레지스터로부터 해석할 명령어를 받아들..