본 정리는 운영체제(Operating System: Concepts) 9th edition과 22학년도 1학기 건국대학교 운영체제 수업을 바탕으로 하고 있습니다.
컴퓨터 시스템
컴퓨터 시스템의 근본 목적은 '사용자 프로그램을 실행하고 사용자 문제의 해결을 보다 쉽게 해주는 것'이다.
이 목적을 위하여 컴퓨터 하드웨어(중앙 처리 장치 CPU / 메모리 / 입출력 장치)가 제작되었으며,
자원이 어떻게 사용되어야 할지를 정의해주기 위해 응용 프로그램이 개발되었다.
응용 프로그램들은 입출력 장치의 통제와 같은 하드웨어 자원을 공유 하기 때문에
자원을 제어하고 할당하는 공통 기능을 하나의 소프트웨어로 통합하게 되었고, 이것이 바로 운영체제이다.
* 컴퓨터 시스템의 4가지 구성 요소
1. 하드웨어
2. 운영체제
3. 응용 프로그램
4. 사용자
운영체제란?
운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
컴퓨터 사용자와 컴퓨터 하드웨어 사이의 인터페이스 라고 이해하면 된다.
1. 응용 프로그램 간의 하드웨어 사용을 제어 및 조정
2. 컴퓨터 시스템 동작 시 자원을 적절하게 사용할 수 있는 방법을 제공
운영체제의 역할
운영체제의 역할은 두 가지 관점을 통해서 알아볼 수 있다.
1. 사용자 관점 (User View)
운영체제는 편의성과 효율성을 추구하여 이 두 상반된 목표가 적절하게 조화를 이룰 수 있도록 한다.
* 편의성 (개인의 사용 용이성) : 사용자가 얼마나 불편함을 느끼지 않는가?
즉, 사용자가 수행하는 작업의 최대화를 추구하는 것으로, 한 사용자가 자원을 독점하도록 설계하면 편의성이 가장 높아진 것이다.
* 효율성 (자원 이용 극대화) : 자원을 얼마나 효율적으로 사용하는가? (하드웨어가 얼마나 쉬지 않고 일을 하는가?)
→ 각 사용자는 자신의 정당한 몫만 사용 가능해진다.
2. 시스템 관점 (System View)
시스템 관점에서의 운영체제는 자원 할당자, 그리고 제어 프로그램으로 볼 수 있다.
* 자원 할당자 (resource allocator) : 작업을 위해 특정 프로그램과 사용자에게 필요한 자원을 할당함
* 제어 프로그램 (control program) : 사용자 프로그램의 수행을 제어하여 부적절한 사용을 방지
정리하자면,
운영체제는 1. 사용자 관점에서의 편의성
2. 자원 할당자로서 자원 활용의 효율성
3. 다양한 입출력 장치의 운영 및 제어의 일관성을 추구한다.
운영체제의 기능 정리
- 프로세서, 기억장치, 입출력장치, 파일 및 정보 등의 자원을 관리한다.
- 프로세스 관리 - 프로세스가 동시에 돌아갈 때 프로세스 간의 스케줄링 및 공기화를 담당한다. 프로세스의 생성과 제거, 서로 간의 데이터 전달 등의 역할을 한다.
- 기억장치 관리 - 프로세스에게 메모리 할당 및 회수 관리 담당한다.
- 입 출력 장치 관리 - 입 출력 장치 스케줄링 및 전반적인 관리 담당한다.
- 파일 관리 - 파일의 생성과 삭제, 변경, 유지 등의 관리 담당
- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능을 제공한다.
- 사용자와 시스템간의 편리한 인터페이스를 제공한다.
- 시스템의 각종 하드웨어와 네트워크를 관리, 제어한다.
- 데이터를 관리하고, 데이터 및 자원의 공유 기능을 제공한다.
- 시스템의 오류를 검사하고 복구한다.
- 자원 보호 기능을 제공한다.
- 입 출력에 대한 보조 기능을 제공한다.
- 가상 계산기 능력을 제공한다.
정리하자면, 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 응용 프로그램의 멀티 프로그래밍과 다중 프로세스 등을 스케줄링을 통해 가능하게 하는 여러 프로그램들의 모임이다.
'CS > 운영체제' 카테고리의 다른 글
[Chapter 3. 프로세스] 프로세스와 문맥 (0) | 2022.08.16 |
---|---|
[Chapter 2. 시스템 구조] 입출력 시스템을 위한 운영체제의 3가지 인터페이스 (시스템 콜, 커널-드라이버 인터페이스, HW 인터페이스), 시스템 콜이 처리되는 과정 (0) | 2022.08.15 |
[Chapter 2. 시스템 구조] 이중 연산 모드와 모드 비트 (0) | 2022.08.14 |
[Chapter 2. 시스템 구조] 시스템 호출 (System Call) (0) | 2022.08.13 |
[Chapter 2. 시스템 구조] 운영체제가 제공하는 서비스 (0) | 2022.08.11 |