<aside>
1️⃣ 시스템 자원(=자원)
프로그램 실행에 마땅히 필요한 요소
ex) CPU,메모리
2️⃣ 운영체제
실행할 프로그램에 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램
커널영역에 적재 되어야함
+) 사용자 영역: 커널 영역을 제외한 나머지 영역
<aside> 💡
[운영체제를 알아야하는 이유]
1️⃣ 코드가 어떻게 실행되었는지, 문제 있었는지 여부 파악 가능
→ 문제해결의 실마리 찾기 가능
</aside>
</aside>
<aside>
1️⃣ 커널
**운영체제의 핵심 서비스**를 담당하는 부분
운영체제가 설치된 모든 기기에는 커널 존재
2️⃣ 사용자 인터페이스
커널에 포함되지 않는 부분으로 사용자가 컴퓨터와 상호작용 가능
<aside> 💡
[사용자 인터페이스 종류]
1️⃣ 그래픽 유저 인터페이스
그래픽을 기반으로 컴퓨터와 상호작용
2️⃣ 커맨드 라인 인터페이스
명령어를 기반으로 컴퓨터와 상호작용
</aside>
</aside>
<aside>
운영체제는 응용 프로그램이 자원에 접근할 때 자신을 거쳐야만 접근할수 있도록 해서 자원을 보호함
1️⃣ 이중 모드
**CPU가 명령 실행하는 모드**를 **사용자 모드**와 **커널 모드**로 구분
고로, CPU는 명령어를 사용자 모드와 커널 모드 둘 다 실행 가능
<aside> 💡
1️⃣ 사용자 모드
운영체제 서비스를 제공 못 받는 실행 모드
⇒ 커널 영역 실행 ❌, 기본적으로 **사용자 모드 실행**
하드웨어에 접근하는 명령어 실행 ❌
2️⃣ 커널 모드
운영체제 서비스를 제공받을 수 있는 실행 모드
⇒ 커널 영역 실행 ⭕
자원에 접근하는 명령어를 비롯한 모든 명령어 실행 가능
</aside>
</aside>
<aside>
운영체제 서비스를 제공받기 위해 운영체제에 보내는 요청
사용자 모드로 실행되는 프로그램이 커널 모드로 전환할 수 있게 함
<aside> 💡
[소프트웨어 인터럽트]
특정 명령어에 의해 발생하는 인터럽트
</aside>
</aside>