운영체제(OS) 개요

컴퓨터를 잘 모르는 분들도 운영체제(OS: Operating System)라는 용어는 들어본 적이 있으실 거예요. 운영체제는 컴퓨터를 켤 때 가장 먼저 실행되는 소프트웨어로, 오늘날 많은 사람들이 이용하고 있는 Windows와 Mac OS, 그리고 Linux 등이 해당됩니다. 또한 운영체제는 컴퓨터에만 포함되는 것이 아닌, 기본적으로 스마트폰이나 스마트 와치, 자동차 네비게이션 등에도 들어가 있습니다.
이처럼 대부분의 기기들은 모두 운영체제를 포함하고 있는데, 운영체제는 어떤 이유에서 필요한 걸까요? 🤔
대표적으로 아래 4가지의 이유를 들 수 있습니다.
1. 효율성
우리는 컴퓨터를 사용할 때 한 가지 작업만 하는 경우는 그다지 많지 않습니다. 웹 서핑을 하면서 음악도 듣고, 중간에 지인에게 연락이 오면 답장도 하는 것처럼 여러 가지 작업을 병행해서 하게 됩니다. 이럴 때 컴퓨터는 주어진 자원(키보드, 네트워크 카드, 사운드 카드)을 각 소프트웨어에 할당해야 하는데, 운영체제는 이러한 자원들을 효율적으로 분배하고 회수하여 원활한 동작이 이루어지게끔 만듭니다.
2. 안정성
운영체제는 외부의 악의적인 침입이나, 사용자의 미숙한 조작으로부터 발생할 수 있는 컴퓨터 자원에 대한 위협을 방지하고 있습니다. 보안을 위한 대책이 기본적으로 구현되어 있긴 하지만, 좀 더 안전하게 보호하기 위해 백신과 같은 외부 유틸리티를 활용합니다. 운영체제만으로도 모든 위협에 대한 보호가 가능하면 좋겠지만, 보안에만 특화된 유틸리티에 맡기면 더욱 안전하겠지요?
3. 확장성
우리는 다양한 하드웨어와 함께 컴퓨터를 사용하고 있습니다. 하지만 세상에는 너무나 다양한 하드웨어가 존재하는데, 마우스라 하더라도 어떤 마우스는 버튼이 두 개인데, 또 어떤 마우스는 세 개일 수 있습니다. 이때마다 서로 다른 하드웨어들을 지원하는 소프트웨어를 설치해야 합니다.
하지만 운영체제는 복잡한 과정 없이 다양한 장치를 사용할 수 있도록, 하드웨어 인터페이스라는 것을 제공하고 있습니다. 이 인터페이스를 통해 하드웨어를 일관된 방법을 사용할 수 있도록 하기 때문에, 사용자는 어떤 소프트웨어를 깔아야 하는지 신경쓸 필요 없이 간편하게 사용할 수 있습니다. (Ex. 새로운 하드웨어 연결 시, 자동으로 드라이버 설치 창이 켜지는 것)
4. 편의성
하드웨어 인터페이스뿐만 아니라 운영체제는 사용자를 위한 인터페이스도 제공하고 있습니다. 예전에는 폴더 만들기, 삭제하기와 같은 운영체제의 기본적인 기능을 이용하기 위해 검은색 터미널에 사용자가 직접 명령어를 입력해야 했습니다. 하지만 오늘날 대부분의 운영체제는 기본적으로 GUI(Graphic User Interface) 환경을 제공하기 때문에, 이전과 달리 마우스를 통해 간편하게 조작하여 운영체제의 기능들을 이용할 수 있습니다.
운영체제의 업데이트를 통해, 언제든 더 나은 사용자 환경을 제공받을 수 있습니다.
운영체제의 구조 ⛱
운영체제 구조에서 기억해야 하는 가장 중요한 내용은 커널(Kernel)입니다. 커널은 운영체제의 핵심이 되는 기능들을 모아 놓은 것으로, 대표적인 기능에는 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리 등이 있습니다. 또한 커널은 내부에 시스템 호출과 디바이스 드라이버라는 것을 포함하고 있는데, 어떤 구조인지 그림을 통해 살펴 보도록 합시다.

시스템 호출 (System Call)
시스템 호출은 커널이 자기 자신을 보호하기 위해 만든 인터페이스입니다. 커널은 사용자나 어플리케이션으로부터 컴퓨터 자원을 보호하기 위해 커널 내부에 직접적으로 접근하는 것을 차단하고 있습니다. 하지만 시스템 호출이라 하는 인터페이스가 있기 때문에, 내부 자원을 어떻게 얻을 수 있을지 고민하지 않고, 미리 정해진 절차를 따라 결과만 요청해서 받으면 됩니다.
API와 SDK에 대해 알고 계시면, 시스템 호출에 대한 이해에 도움이 될 것 같습니다 🤗
디바이스 드라이버 (Device Driver)
시스템 호출이 어플리케이션과의 인터페이스라면, 디바이스 드라이버는 하드웨어와의 인터페이스입니다. 컴퓨터 하드웨어의 종류는 너무나 다양하기 때문에 이를 일일이 개발하여 커널에 포함하는 것은 불가능합니다. 그렇기 때문에 커널에서는 입출력의 기본적인 부분만을 개발하고, 나머지는 하드웨어 개발자가 인터페이스를 참고해 만들 수 있도록합니다. 그렇게 만들어진 소프트웨어를 커널이 실행될 때 함께 실행되도록 합니다.
'💻 컴퓨터공학 > 운영체제' 카테고리의 다른 글
CPU를 효율적으로 사용하기 위한 스케줄링 (0) | 2021.10.09 |
---|---|
프로세스와 쓰레드의 차이 (0) | 2021.10.03 |
기본적인 컴퓨터 구조 (0) | 2021.10.01 |
댓글
이 글 공유하기
다른 글
-
CPU를 효율적으로 사용하기 위한 스케줄링
CPU를 효율적으로 사용하기 위한 스케줄링
2021.10.09스케줄링(Scheduling) 🔥 프로세스는 생성, 준비, 실행, 대기, 종료의 5가지 상태(5-State)를 바탕으로 실행됩니다. 그리고 프로세스는 각 상태를 프로세스 자신이 바꾸는 것이 아닌, CPU 스케줄러라는 것에 의해서 관리되고 전환됩니다. 이렇게 스케줄러가 프로세스에 CPU를 할당하는 작업을 스케줄링이라 하며, 프로세스의 현재 상황을 보면서 CPU를 어떻게 할당해야 시스템 자원을 효율적으로 사용할 수 있을지 결정합니다. 스케줄링은 프로세스 관리 범주에 따라 다음과 같이 나뉩니다. 고수준: 시스템 자원을 할당받기 위한 프로세스의 수를 결정하는 단계 중간수준: 시스템 상황에 따라 실행 중인 프로세스를 중지하거나 활성화하는 단계 저수준: 준비 중인 프로세스에게 CPU를 할당하거나, 할당된 프로세스를… -
프로세스와 쓰레드의 차이
프로세스와 쓰레드의 차이
2021.10.03프로세스 (Process) 🔥 프로그램이 실행되어 메모리에 올라가면 이를 프로세스라 합니다. 각 프로세스는 [ 코드 ・ 데이터 ・ 스택 ・ 힙 ] 영역으로 구성되며, 서로 독립적인 관계입니다. 또한 프로그램이 메모리에 올라가 프로세스가 되기 위해서는 먼저 프로세스 제어 블록(PCB)이라는 것이 생성되어야 합니다. 이 블록은 프로세스가 실행되기 위해 필요한 정보들을 담고 있는 자료구조이며, 프로세스 구분자, 메모리 관리 정보, 각종 레지스터 정보 등이 담겨 있습니다. 프로세스가 동작을 마무리하면, 메모리에서 내려감과 동시에 프로세스 제어 블록도 폐기됩니다. 5-State Process Model 운영체제는 프로세스를 효율적으로 실행하기 위해 5가지 상태 프로세스 모델을 사용합니다. 1. 생성 상태 (Cre… -
기본적인 컴퓨터 구조
기본적인 컴퓨터 구조
2021.10.01🖥 폰 노이만 구조 오늘날의 컴퓨터는 대부분 미국의 수학자인 폰 노이만이 고안한 폰 노이만 구조를 따르고 있습니다. 이 구조가 등장하기 전에는 컴퓨터를 사용할 때마다 전선을 새롭게 연결하여 회로를 구성해야 했습니다. 하지만 폰 노이만은 이런 과정이 너무나 비효율적이라 생각했고, 하드웨어는 그대로 두면서 작업을 위한 프로그램만 메모리에 올려 사용하는 방식을 생각했습니다. 이러한 생각은 결과적으로 컴퓨터 이용을 간편하게 만들어 주었고, 운영체제를 비롯한 모든 프로그램이 메모리를 이용하기 때문에 오늘날 프로그래밍 또한 가능해졌습니다. 폰 노이만 구조는 운영체제와 관련된 내용을 이해할 때, 정말 중요한 바탕이 되니 꼭 이해하는 것이 좋습니다. 🤔 하드웨어 알아보기 CPU CPU는 명령어를 해석하여 실행하는 장치…
댓글을 사용할 수 없습니다.