chapter 9-1. 운영체제를 알아야하는 이유


운영체제

<aside>

1️⃣ 시스템 자원(=자원)

프로그램 실행에 마땅히 필요한 요소

ex) CPU,메모리

2️⃣ 운영체제

실행할 프로그램에 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램

커널영역에 적재 되어야함

+) 사용자 영역: 커널 영역을 제외한 나머지 영역

<aside> 💡

[운영체제를 알아야하는 이유]

1️⃣ 코드가 어떻게 실행되었는지, 문제 있었는지 여부 파악 가능

   → 문제해결의 실마리 찾기 가능

</aside>

</aside>

chapter 9-2. 운영체제의 큰 그림


<aside>

1️⃣ 커널

  **운영체제의 핵심 서비스**를 담당하는 부분

  운영체제가 설치된 모든 기기에는 커널 존재

2️⃣ 사용자 인터페이스

  커널에 포함되지 않는 부분으로 사용자가 컴퓨터와 상호작용 가능 

<aside> 💡

[사용자 인터페이스 종류]

1️⃣ 그래픽 유저 인터페이스

   그래픽을 기반으로 컴퓨터와 상호작용

2️⃣ 커맨드 라인 인터페이스

  명령어를 기반으로 컴퓨터와 상호작용

</aside>

</aside>

이중모드

<aside>

운영체제는 응용 프로그램이 자원에 접근할 때 자신을 거쳐야만 접근할수 있도록 해서 자원을 보호함

1️⃣ 이중 모드

  **CPU가 명령 실행하는 모드**를 **사용자 모드**와 **커널 모드**로 구분

  고로, CPU는 명령어를 사용자 모드와 커널 모드 둘 다 실행 가능

<aside> 💡

1️⃣ 사용자 모드

  운영체제 서비스를 제공 못 받는 실행 모드

  ⇒ 커널 영역 실행 ❌, 기본적으로 **사용자 모드 실행**

    하드웨어에 접근하는 명령어 실행 ❌

2️⃣ 커널 모드

  운영체제 서비스를 제공받을 수 있는 실행 모드

   ⇒ 커널 영역 실행 ⭕ 

    자원에 접근하는 명령어를 비롯한 모든 명령어 실행 가능

</aside>

</aside>

시스템 호출

<aside>

운영체제 서비스를 제공받기 위해 운영체제에 보내는 요청

사용자 모드로 실행되는 프로그램이 커널 모드로 전환할 수 있게 함

<aside> 💡

[소프트웨어 인터럽트]

특정 명령어에 의해 발생하는 인터럽트

</aside>

</aside>