Study/혼자 공부하는 컴퓨터구조+운영체제 정리

9장. 운영체제 시작하기

공부하기 좋은 날 2023. 2. 5. 20:50

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

1) 운영체제란

 

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

 

운영체제는 특별한 프로그램이기 때문에 특별한 메모리 영역인 커널영역에 따로 보관되고, 응용 프로그램이 적재되는 영역은 사용자 영역이라고 한다.

 

운영체제는 실행할 프로그램을 메모리에 적재하고 더이상 실행되지 않는 프로그램을 메모리에서 삭제하며 지속적으로 메모리자원을 관리하며 최대한 공정하게 여러 프로그램에 CPU자원을 할당하고 응용 프로그램이 올바르게 실행되도록 관리하는 역할을 맡는다.

 

 

 

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

우리가 만든 프로그램은 결국 하드웨어에서 실행되고 그 하드웨어를 조작하는 프로그램이 운영체제

운영체제를 잘 알면 프로그램 개발을 할 때 문제 해결의 실마리를 빠르게 찾을 수 있다. 오류메시지를 보고 잘 찾을 수 있음.

 

<확인문제>

1. 운영체제는 실행할 프로그램에 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램입니다.

2. 운영체제에 대한 설명으로 옳지 않은 것: 2번 --> 운영체제는 사용자영역이 아닌, 커널영역에 적재된다.

 

 

9-2) 운영체제의 큰 그림

1) 운영체제의 심장, 커널

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

커널에 포함되지 않는 운영체제 서비스: 사용자 인터페이스, 그래픽 유저 인터페이스, 커맨드라인 인터페이스

 

2) 이중모드와 시스템 호출

운영체제는 사용자가 실행하는 응용프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호한다.

이때 운영체제가 자신을 통해서만 자원에 접근하도록 하는 문지기 역할을 이중모드로써 구현된다.

 

 

이중모드란 CPU가 명령어를 실행하는 모드를 크게 사용자모드와 커널모드로 구분하는 방식.

 

사용자 모드: 운영체제 서비스를 제공받을 수 없는 실행모드 = 커널영역의 코드를 실행할 수 없는 모드

일반적인 응용프로그램은 사용자모드로 실행되므로 자원에 접근할 수 없음. 꼭 운영체제를 거쳐야 함.

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

 

즉, 사용자모드에서 커널모드로의 변경을 통해 응용 프로그램에서 운영체제를 통해 자원에 접근할 수 있다.

사용자 모드에서 커널모드로 변경할 때 운영체제 서비스를 제공받기 위한 요청을 바로 시스템호출 이라고 함.

 

시스템호출은 일종의 소프트웨어적 인터럽트.

 

 

 

3) 운영체제의 핵심 서비스

1. 프로세스 관리

실행 중인 프로그램을 프로세스라고 한다.

하나의 CPU는 한번에 하나의 프로세스만 실행할 수 있으므로 운영체제가 여러개의 프로세스를 관리하여 CPU가 실행할 수 있도록 도움.

 

2. 자원 접근 및 할당

모든 프로세스는 실행을 위해 자원(CPU, 메모리, 입출력장치 등)을 필요로 한다.

 

일반적으로 메모리에는 여러 프로세스가 적재되고 하나의 CPU는 한번에 하나의 프로세스만 실행할 수 있기 때문에 CPU스케쥴링을 통해 CPU를 누가 얼마나 사용할 지 관리해주어야 함.

 

그리고 메모리에 적재되는 프로세스들은 크기도 주소도 다양하기 때문에 운영체제는 새로운 프로세스가 적재 될 때 메모리의 어느 주소에 적재될지를 결정해야 함.

 

인터럽트 서비스 루틴을 통해 입출력 작업 또한 수행한다.

 

3. 파일 시스템 관리

여러 파일을 열고, 생성하고, 삭제하는 파일시스템도 운영체제가 지원하는 서비스.

 

* 한 컴퓨터에 두개 이상의 운영체제를 사용할 때 가상머신을 설치하면 사용 가능. 운영체제가 있다고 해도 가상머신으로 설치된 것은 응용프로그램으로 분류되어 사용자모드로 작동함. 그래서 가상머신을 위한 모드인 하이퍼바이저모드를 따로 두어 가상머신 상에서 작동하는 응용프로그램들은 하이퍼바이저모드로써 가상머신에 설치된 운영체제로부터 운영체제 서비스를 받을 수 있다.

 

 

<확인문제>

1. 커널은 운영체제의 핵심 기능을 담당하는 부분을 의미

2. 이중모드와 시스템 호출에 대해 옳지 않은 것: 4번--> 시스템호출은 인터럽트의 한 종류이다.

3. 운영체제의 핵심 서비스가 아닌 것: 3번 사용자 인터페이스 제공

 

 

'Study > 혼자 공부하는 컴퓨터구조+운영체제 정리' 카테고리의 다른 글

11. CPU스케쥴링  (0) 2023.02.05
10장. 프로세스와 스레드  (0) 2023.02.05
7장. 보조 기억 장치  (0) 2023.01.23
6장. 메모리와 캐시 메모리  (1) 2023.01.23
2주차 미션  (0) 2023.01.15