운영체제
운영체제(Operating System, OS)는 시스템 자원(System resource)을 관리하는 Allocator인 동시에 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 Controller이다.
사용자에게 컴퓨터 프로그램을 효율적으로 실행할 수 있는 환경을 제공하고, 시스템 하드웨어 및 소프트웨어 자원을 여러 사용자 간에 효율적으로 할당시켜 관리하며 이를 보호하는 역할을 한다. 또 제어 프로그램으로써의 역할을 수행하며 프로그램의 오류나 잘못된 리소스 사용을 감시하고, 리소스 전반에 대한 연산과 제어를 관리하기도 한다.
운영체제 또한 일종의 프로그램으로, 저장매체에 저장되어 있으며 실행 시 메모리에 적재되어야 한다. 이후에 좀더 자세히 다룰 예정이지만, 메모리는 사용자 영역(User area)과 커널 영역(Kernel area)으로 나뉘는데, OS는 이 중 커널 영역에 적재되며 일반적인 응용 프로그램은 사용자 영역에 적재된다.
컴퓨터의 전원을 켜면 가장 먼저 Bootstrap program이 동작하게 되는데, 이는 모든 시스템을 initialize 하며 Disk로부터 OS를 load하고 실행시킨다.
운영체제의 역할
1. 시스템 자원 관리자
여기서 시스템 자원(System Resource)이란, CPU, Memory, I/O Devices 등의 컴퓨터 하드웨어를 의미한다. 프로그램이 얼마나 CPU를 사용할지, 어떤 주소에 정보를 저장하고 읽어올지 등 하드웨어 자원이 누구에게 언제 어떻게 얼마나 사용될지를 관리하는 것이 바로 OS이다.
이러한 OS가 없으면 하드웨어가 아무리 우수할지라도 컴퓨터는 동작하지 않는다.
2. 사용자와 컴퓨터 간의 커뮤니케이션 지원
사용자는 자신의 의도대로 컴퓨터의 하드웨어 자원을 이용해서 소프트웨어를 조작하려고 한다. 이때 사용자의 의도를 컴퓨터에게 전달하여 이를 잘 처리할 수 있도록 만드는 것이 OS이다. 만약 OS가 Stable하지 않은 상황이라면 이 과정 도중에 운영체제가 강제로 종료되고, 시스템이 재부팅될 수 있다.
흔히 뻗는다 라고 이야기한다.
한국의 자체 운영체제를 꿈꾸던 티맥스(Tmax)는 물론, 현재는 거의 모든 PC가 사용하고 있는 Windows OS조차도 초창기에는 에러가 심심치 않게 발생하곤 했다. 이는 안정적인 OS 만들기가 얼마나 어려운지를 보여준다. 단순 소프트웨어만 해도 유저의 기상천외한 입력에 대응하기 위해 무수한 테스트를 거치는데, 컴퓨터와 유저 간 상호작용을 담당하는 OS는 어떻겠는가. 지금과 같은 안정적인 OS를 만들기 위해 갈려나간 많은 개발자들의 노고를 기린다.
운영체제와 응용프로그램 간의 관계
컴퓨터에서 사용하는 소프트웨어 중 대부분을 응용 프로그램(Application)이라고 한다. 흔히 사용하는 문서 작업 도구들뿐만 아니라, 게임, 유튜브 앱 등도 모두 응용 프로그램이다. 이러한 응용 프로그램이 실행되기 위해서는 해당 응용 프로그램이 요구하는 하드웨어 사양이 충족되어야 할 뿐만 아니라 그만큼의 하드웨어를 실제로 사용할 수 있어야 한다. 이처럼 응용 프로그램이 하드웨어 리소스를 사용할 수 있도록 관리하는 것이 바로 OS이다.
이처럼 응용 프로그램이 실행될 수 있도록 관리하는 것은 OS의 가장 기본적인 능력 중 하나로, 이 뿐만 아니라 유저의 로그인 관리, 프로그램 요구권한 관리 등의 권한 관리 기능을 하기도 하며, 잘못된 프로그램이 컴퓨터 전체에 악영향을 끼치지 않도록 막는 역할을 하기도 한다. 응용 프로그램이 임의로 파일을 삭제하는 것을 막거나, 하드웨어 리소스를 혼자서 전부 사용하려는 시도를 막는 방어자의 역할 또한 수행한다.
'컴퓨터 공학 기본 > 운영체제 (OS)' 카테고리의 다른 글
04. 운영체제 구조: 시스템 콜 (0) | 2023.04.15 |
---|---|
03. 운영체제의 역사 (1970~2000) (0) | 2023.04.15 |
02. 운영체제의 역사 (1950~1960) (0) | 2023.04.15 |
댓글