이번에는 컴퓨터 시스템과 하드웨어의 밀접한 관계에 대해서 알아보도록 하겠습니다.
컴퓨터 시스템을 구성하는 계층
위 사진은 컴퓨터 시스템을 구성하는 계층의 사진입니다. 응용소프트웨어, 운영체제, 컴퓨터 하드웨어로 구성되어 있습니다. 그리고 응용소프트웨어 -> 컴퓨터 하드웨어로 바로 접근하는 행위는 하지 못하며 반드시 각 계층을 지나야 접근할 수 있습니다.(이 내용은 나중에 다시 설명하도록 하겠습니다)
하드웨어 구성
기본적인 하드웨어의 구성은 다음과 같습니다.
CPU(Central Processing Unit)
기계 명령어를 수행하고, 다른 수행 장치들을 제어합니다.
제어 장치(Control Unit)
- 역할: 제어 장치는 CPU의 "두뇌" 역할을 합니다. 기계 명령어(프로그램)를 하나씩 읽어들여 그 명령어가 무엇을 의미하는지 해석하고, 그 명령어를 실행하기 위해 CPU 내부와 다른 하드웨어 장치에 필요한 제어 신호를 발생시킵니다.
- 예시: 제어 장치는 메모리에서 데이터를 가져와야 한다면, 메모리에 데이터를 읽으라고 지시하고, 그 데이터를 어디로 보내야 할지 결정합니다.
산술논리장치(Arithmetic and Logic Unit, ALU)
- 역할: 산술논리장치는 말 그대로 산술 연산(덧셈, 뺄셈, 곱셈 등)과 논리 연산(AND, OR, NOT 등)을 수행하는 장치입니다. CPU에서 계산이나 논리적 판단이 필요한 작업이 있을 때 이 장치가 해당 작업을 수행합니다.
- 예시: 계산기에서 2 + 3을 계산할 때, "2"와 "3"을 ALU로 보내고, 덧셈 명령을 내리면 ALU가 "5"라는 결과를 반환하는 것과 같습니다.
레지스터(Register)
- 역할: 레지스터는 CPU 내부의 작은 메모리 공간으로, CPU가 작업을 수행하는 동안 필요한 데이터를 임시로 저장해두는 장소입니다. 매우 빠른 속도로 접근할 수 있어, 계산이나 데이터 처리를 하는 동안 자주 사용됩니다.
- 예시: 계산을 수행하기 위해 레지스터에 값을 임시로 저장하고, 연산 결과도 이곳에 저장합니다. 마치 우리가 메모를 하기 위해 종이에 숫자를 적어두는 것과 비슷한 역할을 합니다.
레지스터(register)
- CPU 동작에 필요한 정보를 임시로 저장하기 위한 초고속 기억장치
- x86-64 레지스터 구조
메모리(memory)
- Main memory, DRAM(Dynamic Random Access Memory)
- CPU에 의해 수행되는 코드와 데이터가 적재되는 공간
- 다수의 셀(cell)로 구성되며, 각 셀은 8비트의 모임
- n개의 셀로 구성된 메모리는 주소를 위해 “log2n”개의 비트가 필요
기억장치 계층구조와 접근시간(ns)
자주쓰는 변수는 레지스터, L1 캐시, L2 캐시, 메인 메모리, 2차, 3차 저장 장치 순으로 저장한다. 레지스터 순으로 정보를 접근 하는 속도가 빨라서 용이하다.
캐시(cache)
- 메인 메모리에 저장된 명령과 데이터 블록을 임시로 저장하는 기억장치
- 캐시 동작과 하드웨어 상에서 위치
기억장치 계층구조에서 소량의 캐시가 효과적인 이유는 CPU가 프로그램을 수행할 때 코드와 데이터의 참조 지역성 원리를 이용하기 때문이다.
참조 지역성(locality of reference)
CPU가 프로그램을 수행하는 짧은 시간 동안에 발생하는 명령 또는 데이터에 대한 접근이 메모리 상에 하나의 군집을 이루는 경향이 강하다.
공간 지역성(spatial locality)
• 일련의 인접한 메모리 위치들과 관련된 수행 경향
• 배열, 순차접근
시간 지역성(temporal locality)
• 최근 사용했던 메모리에 위치에 다시 접근하는 경향
• 반복문, 재귀 루프, 함수 호출
시간 지역성은 최근에 사용된 명령어와 데이터 값을 캐시에 유지하고 캐시 계층 구조를 활용하는 방식으로 이용된다.
공간 지역성은 캐시 제어 논리가 일반적으로 보다 큰 캐시 블록을 사용하고, 선반입(사용이 예상되는 항목을 미리 반입)을 수용함으로써 활용된다.
버스(bus)
CPU, 캐시, 메인 메모리, 입출력 장치 등을 연결하여 장치들 간에 서로 데이터를 송수신하기 위한 공통의 통로이다.
위치에 따른 분류: 내부 버스 / 외부 버스
용도에 따른 분류: 주소 버스 / 데이터 버스 / 제어 버스
목적에 따른 분류: 시스템 버스 / 입출력 버스
'컴퓨터 과학 > 운영체제' 카테고리의 다른 글
[운영체제] 스레드 동기화, 상호배체, 임계구역 (0) | 2024.12.15 |
---|---|
[운영체제] 프로세스 개요 (1) | 2024.10.04 |
[운영체제] CPU(중앙처리장치)의 여러 구성 요소 (1) | 2024.09.11 |
[운영체제] 운영체제(Operating System)란? (2) | 2024.09.11 |