운영체제
프로그램을 위해 사용자의 하드웨어, 시스템 자원을 할당하고 일반적 서비스를 제공하는 시스템 소프트웨어
모든 프로그램은 실행하기 위해 하드웨어가 필요합니다. 매번 사용자가 직접 하드웨어를 조작하기는 쉽지 않으므로 이를 지원하는 시스템 소프트웨어인 운영체제가 등장하였습니다. 운영체제는 메모리 내 커널 영역에서 응용 프로그램은 사용자 영역에 구분해서 저장하고 실행됩니다.
- 커널 : 운영체제의 핵심 서비스
운영체제의 대표적인 핵심 서비스에는 세 가지가 있습니다.
1. 가상화(Virtualization): 물리적인 하드웨어를 논리적인 가상 공간으로 나누어서 하나의 하드웨어에서 여러 애플리케이션이 독립적으로 실행
2. 동시성(Concurrency) : 스레드와 프로세스를 관리하여 여러 프로그램들이 동시에 겹치지 않으면서 효율적으로 실행
3. 영속성(Persistence) : 파일 시스템을 관리하여 보조 저장장치에 데이터를 영속적으로 저장할 수 있는 환경 제공
운영체제에는 윈도우, 리눅스, macOS, 안드로이드, iOS 등 다양한 종류가 존재합니다.
커널은 모두 유사하게 제공하지만 운영체제마다 다르게 제공하는 서비스도 존재합니다.
대표적으로 그래픽 유저 인터페이스(GUI), 커맨드 라인 인터페이스(CLI) 등이 있습니다.
- 이중 모드 : CPU가 명령어를 실행할 때 운영체제 서비스를 제공받는 모드와 제공받지 못하는 모드를 구분
여러 응용 프로그램이 마음대로 하드웨어 자원에 접근을 하면 작업의 순서가 섞여 버리거나 작업중인 데이터가 손상되는 등의 위험이 있습니다. 따라서, 응용 프로그램은 운영체제를 통해서만 자원에 접근하도록 제한합니다.
이 때 이러한 운영체제 서비스를 제공받을 수 있는 모드를 커널 모드, 제공받지 못하는 모드를 사용자 모드라 합니다.
- 시스템 콜 : 사용자 모드에서 운영체제 서비스를 제공받기 위해 커널 모드로 전환
사용자 모드로 실행되는 프로그램 중 운영체제 서비스를 제공받아야 하는 경우 시스템 콜을 통해 커널 모드로 전환해야 합니다.
응용 프로그램 실행(사용자 모드) -> 시스템 콜(커널 모드로 전환) -> 운영체제 코드 실행 -> 시스템 콜 복귀(사용자 모드) -> 응용 프로그램 마저 실행
시스템 콜이 일어날 경우 응용 프로그램은 잠시 중단 되는데 이렇게 소프트웨어에 의해 발생하는 인터럽트를 소프트웨어 인터럽트라 합니다.
'CS > 운영체제' 카테고리의 다른 글
교착 상태란 무엇인가: 발생 조건과 해결 방안 (0) | 2024.11.10 |
---|---|
메모리: RAM, 캐시 메모리, 그리고 CPU 접근 방식 이해하기 (0) | 2024.10.27 |
프로세스와 스레드 (0) | 2024.10.20 |