yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

컴퓨터 시스템의 기초 본문

컴퓨터 시스템

컴퓨터 시스템의 기초

yehey 2020. 9. 5. 03:28

컴퓨터 시스템의 구성

 

컴퓨터 시스템의 구성

 

  • 소프트웨어 = 시스템 소프트웨어 + 응용소프트웨어(application)

  • 좁은 의미의 시스템 소프트웨어 = 운영체제

  • 넓은 의미의 시스템 소프트웨어 = 운영체제 + 언어처리기(컴파일러, 어셈블러) 등

  • 컴퓨터 시스템 = 하드웨어 + 시스템 소프트웨어

  • ISA = 하드웨어와 시스템 소프트웨어의 인터페이스(규약)

응용소프트웨어 (Application)

: Machine Independent (소프트웨어를 실행하는 컴퓨터 시스템의 유형에 따라 달라지지 않는다.)
: ISA를 알지 않아도 된다.

 

 

Instruction과 ISA 

Instruction (기계어)

: 컴퓨터가 이해가능한 유일한 언어

: 0과 1로 이루어져있다.

: ISA에 따라 다르게 정의된다.

 

ISA (Instruction Set Architecture) 

: 컴퓨터 하트웨어와 소프트웨어의 interface(약속)

ex) IBM System/360, IA-32 (x86), IA-64, MIPS, SPARC, Alpha, PA-RISC, ARM 등

 

ISA Implementations (구현)

IA-32 (x86)

  • Intel: 8086, 8088, 80186,Pentium, Pentium Pro, Celero 등

  • AMD: K5, K6, Athlon, Duron 등

  • Cyrix: 80486, 5x86, 6x86 등

□ IA-64 : Itanium, Itanium2 등

□ Alpha : 21064, 21164, 21364 등

 

CPU는 0과 1의 조합을 ISA에 정의된 기계어로 해석하여 연산을 실행한다.
컴파일러는 프로그래머가 작성한 소스코드를 주어진 ISA에 맞게 기계어로 변환한다.

 

System Software와 ISA 

System Software

: 시스템 소프트웨어는 Machine Dependent

: ISA에 의존적인 소프트웨어

: 운영체제 + 컴파일러/어셈블러 등으로 이루어져 있다.

 

OS (운영체제, Operating System)

: 컴퓨터 시스템의 자원(하드웨어/소프트웨어)을 관리한다.

: 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공한다.

ex) MS Windows, Linux

-> 운영체제 제작자는 운영체제가 사용될 ISA를 알고 있어야한다.

 

컴파일러

: 고급 프로그래밍 언어로 작성한 원시코드(sourde code)를 기계어(Machine Language)로 번역하고 실행가능하게 만들어주는 프로그램

 

컴파일 실행단계 

- 선행처리 (Preprocessing) : 원시프로그램 처리
- 컴파일 (Compile) 
- 결합 : 소스코드의 기계어 변환
- 링킹(Linking) & 로딩(Loading)  : 메모리할당, 연결, 재배치, 프로그램 연결 적재

 

어셈블러

: 어셈블리 언어로 작성된 프로그램을 기계어로 변환시켜주는 소프트웨어

: 어셈블러의 출력은 오브젝트 파일이라고 한다. (확장자 .o)

 

->(컴파일러/어셈블러) 고급언어로 작성한 프로그램을 ISA에 맞게 기계어로 변환

 

어셈블리 언어(Assembly Language)

기계어와 1:1로 대응, 기계어보다는 쉽게 프로그래밍할 수 있다.
기계어와 고급언어의 중간

 

Instruction 포함 요소 

 

Instruction 구조 예시

 

  • Operator(연산자) : 수행할 연산 자체가 무엇인지 나타낸다.

  • Operand(피연산자) : 연산의 입출력 위치를 지정 (register, memory로 한정)

 

Instruction에 포함되지 않는 요소들

Method of Instructions processing (Squential, pipelining) : instruction 처리방법, 하드웨어에서 자체적으로 처리
cache memory: 속도향상을 위해 사용, CPU입장에서는 투명한 계층과 다름없음
I/O device: 입출력장치, CPU 접근영역이 아님

 

Instruction 수행 과정 

 

1. memory에서 CPU로 instruction을 읽어간다.

2. CPU에서 instruction의 의미를 해석한다.

3. instruction에 맞는 연산을 수행한다.

4. 결과를 register나 memory에 저장한다.

 

 

ISA 분류 (RISC vs CISC) 

CISC (Complex Instruction Set Computer)

: 다양한 길이의 기계어가 존재한다.

: 호환성이 좋다.

: 기계어가 다양한만큼 해석이 복잡하다.

ex) x86

 

RISC (Reduced Instruction Set Computer)

: 소수의 고정길이 기계어로 구성되어있다.

: 하나의 고급언어 문장이 많은 수의 기계어로 변황될 수 있다.

: 기계어 구조가 간단 -> 하드웨어 설계가 간결하다

: pipelining에 효과적이다.

: 명령어 길이가 고정되어있다. 

: 코드 효율이 낮다.

ex) MIPS, ARM

'컴퓨터 시스템' 카테고리의 다른 글

gdb 명령어 모음  (0) 2020.09.07
gdb 사용하기  (0) 2020.09.06
어셈블리어 명령어와 범용 레지스터  (0) 2020.09.06
8086 Memory Architecture, register  (0) 2020.09.06
Comments