Program이 동작하는 순서
- Fetch : 메모리에서 명령어를 fetch
- Decode : 해당명령어는 무슨 의미를 가지는 지 해석
- Excute : 연산 수행, 분기, 메모리에 접근하는 등
- next Instruction(PC+4) : 다음 명령어로 이동하여 동일한 수행
- Program Counter 값을 계속 업데이트
- 분기에 따라서 +4 는 달라짐
운영체제(OS)의 목적
- 시스템이 더 정확하고 효율적으로 작동할 수 있도록 함
- 프로그램을 실행하기 쉽게
- 프로그램이 메모리를 잘 활용하도록 (서로 잘 나눠쓰도록)
- 디바이스와 통신할 수 있도록
시스템의 자원
을 관리하는 것
운영체제란 무엇인가
- 하드웨어를 손쉽게 그리고 효율적으로 사용할 수 있는
Abstraction
을 제공
- CPU → Process
- Memory → Address Spcae
- Disk → File
- Network → Port
- 운영체제의 추상화는 복잡한 하드웨어를 단순화시킨다.
- 사용자와 프로그램이 쉽게 접근할 수 있도록 한다.
- 자원 공유 및 분배를 위한
Policy
를 결정한다.
- FIFO, LRU
- 설계에서의 결정이 중요하다.
- 데이터 센터 와 스마트폰에 사용되는 정책이 다름
Abstraction 은 왜 필요할까?


Abstraction : Process
- Program
- 컴퓨터를 실행시키기 위한 일련의 순차적으로 작성된 명령어
- 컴퓨터 시스템의 Disk와 같은 Secondary Storage에 바이너리 형태로 저장
- Prcocess
- 실행되고 있는 프로그램의 추상화
- Program Counter, Stack, Data Section으로 구현된다.
- 프로세스 별로 PC 값이 존재
- OS가 프로세스 별로 메모리를 할당해줌
- CPU와 같은 Hardware 로 부터, 각 프로그램을 구분하여 실행할 수 있도록 하기 위함