일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- OS
- 컴퓨터공학과
- 문제풀이
- Stack
- c++
- 정석학술정보관
- 백준
- 컴공과
- Operating System
- 코테
- DP
- 북리뷰
- 구현
- vector
- bfs
- 컴공
- coding
- 오퍼레이팅시스템
- 스택
- 오에스
- 브루트포스
- Computer science
- 개발
- 자료구조
- 코딩
- 알고리즘
- 정석
- 그래프
- cs
- 너비우선탐색
- Today
- Total
Little Jay
[OS] Operating System Overview I (Intro) 본문
Main Objective of OS
Operating System의 주요 목적을 이야기 하라고 하면 세 가지의 측면을 이야기 해야한다.
- Convenience
- Efficiency
- Ability to Evolve
OS는 사용자들로 하여금 컴퓨터를 더 쉽게 사용할 수 있고, OS는 컴퓨터 시스템의 자원(Resources)를 효과적으로 관리하며, 유연한 설계로 변화가 있어도 끊임없이 서비스를 제공할 수 있어야한다.
Role of OS
OS의 목적을 살펴보았으니 이제 실제 OS가 어떤 일을 하는지 알아보자. OS의 역할은 크게 두 가지로 나뉜다.
첫 번째는 중재자(Mediator)로서의 역할이다. 이는 다양한 Interface를 제공하는 동시에 프로그램을 실행, 개발, I/O 장치 접근, 파일 접근 제어, 시스템 접근, 에러 발견 및 처리, ISA, Process에 대한 관리를 하는 것이다. 또한 프로그래머로부터 하드웨어의 세부 사항을 마스킹한다.
두 번째는 자원관리자(Resource Manager)로서의 역할이다. OS는 HW 자원에 대한 관리를 실행해야한다. 이는 곧 컴퓨터의 기본 기능을 제어하는 것이다. 컴퓨터는 결국 데이터의 이동, 저장 및 처리를 위한 일련의 자원이기 때문에 이를 효과적으로 관리해아 한다. 응용 프로그래밍 레벨에서는 API로, Libraries/Utilities 레벨에서는 ABI로, OS 레벨에서는 ISA로 HW를 컨트롤 할 수 있어야한다.
OS
사실 OS라는 것은 매우 다양한 형태로 개발되어 명확히 정의하기 어렵다. 그러나 결론적으로는 OS는 컴퓨터 하드웨어를 관리하기 위한 프로그램이라는 것은 명확하다. 컴퓨터를 시스템의 각종 하드웨어적인 자원과 소프트웨어적인 자원을 효율적으로 운영 관리하고, 편리함을 제공하고 시스템의 생산성을 높여주는 역할을 하며, 사용자가 응용 프로그램을 편리하게 사용하고 하드웨어의 성능을 최적화 할 수 있도록 하기 때문에 모든 하드웨어와 소프트웨어를 관리하는 컴퓨터 시스템의 한 부분인 Execution Manager라고 부를 수 있을 것이다.
OS에서 핵심이 되는 부분은 커널이다. 앞서서 I/O Device같은 경우는 그 위험성때문에 Kernel Mode에서 작업한다고 언급한 바 있다. 커널의 주된 요소는 프로세스 관리, 메모리관리, 입출력 관리, 파일시스템 관리가 있다. 이거는 뒤에서 이야기 하기로 하고, 결국 말하고 싶은 것은 OS를 뭐라고 정의하기가 어렵다는 것이다. 그렇기 때문에 다음 포스팅에서 역사적으로 OS가 어떻게 발전해 왔고, 현대에 이르러 어떤 방식으로 동작하고 있는지 다룰것이다.
Reference
William Stallings. (2018). Operating Systems: Internals and Design Principles (8th Edition): Pearson.
'Univ > Operating System(OS)' 카테고리의 다른 글
[OS] Resource Protection (Kernel Mode, Timer) (0) | 2022.07.21 |
---|---|
[OS] Operating System Overview II (Evolution through History) (0) | 2022.07.19 |
[OS] Computer System Overview IV (I/O Device) (0) | 2022.07.15 |
[OS] Computer System Overview III (Memory Hierarchy) (0) | 2022.07.11 |
[OS] Computer System Overview II (Interrupt Handling with Linux Codes) (0) | 2022.07.09 |