📚 관련 독서/혼자 공부하는 컴퓨터구조 + 운영체제

입출력장치, CPU나 메모리보다 다루기 더 까다롭다. WHY? 1) 입출력장치, 종류가 너무 많기 때문 → 규격화 어려움 2) 입출력 장치의 데이터 전송률은 CPU와 메모리에 비해 낮기 때문 (* 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지 나타내는 지표) 🧩 장치 컨트롤러 입출력 장치를 연결해 컴퓨터 내부와 정보를 주고 받음 ○ 하드디스크 역할 CPU와 입출력 장치 간 통신중개 오류 검출 데이터 버퍼링 버퍼링 : 전송률 높은 장치와 낮은 장치 간 주고받는 데이터를 버퍼에 저장해 전송률을 비슷하게 맞추는 방법 구조 : 데이터 레지스터, 상태 레지스터, 제어 레지스터 🧩 장치 드라이버 장치 컨트롤러의 동작을 감지하고 제어하는 프로그램 (SW적 통로) 입출력 방식 1. 프로그램 입출력 프로그램 속 명령..
🧩 다양한 보조기억장치 ○ 하드디스크 - 자기적 방식으로 데이터 저장 - 플래터 양면 모두 사용 [구성] : 헤드, 디스크 암, 스핀들, 플래터 [저장 단위] : 플래터 (트랙, 섹터), 실린더 (여러 겹 플래터 상에서 같은 트랙이 위치한 곳 모아 연결) ┕ 블록 : 한 개 이상의 섹터 [데이터 접근 과정] 탐색 시간 : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간 회전 지연 : 헤드가 있는 곳으로 플래터를 회전시키는 시간 전송 시간 : 하드 디스크와 컴퓨터 간 데이터를 전송하는 시간 ○ 플래시 메모리 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치 - 셀 플래시 메모리에서 데이터를 저장하는 가장 작은 단위 모여서 MB > GB > TB가 됨 [저장 단위] 셀 < 페이지 < 블록 < ..
🧩 RAM의 특징과 종류 ○ 메모리 - 주기억장치 : 휘발성 저장 장치. ▷ RAM (→ 메모리), ROM - 보조기억장치 : 비휘발성 저장 장치 ○ RAM 특징 - 휘발성 저장 장치 (전원 꺼지면 내용 날아감) - 많은 프로그램들 동시 실행에 유리 ○ RAM 종류 1. DRAM (Dynamic RAM) - 저장된 데이터가 동적으로 사라지는 RAM - 데이터 소멸 막기 위해 주기적으로 refresh해야 - 일반적으로 메모리로 사용되는 RAM └ 상대적으로 소비전력이 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이하므로 2. SRAM (Static RAM) - 저장된 데이터가 정적인 (사라지지 않는) RAM - DRAM보다 더 빠름 └ 상대적으로 소비전력이 높고, 비싸고, 집적도가 낮아 '대용량 ..
🧩 빠른 CPU를 위한 설계 기법 1. 클럭 컴퓨터의 모든 부품을 움직이게 하는 시간 단위 속도 : Hz 단위로 측정 Hz : 1초에 클럭이 반복되는 횟수 클럭 속도 높이는 방법 외, 코어 수/스레드 수 늘리는 방법 있음 2. 코어와 멀티 코어 코어 (Core) : CPU 내에서 명령어를 실행하는 부품 (여러 개 가능) - 멀티코어 프로세서 : 여러 개의 코어를 포함하고 있는 CPU 3. 스레드와 멀티 스레드 스레드 (Thread) : 실행 흐름의 단위 1) HW 스레드 하나의 코어가 동시에 처리하는 명령어 단위 (= 논리 프로세서) 멀티 스레드 프로세서, 멀티스레드 CPU 멀티 스레드 프로세서 설계 시 가장 큰 핵심 : 레지스터 2) SW 스레드 하나의 프로그램에서 독립적으로 실행되는 단위 🧩 명령어 ..
🧩 ALU와 제어장치 1) ALU : 계산 장치 - 받아들이는 정보 | 피연산자, 제어신호 - 내보내는 정보 | 결괏값(숫자, 문자, 주소 등), 플래그(연산 결과에 대한 부가 정보) 2) 제어 장치 : 제어 신호 발생시키고 명령어 해석하는 장치 - 받아들이는 정보 1) 클럭 : 컴퓨터의 모든 부품을 일사불란하게 움직이게 하는 시간 단위 2) 해석할 명령어 3) 플래그 4) 제어 신호 - 내보내는 정보 CPU 내부에 전달하는 제어 신호 (to 레지스터, ALU) CPU 외부에 전달하는 제어 신호 (to 메모리, 입출력장치) 🧩 레지스터 CPU 내부의 작은 임시 저장 장치 - 프로그램 속 명령어&데이터는 실행 전후로 레지스터에 저장 ⭐ 반드시 알아야 할 레지스터 1. 프로그램 카운터 : 메모리에서 가져올 ..
🧩 소스 코드와 명령어 ○ 소스 코드와 명령어 ▪ 소스 코드 | 고급 언어. 개발자가 이해하고 실행하는 언어 ( =원시 코드) ▪ 명령어 | 저급 언어. 컴퓨터가 이해하고 실행하는 언어 ㄴ1) 기계어 : 0과 1 ㄴ2) 어셈블리어 : 기계어를 읽기 편한 형태로 번역한 저급 언어 ○ 컴파일 언어 vs 인터프리트 언어 컴파일 언어 ▪ 소스 코드 > 컴파일러 > 목적 코드 (고급 언어 저급 언어) ▪ 컴파일러 : 컴파일 언어로 작성된 소스 코드를 저급 언어로 변환 ▪ 한꺼번에 실행 인터프리트 언어 ▪ 인터프리터에 의해 한 줄씩 실행 Compiler Explorer godbolt.org 🧩 명령어의 구조와 주소 지정 방식 ○ 명령어 구조 ① 연산 코드, ② 오퍼랜드 1. 연산 코드 : 수행할 연산 ▪ 종류 1)..
🧩 0과 1로 숫자 표현하는 방법 1. 2진법 ▪ 0b ▪ 모든 숫자를 0과 1로 표현 ▪ 숫자가 9 넘을 때 자리올림 ▪ 음수 표현은 어떻게? : 2의 보수 → 모든 0과 1을 뒤집고 +1 (예 : 11 > 00 > 01) ▪ 양수/음수 구분은 어떻게? : CPU의 플래그 레지스터 통해 구분 2. 16진법 ▪ 0x ▪ 10부터는 A로 표현 🧩 0과 1로 문자 표현하는 방법 ○ 컴퓨터가 이해하는 정보 - 문자 집합 : 컴퓨터가 이해할 수 있는 문자 모음 - 인코딩 : 문자 > 기계어로 코드화 - 디코딩 : 기계어 > 문자로 해석 ○ 아스키코드 ▪ 7비트로 하나의 문자 표현 ┕ 8비트 중 남은 하나는 오류 검출 위한 parity bit ▪ 대문자 : 65-90 / 소문자 : 97-122 ○ EUC-KR ▪..
🧩 컴퓨터 구조를 알아야 하는 이유 - 문제 해결 능력 향상 - 컴퓨터 구조 분석 가능 - 성능,용량,비용 고려한 프로그래밍 가능 🧩 컴퓨터 구조의 큰 그림 1. 컴퓨터가 이해하는 정보 1) 데이터 - 정적 정보 (숫자, 이미지, 문자, 동영상) 2) 명령어 - 컴퓨터를 움직이는 정보 2. 컴퓨터의 4가지 핵심 부품 - CPU, 메모리, 보조기억장치, 입출력장치 ③ CPU : 메모리에 저장된 값 읽고, 해석하고, 실행하는 장치 - ALU : 계산기 - 레지스터 : CPU 내부 작은 저장 장치 (임시 저장 장치) - 제어장치 : 제어 신호 내보내고, 명령어 해석 장치 ④ 메모리 (= RAM) -"현재 실행되는 프로그램"의 명령어와 데이터 저장 (주소) ⑤ 보조기억장치 - 전원이 꺼져도 보관될 프로그램 저장..
imname1am
'📚 관련 독서/혼자 공부하는 컴퓨터구조 + 운영체제' 카테고리의 글 목록