05. [혼공컴운]4주차_chapter 09. 운영체제 시작하기

hyewoon·2024년 1월 19일
0

4주차 (1/22 ~ 1/28)
chapter. 09 : 운영체제 시작하기
chapter. 10 : 프로세스와 스레드
chapter. 11 : CPU스케줄링

chapter 09. 운영체제 시작하기

운영체제(Operating System) 란?
실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램

  • 실행할 프로그램 : 실행할 프로그램은 프로세스라 한다.
  • 자원을 할당하고 : 앞서 공부한 CPU, 메모리, 보조기억장치, 입출력장치 등을 자원이라고 하며 운영체제는 이러한 자원을 효율적으로 할당하는 역할을 담당
  • 프로그램이 올바르게 실행 : 어떤 프로그램을 먼저 실행시키고 나중에 실행시킬지를 결정하는 스케줄링을 담당한다는 의미
  • 프로그램 : 운영체제 역시 프로그램이므로 실행하려면 메모리에 저장되어야 한다. 그런데 특별한 프로그램이므로 메모리의 커널 영역(kernel space)이라는 공간에 따로 적재되어 실행된다.

✔️ 커널(kernel space)


메모리는 크게 커널영역과 사용자영역으로 나뉨 이때, 커널영역에는 운영체제가 적재되고, 사용자영역에는 우리가 사용하는 엑셀, 카톡 같은 응용프로그램이 적재된다.

운영체제가 없다면?

여러 응용프로그램(프로세스)이 동시에 자원 접근하면 어떤 거 먼저 자원을 이용할지 결정하기 어렵고, 그렇게 되면 명령어 실행 순서가 뒤죽박죽되거나 제대로 실행되지 않을 수도 있다.

📌 그래서, 응용프로그램이 자원에 직접 접근하는 대신 운영체제에 도움을 요청하고, 운영체제는 응용프로그램의 작업을 대신 수행해 준다.

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

'컴퓨터 구조'와 마찬가지로 문제해결의 실마리를 제공해준다.

우리가 만드는 응용프로그램은 하드웨어가 실행하고, 이 하드웨어를 조작하는 프로그램이 운영체제이다.
또한 운영체제는 프로그램이기 때문에 하드웨어 상에 문제가 있는지, 프로그램의 코드가 어떻게 실행되는지 등을 알려준다.


운영체제의 심장, 커널

커널(kernel)이란?

  • 사전적 의미 : ker·nel : 1. 알맹이 2. 핵심
  • 운영체제의 핵심서비스 담당하는 부분
  • 운영체제가 설치된 모든 기기에는 커널이 있음
  • 사람의 심장, 자동차의 엔진과 같은 역할

(🫠 궁금 ) '메모리의 커널영역'과 '운영체제의 커널영역' 이 부분이 헷갈림

메모리는 크게 커널영역과 사용자영역으로 나뉘고, 커널영역에는 커널이 위치한다.

✔️즉, 메모리의 특정 공간(=커널영역)커널이라는 운영체제의 핵심프로그램이 적재되고 실행된다로 이해!!

운영 체제의 핵심서비스
프로세스 관리 ➡️ chapter 10
자원 접근 및 할당 ➡️ chapter 11, chapter14
파일 시스템 관리 ➡️ chapter15

이중모드와 시스템 호출

📌 운영체제는 사용자가 실행하는 응용프로그램이 자원에 직접 접근하는 것을 방지하여 자원을 보호한다. 응용프로그램이 자원에 접근하려면 어떻게 해야하는가?

  • 사용자 모드
    : 운영체제 서비스 제공받을 수 없는 실행 모드, 일반적인 응용프로그램은 기본적으로 사용자 모드로 실행 됨
  • 커널 모드 : 운영체제 서비스 제공받을 수 있는 실행 모드
  • 시스템 호출
    : 사용자 모드에서 커널 모드로 전환하여 운영체제 서비스를 제공받기 위한 요청
    : 일종의 소프트웨이 인터럽트

CPU가 사용자 모드로 실행 중인지, 커널 모드로 실행 중인지는 플래그 레지스터 속 슈퍼바이저 플래그를 보면 알 수 있다.

응용프로그램은 실행과정에서 운영체제 서비스 매우 빈번하게 이용. 그 과정에 시스템호출도 빈번하게 일어나고 사용자모드와 커널모드 오가며 실행된다.

profile
곰곰

0개의 댓글