- Chpater 1 : Introduction
하드웨어 -> 중앙 처리 장치(CPU), 메모리 및 입출력(I/O) 장치로 구성 , 기본 계산용 자원 제공.
응용프로그램 -> 워드 프로세서, 스프레드 시트 , 컴파일러, 웹브라우저 등 , 사용자의 계산문제 해결을 위해 이들 자원이 어떻게 사용될지 정의.
운영체제 -> 다양한 사용자를 위해 다양한 응용 프로그램 간의 하드웨어 사용 제어/조정하는 역할
사용자가 자원을 독점.
목표는 사용자가 수행하는 작업을 최대화 하는것.
따라서 '사용의 용이성'만을 위해 설계하며 다양한 하드웨어와 소프트웨어 자원이 어떻게 공유되느냐의 자원의 이용에는 전혀 신경 X
위에서 말한것처럼 '정부'의 역할로서 크게 작용. 한마디로 '자원 관리자' 이며 제어 프로그램(control Program) : 특히 입출력 장치의 제어와 작동에 깊이 관여.
운영체제는 항상 실행중인 커널(가장 범용적 개념) , 응용프로그램 개발을 쉽게 하고 기능을 제공하는 미들웨어 프레임워크 및 시스템 실행중에 시스템을 관리하는 데 도움이 되는 시스템 프로그램이 포함됨.
** 미들웨어: 응용 프로그램 개발자에게 추가 서비스를 제공하는 일련의 소프트웨어 프레임워크 ( ex : Apple의 IOS, Google의 Android)
왜 운영체제를 공부하는가?
컴퓨터 시스템은 하나 이상의 CPU와 공유 메모리 사이의 엑세스를 제공하는 공통 버스를 통해 연결된 여러 장치 컨트롤러로 구성된다.
운영체제에는 각 장치 컨트롤러마다 '장치 드라이버' 존재.
장치 드라이버는 장치 컨트롤러의 작동을 잘 알고 있고 나머지 운영체제 장치에 대한 일관된 인터페이스 제공.
Example
1. Embeded Sytem : 스마트폰,게임기,스마트워치, 스마트자동차, 공학용계산기, 키오스크 등 -> 공통점: '특정'목적을 위해 설계된 컴퓨터 시스템
2.PC : 임베디드 시스템과는 대조되는 개념으로 데스크탑과 랩탑 으로 나뉘어짐. (General Purpose를 가지고 다루며 여러가지 목적 수행 가능 , 개인이 쓸 수 있는 ‘범용’ 적인 개념의 시스템)
3) 서버 컴퓨터 : 고성능 SW 탑재 하드웨어 (기상청의 날씨 예측모델, 알파고 등)
Computer system components
Computer system organization
따라서, 복잡한 하드웨어를 구동시키는 것이 Operating System의 역할이며 resource가 하드웨어라며 OS는 resoure를 manage하는 resource manager라고 볼 수 있다.
Abstraction : 하드웨어는 OS의 면면을 다 알지 못하여도 일종의 겉모습만 보고서도 추정 가능. 따라서 사용성이 좋아짐.
Sharing: 하드웨어는 1개만 존재하며 CPU 역시 1개만 존재하며 한번에 하나의 일만 수행 가능하다. 하지만 현실에서는 유투브, zoom, 워드 등 다양한 소프트웨어를 동시다발적으로 구동시켜놓고 수행이 가능한데 이러한 특징은 OS가 하드웨어 자원을 다양하게 사용할 수 있도록 지원하며 한정적인 자원을 공유할 수 있게끔 도와주기 때문이다.
Protection: 운영체제는 하드웨어의 management unit 을 사용해서 메모리 공간이 할당되지 않으면 감지가능. 한번 할당된 메모리 공간은 운영체제도 건들지못함 해당 프로그램만 사용가능. (자원과 권한 통제 기능)
즉, 운영체제가 리소스를 관리하면서 지향해야하는 목적. 따라서 관리자의 책임이 중요시됨.
또다른 이름으로는 resource allocator, Contorl Program , Kernel