본문 바로가기
프로그래밍/IT지식

[운영체제 & 하드웨어] OS & HW

by 준보틱스 2024. 6. 22.

운영체제 정의

운영체제의 정의를 설명하는건 굉장히 까다로운데, 컴퓨터 자원을 효율적으로 관리하기 위한 시스템, 공통된 소프트웨어 플랫폼, 컴퓨터 응용 프로그램 관리자 등으로 다양하다. 즉, 운영체제(OS)는 프로그램들을 실행하는 메인 프로그램이다. 프로그램들을 실행시키기 위해 CPU, 메모리 등 하드웨어의 자원이 필요하다. 운영체재는 하드웨어의 자원들을 이용해서 응용 프로그램을 관리한다. 이 외에도 운영체제는 네트워크 통신, 입출력 장치 관리 등 우리가 컴퓨터 사용에 필요한 모든 것을 관리한다.

운영체제의 가장 주된 목적은 컴퓨터의 하드웨어를 관리하는 것이다. 컴퓨터에는 CPU, 메모리, 디스크, 키보드, 마우스, 모니터, 네트워크 등의 하드웨어가 있으며 이를 잘 관리해주어야 컴퓨터를 효율적으로 사용할 수 있다. 또한 운영체제는 사용자에게 편의를 제공하는 목적도 가지고 있다.

운영체제의 정의 및 역할을 쉽게 설명해보자면, 자원을 관리하는 특별한 프로그램으로 실행 중인 프로그램(프로세스)을 관리하는 특별한 프로그램이라고 정의할 수 있다. 여기서 말하는 자원이란 컴퓨터의 네 가지 핵심 부품을 포함해서 프로그램이 실행되기 위해 마땅히 필요한 요소이다. 운영체제는 메모리에 저장되어 있다. 운영체제는 특별한 프로그램이기 때문에 메모리의 커널 영역에 저장된다. 운영체제가 저장되는 공간이 아닌 응용 프로그램 등을 저장하는 다른 공간을 사용자 영역이라고 한다.

전세계적으로 가장 많이 쓰이는 OS는 Linux이다. 거의 모든 IT회사에서 사용하는 서버는 Linux OS를 기반으로 동작하고 있다. 대표적인 예로 Android OS는 Linux OS를 기반으로 만들어졌다.

운영체제 역할

(1) 운영체제의 자원(메모리) 관리

운영체제는 자원(메모리)를 관리한다. 게임을 실행하려면 게임 프로그램은 메모리의 어디에 적재할 지 운영체제가 결정해준다. 게임을 종료하면 메모리에서 지워줘야 하는데 이렇게 메모리에서 비워주는 것도 운영체제가 수행한다. 물리적인 메모리의 크기가 보다 큰 프로그램도 실행시킬 수 있는데 그것도 운영체제가 수행해준다.

(2) 운영체제의 자원(CPU) 관리(스케쥴링)

메모리 내의 여러 개 프로그램을 동시에 실행된다면, 여러 개의 프로그램이 아주 빠르게 번갈아가면서 실행된다. 프로그램을 실행하려면 CPU가 필요하다. 그런데 어떤 프로그램(프로세스)를 누구부터 먼저, 얼마나 오래 실행시킬지 운영체제가 결정해준다.

(3) 운영체제의 프로세스 관리

동시에 수행되는 프로세스들이 있는데, 어떤 한 프로세스는 꼭 다른 어떤 프로세스보다 먼저 실행되어야 하는 프로세스라면 문제가 발생할 수 있다. 운영체제는 많은 프로세스들이 동시에 실행되도 문제가 발생하지 않게 해주는 역할을 한다.

(4) 운영체제의 시스템 호출을 통한 자원 보호

동시다발적으로 수행되는 프로세스들이 자원에 직접 접근하면 문제가 발생할 수 있다. 그래서 운영체제는 이러한 접근을 control해서 자원을 보호해주는 역할도 수행한다. 실행 중인 사용자 프로세스는 결과적으로 운영체제를 통해 자원에 접근하게 된다. 예를 들어 어떤 프로그램이 하드디스크에 저장하려고 한다면 하드디스크에 접근해야 하는데, 직접적으로 하드디스크에 접근하는 것이 아니라 운영체제의 시스템 호출을 통해 하드디스크에 접근한다.

프로세스 관리 OS에서 동시에 실행되는 많은 프로세스를 효율적으로 관리
파일 관리 파일 생성, 수정, 삭제, 조작, 백업 등
네트워크 관리 네트워크 서비스 성능, 오류분석, 프로비저닝, 품질관리 등
메인 메모리 관리 메모리 추적, 프로세스에 따른 메모리 할당
보조 스토리지 관리 스토리지 할당, 여유 공간 관리, 디스크 스케쥴링
입출력 장치 관리 버퍼 캐싱 시스템 제공, 장치 드라이버 제공
보안 관리 시스템 보호 및 오류로 인한 시스템 손상 방지
명령어 해석 시스템 사용자와 시스템 간의 인터페이스, 인터프리터, 셸 등

 

운영체제는 내부에 여러 개의 구성요소로 나뉜다.

가장 중요한 요소 가운데 하나가 커널인데, 커널은 프로그램들을 중재하는 역할을 한다. 하드웨어의 자원을 이용해 프로그램을 관리하는 역할을 커널이 한다. 사용자가 일반적으로 보지 못하는 낮은 수준의 프로세스를 제어한다. 얼마나 메모리를 읽고 쓸 것인지, 어느 프로세스를 실행할 것인지, 모니터, 키보트, 마우스와 같은 장치를 통해 어떠한 정보를 주고받을 것인지, 네트워크를 통해 받은 정보를 어떻게 해석할 것인지를 제어한다.

사용자 인터페이스는 컴퓨터 사용자가 직접 프로그램을 제어하고 사용할 수 있게 하는 운영체제의 기능이다. 사용자 인터페이스는 아이콘과 바탕화면을 지닌 그래픽이나 명령 줄을 지닌 문자를 이룰 수 있다.

하드웨어

컴퓨터 하드웨어(HW)는 CPU, 메모리, 디스크 등 컴퓨터의 물리적 부품을 의미한다.

  • CPU : 중앙처리장치, 컴퓨터 시스템을 통제하고 프로그램이 돌아가는 모든 계산을 한다.
  • 메모리 : RAM(주기억장치), 전기적인 신호를 내부에서 임시적으로 저장하고 이 데이터에 즉시 액세스할 수 있도록 하는 역할을 수행한다. CPU 계산 결과를 저장하고 프로그램이 실행되는 공간을 제공한다. 메모리의 용량이 크다는 건 그만큼 많은 정보들을 처리할 수 있으며, 더 많은 프로그램을 돌릴 수 있다는 걸 의미한다.

  • 디스크 : 정보를 영구적으로 저장하는 역할을 수행한다. 메모리가 프로그램이 실행되는 과정을 책임진다면 디스크는 프로그램을 컴퓨터에 저장하는 과정을 책임진다.

  • GPU : 그래픽처리장치, 영상정보를 처리하고 화면에 출력시키는 역할을 수행한다.

 

  • 입출력장치 : (입력장치)키보드, 마우스 등 (출력장치) 모니터, 프린터기 등

 

  • 파워서플라이 : 전원공급장치(PSU), 컴퓨터에 전원을 공급하는 역할