티스토리 뷰
운영체제 (Operating System)
운영체제란 컴퓨터 하드웨어를 관리하는 프로그램으로, 운영체제 혹은 응용 프로그램을 위한 자원 관리 및 사용자와 하드웨어 사이에 중재 역할을 한다.
운영체제는 위와 같은 작업들을 굉장히 다양한 방법으로 처리한다.
예를 들면, 대형 컴퓨터 운영체제는 주로 하드웨어 이용을 최적화하고 PC 운영체제는 게임, 비즈니스 응용 등을 지원하며, 휴대용 기기의 운영체제의 경우, UX를 좀더 관점에 둔 환경 조성을 위해 설계되었다. 즉, 운영체제는 목적에 따라 서로 다른 설계방식이 적용되어 있다.
운영체제는 이와 같은 작업들을 하기에 덩치가 매우 크고 복잡하다. 하여 주요 구성요소와 기본 구성에 대해 먼저 학습하자.
운영체제의 기능
하드웨어와 응용 프로그램을 연결하고 적절한 자원 제공을 담당한다.
컴퓨터 시스템은 대체로 하드웨어, 운영체제, 응용 프로그램, 사용자로 구분되고 하드웨어, 소프트웨어, 데이터로 구성된다.
운영체제는 하드웨어를 제어하고 다양한 응용 프로그램 간 하드웨어 사용을 조정하며, 각 시스템이 동작할 때 사용하는 자원을 적절히 제공하는 역할을 한다. 즉, 실제로 시스템의 기능을 실행하는 것이 아니라 해당 프로그램이 작업 할 수 있는 환경을 제공한다.
구분 | 설명 |
하드웨어 | CPU, 메모리, 입출력(I/O) 장치 |
계산용 자원 사용 | |
응용 프로그램 | 워드, 한글, 파워포인트, 컴파일러, 웹브라우저 등 |
특정 작업마다 사용되는 자원이 다름 |
사용자 관점 (User View)
컴퓨터에게 사용자 관점이란, 사용자가 시스템과 상호작용하는 방식이나 시스템을 인식하는 방법을 의미한다. 이는 컴퓨터의 사용 용도와 사용자에게 제공하려는 인터페이스에 따라 달라진다.
예를 들어 여러 사용자가 공유하는 컴퓨터의 경우, 운연체제는 자원 이용의 효율성을 극대화할 것이고 이는 CPU 점유 시간, 메모리 사용 빈도, 입출력 제어 등 각 사용자가 자신의 몫 만큼의 자원 활용을 할 수 있도록 고른 분배를 할 것이다.
휴대용 기기에 경우, 무선 모뎀을 통해 네트워크에 연결하고 운영체제는 개인적 유용성을 위해 설계되어 배터리 수명, 성능에 중점을 맞춘다.
가전제품의 경우, 사용자의 개입을 불가능하게 하는 경우가 많다. 이는 정해진 용도로만 기기가 동작하도록 하여 오류나 예외적인 상황을 극단적으로 줄이기 위해서이다.
이와 같이 운영체제는 사용자의 사용 목적에 따라 운영체제가 사용되는 기능의 차이가 극명해진다.
시스템 관점 (System View)
자원 할당자(resource allocator)이자 제어 프로그램(control program)
자원 할당자 (resource allocator)
컴퓨터 관점에서 운영체제는 하드웨어와 가장 가까운 프로그램을 말한다.
즉, 운영체제 또한 메모리에서 올라가는 친구로써 운영체제 자체가 굉장히 무겁고 크기 때문에 운영체제 시스템을 모두 메모리에 올리지 않고 부팅단계에서 커널이라는 필수 기능들만 메모리에 올린다.
그후 운영체제는 다른 프로그램들이 하드웨어들을 통해 동작할 수 있도록 자원을 할당해주는 자원 할당자(resource allocator)역할을 한다. 여기서 자원은 CPU 시간, 메모리 공간, 파일 저장 공간, 입출력장치 등을 의미한다.
자원에 대한 수많은 요청을 운영체제는 효율적이고 공정히 운영하기 위하여, 어느 사용자와 프로그램에 얼만큼의 자원을 할당할지 결정해야 한다.
📌커널이란?
커널은 운영체제가 컴퓨터에 항상 실행되도록 하는 프로그램이다. 운영체제마다 크기가 다르지만 보통 운영체제 자체가 용량이 많기에 모든 프로그램을 메모리에 올릴수 없다. 하여 커널이라는 필수 프로그램들만 부팅단계에서 항시 메모리에 상주 시키는 것이다.
(커널을 제외하고는 운영체제와 연관된 시스템 프로그램과 시스템 운영과 관련없는 응용 프로그램이 있다.)
제어 프로그램 (control program)
운영체제는 자원 할당 외에도 제어 프로그램(control program) 역할을 한다. 제어 프로그램이란 컴퓨터 사용에 문제가 발생하지 않도록 입출력장치를 제어와 작동하며 사용자의 프로그램의 실행을 제어하는 역할을 한다.
운영체제의 정의
운영체제를 완벽히 정의하는 문장은 없지만, 운영체제가 존재하는 이유는 컴퓨터 시스템을 유용하게 만드는 과정에서 발생하는 문제점을 합리적인 방법으로 해결하기 위한 것이다.
컴퓨터 시스템은 근본적으로 정보를 처리하고 저장하여 유용한 결과를 생성하기 위해 탄생했다. 이를 위해 각종 하드웨어들이 제작되어 사용자 프로그램이 동작하도록 만들어졌지만, 순수 하드웨어만으로 컴퓨터 시스템을 사용하기 힘들기에 응용 프로그램들이 개발되었다.
이러한 다양한 프로그램들은 입출력장치 통제와 같은 공통적으로 사용하는 연산들이 있었고, 이러한 입출력 자원과 같은 각종 자원들을 제어하고 할당해주는 기능들이 소프트웨어로 개발되며 통합되어 운영체제가 만들어졌다.
'Computer > Operation System' 카테고리의 다른 글
[OS] 컴퓨터 시스템 구조 (Computer-System Architecture) (0) | 2024.03.27 |
---|---|
[OS] 시스템 콜 (System Calls) (0) | 2024.03.25 |
[OS] 입출력 구조 (I/O Structure) (0) | 2024.03.23 |
[OS] 컴퓨터 시스템의 구성 (1) | 2024.03.15 |