CS notes/CA

· CS notes/CA
장치 컨트롤러 장치 컨트롤러를 다루기 까다로운 이유 입출력장치에는 종류가 매우 많음 - 다양한 입출력장치와 정보를 주고받는 방식을 규격화하기 어려움 입출력장치의 데이터 전송률은 낮은 편 - 전송률: 얼마나 빨리 데이터를 교환할 수 있는지 나타내는 지표 - CPU와 입출력장치 사이의 전송률이 다르다면 문제가 생김 - 때문에 장치 컨트롤러라는 하드웨어를 통해 연결 장치 컨트롤러의 역할 CPU와 입출력장치 간의 통신 중개 오류 검출 데이터 버퍼링 - 버퍼링: 전송률이 차이 나는 장치 사이의 데이터를 버퍼라는 임시 저장공간에 저장하여 전송률을 비슷하게 맞추는 방법 (=데이터를 한 번에 받아와서 조금씩 내보내는 방법) 장치 컨트롤러의 내부 구조 데이터 레지스터 - CPU와 입출력장치 사이에 주고받을 데이터가 담기..
· CS notes/CA
하드 디스크 자기적인 방식으로 데이터를 저장하는 보조기억장치 자기 디스크의 일종 플래터 - 하드 디스크에서 실질적으로 데이터가 저장되는 곳 - 자기 물질로 덮여있는 동그란 철판 - N극, S극이 0과 1의 역할을 수행 - 트랙, 섹터라는 단위로 데이터를 저장 - 하나의 섹터는 일반적으로 512bytes - 실린더 = 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위 스핀들 - 플래터를 회전시키는 구성 요소 - RPM: 스핀들이 플래터를 돌리는 속도 헤드 - 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소 - 다중 헤드 디스크: 트랙마다 헤드가 있어 탐색 시간이 거의 들지 않음 하드 디스크가 저장된 데이터에 접근하는 시간 탐색 시간 - 접근하려는 데이터가 저장된 트랙까지 헤드를 이..
· CS notes/CA
RAM RAM의 특징 휘발성 저장 장치 = 전원을 끄면 저장된 명령어, 데이터가 날아감 때문에 비휘발성 저장 장치의 보조가 필요함 (SSD, HDD 등) RAM의 용량과 성능 용량이 크다면 성능은 어느정도 증가하지만, 필요 이상일때 속도기 비례하여 증가하지는 않음 용량이 크다면 많은 프로그램을 동시에 실행하는데 유리함 RAM의 종류 DRAM (Dynamic RAM) - 저장된 데이터가 동적으로 변하는(사라지는) RAM - 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화해야함 - 소비전력이 낮고, 저렴하고, 집적도가 높아 대용량으로 설계 용이 SRAM (Static RAM) - 저장된 데이터가 시간이 지나도 사라지지 않는 RAM = 재충전이 필요 없음 - DRAM보다 상대적으로 속도가 빠른편 - ..
· CS notes/CA
클럭 컴퓨터 부품들은 클럭 신호의 박자에 맞춰 움직임 클럭 속도 = CPU 속도의 단위 - Hz 단위로 측정 (1초에 몇번) - 클럭 속도가 높은 CPU가 빠르게 동작 오버클럭 - CPU가 고성능을 요구할때 순간적으로 클럭 속도를 높이는 것 - 클럭 속도는 일정하지 않으며, 더 빠르거나 느릴 수 있음 코어와 멀티코어 코어 = 명령어를 실행하는 부품 CPU안에 여러개 존재 → 멀티코어 멀티코어 프로세스 = 여러개의 코어를 포함하고 있는 CPU 멀티스레드 프로세스 = 여러개의 명령어를 동시에 실행할 수 있는 CPU 코어마다 처리할 명령어들을 얼마나 적절하게 분배하느냐에 따라 연산 속도가 크게 달라짐 스레드와 멀티스레드 하드웨어적 스레드 - 하나의 코어가 동시에 처리하는 명령어 단위 - 여러개의 스레드가 있을..
· CS notes/CA
ALU 레지스터를 통해 피연산자를 받아들임 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들임 받아들인 신호로 산술 연산, 논리 연산 수행 계산한 결과값은 바로 메모리에 저장되는 것이 아닌 레지스터에 저장 계산 결과와 플래그를 함께 내보냄 플래그 연산 결과에 대한 추가적인 상태 정보 CPU가 프로그램을 실행하는 도중 반드시 기억해야하는 일종의 참고 정보 부호, 제로, 캐리, 오버플로우, 인터럽트, 슈퍼바이저 플래그가 있음 플래그 레지스터라는 레지스터에 저장 제어장치 제어 신호를 내보내고, 명령어를 해석하는 부품 제어 신호: 컴퓨터 부품을 관리하고 작동시키기 위한 일종의 전기 신호 제어장치가 받아들이는 정보 클럭 신호를 - 클럭: 컴퓨터의 모든 부품을 움직일 수 있는 시간 단위 - 컴퓨터 부품은 클럭..
· CS notes/CA
고급언어 & 저급언어 고급언어 - 사람을 위한 언어 - 대부분의 프로그래밍 언어 저급언어 - 컴퓨터가 직접 이해하고 실행할 수 있는 언어 - 고급언어 ➜ 저급언어 변환이 되어야 실행될 수 있음 - 기계어 (0과 1의 명령어 비트로 이루어진 언어) - 어셈블리어 (기계어를 읽기 편한 형태로 번역한 언어) 어떤 개발자가 되고 싶은지에 따라 중요성이 달라짐 - 임베디드, 게임, 정보 보안 관련 개발자는 어셈블리어를 배울 필요가 있음 컴파일 언어 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급언어 컴파일 - 저급 언어로 변환하는 과정 컴파일러 - 컴파일을 수행하는 도구 목적 코드 - 컴파일러를 통해 저급 언어로 변환된 코드 처음부터 끝까지 오류가 하나라도 있다면 컴파일에 실패하게됨 대표적으..
· CS notes/CA
정보 단위 비트 - 0과 1을 나타내는 가장 적은 정보 단위 바이트 - 8개의 비트를 묶은 단위 - 2^8(256)개의 정보 표현 가능 워드 - CPU가 한 번에 처리할 수 있는 데이터 크기 - CPU가 한 번에 16비트를 처리할 수 있다면 - 1워드 = 16비트 - 현대 컴퓨터의 워드 크기는 대부분 32비트(x86 CPU) or 64비트(x64 CPU)이다. 1바이트 (1byte) 8비트 (8bit) 1킬로바이트 (1KB) 1,000바이트 (1,000byte) 1메가바이트 (1MB) 1,000킬로바이트 (1,000KB) 1기가바이트 (1GB) 1,000메가바이트 (1,000MB) 1테라바이트 (1TB) 1,000기가바이트 (1,000GB) 1KB = 1024byte는 잘못된 관습이다. 1024개를 단위..
· CS notes/CA
컴퓨터 구조를 알아야하는 이유! 같은 코드를 작성하더라도, 컴퓨터의 환경에 따라 다른 결과가 나올 수도 있음 이런 상황에서 원인을 찾기 위해 컴퓨터 구조의 이해가 필요함 예시) AWS에서 컴퓨터를 빌려야할 때 - 문법만으로 알기 어려운 성능/용량/비용을 고려할 수 있게됨 컴퓨터 구조를 이해하면 우리는 컴퓨터를 미지의 대상에서 분석의 대상으로 인식하게 된다. 컴퓨터가 이해하는 정보 컴퓨터는 0과 1로 표현된 정보만을 이해함 컴퓨터가 이해하는 정보는 데이터, 명령어로 구분 데이터: 숫자, 문자, 이미지, 동영상 같은 정적인 정보 명령어: 데이터를 움직이고 컴퓨터를 작동시키는 정보 컴퓨터의 4가지 핵심 부품 CPU (중앙처리장치) 메모리에 저장된 명령어를 읽어들이고, 해당 명령어를 해석하고, 실행하는 부품 산..
느낌있는 곳
'CS notes/CA' 카테고리의 글 목록