컴퓨터(HW)를 샀을 때 사용자는 응용프로그램을 설치하게 된다. 응용프로그램이 HW가 어떤 종류인지 신경을 쓰지 않아도 가운데에서 해주는 즉 HW와 User 간의 interaction을 제공한다.
목적
사용자들이 동작하고자 하는 프로그램들이 쉽게 동작할 수 있고 쉽게 접근할 수 있게 한다.(클릭만으로 실행)
컴퓨터의 활용도를 높여준다.
하드웨어를 효율적으로 사용할 수 있게 해준다.
OS가 없다면 모든 응용프로그램들이 HW에 맞게 동작하도록 설계가 되어있으면, resource 분배가 제대로 이루어지지 않아 문제가 생길 수 있다.
Computer System Structure
User
Application programs
OS
Hardware
I/O devices(마우스, 키보드, 스피커, 프린터, 모니터, 디스크 등)
컴퓨터 입장에서 디스크가 삽입되었다가 빠지므로
OS는 무엇을 하는가?
User와 Application(System)의 관점에 따라 목적이 다르다.
User 입장
편리한가, 빠른가
Application(System)
제때 자원을 할당해주는가
제어를 제때 해주는가(에러를 막는)
자원(CPU 시간, 메모리 공간, 파일 저장 공간, 입출력 장치 등) 할당자
시스템을 효율적이고 공정하게 운영할 수 있도록 어느 곳에 자원을 할당할지 결정
제어 프로그램
컴퓨터의 부적절한 사용 방지위해 사용자 프로그램 수행 제어
OS의 정의
OS는 policy에 맞게 설계되어 있다.
OS의 보편적인 정의는 없다.
좁게 보면 kernel(core 부분: 컴퓨터의 시작부터 끝까지(항상 수행) 작동한다.)을 말한다.
그외 기타 부분은 작은 부분의 OS를 말한다.
System program: OS와 연관되어 있지만 커널의 일부는 아님
Application program: 시스템 운영과 관계없는 모든 program
컴퓨터는 어떻게 작동하는가?
부팅 프로세스
프로세스가 동작하기위해서는 메모리 상에 있어야 하는데 HW는 메모리가 아니다. OS를 동작하기 위해서는 메모리 상에 있어야 한다. 메모리는 전원이 꺼지면 휘발성이라 사라진다. 이 부분을 해결해주는 프로세스가 부팅 프로세스다. 펌웨어(firmware)라고 알려져 있는 컴퓨터 내의 읽기 전용 메모리(ROM:Read Only Memory) or EEPROM에 저장된다. OS의 커널을 찾아 메모리에 적재한다. 이후에 서비스 제공 시작. (HW에서 주소를 가져와 커널코드를 메모리에 올려놓고 OS가 작동하게 된다.)