• 평소 CS (Computer Science)의 4대 요소 중 한 가지로만 알고있었던 운영체제에 대해 오늘 다뤄보려고 합니다.


📖 운영체제(Operating System)의 정의

  • 운영체제는 컴퓨터의 하드웨어를 제어하고 사용자가 컴퓨터를 사용 가능하도록 중재 역할을 하는 프로그램입니다.

  • 대표적으로 마이크로소프트사에서 개발한 컴퓨터용 운영체제인 윈도우, 애플이 개발한 맥 전용 운영체제인 맥 OS, 커뮤니티 주제로 개발한 공개 운영체제인 리눅스 등등 우리가 사용하고 알고 있는 것들이 운영체제입니다.



📖 운영체제는 어디서 접하게 될까?

  • 컴퓨터를 켰을 때 바로 나오는 윈도우 화면 자체가 운영체제 입니다. 운영체제는 주로 사용자와 컴퓨터 하드웨어 사이에서 중간 다리 역할을 하며 우리가 컴퓨터를 사용하는 동안 계속 함께 하고 있습니다. 하드웨어는 크게 CPU, RAM, 주변장치로 구성되어 있습니다.

  • CPU는 인간의 뇌에 비유될 만큼 컴퓨터에서 아주 똑똑한 역할을 담당합니다. 하지만 이렇게 중요한 부품인 CPU도 운영체제가 없다면 아무 역할도 하지 못하는 고철 덩어리에 불과하게 됩니다.

  • 또 다른 하드웨어인 RAM을 사용할 경우에도 운영체제는 중요한 역할을 담당하게 됩니다. 주기억장치는 인식하는 역할을 담당합니다. 우리가 보는 것, 먹는 것, 느끼는 것은 바로 저장되지 않고 인식되어 저장되는데 운영체제에서도 그 역할을 하는 것이 주기억장치입니다. 주기억장치 역시 중요한 하드웨어 부품이지만 공간 확보와 어떤 데이터가 어느 곳에 저장되는지 등을 운영체제로부터 지정받아야합니다. 이처럼 운영체제는 우리가 컴퓨터를 사용하는 매순간 작동되고 있습니다.



📖 운영체제 알아보기

🎁 시스템 관리자

  • 상사에게 문서를 작성하고 인쇄물을 출력하도록 지시받았다고 우리가 가정해봅시다.

  • 지시에 따라 한글이나 워드 같은 프로그램으로 문서를 작성한 후 인쇄합니다. 우리가 문서를 작성하고 인쇄하는 동안 운영체제 역시 두 가지 정도의 일을 처리하게 됩니다. 작업 순서에 따라 운영체제가 어떤 역할을 담당하는지 설명해 보겠습니다

  • 첫번째, 운영체제는 문서의 저장 위치를 지정합니다. 사용자는 문서편집 프로그램에서 문서를 작성한 후 저장을 합니다. 작성한 파일은 하드디스크에 저장해야 하는데 저장매체인 하드디스크 자체는 어디에 어떻게 저장해야 되는지 스스로 결정하지 못합니다. 그렇기 때문에 저장 공간과 방법 역시 운영체제가 하드디스크에게 지정해 줍니다.

  • 두번째, 저장한 문서를 출력할 경우 운영체제가 사용자와 프린터 사이에서 출력을 돕는 역할을 합니다. 하드웨어는 프린터, 모니터, 키보드, 마우스 등등 각종 기계 장치들을 의미하며 이 자원들을 운영체제가 관리합니다. 그렇기에 하드웨어의 관리자 역할을 하는 운영체제를 운영체제 관리자라고 지칭합니다.


🎁 사용자와 컴퓨터 간의 커뮤니케이션 지원

  • 예전에 컴퓨터는 운영체제가 미약했었기 때문에 사용법이 굉장히 어려웠습니다. 때문에 일반인들은 사용하기가 어려웠고, 컴퓨터를 사용하는 전문가인 컴퓨터 오퍼레이터가 존재했습니다. 현재 컴퓨터 오퍼레이터에 더 이상 존재하지 않는 이뉴는 운영체제 덕분에 일반인들도 컴퓨터 사용이 쉬워졌기 때문입니다. 컴퓨터 전문가의 도움 없이 일반인들도 컴퓨터와의 커뮤니케이션이 수월해졌습니다. 운영체제는 컴퓨터뿐만 아니라 스마트폰 안에도 존재하며 사용자와 스마트폰 사이의 커뮤니케이션은 담당합니다. 스마트폰 운영체제 덕분에 현재 어린아이들도 쉽게 핸드폰을 사용하고 있습니다.

🎁 응용프로그램 제어

  • 운영체제는 커널과 셸로 구성됩니다. 커널은 실제로 CPU, 디스크 등을 관리하는 곳입니다. 셸은 사용자가 명령을 내리면 해석해서 그 결과를 보여 주는 역할을 하게 됩니다.

  • 셸은 조개껍질이라는 뜻인데, OS의 껍질이라고 볼 수 있습니다. 윈도우는 그래픽으로 명령하고, 리눅스는 보통 텍스트로 명령을 합니다. 또한 윈도우 운영체제에서는 명령 프롬포트로, 유닉스 기반인 맥 OX X 운영체제에서는 터미널로 셸을 실행이 가능합니다. 현재 파일의 디렉토리를 알고 싶을 경우 ls라는 명령을 사용합니다. 이때 셸이 명령어를 해석하는 과정은 다음과 같습니다. 예를 들어서 사용자가 현재 위치의 파일 목록을 조회하기 위해 ls 명령어를 터미널에서 입력했다고 가정해보겠습니다. 셸은 명령어를 해석해서 커널로 넘기며, 커널은 하드웨어에게 명령어를 처리하게 만듭니다.

  • 명령어를 처리한 후 응답값을 받으면 그 값을 다시 셸에게 전달하며 응답을 사용자에게 띄워줍니다. 이렇게 셸은 사용자에게 명령을 받고 명령을 실행해 주기 때문에 코멘트 인터프리터라고도 합니다. 인터프리터는 가이드나 통역이라고 이해하면 쉽습니다. 외국에서는 통역의 도움으로 현지 언어를 사용해야 하듯이 컴퓨터도 컴퓨터 언어를 잘 아는 셸의 도움을 통해 명령어를 해석하는 과정이 필요합니다.



📖 운영체제를 사용하는 이유

  • 다양한 업무를 동시에 진행하고 빠른 시간 내에 끝내는 사람을 보고 업무를 잘한다고 평가합니다. 즉, 같은 시간을 얼마나 효율적으로 분배하여 빠르고 정확하게 끝내느냐에 따라 능력을 판단하게 됩니다.

  • 컴퓨터 역시 동시다발적으로 일을 수행하는 경우가 많습니다. 음악을 들으면서 문서를 작성하고, 한 쪽 화면으로는 유튜브를 틀어놓기도 합니다. 하나의 프로세스가 여러 가지 일을 수행할 경우에도 운영체제가 메모리를 효율적으로 분배하여 여러 프로그램을 수월하게 사용할 수 있게 해줍니다.

profile
나 혼자 보려고 만든 개발 일기

0개의 댓글