운영체제(OS, Operating System)
- 실행할 프로그램에 필요한 자원을 할당하고 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램
- 응용 프로그램과 하드웨어 사이에서 하드웨어를 조작하여 응용 프로그램에 필요한 자원을 할당하고 응용 프로그램이 올바르게 실행되도록 관리하는 소프트웨어 => OS가 없다면 하드웨어를 조작하는 코드를 개발자가 직접 작성해야 함
- 응용 프로그램 (Application Program) = 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램
- 메모리 관리 = OS는 실행할 프로그램을 메모리에 적재하고 더 이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리 자원을 관리
- CPU 스케줄링 = 최대한 공정하게 여러 프로그램에 CPU 자원 할당 (우선순위 및 얼마나 오랫동안 CPU를 이용할지 결정)
※ 하나의 CPU는 하나의 프로세스만 실행할 수 있음
- 작성한 소스 코드가 하드웨어를 제대로 실행하지 못하면 오류 메세지를 출력함
=> OS를 공부해야하는 이유 = 오류 메세지에 대한 이해를 통하여 문제를 해결하기 위해
커널(Kernel)
- OS의 핵심 서비스를 담당하는 부분 (자동차의 엔진, 사람의 심장과 같은 역할)
- 사용자 인터페이스(UI)는 커널에 속하지 X (사용자와 컴퓨터 간의 통로)
이중 모드(Dual Mode)
- OS는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호
=> 응용 프로그램이 자원에 접근하려고 할때 OS를 거쳐서 접근할 수 있도록하는 OS가 문지기 역할을 수행
- 이중 모드 = CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식
- 시스템 호출(System Call) = OS 서비스를 제공받기 위하여 응용 프로그램이 사용자 모드 => 커널 모드로 전환하기 위해 OS에 보내는 요청 (소프트웨어 인터럽트의 한 종류)
※ 시스템 호출 과정 = 시스템 호출로 커널 모드로 전환 => OS 서비스를 실행 => 다시 사용자 모드로 복귀
사용자 모드
- OS 서비스를 제공받을 수 없는 실행 모드
- 일반적인 응용 프로그램은 사용자 모드로 실행
커널 모드
- OS 서비스를 제공받을 수 있는 실행 모드
운영체제의 핵심 서비스
- 프로세스(실행 중인 프로그램) 관리 = 동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 관리
- 자원 접근 및 할당(CPU, 메모리, 입출력장치)
- 파일 시스템 관리
댓글