컴퓨터 시스템 1주차

2025. 3. 24. 23:45개발

(전처리기, 컴파일러, 어셈블러, 링커)를 합쳐서 컴파일 시스템이라 부름

전처리기 : 본래의 C프로그램을 #문자로 시작하는 디렉티브에 따라 수정하여, .i로 끝나는 새로운 C프로그램으로 든다.

컴파일 단계: 텍스트 파일 .i 를 텍스트파일인 .s 파일로 번역하고 한단계의 저수준인 어셈블리어로 번역되어 출력파일을 생성한다.

어셈블리 단계: 어셈블러가 .s 파일을 기계어 인스트럭션으로 번역하고 이들을 재배치 가능 목적프로그램의 형태로 묶어서 .o라는 목적 파일에 그 결과를 저장한다.

링크 단계 : 이전의 목적파일을 링커가 묶어 하나의 실행파일로 만들고 시스템의 의해 실행된다.

시스템의 하드웨어 조직

버스(buses) : 시스템 내를 관통하는 전기적 배선군, 컴포넌트간에 바이트 정보를 전달함

입출력 장치 : 시스템과 외부세계와의 연결을 담당 ex) 키보드, 마우스, 모니터등

메인메모리 : 메인 메로리는 프로세서가 프로그램을 실행하는 동안 데이터와 프로그램을 모두 저장하는 임시저장 장치, 메인 메모리는(DRAM칩), 한개의 프로그램을 구성하는 각 기계어 인스트럭션은 다양한 바이트 크기를 갖는다.

프로세서 : 메인 메모리에 저장된 인스트럭션들을 해독하는 엔진이다. pc가 가리키는 메모리로 부터 인스트럭션을 읽어오고, 이 인스트럭션에서 비트들을 해석하여 이스트럭션이 지정하는 간단한 동작을 실행함

적재(Load) : 메인 메모리 → 레지스터 값을 덮어쓰는 방식으로 저장

저장(Store) : 레지스터 → 메인메모리

작업(Operate) : 각 레지스터값을 ALU(연산기능) 연산후 레지스터에 저장

점프(Jump) : 인스트럭션 중 하나의 워드를 추출하여 pc에 덮어쓰기

프로그램의 간단한 실행 과정

명령을 키보드에서 읽는 과정 :

입출력 장치 → I/O 브릿지 → bus interface → 레지스터 파일 → ALU(계산) → bus interface -> I/O 브릿지 → 메인 메모리

직접 메모리 접근 방식:

디스크 → 디스크 컨트롤러 → I/O 브릿지 → 메인메모리

출력 스트링을 메모리에서 화면으로 기록하는 과정:

메인 메모리 → I/O 브릿지 → bus interface → 레지스터 파일 → bus interface → I/O 브릿지 → 어댑터 → 디스플레이