WSP02

LJM·2023년 7월 7일
0

컴퓨터지식

목록 보기
3/41

이 글은 윈도우즈시스템프로그래밍 이란 책에서 필요한 내용만 요약 정리한 글입니다

클럭신호
1.6Mhz CPU는 1초에 1백6십만번 연산 한다
클럭발생기에 의해 발생되는 클럭신호는 CPU를 구성하는 요소에 제공되면 이 신호에 맞춰서 CPU가 일을 한다
왜 클럭 신호에 맞춰서 일을 해야 하는가

연산장치는 입력된 두 개의 정수값을 더해서 버퍼에 가져다 놓는다. 출력장치는 버퍼에 존재하는 데이터를 가져와서 출력한다.
연산장치의 일처리 속도와 출력장치의 출력속도가 일치하지 않는다 해보자
연산장치가 더 빠르다면 출력장치가 가져가기도 전에 새로운 값으로 버퍼를 덮어씌워버리게 된다.
출력장치가 더 빠르다면 출력한 값을 또 출력하게 된다. 그래서 동기화를 해야한다. 속도가 느린 장치의 장단에 맞춘다

프로그램의 실행과정

위대한 수학자 폰 노이만

이전까지는 프로그램이란 단순히 진공관 회로의 스위치 구성을 의미
폰 노이만은 프로그램이 컴퓨터 내부에 저장되는 구조를 생각해냄. 폰노이만 아키텍처라고 불림
Stored Program Concept 이라고도 불린다.

프로그램의 실행과정

위의 그림은 실행파일의 생성단계

단계1: 전처리기에 의한 치환

#include #define

과 같이'#'으로 시작하는 지시자의 지시에 따라서 소스코드를 적절히 변경하는 작업

단계2 컴파일러에 의한 번역
C언어를 어셈블리 코드로 번역

단계3 어셈블러에 의한 바이너리 코드 생성
어셈블리 코드는 0과 1로 구성된 바이너리 코드로 번역된다
이것이 어셈블러가 하는 일이다.

단계4 링커에 의한 연결과 결합
프로그램 내에서 참조하는 함수나 라이브러리들을 하나로 묶는(혹은 연결) 작업을 하는것이다

실행파일에는 바이너리 코드형식의 명령어가 들어있다. 이것이 메모리에 로드되면 CPU에 의해 실행되기 시작한다
메모리에 로드된 명령어들은 순차적으로 실행된다
Fetch : 메모리의 명령어를 CPU로 가져오는 작업이다
Decode: CPU가 명령어를 해석하는 단계이다. 그림에서 명령어A 가 덧셈으로 바뀌는 과정이다
Execution: 해석된 명령어의 명령대로 CPU가 실행되는 단계. 그림에서 덧셈실행 이다

프로그램의 기본 실행은 Fetch, Decode, Execution 단계를 거친다

profile
게임개발자 백엔드개발자

0개의 댓글