-
[Operating System] 운영체제 : 운영체제의 큰 그림Operating System 2024. 5. 17. 19:52
운영체제의 큰 그림
: 커널, 이중모드와 시스템 호출, 운영체제의 서비스 종류에 대해 정리하였습니다.참조 : 인프런 '개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제'
< 커널 >
운영체제가 제공하는 기능은 다양하지만, 공통적이고 핵심적인 서비스는 존재합니다.
(자원에 접근/조작하는 기능, 프로그램이 안전하고 올바르게 실행되게 하는 기능, ...)
이러한 운영체제의 핵심 서비스를 담당하는 부분을 커널(kernel)이라고 합니다.
커널 이미지
< 이중모드 >
일반 프로그램은 자원에 직접 접근이 불가능합니다. 오직 운영체제를 통해서만 접근하도록 하여 자원을 보호합니다.
(운영체제는 자원 접근을 대행하는 일종의 문지기 입니다.)
이중모드란 CPU가 명령어를 실행하는 모드을 크게 사용자 모드과 커널 모드로 구분하는 방식입니다.[ 사용자 모드 ]
- 운영체제 서비스를 제공받을 수 없는 실행 모드
- 자원 접근을 비롯한 커널 모드 명령어 실행 불가능
[ 커널 모드 ]
- 운영체제 서비스를 제공받을 수 있는 실행 모드
- 자원 접근을 비롯한 모든 명령어 실행 가능

CPU 내부의 플래그 레지스터 안 '슈퍼바이저 플래그' 값에 현재 모드를 저장합니다.
슈퍼바이저 플래그가 1일 경우 커널 모드로 실행 중임을 의미하고, 0일 경우 사용자 모드로 실행 중임을 의미합니다.
참조 : https://begin-to-end-project.tistory.com/199
< 시스템 호출 >
시스템 호출(시스템 콜)은 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법입니다.
일종의 소프트웨어 인터럽트 입니다.
: 시스템 호출이 처리되는 방식은 하드웨어 인터럽트 처리 방식과 유사
01시스템 호출 처리 방식
Ex: 리눅스의 시스템 콜 모음

+. 시스템 호출은 운영체제마다 정해져 있습니다.
< 운영체제의 핵심 서비스 >
[ 프로세스 관리 ]
- 현재 실행 중인 프로그램을 프로세스라고 부릅니다.
(수많은 프로세스들이 동시에 실행됩니다) - 운영체제는 동시다발적으로 생성/실행/삭제되는 다양한 프로세스를 일목요연하게 관리합니다.

운영체제의 프로세스 관리
[ 자원 접근 및 할당 ]
- CPU 접근 및 할당(CPU 스케줄링) : 어떤 프로세스를 먼저, 얼마나 오래 실행할까를 판단

CPU 스케줄링 - 메모리 접근 및 할당 : 페이징, 스와핑, etc.

메모리 접근 및 할당 - 입출력 장치 접근 및 할당 : 인터럽트 서비스 루틴 기능 제공(커널 영역에 적재되어 있음)
[ 파일 시스템 관리 ]
- 관련된 정보를 파일이라는 단위로 저장 장치에 보관
- 파일들을 묶어 폴더(디렉터리) 단위로 저장 장치에 보관
'Operating System' 카테고리의 다른 글
[Operating System] CPU 스케줄링 : 개요 (0) 2024.05.19 [Operating System] 운영체제 : 스레드 (0) 2024.05.18 [Operating System] 운영체제 : 프로세스 상태와 계층 구조 (0) 2024.05.18 [Operating System] 운영체제 : 프로세스 개요 (0) 2024.05.18 [Operating System] 운영체제 : 운영체제를 알아야 하는 이유 (0) 2024.05.17