포스트

운영체제 1

이 포스트는 패스트캠퍼스의 “컴퓨터 공학 전공 필수 올인원 패키지 Online.” 강의를 보고 정리한 내용입니다.

운영체제

컴퓨터 공학의 필수 과목으로 꼽히는 운영체제이다.

컴퓨터 구조가 컴퓨터 하드웨어의 기본 원리라면 운영체제는 컴퓨터 소프트웨어의 기본 원리라고 볼 수 있다.

정확히는 운영체제는 컴퓨터 소프트웨어 + 하드웨어 를 관리하며, 운영체제를 이해한다는 것은 전체적인 컴퓨터 구동 방식을 이해한다는 것과 같으므로 중요하다.

어플리케이션을 개발할 때 잘 사용하지 않던 자료구조(큐, 스택, …)나 알고리즘들이 운영체제에서 컴퓨터 소프트웨어와 하드웨어를 효율적으로 돌아가도록 사용된다.

운영체제라는것도 큰 규모의 소프트웨어이기 때문에, 공부해두면 나중에 큰 규모의 소프트웨어의 소프트웨어를 만들때나, 운영체제를 고려하여 소프트웨어를 만들 때 도움이 된다.


운영체제 역할

운영체제의 역할은 여러가지 측면에서 볼 수 있다. 그 중 가장 대표적인 역할은 다음과 같다.

1. 시스템 자원(System Resource) 관리자

운영체제는 OS(Operating System) 이라고 불리고, 시스템 자원은 곧 컴퓨터 하드웨어를 뜻한다.

우리가 사용하는 컴퓨터 하드웨어를 살펴보면 다음과 같다.

  • CPU(중앙처리장치), Memory(DRAM, RAM)
  • I/O Devices(입출력장치)
    • 출력: Monitor
    • 입력: Keyboard, Mouse
    • 입/출력: Network(데이터를 내 컴퓨터에서 전송 or 내 컴퓨터로 받기)
  • 저장매체
    • SSD, HDD
    • 컴퓨터를 꺼도 데이터가 보존된다.

운영체제의 가장 중요한 역할은 위같은 컴퓨터 하드웨어를 관리하는 컴퓨터 소프트웨어로서의 역할이다.

컴퓨터 하드웨어는 명령을 수행만 할 뿐 스스로 할 수 있는 것이 없다. 간단한 예시를 들어보자면 다음과 같다.

  • CPU 자체는 프로그램들이 각각 얼마나 CPU 를 사용할지 알 수 없다.
  • Memory 자체는 프로그램들이 어느 주소에 저장되어야 하는지, 메모리 공간을 얼마나 확보해야 하는지 알 수 없다.
  • 저장매체 자체는 데이터를 어느 주소에 어떤 이름과 구조를 가지고 저장하는지 알 수 없다.
  • 입출력장치 자체는 키보드를 누르고 마우스를 움직이는 등 입력 데이터가 들어올 때 어떻게 사용될 것이고, 출력 데이터를 모니터에 어떻게 출력할지를 알 수 없다.

스스로 어떤 결정을 내릴 수 없는 하드웨어를 어떻게 사용할지 결정해주는 것이 운영체제의 역할이다.

다시말해 운영체제 없이는 하드웨어를 조작할 수 없고, 컴퓨터 또한 우리가 원하는 동작을 하지 않는다. 따라서 운영체제가 설치되지 않은 컴퓨터를 구동하면 모니터에 아래와 같은 메세지가 나오는 이유이다.

no os

2. 유저와 컴퓨터간의 소통을 지원

컴퓨터를 사용하는 사용자가 자신이 원하는 명령을 컴퓨터에 내리기 위해서는 OS 를 통해 명령을 내리고, 이에 따른 결과를 OS 를 통해 받아야 한다.

os

이러한 기능을 담당하는 대표적인 소프트웨어로 Shell 이 있다.

3. 컴퓨터 하드웨어와 프로그램을 제어

위에서 언급된 역할들 뿐 아니라 프로그램을 제어해주는 역할 또한 수행한다.

우리가 사용하는 응용 프로그램(Application), 예를들면 엑셀이나 카카오톡 게임 등을 실제로는 운영체제가 실행시켜준다.

os


Tip. 대표적인 운영체제

현재 가장 많이 사용되는 운영체제는 Windows OS, Mac OS 이다.

그 외에도 UNIX OS 는 운영체제 기술의 발전사에서 현대 운영체제의 기술을 최초로 구현하여 최신 운영체제들의 기반이 됐다.

요즘은 UNIX 와 구조와 사용법이 비슷한 운영체제들을 UNIX 계열 OS 라고 부르며, 대표적으로 LINUX OS 가 있다.

이 LINUX 는 인터넷 서비스를 구동하는 온프레미스, 클라우드 서버의 대부분이 사용한다.


응용 프로그램

우리가 흔히 만드는 프로그램(어플리케이션)은 소프트웨어라고 알고 있다.

이 소프트웨어는 크게 두가지로 나눌 수 있다.

  • 응용 프로그램(Ex. 엑셀, 카카오톡, …) = Application(대부분 PC)/App(대부분 SmartPhone)
  • 운영체제

여기서 운영체제와 응용 프로그램의 관계를 좀 더 살펴보자.

운영체제가 응용 프로그램을 관리한다 는 뜻은 다음과 같다.

  • 응용 프로그램을 실행
  • 응용 프로그램간의 권한 을 관리
    • 권리자 권한으로 실행
  • 응용 프로그램을 사용하는 사용자 를 관리
    • 로그인
  • 응용 프로그램의 비정상적인 동작을 관리한다.
    • 잘못 작성된 프로그램이 다운된다(무한 반복문, 오버플로우, …)
    • 모든 파일 삭제를 막기 (권한/사용자 관리)
    • 응용 프로그램의 CPU 독점을 막는다
  • 응용 프로그램과 사용자의 커뮤니케이션을 지원한다.

이러한 측면에서 운영체제의 역할을 다시 정의하면 다음과 같다.

  • 사용자가 사용하는 응용 프로그램이 효율적이고 적절히 동작하도록 지원한다.
  • 응용 프로그램이 요청하는 시스템 리소스를 효율적으로 분배하고 지원한다.

Tip. 운영체제는 어디에 있을까?

운영체제는 보통 저장매체(SSD/HDD)에 설치(저장)한다.

컴퓨터의 전원버튼을 눌러 구동시키면, 운영체제가 Memory 에 올라가게 된다.

현대 컴퓨터 구조로 쓰이고 있는 폰 노이만 구조 를 참조하자.

폰 노이만 구조

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.