운영체제의 구조와 동작 방식

Haiseong Jeong·2022년 10월 29일
1
post-thumbnail

중개자

운영체제는 컴퓨터 시스템과 사용자 사이에서 중개자 역할을 하는 시스템 소프트웨어이다. 사용자가 컴퓨터를 사용하는데에 있어 대부분의 작업을 운영체제가 처리해준다. 운영체제는 하드웨어와 사용자 사이의 인터페이스를 제공하고, 한정적인 시스템 자원을 보다 효율적으로 사용할 수 있도록 도와주기도 한다.

사용자 측면

사용자 측면에서 살펴보면 운영체제는 사용자가 편리하게 원하는 동작을 수행할 수 있도록 하기 위해 필요하다.

시스템 측면

어떠한 동작을 최대한 효율적으로 무리없이 구동하기 위해 필요하다.

구조


그림의 위쪽으로는 사용자가 사용하는 응용프로그램과 인터페이스가 위치하고 아래쪽으로는 하드웨어가 위치한다. 위에서 말한것처럼 운영체제는 이 둘사이에서 중개자 역할을 한다. 운영체제는 커널과 인터페이스로 분리된다.

인터페이스

사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다. GUI 인터페이스 일수도 CUI 인터페이스 일수도 있다. 커널과 분리되어 같은 커널을 사용하더라도 다른 인터페이스를 가질 수 있다.

커널

운영체제 핵심 기능을 모아놓은 곳으로 프로세스 관리, 메모리 관리, 파일 시스템 관리, 입출력 관리, 프로세스 간 통신 관리 등을 수행한다. 운영체제의 심장과도 같은 부분이다.

시스템 호출

커널 함수들을 이용해 컴퓨터의 자원을 관리하고 사용하는 모든 것을 할 수 있다. 따라서 사용자가 커널을 사용하게 하는것은 위험하다.부주의로 인해 컴퓨터 시스템 자체를 파괴할 수도 있다. 따라서 시스템 호출 함수를 제공한다. 사용자는 시스템 호출 함수를 이용해 커널에게 하고자 하는 작업을 요청하고 반환값을 통해 결과를 받게된다.

드라이버

하드웨어의 종류는 다양하고 직접 각 하드웨어에 맞는 인터페이스를 개발하는건 불가능 하다. 따라서 커널은 입출력의 기본적인 부분만 제작하고, 하드웨어의 특성을 반영한 소프트웨어를 하드웨어 제작자에게 받아 커널이 실행될 때 함께 실행되도록 한다. 이것이 드라이버다.

본질과 발전

결국 운영체제의 본질은 무엇인가? 운영체제의 본질은 커널이다. 커널이 얼마나 일을 잘하냐에 따라 컴퓨터 전체의 성능이 좌우된다. 따라서 컴퓨터 역사의 초기부터 지금까지 성능과 속도를 향상시키려는 연구가 계속되었다. 이를 위한 방법으로 많은 방법이 제시되었다. 멀티프로그래밍, 타임 셰어링, 등등 다양한 방법을 거쳐 현대 컴퓨터는 인터럽트 기반 시스템을 사용한다. 여러가지 방법에 대한 글과 이전에 인터럽트에 대해 포스팅한 글을 첨부하겠다.
운영체제의 역사
인터럽트에 대해서 알아보자

profile
나는 개발자다. 5000만큼 코딩한다.

0개의 댓글