프로그램 실행과정
참고
cpu개발자는 cpu를 디자인 하면서 cpu명령어를 디자인 한다.
cpu명령어에 따라서 cpu 구조가 변경되기도 한다.
cpu 명령어 예)
0011 은 덧셈으로 인식하도록 디자인
0010은 마이너스로 인식하도록 디자인 ..
위의 예 처럼 만약 0011이 cpu로 들어가면 컨트롤 유닛에 의해서 덧셈으로 처리된다.
하지만
0011에게는 프로그래머가 직접 사용하기 어렵다.
그래서 0011 명령어에 ADD 같은 문자를 붙였다.
그리고 그 후에 ADD 같은 명령어도 사람이 직접 사용하기 어려워서,
java, c 같은 고수준 언어가 만들어진다.
1.전처리기에 의한 치환작업
#으로 시작하는 지시자. ex) #include
전처리기 -> 컴파일러 -> 어셈플러 -> 링커
2.컴파일러에 의한 번역
프로그램언어 (java, c) => 어셈블리언어
즉, cpu의 명령어로 해석된다.
3.어셈블러에 의한 바이너리 코드 생성
cpu의 명령어를 바이너리 코드로 번역한다.
예) ADD => 0011
4.링커에 의한 연결과 결합
라이브러리와의 결합,
바이너리 + 라이브러리 = 실행파일
Stored Program Concept - 폰 노이만 아키넥쳐
뜻 : 프로그램은 메모리에 저장이 되어야 한다는 컨셉 (과거에는 프로그램이 메모리에 저장이 안되었음)
큰 개념
Fetch: 메모리에 저장되어 있는 명령어를 버스 I/O를 통해서 cpu로 가져간다.
Decode (컨트롤 유닛): cpu로 가져간 명령어를 해석한다.
Execution(ALU) : 연산한다.(실행)
Stored Program Concept 기반의 구조 그림
데이터 이동의 기반 버스 시스템(양방향 관계이다)
1.데이터 버스 : 데이터 이동
2.어드레스 버스 : 주소 이동(데이터가 있는 주소를 이동시킨다.)
3.컨트롤 버스 : 컨트롤 신호 이동(cpu가 먼저 데이터를 보낼거냐, 메모리가 먼저 데이터를 보낼거냐 순서 정하기 등..)
참고
뇌를 자극하는 윈도우즈 시스템 프로그래밍 정리 - 한빛출판네트워크
'컴퓨터 기초 > 운영체제 이론' 카테고리의 다른 글
4.Win32비트 Vs Win64비트 (0) | 2021.01.18 |
---|---|
3.아스키 코드 & 유니코드 (0) | 2021.01.18 |
1.시스템이란? (0) | 2021.01.17 |
[운영체제 정리] 8.프로세스 동기화 (0) | 2020.06.08 |
[운영체제 정리] 7.멀티레벨 큐 (0) | 2020.06.07 |