[OS] 컴퓨터 시스템 개요
컴퓨터 구조의 기초부터 멀티코어까지, 시스템 동작의 핵심을 한눈에 정리한 포스트
[OS] 컴퓨터 시스템 개요
기본 구성 요소
- 프로세서(processor): 컴퓨터의 동작과 데이터를 처리한다. 일반적으로 중앙처리장치(CPU)라고 부른다.
- 주기억장치(main memory): 데이터와 프로그램을 저장하며 전형적인 휘발성 메모리로 컴퓨터가 셧다운될 경우 메모리의 내용이 없어지게 된다. <-> 디스크 메모리(주메모리)는 비휘발성 메모리이다.
- 입출력 모듈(I/O module): 컴퓨터와 외부 환경 간의 데이터 이동을 담당하며 외부 환경은 보조기억장치, 통신장비, 그리고 단말기를 포함한 다양한 외부 장치로 구성된다.
- 시스템 버스(System bus): 프로세서, 주기억장치, 그리고 입출력 모듈 간의 통신을 제공한다.
CPU 구성요소
- PC: 프로그램 카운터(Program counter)
- IR: 명령어 레지스터(Instruction register)
- MAR: 메모리 주소 레지스터로 다음에 읽거나 기록할 메모리 주소를 저장하는 공간으로 이 주소는 PC로부터 받은 주소
- MBR: 메모리 버퍼 레지스터로 메모리부터 기록되거나 메모리로부터 읽힌 데이터를 저장하는 공간
- I/O AR: 입출력 주소 레지스터로 특정 I/O 장치를 지정
- I/O BR: 입출력 버퍼 레지스터로 입출력 모듈과 프로세서 간의 데이터 교환을 위해 사용
MAR, MBR의 이용하는 이유는 연결의 복잡성을 낮추기 위해서 사용한다.
레지스터: CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 공간
메모리 모듈
일련 번호로 주소가 부여된 장소들의 집합이며 각 장소에는 이진수가 저장되어 있는데 이러한 이진수는 명령어 또는 데이터로 해석될 수 있다.
입출력 모듈(I/O Module)
외부 장치로부터 프로세서와 메모리로 데이터를 전송하거나, 그 역방향으로 데이터를 전송한다. 데이터가 전달될 때까지 일시적으로 데이터를 보관하기 위한 내부 버퍼를 가지고 있다.
동작 순서
- PC에 첫 번째 명령어의 주소 x가 저장되어 있다.
- PC에 저장되어있는 주소가 MAR에도 저장
- MAR에 저장된 명령어 주소가 main memory의 주소 x를 가르킴
- main memory의 x 주소에 저장된 데이터를 MBR에 저장
- MBR에 저장된 값을 IR에 전달 + PC의 값이 1증가(다음 명령어 주소를 읽어야 하기 때문)
마이크로프로세서의 발전
마이크로프로세서는 단일 칩에 하나의 프로세서를 집적시킨 것이다. 초기에는 멀티칩 프로세서보다 속도가 느렸지만, 빠르게 발전하여 대부분의 연산을 더 빨리 수행하게 되었다.
명령어 수행
프로그램은 프로세서에 의해 수행되며, 메모리에 저장된 명령어들의 집합으로 구성된다. 또한 프로세서(CPU)는 메모리로부터 한 번에 하나의 명령어를 읽고(fetch) 명령어를 수행한다.
명령어 처리 단계
- 명령어 반입(instruction fetch)
- 명령어 실행(instruction execution)
명령어 사이클(instruction cycle): 단일 명령어 수행에 필요한 처리 과정
CPU가 수행하는 명령어 작업
- CPU-Memory: 데이터는 CPU → Memory 또는 Memory → CPU로 전송
- CPU-I/O: CPU와 I/O Module 간의 전송을 통해 주변장치로 또는 주변장치로부터 데이터를 전송
- 데이터 처리: CPU는 데이터에 대해 산술 또는 논리 연산 수행
- 제어: 명령어는 수행 순서 변경을 명시
인터럽트(Interrupt)
인터럽트는 프로세서의 처리율을 향상시키기 위해 제공된다.
인터럽트 종류
- Program: 산술연산 오버플로, 0으로 나누기, 불법적인 기계 명령어 수행 시도, 그리고 사용자에게 허용된 메모리 공간 밖의 참조 등과 같은 명령어 수행 결과로 발생하는 어떤 조건에 의해 생성
- Timer: 프로세서(CPU) 내의 타이머에 의해 생성. 이것은 운영체제로 하여금 특정 기능을 정규적으로 수행할 수 있도록 허용한다.
- I/O(입출력): 입출력 제어기에 의해 생성되며 연산의 정상적인 종료를 알리거나 다양한 에러 조건을 알림
- Hardware failure: 전원 결함 또는 메모리 패러티 에러와 같은 결함에 의해 발생.(os가 해결 X → 프로그램 종료)
인터럽트와 명령어 사이클
인터럽트 처리
메모리 계층 구조
캐시 메모리
직접 메모리 접금
멀티프로세서와 멀티코어 구조
This post is licensed under CC BY 4.0 by the author.