[OS] 운영체제의 개요

YongHo·2024년 4월 1일

운영체제라던지 쓰레드 스케줄링 한 번씩 들어봤고 검색해서 대충 보기만 했지, 자세하게 봤던 적은 없는 것 같다.
그래서 이번에는 조성호님이 지으신 '쉽게 배우는 운영체제'를 읽고 기록을 남겨보려고 합니다!!

1. 생활 속 운영체제

흔하게 접할 수 있는 MS사의 윈도우와 Apple의 Mac os
또한 현대인들의 필수템인 스마트폰의 안드로이드(Android)와 iOS

그림1-1 다양한 운영체제

책을 읽으며 처음 알게된 사실인데 컴퓨터는 원래 미사일 탄도를 계산하기 위해 개발되었다고 합니다..
계산을 하기 위함이면 계산기 아닐까? 싶었지만 '프로그래밍이 가능한 기계'이기 때문에 컴퓨터라고 불린다고 합니다.
우리가 흔하게 사용하는 범용 컴퓨터부터 스마트폰, 냉장고 등에 탑재된 임베디드 시스템까지 정말 다양한 것 같습니다😁
임베디드 시스템에도 운영체제가 있는데 간단한 예로 애플워치에 적용된 watchOS와 갤럭시 워치에 적용된 wearOS가 있습니다!

2. 운영체제의 정의

컴퓨터는 크게 하드웨어(hardware)소프트웨어(software)로 구성이 됩니다. 소프트웨어는 하드웨어를 제어하여 작업을 수행시키는 명령의 모음, 즉 프로그램(program)입니다. 이해를 돕기 위해 많이들 요리에 빗대어 설명해주시는데 냄비, 프라이팬, 가스레인지와 같은 조리 기구는 하드웨어에 해당하고, 특정 요리에 대한 손질, 방법, 절차를 담고 있는 레시피는 소프트웨어에 해당해요.
소프트웨어는 정해진 절차에 따라 하드웨어를 사용하여 데이터를 처리하는데, 크게 응용 프로그램과 시스템 소프트웨어로 나뉘게 됩니다.

  • 응용 프로그램(application program) : 문서 작성을 위한 한글이나 MS워드 등 특정 작업을 위해 사용하는 프로그램
  • 시스템 프로그램(system program) : 컴퓨터 하드웨어와 응용 프로그램을 관리하기 위한 소프트웨어, 대표적으로 운영체제와 유틸리티가 존재
📃 NOTE 유틸리티
운영체제(operating system)의 기능이 많아지고 구조가 복잡해짐에 따라 바이러스 검사, 디스크 조각 모음 등과 같이 운영체제의 작업을 보조하는 소프트웨어

컴퓨터에는 컴퓨터 자원이 존재하는데 이 자원을 아무나 막 가져다 쓰겠다고 하면 분명 금방 망가질 것이 뻔합니다. 그 망가짐을 막기 위해 컴퓨터를 관리하고 운영해주는 소프트웨어를 운영체제(Operating System)이라고 합니다. 운영체제는 모든 소프트웨어 위에 존재하는 최고의 소프트웨어입니다.

운영체제는 컴퓨터 자원을 효율적으로 관리하는 소프트웨어

3. 컴퓨터 구조와 운영체제

그림 1-2 컴퓨터의 구조

위 그림처럼 운영체제는 커널과 인터페이스로 나뉘게 되는데 간단하게 설명하면 커널은 운영체제의 핵심이 모여져 있는 곳이고, 인터페이스는 사용자가 커널과 대화할 수 있는 통로라고 생각해주면 될 것 같습니다!
예를 들어 인터페이스인 키보드로 컴퓨터에 명령을 내리면 모니터를 통해 결과를 알 수 있듯이 말이예요!

과거에는 사용자가 명령어를 직접 입력하여 작업하는 문자 기반 인터페이스를 사용했지만 요즘은 GUI(Graphic User Interface)가 제공되어, 마우스나 손가락 터치만으로도 작업이 가능합니다.
컴퓨터 구조도 자세히 들어가면 정말 끝도 없지만 운영체제에 대해 공부중이기 때문에 간단하게 넘어가겠습니다😂

4. 운영체제의 역할

  • 자원관리 : 컴퓨터 자원을 응용 프로그램에 나누어 줌으로써 사용자가 원할하게 작업할 수 있도록 도움
  • 자원보호 : 어떠한 응용 프로그램이 남의 영역을 침범하여 작업을 망치거나 데이터를 지울 수 있기 때문에 이러한 것으로부터 자원을 지키는 것도 운영체제의 역할
  • 하드웨어 인터페이스 : 마우스나 키보드 제품이 서로 달라도 운영체제는 복잡한 과정없이 사용할 수 있도록 해주게 하드웨어 인터페이스를 제공
  • 사용자 인터페이스 : 폴더 생성, 인터넷 바로가기 아이콘 등 사용자 인터페이스를 제공하여 사용자에게 편리성을 제공

그림 1-3 운영체제의 역할과 목표

이렇듯 운영체제는 자원 관리가 효율적이어야하며, 갑자기 멈추거나 안되는 일이 없게끔 안전해야 하고, 앞으로 개발될 하드웨어도 제약 없이 사용할 수 있도록 확장성을 보장해야한다!
또한 마지막으로 사용자가 편리하게 작업할 수 있는 환경을 제공하는 것 또한 운영체제의 목표이다!

0개의 댓글