CS/운영체제

[운영체제] 9-2 운영체제의 큰 그림

서니션 2024. 8. 17. 17:41
이 글을 혼자 공부하는 컴퓨터구조 + 운영체제 (한빛미디어) 책을 읽고 혼자 공부한 내용입니다.
잘못 이해한 부분이 있을 수 있고, 문제가 있는 부분 댓글로 알려주시면 수정하겠습니다.

 

운영체제의 심장, 커널

운영체제는 현존하는 프로그램 중 규모가 가장 큰 프로그램 중 하나

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

 

운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스도 있음

- 사용자 인터페이스(UI)

 

운영체제가 제공하는 사용자 인터페이스의 종류에는 

- 그래픽 유저 인터페이스(GUI)와 커맨드 라인 인터페이스(CLI)가 있음


이중 모드와 시스템 호출

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

오직 자신을 통해서만 접근하도록하여 자원을 보호 (일종의 문지기 역할)

 

문지기 역할은 이중 모드로써 구현

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

 

사용자 모드

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

즉, 커널 영역의 코드를 실행할 수 없는 모드

 

커널 모드

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

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

 

사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받으려면

운영체제에 요청을 보내 커널 모드로 전환되어야 함

이때 이 요청을 시스템 호출 OR 시스템 콜이라고 함

 

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

 

1. 하드 디스크에 데이터를 저장하는 시스템 호출을 발생시켜 커널 모드로 전환

2. 운영체제 내의 '하드 디스크에 데이터를 저장하는 코드'를 실행함으로써 하드 디스크에 접근

3. 그리고 하드 디스크에 접근이 끝났다면 다시 사용자 모드로 복귀하여 실행을 계속해나감

 

일반적으로 응용 프로그램은 실행 과정에서 운영체제 서비스들을 매우 빈번하게 이용

그 과정에서 빈번하게 시스템 호출을 발생시키고 사용자 모드와 커널 모드를 오가며 실행


운영체제의 핵심 서비스

 

프로세스 관리

프로세스 : 실행중인 프로그램

운영체제는 다양한 프로세스를 일목요연하게 관리하고 실행할 수 있어야 함

 

자원 접근 및 할당

CPU

운영체제는 프로세스들에 공정하게 CPU를 할당하기 위해 어떤 프로세스부터 CPU를 이용하게 할 것인지,

얼마나 오래 CPU를 이용하게 할지를 결정할 수 있어야 함

이를 CPU 스케줄링이라고 함

 

메모리

운영체제는 새로운 프로세스가 적재될 때마다 어느 주소에 적재해야 할지를 결정해야 함

 

입출력장치

운영체제는 인터럽트를 처리하는 프로그램, 즉 인터럽트 서비스 루틴을 제공함으로써 입출력 작업을 수행

 

파일 시스템 관리

파일 시스템도 운영체제가 지원하는 핵심 서비스