c컴파일 할 수 있도록 환경 바꾸기
-
컴퓨터의 구성
- 필수장치 : CPU, memory
- 구성장치 : I/O, 저장장치
-
cpu : 명령어 해석, 실행
메모리 : 작업에 필요한 프로그램과 데이터를 저장하는 장소, 바이트 단위로 분할되어 있으며 분할 공가남다 주소로 구분
-
폰노이만 구조 ↔ 하버드 구조
- cpu, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조
- **
메모리
**에 프로그램, 데이터를 올리는 구조
-
클록과 헤르츠
- 클록은 컴퓨터에서 일정한 박자를 만들어 내는 것. 클록에 의해 일정 간격으로 만들어지는 틱(시간)을 펄스 혹은 클록 틱
- 클록이 일정 간격으로 펄스를 만들면 거기에 맞추어 컴퓨터 안의 모든 구성 부품들이 작업 진행
- 컴퓨터에서 헤르츠 단위로 사용한다는 것은 1초 동안 몇번의 작업이 이루어져서 몇 번의 펄스가 발생하였는가를 의미
-
시스템 버스와 CPU버스
- 시스템 버스는 메모리와 주변장치를 연결하는 버스로, 메인보드의 동작 속도를 의미하며 FSB(Front-Side Bus)혹은 전면 버스라고 부름
- CPU버스는 CPU 내부의 다양한 장치를 연결하는 것으로 BSB(Back Side Bus)혹은 후면 버스라고 부름
- BSB속도는 CPU 클록과 같고 FSB보다 훨씬 빠름
-
배열 & 연결리스트
- 배열은 형태가 같은 자료를 나열하여 메모리에 연속으로 저장하는 것으로 구현은 간단하지만 공간의 삽입과 삭제같은 관리가 어려운게 단점
- 연결 리스트는 데이터를 포인터로 연결해 데이터를 중간에 삽입하는것도 가능
- 배열 형태의 테이블은 크기가 어느정도 정해진 메모리나 파일 관리에 사용, 연결 리스트는 데이터의 삽입과 삭제가 빈번한 테이블에 주로 사용
- 큐를 구현할 때도 연결 리스트를 사용하면 편리
CPU의 구성과 동작
-
ALU : 데이터의 덧셈, 뺄셈, 곱, 나누기 같은 연상자와 and, or같은 논리 연산을 수행
-
제어장치 : cpu에서 작업을 지시하는 부분
-
레지스터 : 작업에 필요한 데이터를 cpu내부에 보관하는 곳
-
CPU의 명령어 처리 과정
-
cpu에서는 산술논리 연산장치, 제어장치, 레지스터들이 협업하여 작업 처리
- fetch : 메모리에 있는 명령어 갖고오기
- decode :
- read : 메모리의 동작 갖고오기
- excute : 실행
- fetch → decode → read → excute
위 방식의 비효율성을 해결한 방법이 pipeline
-
레지스터 종류
- 데이터 레지스터
- 주소 레지스터
- 프로그램 카운터 : 다음 명령어를 가리키는 레지스터
- 명령어 레지스터 : 현재 실행중인 명령어 저장
- 메모리 주소 레지스터
- 메모리 버퍼 레지스터
-
버스의 종류
- 제어 버스 : 읽기, 쓰기 제어
- 주소 버스 : 주변장치에 위치 정보를 보내기 위해 사용
- 데이터 버스 : 데이터가 실려서 나옴
메모리의 종류와 부팅
RAM : 휘발성 비휘발성
휘발성 : DRAM(외부 메모리), SRAM(속도가 매우매우빠름→캐시), SDRAM
비휘발성 : 플레시메모리, FRAM, PRAM
ROM : 마스크롬, PROM, EPROM