시스템시스템 프로그래밍

** ex) 2 + 3 덧셈 연산 프로그램의 처리 과정
1) 실행 파일이 하드 디스크에 들어감
2) 메인 메모리에 명령어 전달
3) 연산을 위해서는 CPU에 들어가야 함. 따라서 입출력 버스를 통해 CPU에 전달
4) 데이터는 CPU에 도착해서 가장 처음으로 버스 인터페이스에 전달됨
-버스 인터페이스: 데이터를 CPU 내부로 읽어들이는 역할. 따라서 네트워크 송수신 규약을 알고 있어야 한다.
5) 레지스터에 데이터 저장
-레지스터: CPU 내부의 작은 메모리. ALU와 컨트롤 유닛이 이미 계산 중일 수 있으므로 데이터를 레지스터에 담아두고 컨트롤 유닛이 필요할 때 레지스터에서 데이터를 꺼내간다.
6) 컨트롤 유닛에 연산자 + 을 전달
-컨트롤 유닛: CPU가 해야할 일을 결정해주는 중심 역할로, 덧셈이라는 명령어를 받아서 ALU에게 연산 신호를 보냄
7) ALU에 피연산자 2, 3을 전달
8) ALU는 계산 결과를 레지스터에 저장
컴퓨터의 모든 장치에는 클럭 신호가 들어간다. 클럭 발생기는 모든 장치에게 일정 간격으로 신호를 주고, 하드웨어는 이 신호를 기반으로 동작 타이밍을 결정한다.
요소들마다 클럭 신호가 다를 수 있다. 높은 클럭 신호에 맞춰서 클럭 신호를 자주 낼수록 연산은 빨라지지만 시스템에 부하를 준다.

1) 전처리기에 의한 치환 작업
2) 컴파일러에 의한 번역
-CPU의 명령어로 번역
3) 어셈블러에 의한 바이너리 코드 생성
-CPU의 명령어를 바이너리 코드로 번역
4) 링커에 의한 연결과 결합
-라이브러리와의 결합
명령어 관점에서의 시스템 프로그래밍을 설명하기 위해서 필요한 개념.
오늘날 컴퓨터의 구조는 이를 기반으로 구성되어 있다.

양방향 데이터는 CPU에서 메모리로, 또는 메모리에서 CPU로 전달될 수 있다.
데이터 버스(Data Bus)어드레스 버스(Address Bus)컨트롤 버스(Control Bus)