일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Cell Shader
- Virtual Byte
- ColorGradingLutPass
- URP
- Rim Light
- C언어
- Three(Two) Tone Shading
- 작업 집합
- Private Bytes
- ASW(Application SpaceWarp)
- 3d
- VR
- 가상 바이트
- URP로 변경
- 프로그래밍 기초
- Specular
- AppSW
- 메모리 누수
- Windows Build
- 게임 수학
- 개인 바이트
- OculusMotionVectorPass
- working set
- 벡터
- Cartoon Rendering
- Toon Shader
- Cell Look
- Today
- Total
WinCNT
컴퓨터 개론 - 1강. 컴퓨터는 어떻게 동작하는가? 본문
컴퓨터는 어떻게 동작하는가?
컴퓨터란 전류라는 물리적인 실체를 논리 회로를 통해 논리적으로 받아들임으로써 동작합니다.
전류의 상태는 통한다/통하지 않는다로 나눌 수 있는데,
컴퓨터는 각각의 상태를 참/거짓, 혹은 0/1라는 논리 값으로 판단하여 여러 처리를 수행합니다.
컴퓨터의 구조는 「CPU ⇔ 메모리(D램) ⇔ 보조기억장치」와 같이 추상화(※)할 수 있는데
전류와의 관계라는 관점에서 보면 각각의 역할은 다음과 같이 정리할 수 있겠습니다.
- CPU : 전류의 상태를 바꾸는 역할
- 메모리 : 보존한 전류의 상태를 복사해와서 유지하며, CPU가 변경한 전류의 상태를 유지시키는 역할
- 보조기억장치 : 전류의 상태를 보존하는 역할
추상화(abstraction)란?
컴퓨터 공학에서의 추상화(abstraction)란 복잡한 자료, 모듈, 시스템 등으로부터
핵심적인 개념 또는 기능을 간추려 내는 것을 말한다(by 위키피디아)
진정한 실체는 하드웨어도 소프트웨어도 아닌 전류의 흐름이기 때문에
소프트웨어는 물론 하드웨어조차 실체 그 자체를 직관적으로 이해하기는 어렵다고 할 수 있죠.
프로그램, 프로세스, 프로세서에 대해서
프로그램, 프로세스, 프로세서에 대한 설명은 위에서 언급한 컴퓨터 구조의 추상화
「CPU ⇔ 메모리(D램) ⇔ 보조기억장치」와 결부시킬 수 있습니다.
일단 프로그램, 프로세스, 프로세서의 간단한 정의는 다음과 같습니다.
프로그램이란?
- 특정 목적을 위하여 그 처리 방법과 순서를 기술하여 컴퓨터에게 명령하는 명령문의 집합체
프로세스란?
- 휘발성 메모리에 로드되어 있는 프로그램, 즉 실행되고 있는 프로그램
프로세서란?
- 프로그램을 실행할 수 있도록 해주는 하드웨어, 컴퓨터에서는 CPU가 프로세서
메모장으로 예를 들어 프로그램, 프로세스, 프로세서에 대해서 좀 더 살펴보겠습니다.
메모장은 프로그램, 즉 명령문의 집합체이기 때문에 평소에는 보조기억장치에 보존되어 있습니다.
만약 컴퓨터의 전원을 넣고 메모장을 실행시킨다면 메모장이란 프로그램은 메모리에 적재(Load)됩니다.
이렇게 메모리에 적재된 프로그램을 프로세스라 부릅니다.
메모리에 적재된 메모장은 프로세서(CPU)에 의해 여러 명렁문이 처리되며 전류의 상태가 바뀌게 됩니다.
예를 들어 메모장에 "AAAAA"라고 입력했을 경우, 우리의 눈에는 문자 "AAAAA"가 보일 뿐이지만,
실체적으로는 전류의 상태를 0과 1로 나타내며 이리저리 변경하고 있다는 것이죠.
문제는 그렇게 처리한 전류의 상태는 D램, 즉 휘발성 메모리에서만 유지되는 것이기 때문에,
전원을 끄게 되면 CPU가 처리한 명령들이 날아가 버립니다.
그것을 방지하기 위해서는 전류의 상태를 비휘발성인 보조기억장치에 특정 형태로 보존해야 합니다.
그것이 메모장의 .txt라는 파일의 역할입니다.
메모장은 CPU에 의해 처리된 현재의 전류의 상태를 .txt파일로 보조기억장치에 저장합니다.
또한 .txt파일을 시행하게 되면 메모리에 notepad.exe가 적재되며,
.txt파일에 보존되어 있던 전류의 상태를 다시 CPU가 처리할 수 있도록 준비시킵니다.
프로세스가 실행되는 상태는 작업 관리자의 세부 정보에서 확인할 수 있습니다.
메모장 프로그램 경우에는 notepad.exe 프로세스가 세부 정보에 표시되며,
각각의 프로세스에 CPU가 얼마나 할당되는지도 알 수 있습니다.
만약 메모장을 2개 동시에 실행하면 세부 정보에 어떻게 나타날까요?
실제로 해보면 PID(프로세스ID)가 다른 notepad.exe가 2개 실행되고 있는 것을 확인할 수 있습니다.
여기서 프로그램과 프로세스가 같지 않다는 것을 알 수 있습니다.
BIOS, CMOS, UEFI에 대해서
https://www.youtube.com/watch?v=26OTFq-suyg
운영체제(OS)는 프로그램이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 줍니다.
예를 들어, 메모장을 실행하고 입력한 문자를 CPU가 판단하여 전류의 상태를 바꾸고 그것을 디스플레이에 표시하는 모든 일련의 처리에는 운영체제(OS)가 필요하다는 뜻입니다.
그럼 일종의 소프트웨어(프로그램)인 운영체제는 과연 무엇이 실행시키는 것일까요?
그 역할을 하는 것이 BIOS입니다.
BIOS(Basic Input Output System, 기본 입출력 시스템)란?
- Low Level의 소프트웨어와 드라이버로 이루어진 팜웨어(운영체제의 일종)
- 주변 장치(하드웨어)와 운영체제(소프트웨어) 사이의 데이터의 흐름을 관리함
- 메인보드의 BIOS를 ROM BIOS라고 부르며, 사용자가 컴퓨터를 켜면 시작된다
- BIOS는 비휘발성 메모리인 BIOS 칩에 저장되며, EEPROM(과거) ⇒ 플래시 메모리(현재)가 주로 사용된다
BIOS는 부팅 후 P.O.S.T이라는 처리를 수행합니다.
부팅할 때 장치들을 식별 및 진단을 하고 운영체제가 하드웨어를 사용할 수 있도록 초기화를 합니다.
Power : 전원을
On : 켜고
Self : 자기 시스템의
Test : 오류를 진단
BIOS는 컴퓨터가 꺼졌을 때도 설정 값을 유지해야 하는데, 그를 위해 CMOS를 사용합니다.
CMOS란?
- 개인용 PC 등에서 BIOS의 설정 값을 보관하기 위해 쓰이는 비휘발성 메모리를 시모스 롬(혹은 시모스)라고 한다
- 보관되어 있는 데이터 자체를 시모스라고 하기도 한다
본래 CMOS는 상보적 금속산화막 반도체(Complementary Metal–Oxide Semiconductor)의 줄인말이며, 소규모 배터리 전원을 사용하는 디지털 로직 집적 회로(IC)를 뜻합니다.
CMOS 칩은 휘발성 메모리이지만, 배터리를 가지고 있기 때문에 전원이 꺼져도 BIOS 설정값을 유지할 수 있습니다.
(물론 배터리의 수명이 다 되면 BIOS 설정값이 초기화됩니다)
BIOS와 CMOS에 대해서
BIOS는 CMOS에 설정값을 불러와서 설정 및 저장하는 소프트웨어이며, 하드웨어의 기본 입출력 담당을 합니다.
컴퓨터가 부팅하면서 시스템의 설정을 하기 위한 BIOS 화면(파란 화면)에 뜨는 내용들은 CMOS에 저장되어 있습니다.
하지만 이러한 데이터를 설정할 수 있도록 파란 화면을 뜨게 하는 프로그램은 ROM BIOS(BIOS 칩)에 존재합니다.
따라서 컴퓨터 시스템을 부팅하면서 BIOS 진입 키(제조 회사마다 다름)를 누르면
ROM BIOS에 포함된 BIOS 설정 프로그램이 CMOS의 내용을 읽어와 설정할 수 있도록 보여주는 것입니다.
하지만 2020년 이우에는 UEFI 클래스 3+가 표준으로 자리잡게 되면서 구형 BIOS는 사라질 예정입니다.
UEFI(Unified Extensible Firmware Interface, 통일 확장형 펌웨어 인터페이스)
- 기존 BIOS의 한계를 극복하고 안정성과 편의성을 높인 펌웨어 인터페이스
- 그래픽 기반에 좀 더 유저 친화적인 화면이며 대용량 저장장치, 키보드, 마우스 모두 사용 가능하다는 특징이 있음
컴퓨터에게 계산을 시킨다면?
'게임 프로그래밍(학습 내용 정리) > 컴퓨터 개론' 카테고리의 다른 글
프로그램이란 무엇인가 (0) | 2021.10.18 |
---|---|
컴퓨터 개론 - 마이크로 아키텍처 (0) | 2021.10.12 |
컴퓨터 개론 - 메모리 (0) | 2021.10.12 |
자료와 정보 (0) | 2021.10.08 |
컴퓨터 개론 - 컴퓨터는 어떻게 판단하는가? (0) | 2021.10.07 |