컴퓨터구조(Computer Architecture)와 운영체제(Operating System)에 대해 알아보자. 아래 그림만 봐도 자칫 추상적이고 이해하기 어려워 보이지만, 간단하고 기본적인 구조와 개념을 파악하는 것이 목표이다.
컴퓨터 구조란?
3가지 주요 구성 요소로 나눠볼 수 있다:
1) CPU 중앙 처리 장치
- Computer Processing Unit (CPU)는 위에 그림에서 볼 수 있듯이 컴퓨터의 두뇌같은 역할을 하며, 모든 계산과 명령 실행을 담당한다.
- 이 장치 안에 Control Unit (CU)라는 연산을 수행하는 산술 논리 단위도 있고, Arithmetic & Logic Unit (ALU)라는 명령어의 순서를 제어하는 제어 유닛 등을 포함하고 있다.
- 예를 들어, 문서에 글을 쓰거나, 게임을 할때 모든 작업은 CPU를 통해 처리된다.
2) Memory 메모리
- 메모리는 데이터와 명령어를 임시로 저장하는 공간이다.
- 흔히 들어봤을 Random Access Memory (RAM)이 바로 주 메모리로 사용되는 메모리로, CPU가 현재 실행 중인 프로그램의 데이터와 명령어를 빠르게 읽고 쓸 수 있게 해준다.
- 예를 들어, 워드에 문서를 작성하고 있다면, 이 내용은 RAM에 저장된다. 이 저장된 데이터는 CPU가 빠르게 접근 할 수 있어 프로그램이 신속하게 실행될 수 있게 해준다.
3) I/O Device 입출력시스템
- 입출력 시스템은 컴퓨터와 외부 세계 사이의 데이터 교환을 담당한다. 여기서 I/O란 Input (입력)과 Output (출력)을 가리킨다.
- 예를 들어, input으로는 마우스나 키보드를 통해 컴퓨터로 전달 될수 있고, output을 모니터나 프린터에 출력할 수 있다.
쉽게 말해, CPU가 데이터를 처리하고, 메모리가 데이터를 임시저장하고, 입출력시스템으로 사용자와 상호작용을 할 수 있게 한다.
그렇다면, 컴퓨터구조와 운영체제는 어떤 연관성을 가지고 있을까?
운영체제(OS)란?
하드웨어와 사용자 사이의 중재자
- 운영체제는 컴퓨터에서 가장 중요한 소프트웨어 중 하나로, 컴퓨터 하드웨어(hardware)와 사용자(user)를 이어주는 역할을 한다.
- 앞서 말한 다양한 입출력 장치를 관리하고, 장치 드라이버를 통해 하드웨어와 소프트웨어 사이의 통신을 가능하게 한다.
- 쉽게 말해, 운영체제는 컴퓨터를 사용하기 쉽게 만들어주는 프로그램이다.
운영체제의 주요기능
- 1) 자원관리
- CPU, 메모리, 저장공간, 등 모든 자원을 관리한다
- 여기서 관리란 여러 프로그램과 사용자가 컴퓨터 자원을 공정하게 사용할 수 있도록 조정하는 것을 포함한다
- 2) 파일 관리
- 파일을 저장, 검색, 수정할 수 있는 시스템을 제공한다
- 덕분에 우리는 쉽게 파일을 관리할 수 있다
- 3) user interface 제공
- 주로 사용되는 Graphic User Interface (GUI)를 제공하여, 우리가 마우스 클릭이나 터치로 작업할 수 있게 한다
- 우리가 컴퓨터 화면에서 보이는 그림을 클릭 할 수 있는 것들이 GUI라고 생각하면 된다
- 4) 프로그램 실행
- 우리가 실행하려는 프로그램을 메모리에 옮기고, 실행할 수 있게 해주며, 충돌없이 여러 프로그램을 동시에 실행할 수 있도록 관리한다
- 5) 보안
- 시스템에 대한 무단 접근을 방지하고, 파일과 데이터를 보호한다
운영체제 예시
개발된 운영체제는 정말 여러가지가 있지만, 우리가 가장 흔히 알고 있는 데스크톱 운영체제 3개를 뽑자면:
- Windows - 가장 널리 사용됨
- macOS - 맥에서 사용
- Linux - 오픈소스, 무료
이외에도 모바일 운영체제 (Android, iOS), 서버 운영체제(Debian) 등이 존재한다, 임베디드 운영체제(RTOS) 등이 있다. 각 범주내에서도 수십 수백가지의 운영체제가 존재 할 수 있고, 오픈 소스 운영체제는 다양한 배포판을 가지고 있어 정확한 수를 파악할 순 없다.
개발자들은 왜 Linux를 가장 많이 사용할까?
Windows, macOS는 일반인에게 친절, 그치만 Linux는 날 것 그 자체
- 다른 운영체제들은 개발자가 아닌 사람들이 손쉽게 컴퓨터를 사용할 수 있게 환경을 제공한다 (GUI 제공)
- 사용자의 별다른 조작없이 의도대로 쓰는 완제품
- 프로그래머들은 새로운 것으로 조작할 수 있는 오픈소스 Linux를 사용한다
- Linux를 개조하여 자신만의 버전도 만들 수 있다!
- Linux는 무료이다!
'컴퓨터의 이모저모' 카테고리의 다른 글
macbook air m2에 리눅스 커널 컴파일 (make) 안되는 이유 (5) | 2024.04.09 |
---|---|
[인공지능] Uninformed Search란? (Blind Search, Search trees, State Space) (2) | 2024.03.30 |