4주차 (1/22 ~ 1/28)
chapter. 09 : 운영체제 시작하기
chapter. 10 : 프로세스와 스레드
chapter. 11 : CPU스케줄링
운영체제(Operating System) 란?
실행할 프로그램
에 필요한 자원을 할당하고
, 프로그램이 올바르게 실행
되도록 돕는 특별한 프로그램
실행할 프로그램
: 실행할 프로그램은 프로세스라 한다. 자원을 할당하고
: 앞서 공부한 CPU, 메모리, 보조기억장치, 입출력장치 등을 자원이라고 하며 운영체제는 이러한 자원을 효율적으로 할당하는 역할을 담당프로그램이 올바르게 실행
: 어떤 프로그램을 먼저 실행시키고 나중에 실행시킬지를 결정하는 스케줄링을 담당한다는 의미프로그램
: 운영체제 역시 프로그램이므로 실행하려면 메모리에 저장되어야 한다. 그런데 특별한 프로그램이므로 메모리의 커널 영역(kernel space)이라는 공간에 따로 적재되어 실행된다. ✔️ 커널(kernel space)
메모리는 크게 커널영역과 사용자영역으로 나뉨 이때, 커널영역에는 운영체제가 적재되고, 사용자영역에는 우리가 사용하는 엑셀, 카톡 같은 응용프로그램이 적재된다.
운영체제가 없다면?
여러 응용프로그램(프로세스)이 동시에 자원 접근하면 어떤 거 먼저 자원을 이용할지 결정하기 어렵고, 그렇게 되면 명령어 실행 순서가 뒤죽박죽되거나 제대로 실행되지 않을 수도 있다.
📌 그래서, 응용프로그램이 자원에 직접 접근하는 대신 운영체제에 도움을 요청하고, 운영체제는 응용프로그램의 작업을 대신 수행해 준다.
운영체제를 알아야 하는 이유
'컴퓨터 구조'와 마찬가지로 문제해결의 실마리
를 제공해준다.
우리가 만드는 응용프로그램은 하드웨어가 실행하고, 이 하드웨어를 조작하는 프로그램이 운영체제이다.
또한 운영체제는 프로그램이기 때문에 하드웨어 상에 문제가 있는지, 프로그램의 코드가 어떻게 실행되는지 등을 알려준다.
커널(kernel)이란?
핵심서비스 담당
하는 부분심장
, 자동차의 엔진
과 같은 역할(🫠 궁금 ) '메모리의 커널영역'과 '운영체제의 커널영역' 이 부분이 헷갈림
메모리는 크게 커널영역과 사용자영역으로 나뉘고, 커널영역에는 커널이 위치한다.
✔️즉, 메모리의 특정 공간(=커널영역)
에 커널이라는 운영체제의 핵심프로그램
이 적재되고 실행된다로 이해!!
✅ 운영 체제의 핵심서비스
프로세스 관리 ➡️ chapter 10
자원 접근 및 할당 ➡️ chapter 11, chapter14
파일 시스템 관리 ➡️ chapter15
✅ 이중모드와 시스템 호출
📌 운영체제는 사용자가 실행하는 응용프로그램이 자원에 직접 접근하는 것을 방지하여 자원을 보호한다. 응용프로그램이 자원에 접근하려면 어떻게 해야하는가?
CPU가 사용자 모드로 실행 중인지, 커널 모드로 실행 중인지는 플래그 레지스터 속 슈퍼바이저 플래그를 보면 알 수 있다.
응용프로그램은 실행과정에서 운영체제 서비스 매우 빈번하게 이용. 그 과정에 시스템호출도 빈번하게 일어나고 사용자모드와 커널모드 오가며 실행된다.