운영체제
- 컴퓨터의 하드웨어를 관리하는 소프트웨어
- 응용프로그램들의 기반을 제공하고 컴퓨터 사용자와 컴퓨터 하드웨어 사이의 중개 역할을 함
- 사물 인터넷 장치를 포함하는 차와 가전제품에서부터 스마트폰, 개인용 컴퓨터, 기업 컴퓨터, 클라우드 컴퓨팅까지 어디에나 존재
- 현대의 컴퓨팅 환경에서 운영체제의 역할을 탐구하기 위해서는 먼저 컴퓨터 하드웨어의 조직과 구조를 이해하는 것이 중요함
- 여기에는 CPU, 메모리, I/O 장치 뿐만 아니라 저장소도 포함
- 운영 체제의 기본적인 책임은 이러한 자원을 프로그램에 할당하는 것
운영체제 역할
- 컴퓨터 시스템
- 관점 (1)
-
- 하드웨어 : 컴퓨터의 기본적인 컴퓨팅 자원을 제공함
- CPU (Central Processing Unit)
- 메모리
- I/O 장치
- 운영체제
- 하드웨어를 제어
- 다양한 사용자를 위해 다양한 응용 프로그램 간의 사용을 조정
- 응용프로그램 : 자원이 사용자의 컴퓨팅 문제를 해결하는 데 사용되는 방법을 정의합니다.
- ex) 워드프로세서, 스프레드시트, 컴파일러, 웹브라우저
- 사용자
- 하드웨어 : 컴퓨터의 기본적인 컴퓨팅 자원을 제공함
-
- 관점 (2)
- 하드웨어
- 소프트웨어
- 데이터
- 관점 (2)
- 운영체제를 바라보는 두 가지 관점
- 사용자 관점
- 사용자가 자신의 자원을 독점하도록 설계됨
- 목표는 사용자가 수행하고 있는 작업을 최대화하는 것
- 이 경우 운영 체제는 대부분 사용 편의성을 위해 설계되었으며, 성능 및 보안에는 일부 관심이 있지만 리소스 활용(다양한 하드웨어 및 소프트웨어 리소스 공유 방법)에는 관심이 없음
- 시스템 관점
- 운영체제 = 자원 할당자
- 운영체제는 하드웨와 가장 밀접하게 관련되어 있는 프로그램임
- 문제를 해결하는 데 필요한 많은 자원들(CPU 시간, 메모리 공간, 저장 공간, 입출력 장치 등)의 관리자 역할을 함
- 상충될 수도 있는 자원 요청들에 직면하여 컴퓨터 시스템을 효율적이고 공정하게 운영할 수 있도록 특정 프로그램들과 사용자들에게 어떻게 자원을 할당할지 결정해야 함
- 운영체제 = 제어 프로그램
- 다양한 입출력 장치들과 사용자 프로그램들을 제어할 필요가 있음
- 사용자 프로그램들의 실행을 관리하여 컴퓨터의 오류와 부적절한 사용을 방지함
- 특히 입출력 장치들의 작동과 제어에 관한 것
- 운영체제 = 자원 할당자
- 사용자 관점
- 운영체제 정의
- 운영체제는 컴퓨터에서 항상 실행되는 하나의 프로그램 (일반적으로 커널이라고 함)
- 커널과 함께 두 가지 다른 종류의 프로그램이 존재
- 시스템 프로그램: 운영체제와 연결되어 있지만 반드시 커널의 일부는 아님
- 응용 프로그램: 시스템의 동작과 관련이 없는 모든 프로그램을 포함
- 모바일 운영체제에는 코어 커널뿐만 아니라 애플리케이션 개발자들에게 부가적인 서비스를 제공하는 소프트웨어 프레임워크인 미들웨어도 포함되어 있는 경우가 많음
- ex. 가장 중요한 두 모바일 운영체제인 애플의 iOS와 구글의 안드로이드는 각각 코어 커널과 데이터베이스, 멀티미디어, 그래픽을 지원하는 미들웨어를 포함하고 있음
- 운영체제에는 항상 실행되는 커널, 애플리케이션 개발을 용이하게 하고 기능을 제공하는 미들웨어 프레임워크, 운영체제가 실행되는 동안 시스템을 관리하는 데 도움이 되는 시스템 프로그램이 포함되어 있음